104 lines
8.0 KiB
HTML
104 lines
8.0 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body id="body">
|
|
<div id="content">
|
|
|
|
<!-- These reflect the native writable state, but can be overridden by @aria-readonly. -->
|
|
<div contenteditable id="htmlEditableDiv" data-expectedwritable="true"></div>
|
|
<div contenteditable id="htmlEditableDiv2" aria-readonly="true" data-expectedwritable="false"></div>
|
|
<div contenteditable id="htmlEditableDiv3" aria-readonly="false" data-expectedwritable="true"></div>
|
|
<div role="group" contenteditable id="htmlEditableDiv4" data-expectedwritable="true"></div>
|
|
<div role="group" contenteditable id="htmlEditableDiv5" aria-readonly="true" data-expectedwritable="false"></div>
|
|
<div role="group" contenteditable id="htmlEditableDiv6" aria-readonly="false" data-expectedwritable="true"></div>
|
|
<div role="group" id="htmlNonEditableDiv" data-expectedwritable="false"></div>
|
|
<div role="group" id="htmlNonEditableDiv2" aria-readonly="true" data-expectedwritable="false"></div>
|
|
<div role="group" id="htmlNonEditableDiv3" aria-readonly="false" data-expectedwritable="true"></div>
|
|
<div role="textbox" aria-readonly="false" aria-multiline="false" id="ariaTextBox" tabindex="0" data-expectedwritable="true"></div>
|
|
<div role="textbox" aria-readonly="true" id="ariaReadOnlyAriaTextBox" tabindex="0" data-expectedwritable="false"></div>
|
|
|
|
<!-- These are all readonly b/c the explicit boolean attr @readonly trumps @aria-readonly on native form elements. -->
|
|
<input type="text" readonly="readonly" id="htmlReadOnlyTextField" size=20 data-expectedwritable="false">
|
|
<input type="text" readonly id="htmlReadOnlyTextField2" size=20 data-expectedwritable="false">
|
|
<input type="text" readonly="readonly" aria-readonly="false" id="htmlReadOnlyTextField3" size=20 data-expectedwritable="false">
|
|
<input type="text" readonly aria-readonly="false" id="htmlReadOnlyTextField4" size=20 data-expectedwritable="false">
|
|
<textarea rows="2" cols="20" readonly="readonly" id="htmlReadOnlyTextArea" data-expectedwritable="false"></textarea>
|
|
<textarea rows="2" cols="20" readonly id="htmlReadOnlyTextArea2" data-expectedwritable="false"></textarea>
|
|
<textarea rows="2" cols="20" readonly aria-readonly="true" id="htmlReadOnlyTextArea3" data-expectedwritable="false"></textarea>
|
|
<textarea rows="2" cols="20" readonly aria-readonly="false" id="htmlReadOnlyTextArea3" data-expectedwritable="false"></textarea>
|
|
|
|
<!-- These are all writable b/c the implicit boolean attr @readonly is false, and trumps @aria-readonly on native form elements. -->
|
|
<input type="text" id="textField" size=20 data-expectedwritable="true">
|
|
<input type="text" aria-readonly="true" id="ariaReadOnlyTextField" size=20 data-expectedwritable="true">
|
|
<input type="text" aria-readonly="false" id="ariaNonReadOnlyTextField" size=20 data-expectedwritable="true">
|
|
<textarea rows="2" cols="20" id="textArea" data-expectedwritable="true"></textarea>
|
|
<textarea rows="2" cols="20" id="textArea2" aria-readonly="true" data-expectedwritable="true"></textarea>
|
|
<textarea rows="2" cols="20" id="textArea3" aria-readonly="false" data-expectedwritable="true"></textarea>
|
|
|
|
|
|
<!-- aria-readonly is also allowed on gridcells and grids -->
|
|
<div role="grid"><div role="row"><div role="gridcell" aria-readonly="true" id="ariaGridCell" tabindex="0" data-expectedwritable="false"></div></div></div>
|
|
<div role="grid"><div role="row"><div role="gridcell" aria-readonly="false" id="ariaGridCell2" tabindex="0" data-expectedwritable="true"></div></div></div>
|
|
<div role="grid"><div role="row"><div role="columnheader" aria-readonly="true" id="ariaColumnHeader" tabindex="0" data-expectedwritable="false"></div></div></div>
|
|
<div role="grid"><div role="row"><div role="columnheader" aria-readonly="false" id="ariaColumnHeader2" tabindex="0" data-expectedwritable="true"></div></div></div>
|
|
<div role="grid"><div role="row"><div role="rowheader" aria-readonly="true" id="ariaRowHeader" tabindex="0" data-expectedwritable="false"></div></div></div>
|
|
<div role="grid"><div role="row"><div role="rowheader" aria-readonly="false" id="ariaRowHeader2" tabindex="0" data-expectedwritable="true"></div></div></div>
|
|
<div role="grid" aria-readonly="true" id="ariaGrid" tabindex="0" data-expectedwritable="false"><div role="row"><div role="gridcell"></div></div></div>
|
|
<div role="grid" aria-readonly="false" id="ariaGrid2" tabindex="0" data-expectedwritable="true"><div role="row"><div role="gridcell"></div></div></div>
|
|
<div role="treegrid" aria-readonly="true" id="ariaTreeGrid" tabindex="0" data-expectedwritable="false"><div role="row"><div role="gridcell"></div></div></div>
|
|
<div role="treegrid" aria-readonly="false" id="ariaTreeGrid2" tabindex="0" data-expectedwritable="true"><div role="row"><div role="gridcell"></div></div></div>
|
|
|
|
|
|
<!--aria-readonly should be propagated to gridcells if the property is not set on the gridcell -->
|
|
<div role="grid" aria-readonly="true"><div role="row"><div role="gridcell" id="ariaGridCell3" tabindex="0" data-expectedwritable="false"></div></div></div>
|
|
<div role="grid" aria-readonly="false"><div role="row"><div role="gridcell" id="ariaGridCell4" tabindex="0" data-expectedwritable="true"></div></div></div>
|
|
<div role="grid" aria-readonly="false"><div role="row"><div role="gridcell" aria-readonly="true" id="ariaGridCell5" tabindex="0" data-expectedwritable="false"></div></div></div>
|
|
<div role="grid" aria-readonly="true"><div role="row"><div role="gridcell" aria-readonly="false" id="ariaGridCell6" tabindex="0" data-expectedwritable="true"></div></div></div>
|
|
<div role="grid" aria-readonly="true"><div role="row"><div role="columnheader" id="ariaColumnHeader3" tabindex="0" data-expectedwritable="false"></div></div></div>
|
|
<div role="grid" aria-readonly="false"><div role="row"><div role="columnheader" id="ariaColumnHeader4" tabindex="0" data-expectedwritable="true"></div></div></div>
|
|
<div role="grid" aria-readonly="false"><div role="row"><div role="columnheader" aria-readonly="true" id="ariaColumnHeader5" tabindex="0" data-expectedwritable="false"></div></div></div>
|
|
<div role="grid" aria-readonly="true"><div role="row"><div role="columnheader" aria-readonly="false" id="ariaColumnHeader6" tabindex="0" data-expectedwritable="true"></div></div></div>
|
|
<div role="grid" aria-readonly="true"><div role="row"><div role="rowheader" id="ariaRowHeader3" tabindex="0" data-expectedwritable="false"></div></div></div>
|
|
<div role="grid" aria-readonly="false"><div role="row"><div role="rowheader" id="ariaRowHeader4" tabindex="0" data-expectedwritable="true"></div></div></div>
|
|
<div role="grid" aria-readonly="false"><div role="row"><div role="rowheader" aria-readonly="true" id="ariaRowHeader5" tabindex="0" data-expectedwritable="false"></div></div></div>
|
|
<div role="grid" aria-readonly="true"><div role="row"><div role="rowheader" aria-readonly="false" id="ariaRowHeader6" tabindex="0" data-expectedwritable="true"></div></div></div>
|
|
|
|
</div>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
|
|
description("This tests that the readonly state of the AXValue property is correctly reported for native and non-native elements.");
|
|
|
|
if (window.accessibilityController) {
|
|
|
|
var result = document.getElementById('console');
|
|
var elements = document.querySelectorAll('[data-expectedwritable]');
|
|
result.innerText += "Elements to test: " + elements.length + "\n\n";
|
|
|
|
for (var i = 0, c = elements.length; i < c; i++) {
|
|
var el = elements[i];
|
|
var id = el.id;
|
|
var axElement = accessibilityController.accessibleElementById(id);
|
|
var writable = axElement.isAttributeSettable("AXValue");
|
|
|
|
// Test whether AXValue is writable.
|
|
var passed = el.getAttribute('data-expectedwritable') === writable.toString();
|
|
var output = (passed ? "PASS" : "FAIL") + " " + id + "IsWritable is " + writable;
|
|
if (!passed)
|
|
output += ", expected " + el.getAttribute("data-expectedwritable");
|
|
result.innerText += output + "\n";
|
|
}
|
|
|
|
document.getElementById("content").style.visibility = "hidden";
|
|
}
|
|
|
|
</script>
|
|
|
|
<script src="../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|