| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../resources/js-test-pre.js"></script> |
| </head> |
| <body id="body"> |
| |
| // This tests that elements that are not live regions do not have the live region attrs. |
| <h3 tabindex=0 id="h3">no live region</h3> |
| |
| // These test that they have the correct default values for aria-live. |
| |
| <div tabindex=0 id="alert" role="alert">test</div> |
| <div tabindex=0 id="alertdialog" role="alertdialog">test</div> |
| <div tabindex=0 id="log" role="log">test</div> |
| <div tabindex=0 id="status" role="status">test</div> |
| <div tabindex=0 id="timer" role="timer">test</div> |
| |
| // These test that elements with live regions on have the right attributes |
| <div tabindex=0 id="liveregion" role="group" aria-busy="true" aria-live="polite" aria-relevant="additions"> |
| <h3 tabindex=0 aria-atomic="true" id="h3live">h3</h3> |
| </div> |
| |
| <div tabindex=0 id="liveregion2" role="group" aria-live="polite"></div> |
| |
| <!-- Default live region values per role. --> |
| <div tabindex=0 id="liveregion_alert" role="alert"><!-- atomic=true, live=assertive --></div> |
| <div tabindex=0 id="liveregion_status" role="status"><!-- atomic=true, live=polite --></div> |
| <div tabindex=0 id="liveregion_log" role="log"><!-- atomic=false, live=polite --></div> |
| <div tabindex=0 id="liveregion_timer" role="timer"><!-- atomic=false, live=off --></div> |
| <div tabindex=0 id="liveregion_marquee" role="marquee"><!-- atomic=false, live=off --></div> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| |
| description("This tests that the attributes used for ARIA live regions behave correctly."); |
| |
| if (window.accessibilityController) { |
| |
| // Make sure that regular elements are not exposing ARIA live attributes. |
| document.getElementById("h3").focus(); |
| shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXElementBusy')", "true"); |
| shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant')", "false"); |
| shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIAAtomic')", "false"); |
| shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false"); |
| |
| // Make sure that specific aria roles get the right aria live values. |
| document.getElementById("alert").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'"); |
| |
| document.getElementById("alertdialog").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'"); |
| |
| document.getElementById("log").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'"); |
| |
| document.getElementById("status").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'"); |
| |
| document.getElementById("timer").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'off'"); |
| |
| // Test the other attributes for a live region |
| document.getElementById("liveregion").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'"); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIARelevant')", "'additions'"); |
| shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXElementBusy')", "true"); |
| |
| document.getElementById("h3live").focus(); |
| shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false"); |
| shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIARelevant')", "false"); |
| shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "true"); |
| shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXElementBusy')", "false"); |
| |
| // when an element has no specific aria-relevant, it should be additions text by default. |
| document.getElementById("liveregion2").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIARelevant')", "'additions text'"); |
| |
| document.getElementById("liveregion_alert").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'assertive'"); |
| shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "true"); |
| |
| document.getElementById("liveregion_status").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'"); |
| shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "true"); |
| |
| document.getElementById("liveregion_log").focus(); |
| shouldBe("accessibilityController.focusedElement.stringAttributeValue('AXARIALive')", "'polite'"); |
| shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "false"); |
| |
| document.getElementById("liveregion_timer").focus(); |
| shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false"); |
| shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "false"); |
| |
| document.getElementById("liveregion_marquee").focus(); |
| shouldBe("accessibilityController.focusedElement.isAttributeSupported('AXARIALive')", "false"); |
| shouldBe("accessibilityController.focusedElement.boolAttributeValue('AXARIAAtomic')", "false"); |
| |
| } |
| |
| </script> |
| |
| <script src="../resources/js-test-post.js"></script> |
| </body> |
| </html> |