| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script src="../../resources/accessibility-helper.js"></script> |
| </head> |
| <body> |
| |
| <div role="region" id="atomic" aria-atomic="true"></div> |
| <div role="status" id="busy"></div> |
| <div role="checkbox" id="disabled"></div> |
| <div role="button" id="expanded"></div> |
| <div role="button" id="hidden"></div> |
| <div> |
| <p id="bgContent">outside of dialog</p> |
| <div role="dialog" id="modal">dialog</div> |
| </div> |
| <div role="textbox" id="multiline"></div> |
| <div role="listbox" id="multiselectable"></div> |
| <div role="textbox" id="readOnly"></div> |
| <div role="textbox" id="required"></div> |
| <div role="option" id="selected"></div> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| description("This tests boolean type Accessibility Object Model properties."); |
| if (window.accessibilityController) { |
| var node; |
| var axNode; |
| |
| testClearBooleanProperty(); |
| testBusy(); |
| testDisabled(); |
| testExpanded(); |
| testHidden(); |
| testModal(); |
| testMultiline(); |
| testMultiselectable(); |
| testReadOnly(); |
| testRequired(); |
| testSelected(); |
| } |
| |
| function dialogBackgroundAccessible() { |
| var bgContent = accessibilityController.accessibleElementById("bgContent"); |
| if (!bgContent) |
| return false; |
| return !bgContent.isIgnored; |
| } |
| |
| function testClearBooleanProperty() { |
| debug("\nTest AOM boolean properties can be cleared."); |
| node = document.getElementById("atomic"); |
| axNode = accessibilityController.accessibleElementById("atomic"); |
| // Boolean value should be null if not set. |
| shouldBeTrue("axNode.boolAttributeValue('AXARIAAtomic')"); |
| shouldBeNull("node.accessibleNode.atomic"); |
| // Set the AOM property |
| node.accessibleNode.atomic = false; |
| shouldBeFalse("axNode.boolAttributeValue('AXARIAAtomic')"); |
| // Clear the AOM property |
| node.accessibleNode.atomic = null; |
| shouldBeNull("node.accessibleNode.atomic"); |
| shouldBeTrue("axNode.boolAttributeValue('AXARIAAtomic')"); |
| } |
| |
| function testBusy() { |
| debug("\nBusy support"); |
| node = document.getElementById("busy"); |
| axNode = accessibilityController.accessibleElementById("busy"); |
| shouldBeFalse("axNode.boolAttributeValue('AXElementBusy')"); |
| node.accessibleNode.busy = true; |
| shouldBeTrue("axNode.boolAttributeValue('AXElementBusy')"); |
| } |
| |
| function testDisabled() { |
| debug("\nDisabled support"); |
| node = document.getElementById("disabled"); |
| axNode = accessibilityController.accessibleElementById("disabled"); |
| shouldBeTrue("axNode.isEnabled"); |
| node.accessibleNode.disabled = true; |
| shouldBeFalse("axNode.isEnabled"); |
| } |
| |
| function testExpanded() { |
| debug("\nExpanded support"); |
| node = document.getElementById("expanded"); |
| axNode = accessibilityController.accessibleElementById("expanded"); |
| shouldBeFalse("axNode.isExpanded"); |
| node.accessibleNode.expanded = true; |
| shouldBeTrue("axNode.isExpanded"); |
| } |
| |
| function testHidden() { |
| debug("\nHidden support"); |
| node = document.getElementById("hidden"); |
| axNode = accessibilityController.accessibleElementById("hidden"); |
| shouldBeFalse("axNode.isIgnored"); |
| |
| node.accessibleNode.hidden = true; |
| axNode = accessibilityController.accessibleElementById("hidden"); |
| shouldBeTrue("axNode == null || axNode == undefined"); |
| } |
| |
| function testModal() { |
| debug("\nModal support"); |
| node = document.getElementById("modal"); |
| axNode = accessibilityController.accessibleElementById("modal"); |
| shouldBeTrue("dialogBackgroundAccessible()"); |
| node.accessibleNode.modal = true; |
| shouldBeFalse("dialogBackgroundAccessible()"); |
| node.accessibleNode.modal = false; |
| } |
| |
| function testMultiline() { |
| debug("\nMultiline support"); |
| node = document.getElementById("multiline"); |
| axNode = accessibilityController.accessibleElementById("multiline"); |
| shouldBeFalse("axNode.boolAttributeValue('AXIsMultiline')"); |
| node.accessibleNode.multiline = true; |
| shouldBeTrue("axNode.boolAttributeValue('AXIsMultiline')"); |
| } |
| |
| function testMultiselectable() { |
| debug("\nMultiselectable support"); |
| node = document.getElementById("multiselectable"); |
| axNode = accessibilityController.accessibleElementById("multiselectable"); |
| shouldBeFalse("axNode.isMultiSelectable"); |
| node.accessibleNode.multiselectable = true; |
| shouldBeTrue("axNode.isMultiSelectable"); |
| } |
| |
| function testReadOnly() { |
| debug("\nReadOnly support"); |
| node = document.getElementById("readOnly"); |
| axNode = accessibilityController.accessibleElementById("readOnly"); |
| shouldBeEqualToString("axNode.stringAttributeValue('AXReadOnlyValue')", "false"); |
| node.accessibleNode.readOnly = true; |
| shouldBeEqualToString("axNode.stringAttributeValue('AXReadOnlyValue')", "true"); |
| } |
| |
| function testRequired() { |
| debug("\nRequired support"); |
| node = document.getElementById("required"); |
| axNode = accessibilityController.accessibleElementById("required"); |
| shouldBeFalse("axNode.isRequired"); |
| node.accessibleNode.required = true; |
| shouldBeTrue("axNode.isRequired"); |
| } |
| |
| function testSelected() { |
| debug("\nSelected support"); |
| node = document.getElementById("selected"); |
| axNode = accessibilityController.accessibleElementById("selected"); |
| shouldBeFalse("axNode.isSelected"); |
| node.accessibleNode.selected = true; |
| shouldBeTrue("axNode.isSelected"); |
| } |
| |
| </script> |
| <script src="../resources/js-test-post.js"></script> |
| </body> |
| </html> |