Refactoring: Pull all fullscreen code out of Document and into its own helper class
[WebKit-https.git] / LayoutTests / accessibility / focusable-div.html
1 <!DOCTYPE HTML>
2 <html>
3 <body>
4 <script src="../resources/js-test-pre.js"></script>
5 <script src="../resources/accessibility-helper.js"></script>
6
7 <div id="content">
8
9 <!-- A link always gets its accessible text from contents. -->
10 <a id="link" href="#">A</a>
11
12 <!-- A generic focusable div should not get its accessible text from contents. -->
13 <div id="div" tabindex="0">B</div>
14 <div id="div2" tabindex="0"><div></div>C</div>
15 <div id="div3" tabindex="0" aria-label="D"></div>
16
17 <!-- A generic focusable div should not get accessible text from children that are focusable or containers. -->
18 <div id="div4" tabindex="0"><a href="#">Link</a></div>
19 <div id="div5" tabindex="0">Initial text before link<a href="#">Link</a></div>
20 <div id="div6" tabindex="0"><ul><li>List item</li></ul></div>
21 <div id="div7" tabindex="0">Initial text before list<ul><li>List item</li></ul></div>
22 </div>
23 <div id="console"></div>
24 <script>
25 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.");
26
27 if (window.testRunner && window.accessibilityController) {
28     window.testRunner.dumpAsText();
29
30     function lastChar(str) {
31         return str.substr(str.length - 1);
32     }
33
34     var link = document.getElementById('link');
35     link.focus();
36     shouldBe("document.activeElement == link", "true");
37     window.axLink = accessibilityController.focusedElement;
38     shouldBe("lastChar(axLink.title)", "\"A\"");
39
40     var div = document.getElementById('div');
41     div.focus();
42     shouldBe("document.activeElement == div", "true");
43     window.axDiv = accessibilityController.focusedElement;
44     shouldBe("lastChar(axDiv.title)", "' '");
45
46     var div2 = document.getElementById('div2');
47     div2.focus();
48     shouldBe("document.activeElement == div2", "true");
49     window.axDiv2 = accessibilityController.focusedElement;
50     shouldBe("lastChar(axDiv2.title)", "' '");
51
52     var div3 = document.getElementById('div3');
53     div3.focus();
54     shouldBe("document.activeElement == div3", "true");
55     window.axDiv3 = accessibilityController.focusedElement;
56     var accNameForDiv3 = platformValueForW3CName(axDiv3);
57     shouldBe("lastChar(accNameForDiv3)", "\"D\"");
58
59     var div4 = document.getElementById('div4');
60     div4.focus();
61     shouldBe("document.activeElement == div4", "true");
62     window.axDiv4 = accessibilityController.focusedElement;
63     shouldBe("axDiv4.title.indexOf('Link')", "-1");
64
65     var div5 = document.getElementById('div5');
66     div5.focus();
67     shouldBe("document.activeElement == div5", "true");
68     window.axDiv5 = accessibilityController.focusedElement;
69     shouldBe("axDiv5.title.indexOf('Link')", "-1");
70     shouldBe("axDiv5.title.indexOf('Initial text before link') >= 0", "false");
71
72     var div6 = document.getElementById('div6');
73     div6.focus();
74     shouldBe("document.activeElement == div6", "true");
75     window.axDiv6 = accessibilityController.focusedElement;
76     shouldBe("axDiv6.title.indexOf('List item')", "-1");
77
78     var div7 = document.getElementById('div7');
79     div7.focus();
80     shouldBe("document.activeElement == div7", "true");
81     window.axDiv7 = accessibilityController.focusedElement;
82     shouldBe("axDiv7.title.indexOf('List item')", "-1");
83     shouldBe("axDiv7.title.indexOf('Initial text before list') >= 0", "false");
84
85     document.getElementById("content").style.visibility = "hidden";
86 }
87
88 </script>
89
90 <script src="../resources/js-test-post.js"></script>
91 </body>
92 </html>