70 lines
2.3 KiB
HTML
70 lines
2.3 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body id="body">
|
|
|
|
<div id="menu" role="menu">
|
|
<div role="menuitem" id="item1" aria-label="item1" tabindex="0">Menu item 1</div>
|
|
<div role="menuitemradio" id="item2" aria-label="item2" tabindex="0">Menu item 2</div>
|
|
<div role="menuitemcheckbox" id="item3" aria-label="item3" tabindex="0">Menu item 3</div>
|
|
</div>
|
|
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
|
|
description("This tests that a AXMenuItemSelected notification gets fired when a menuitem is focused.");
|
|
|
|
var element = 0;
|
|
var notification = 0;
|
|
var notificationCount = 0;
|
|
function ariaCallback(element, notification) {
|
|
if (notification == "AXMenuItemSelected") {
|
|
notificationCount++;
|
|
|
|
debug("Received menu item selected notification: " + notification);
|
|
debug("Menu item selected element: " + element.role);
|
|
debug("Menu item selected element description: " + element.description + "\n");
|
|
if (notificationCount == 3) {
|
|
accessibilityController.removeNotificationListener();
|
|
finishJSTest();
|
|
}
|
|
}
|
|
}
|
|
|
|
if (window.accessibilityController) {
|
|
window.jsTestIsAsync = true;
|
|
|
|
var addedNotification = accessibilityController.addNotificationListener(ariaCallback);
|
|
accessibilityController.accessibleElementById("menu");
|
|
|
|
shouldBe("addedNotification", "true");
|
|
|
|
// Trigger notification through focus.
|
|
document.getElementById("item1").focus();
|
|
|
|
setTimeout(function() {
|
|
// Trigger notification through aria-selected.
|
|
document.getElementById("item2").setAttribute("aria-selected", "true");
|
|
|
|
setTimeout(function() {
|
|
// Ensure we don't get a notification when aria-selected is false.
|
|
document.getElementById("item2").setAttribute("aria-selected", "false");
|
|
|
|
setTimeout(function() {
|
|
// Trigger another notification through focus to ensure we don't
|
|
document.getElementById("item3").focus();
|
|
}, 1);
|
|
}, 1);
|
|
}, 1);
|
|
}
|
|
|
|
</script>
|
|
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|