| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script> |
| var successfullyParsed = false; |
| </script> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body id="body"> |
| |
| <h1 tabindex=0 id="h1">H1</h1> |
| <h2 tabindex=0 id="h2">H2</h2> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| |
| description("This tests that notifications are fired for focus changes"); |
| |
| var focusChangeCount = 0; |
| var rootElement = 0; |
| function focusCallback(notification) { |
| if (notification == "AXFocusChanged") { |
| focusChangeCount++; |
| |
| // We should get a total of 2 focus changes. |
| if (focusChangeCount == 2) { |
| rootElement.removeNotificationListener(); |
| finishJSTest(); |
| } |
| } |
| } |
| |
| if (window.accessibilityController) { |
| // Make sure AX gets turned on. |
| rootElement = accessibilityController.rootElement.childAtIndex(0); |
| jsTestIsAsync = true; |
| |
| var addedNotification = rootElement.addNotificationListener(focusCallback); |
| if (!addedNotification) { |
| rootElement = accessibilityController.rootElement; |
| addedNotification = rootElement.addNotificationListener(focusCallback); |
| } |
| |
| shouldBe("addedNotification", "true"); |
| |
| // Switch focus from h1. |
| document.getElementById("h2").focus(); |
| // Cause focus change to be sent to h1. |
| document.getElementById("h1").focus(); |
| |
| } |
| |
| successfullyParsed = true; |
| </script> |
| </body> |
| </html> |