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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/accessibility/aria-activedescendant.html
diff --git a/third_party/WebKit/LayoutTests/accessibility/aria-activedescendant.html b/third_party/WebKit/LayoutTests/accessibility/aria-activedescendant.html
new file mode 100644
index 0000000000000000000000000000000000000000..60eb390fcc2e10e3d486fa20094d8608f10ff95f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/accessibility/aria-activedescendant.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+
+<div id="contenteditable-textbox" role="textbox" contenteditable="true"
+ aria-expanded="true" aria-haspopup="true" aria-autocomplete="list"
+ aria-activedescendant="list1-option1">
+ <ul id="list1" role="listbox" style="display: none;">
+ <li id="list1-option1" role="option">Option 1</li>
+ <li id="list1-option2" role="option">Option 2</li>
+ <li id="list1-option3" role="option">Option 3</li>
+ </ul>
+</div>
+
+<input id="input-textbox" role="textbox" type="text" aria-expanded="true"
+ aria-haspopup="true" aria-autocomplete="list"
+ aria-activedescendant="list2-option1" aria-owns="list2">
+
+<ul id="list2" role="listbox" style="display: none;">
+ <li id="list2-option1" role="option">Option 1</li>
+ <li id="list2-option2" role="option">Option 2</li>
+ <li id="list2-option3" role="option">Option 3</li>
+</ul>
+
+<input id="input-combobox" role="combobox" type="search" aria-expanded="true"
+ aria-haspopup="true" aria-autocomplete="list"
+ aria-activedescendant="list3-option1" aria-owns="list3">
+
+<ul id="list3" role="listbox" style="display: none;">
+ <li id="list3-option1" role="option">Option 1</li>
+ <li id="list3-option2" role="option">Option 2</li>
+ <li id="list3-option3" role="option">Option 3</li>
+</ul>
+
+<textarea id="textarea-searchbox" role="searchbox" aria-expanded="true"
+ aria-haspopup="true" aria-autocomplete="list"
+ aria-activedescendant="list4-option1" aria-owns="list4"></textarea>
+
+<ul id="list4" role="listbox" style="display: none;">
+ <li id="list4-option1" role="option">Option 1</li>
+ <li id="list4-option2" role="option">Option 2</li>
+ <li id="list4-option3" role="option">Option 3</li>
+</ul>
+
+<script>
+ function testExpectations(widgetId, listboxId)
+ {
+ var listbox = document.getElementById(listboxId);
+ listbox.style.display = "block";
+ var widget = document.getElementById(widgetId);
+ widget.focus();
+
+ var axWidget = accessibilityController.accessibleElementById(widgetId);
+ var axListbox = accessibilityController.accessibleElementById(listboxId);
+ var option1 = accessibilityController.accessibleElementById(listboxId + "-option1");
+ var option2 = accessibilityController.accessibleElementById(listboxId + "-option2");
+ var option3 = accessibilityController.accessibleElementById(listboxId + "-option3");
+
+ assert_true(axWidget.isExpanded, widgetId + ".isExpanded");
+ assert_true(axWidget.hasPopup, widgetId + ".hasPopup");
+ // According to the ARIA Spec, the presence of aria-activedescendant
+ // should make all children with a valid ID focusable.
+ assert_true(axListbox.isFocusable, listboxId + ".isFocusable");
+ assert_true(option1.isFocusable, listboxId + "-option1.isFocusable");
+ assert_true(option1.isSelectable, listboxId + "-option1.isSelectable");
+ assert_true(option2.isFocusable, listboxId + "-option2.isFocusable");
+ assert_true(option2.isSelectable, listboxId + "-option2.isSelectable");
+ assert_true(option3.isFocusable, listboxId + "-option3.isFocusable");
+ assert_true(option3.isSelectable, listboxId + "-option3.isSelectable");
+
+ assert_true(axWidget.isFocused, widgetId + ".isFocused");
+ assert_true(option1.isSelected, listboxId + "-option1.isSelected");
+
+ widget.setAttribute("aria-activedescendant", listboxId + "-option2");
+ assert_false(option1.isSelected, listboxId + "-option1.isSelected");
+ assert_true(axWidget.isFocused, widgetId + ".isFocused");
+ assert_true(option2.isSelected, listboxId + "-option2.isSelected");
+
+ widget.setAttribute("aria-activedescendant", listboxId + "-option3");
+ assert_false(option2.isSelected, listboxId + "-option2.isSelected");
+ assert_true(axWidget.isFocused, widgetId + ".isFocused");
+ assert_true(option3.isSelected, listboxId + "-option3.isSelected");
+
+ widget.removeAttribute("aria-activedescendant");
+ assert_true(axWidget.isFocused, widgetId + ".isFocused");
+ assert_false(option3.isSelected, listboxId + "-option3.isSelected");
+
+ listbox.style.display = "none";
+ widget.style.display = "none";
+ }
+</script>
+
+<script>
+ test(function()
+ {
+ testExpectations("contenteditable-textbox", "list1");
+ }, "Changing active descendant on a content editable.");
+</script>
+
+<script>
+ test(function()
+ {
+ testExpectations("input-textbox", "list2");
+ }, "Changing active descendant on an input with role=textbox.");
+</script>
+
+<script>
+ test(function()
+ {
+ testExpectations("input-combobox", "list3");
+ }, "Changing active descendant on an input of type=search with role=combobox.");
+</script>
+
+<script>
+ test(function()
+ {
+ testExpectations("textarea-searchbox", "list4");
+ }, "Changing active descendant on a textarea with role=searchbox.");
+</script>

Powered by Google App Engine
This is Rietveld 408576698