Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: third_party/WebKit/LayoutTests/accessibility/aria-activedescendant.html

Issue 1841333002: Various fixes for aria-activedescendant. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed some Blink tests. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script>
4
5 <div id="contenteditable-textbox" role="textbox" contenteditable="true"
6 aria-expanded="true" aria-haspopup="true" aria-autocomplete="list"
7 aria-activedescendant="list1-option1">
8 <ul id="list1" role="listbox" style="display: none;">
9 <li id="list1-option1" role="option">Option 1</li>
10 <li id="list1-option2" role="option">Option 2</li>
11 <li id="list1-option3" role="option">Option 3</li>
12 </ul>
13 </div>
14
15 <input id="input-textbox" role="textbox" type="text" aria-expanded="true"
16 aria-haspopup="true" aria-autocomplete="list"
17 aria-activedescendant="list2-option1" aria-owns="list2">
18
19 <ul id="list2" role="listbox" style="display: none;">
20 <li id="list2-option1" role="option">Option 1</li>
21 <li id="list2-option2" role="option">Option 2</li>
22 <li id="list2-option3" role="option">Option 3</li>
23 </ul>
24
25 <input id="input-combobox" role="combobox" type="search" aria-expanded="true"
26 aria-haspopup="true" aria-autocomplete="list"
27 aria-activedescendant="list3-option1" aria-owns="list3">
28
29 <ul id="list3" role="listbox" style="display: none;">
30 <li id="list3-option1" role="option">Option 1</li>
31 <li id="list3-option2" role="option">Option 2</li>
32 <li id="list3-option3" role="option">Option 3</li>
33 </ul>
34
35 <textarea id="textarea-searchbox" role="searchbox" aria-expanded="true"
36 aria-haspopup="true" aria-autocomplete="list"
37 aria-activedescendant="list4-option1" aria-owns="list4"></textarea>
38
39 <ul id="list4" role="listbox" style="display: none;">
40 <li id="list4-option1" role="option">Option 1</li>
41 <li id="list4-option2" role="option">Option 2</li>
42 <li id="list4-option3" role="option">Option 3</li>
43 </ul>
44
45 <script>
46 function testExpectations(widgetId, listboxId)
47 {
48 var listbox = document.getElementById(listboxId);
49 listbox.style.display = "block";
50 var widget = document.getElementById(widgetId);
51 widget.focus();
52
53 var axWidget = accessibilityController.accessibleElementById(widgetId);
54 var axListbox = accessibilityController.accessibleElementById(listboxId) ;
55 var option1 = accessibilityController.accessibleElementById(listboxId + "-option1");
56 var option2 = accessibilityController.accessibleElementById(listboxId + "-option2");
57 var option3 = accessibilityController.accessibleElementById(listboxId + "-option3");
58
59 assert_true(axWidget.isExpanded, widgetId + ".isExpanded");
60 assert_true(axWidget.hasPopup, widgetId + ".hasPopup");
61 // According to the ARIA Spec, the presence of aria-activedescendant
62 // should make all children with a valid ID focusable.
63 assert_true(axListbox.isFocusable, listboxId + ".isFocusable");
64 assert_true(option1.isFocusable, listboxId + "-option1.isFocusable");
65 assert_true(option1.isSelectable, listboxId + "-option1.isSelectable");
66 assert_true(option2.isFocusable, listboxId + "-option2.isFocusable");
67 assert_true(option2.isSelectable, listboxId + "-option2.isSelectable");
68 assert_true(option3.isFocusable, listboxId + "-option3.isFocusable");
69 assert_true(option3.isSelectable, listboxId + "-option3.isSelectable");
70
71 assert_true(axWidget.isFocused, widgetId + ".isFocused");
72 assert_true(option1.isSelected, listboxId + "-option1.isSelected");
73
74 widget.setAttribute("aria-activedescendant", listboxId + "-option2");
75 assert_false(option1.isSelected, listboxId + "-option1.isSelected");
76 assert_true(axWidget.isFocused, widgetId + ".isFocused");
77 assert_true(option2.isSelected, listboxId + "-option2.isSelected");
78
79 widget.setAttribute("aria-activedescendant", listboxId + "-option3");
80 assert_false(option2.isSelected, listboxId + "-option2.isSelected");
81 assert_true(axWidget.isFocused, widgetId + ".isFocused");
82 assert_true(option3.isSelected, listboxId + "-option3.isSelected");
83
84 widget.removeAttribute("aria-activedescendant");
85 assert_true(axWidget.isFocused, widgetId + ".isFocused");
86 assert_false(option3.isSelected, listboxId + "-option3.isSelected");
87
88 listbox.style.display = "none";
89 widget.style.display = "none";
90 }
91 </script>
92
93 <script>
94 test(function()
95 {
96 testExpectations("contenteditable-textbox", "list1");
97 }, "Changing active descendant on a content editable.");
98 </script>
99
100 <script>
101 test(function()
102 {
103 testExpectations("input-textbox", "list2");
104 }, "Changing active descendant on an input with role=textbox.");
105 </script>
106
107 <script>
108 test(function()
109 {
110 testExpectations("input-combobox", "list3");
111 }, "Changing active descendant on an input of type=search with role=combobox .");
112 </script>
113
114 <script>
115 test(function()
116 {
117 testExpectations("textarea-searchbox", "list4");
118 }, "Changing active descendant on a textarea with role=searchbox.");
119 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698