Refactoring: Pull all fullscreen code out of Document and into its own helper class
[WebKit-https.git] / LayoutTests / accessibility / focusable-div.html
index adfffbf..56057ac 100644 (file)
@@ -1,16 +1,28 @@
 <!DOCTYPE HTML>
 <html>
 <body>
-<script src="../fast/js/resources/js-test-pre.js"></script>
+<script src="../resources/js-test-pre.js"></script>
+<script src="../resources/accessibility-helper.js"></script>
 
+<div id="content">
+
+<!-- A link always gets its accessible text from contents. -->
 <a id="link" href="#">A</a>
+
+<!-- A generic focusable div should not get its accessible text from contents. -->
 <div id="div" tabindex="0">B</div>
 <div id="div2" tabindex="0"><div></div>C</div>
 <div id="div3" tabindex="0" aria-label="D"></div>
 
+<!-- A generic focusable div should not get accessible text from children that are focusable or containers. -->
+<div id="div4" tabindex="0"><a href="#">Link</a></div>
+<div id="div5" tabindex="0">Initial text before link<a href="#">Link</a></div>
+<div id="div6" tabindex="0"><ul><li>List item</li></ul></div>
+<div id="div7" tabindex="0">Initial text before list<ul><li>List item</li></ul></div>
+</div>
 <div id="console"></div>
 <script>
-description("This test makes sure that a generic focusable div can get accessibility focus.");
+description("This test makes sure that a generic focusable div can get accessibility focus. It should not get accessible text from its children automatically though.");
 
 if (window.testRunner && window.accessibilityController) {
     window.testRunner.dumpAsText();
@@ -29,23 +41,52 @@ if (window.testRunner && window.accessibilityController) {
     div.focus();
     shouldBe("document.activeElement == div", "true");
     window.axDiv = accessibilityController.focusedElement;
-    shouldBe("lastChar(axDiv.title)", "\"B\"");
+    shouldBe("lastChar(axDiv.title)", "' '");
 
     var div2 = document.getElementById('div2');
     div2.focus();
     shouldBe("document.activeElement == div2", "true");
     window.axDiv2 = accessibilityController.focusedElement;
-    shouldBe("lastChar(axDiv2.title)", "\"C\"");
+    shouldBe("lastChar(axDiv2.title)", "' '");
 
     var div3 = document.getElementById('div3');
     div3.focus();
     shouldBe("document.activeElement == div3", "true");
     window.axDiv3 = accessibilityController.focusedElement;
-    shouldBe("lastChar(axDiv3.description)", "\"D\"");
+    var accNameForDiv3 = platformValueForW3CName(axDiv3);
+    shouldBe("lastChar(accNameForDiv3)", "\"D\"");
+
+    var div4 = document.getElementById('div4');
+    div4.focus();
+    shouldBe("document.activeElement == div4", "true");
+    window.axDiv4 = accessibilityController.focusedElement;
+    shouldBe("axDiv4.title.indexOf('Link')", "-1");
+
+    var div5 = document.getElementById('div5');
+    div5.focus();
+    shouldBe("document.activeElement == div5", "true");
+    window.axDiv5 = accessibilityController.focusedElement;
+    shouldBe("axDiv5.title.indexOf('Link')", "-1");
+    shouldBe("axDiv5.title.indexOf('Initial text before link') >= 0", "false");
+
+    var div6 = document.getElementById('div6');
+    div6.focus();
+    shouldBe("document.activeElement == div6", "true");
+    window.axDiv6 = accessibilityController.focusedElement;
+    shouldBe("axDiv6.title.indexOf('List item')", "-1");
+
+    var div7 = document.getElementById('div7');
+    div7.focus();
+    shouldBe("document.activeElement == div7", "true");
+    window.axDiv7 = accessibilityController.focusedElement;
+    shouldBe("axDiv7.title.indexOf('List item')", "-1");
+    shouldBe("axDiv7.title.indexOf('Initial text before list') >= 0", "false");
+
+    document.getElementById("content").style.visibility = "hidden";
 }
 
 </script>
 
-<script src="../fast/js/resources/js-test-post.js"></script>
+<script src="../resources/js-test-post.js"></script>
 </body>
 </html>