49 lines
1.8 KiB
HTML
49 lines
1.8 KiB
HTML
<!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>
|