| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body id="body"> |
| |
| <div role="group" tabindex=0 id="liveregion1" aria-live="polite" aria-relevant="additions"> |
| Test |
| </div> |
| <div role="group" tabindex=0 id="liveregion2" aria-live="polite" aria-relevant="additions"></div> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| var jsTestIsAsync = true; |
| |
| description("This tests that ARIA live region notifications are sent even when an assistive technology is not accessing them directly on each update."); |
| |
| if (window.accessibilityController) { |
| |
| var liveRegion1 = accessibilityController.accessibleElementById("liveregion1"); |
| var liveRegion2 = accessibilityController.accessibleElementById("liveregion2"); |
| |
| var liveRegion1Changed = false; |
| var liveRegion2Changed = false; |
| function ariaCallback1(notification) { |
| if (notification == "AXLiveRegionChanged") { |
| liveRegion1Changed = true; |
| finishTest(); |
| } |
| } |
| function ariaCallback2(notification) { |
| if (notification == "AXLiveRegionChanged") { |
| liveRegion2Changed = true; |
| finishTest(); |
| } |
| } |
| |
| addedNotification1 = liveRegion1.addNotificationListener(ariaCallback1); |
| shouldBe("addedNotification1", "true"); |
| addedNotification2 = liveRegion2.addNotificationListener(ariaCallback2); |
| shouldBe("addedNotification2", "true"); |
| |
| // this should trigger our live region callback for a new element. |
| for (var k = 1; k < 3; k++) { |
| var textNode = document.createTextNode("test" + k); |
| document.getElementById("liveregion" + k).appendChild(textNode); |
| } |
| } |
| |
| function finishTest() { |
| // We should get a total of two live region changes. |
| if (liveRegion1Changed && liveRegion2Changed) { |
| liveRegion1.removeNotificationListener(); |
| liveRegion2.removeNotificationListener(); |
| finishJSTest(); |
| } |
| } |
| |
| </script> |
| |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |