dir-selector-auto.html (2576B)
1 <!doctype html> 2 <html> 3 <head> 4 <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <style> 8 #div4_1 { 9 direction: rtl; 10 } 11 </style> 12 </head> 13 14 <!-- ת is the Hebrew letter tav, i.e. RTL --> 15 <body> 16 <div id=testDivs> 17 <div id=div1 dir=auto> 18 <div id=div1_1>a</div> 19 </div> 20 <div id=div2 dir=auto> 21 <div id=div2_1>ת</div> 22 </div> 23 <div id=div3 dir=auto> 24 <div id=div3_1 dir=rtl>ת</div> 25 <div id=div3_2>a</div> 26 </div> 27 <div id=div4 dir=auto> 28 <div id=div4_1> 29 <div id=div4_1_1>a</div> 30 </div> 31 </div> 32 </div> 33 </body> 34 35 <script> 36 function test_directionality(message, element, expected) { 37 test(() => { 38 var isLTR = document.querySelector("#" + element.id + ":dir(ltr)") == element; 39 var isRTL = document.querySelector("#" + element.id + ":dir(rtl)") == element; 40 if (expected == "ltr") { 41 assert_true(isLTR); 42 assert_false(isRTL); 43 } else { 44 assert_false(isLTR); 45 assert_true(isRTL); 46 } 47 }, message + " directionality of element " + element.id + " is " + expected); 48 } 49 50 test_directionality("Initial ", div1, "ltr"); 51 test_directionality("Initial ", div1_1, "ltr"); 52 test_directionality("Initial ", div2, "rtl"); 53 test_directionality("Initial ", div2_1, "rtl"); 54 test_directionality("Initial ", div3, "ltr"); 55 test_directionality("Initial ", div3_1, "rtl"); 56 test_directionality("Initial ", div3_2, "ltr"); 57 test_directionality("Initial ", div4, "ltr"); 58 test_directionality("Initial ", div4_1, "ltr"); 59 test_directionality("Initial ", div4_1_1, "ltr"); 60 61 div1_1.innerText = "\u05EA"; 62 div1_1.offsetTop; 63 test_directionality("Updated ", div1, "rtl"); 64 test_directionality("Updated ", div1_1, "rtl"); 65 66 div1_1.dir = "ltr"; 67 div1_1.offsetTop; 68 test_directionality("Updated ", div1, "ltr"); 69 test_directionality("Updated ", div1_1, "ltr"); 70 71 div1_1.innerText = "a"; 72 div1_1.offsetTop; 73 test_directionality("Reupdated ", div1, "ltr"); 74 test_directionality("Reupdated ", div1_1, "ltr"); 75 76 div2_1.remove(); 77 div2.offsetTop; 78 test_directionality("Updated ", div2, "ltr"); 79 80 div3_1.dir = ""; 81 div3_1.offsetTop; 82 test_directionality("Updated ", div3, "rtl"); 83 div3.appendChild(div3_1); 84 div3.offsetTop; 85 test_directionality("Updated ", div3, "ltr"); 86 87 div4_1_1.innerText = "\u05EA"; 88 div4_1_1.offsetTop; 89 test_directionality("Updated ", div4, "rtl"); 90 test_directionality("Updated ", div4_1, "rtl"); 91 test_directionality("Updated ", div4_1_1, "rtl"); 92 </script> 93 </html>