blob: 3ab9940b13dafbebfadb9ef2533ec5858fc17b97 [file] [log] [blame]
<!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>