| <!DOCTYPE HTML PUBLIC> |
| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body> |
| |
| <div id="content"> |
| <input type="text" role="combobox" id="combo" aria-owns="list"> |
| <ul id="list" role="listbox"> |
| <li tabindex="0" role="option" id="item1">item1</li> |
| </ul> |
| </div> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| description("This test makes sure that an ARIA active descendant change does not change focus, because focus should remain in the textfield portion of the combo box."); |
| |
| if (window.testRunner && window.accessibilityController) { |
| jsTestIsAsync = true; |
| |
| document.getElementById("combo").focus(); |
| var combo = accessibilityController.accessibleElementById("combo"); |
| debug("The ComboBox should start out as the focused element."); |
| shouldBeTrue("combo.isEqual(accessibilityController.focusedElement)"); |
| |
| // When the active descendant changes, we should receive a selected children changed notification. |
| var list = accessibilityController.accessibleElementById("list"); |
| list.addNotificationListener(function(notification) { |
| debug("Received notification: " + notification); |
| if (notification == "AXSelectedChildrenChanged") { |
| list.removeNotificationListener(); |
| document.getElementById("content").style.visibility = 'hidden'; |
| finishJSTest(); |
| } |
| }); |
| |
| // After the descendant changes, the combo box should still be the focused object. |
| document.getElementById("combo").setAttribute("aria-activedescendant", "item1"); |
| debug("\nThe ComboBox should still be the focused element even after the aria-activedescendant was changed."); |
| shouldBeTrue("combo.isEqual(accessibilityController.focusedElement)"); |
| } |
| |
| </script> |
| </body> |
| </html> |