<!DOCTYPE HTML>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<div role="grid" id="grid-readonly-undefined">
<div role="row">
<div id="cell-undef-undef" role="gridcell">X</div>
<div id="cell-undef-true" role="gridcell" aria-readonly="true">X</div>
<div id="cell-undef-false" role="gridcell" aria-readonly="false">X</div>
</div>
</div>
<div role="grid" id="grid-readonly-true" aria-readonly="true">
<div role="row">
<div id="cell-true-undef" role="gridcell">X</div>
<div id="cell-true-false" role="gridcell" aria-readonly="false">X</div>
</div>
</div>
<div role="grid" id="grid-readonly-false" aria-readonly="false">
<div role="row">
<div id="cell-false-undef" role="gridcell">X</div>
<div id="cell-false-true" role="gridcell" aria-readonly="true">X</div>
</div>
</div>
<div role="treegrid" id="treegrid-readonly-true" aria-readonly="true">
<div role="row">
<div id="treegrid-cell-true-undef" role="gridcell">X</div>
</div>
</div>
<script>
function axElementById(id) {
return accessibilityController.accessibleElementById(id);
}
test(function(t) {
var cell = axElementById("cell-undef-undef");
assert_equals(cell.restriction, "none");
}, "readonly=false on cell where readonly is undefined on grid+cell");
test(function(t) {
var cell = axElementById("cell-undef-true");
assert_equals(cell.restriction, "readOnly");
}, "readonly=true on a cell");
test(function(t) {
var cell = axElementById("cell-undef-false");
assert_equals(cell.restriction, "none");
}, "readonly=false on a cell");
test(function(t) {
var cell = axElementById("cell-true-undef");
assert_equals(cell.restriction, "readOnly");
}, "Propagation of readonly=true from grid to cells");
test(function(t) {
var cell = axElementById("cell-true-false");
assert_equals(cell.restriction, "none");
}, "Cell readonly=false overrides propagation of grid readonly=true");
test(function(t) {
var cell = axElementById("cell-false-undef");
assert_equals(cell.restriction, "none");
}, "Propagation of readonly=false from grid to cells");
test(function(t) {
var cell = axElementById("cell-false-true");
assert_equals(cell.restriction, "readOnly");
}, "Cell readonly=true overrides propagation of grid readonly=false");
test(function(t) {
var cell = axElementById("treegrid-cell-true-undef");
assert_equals(cell.restriction, "readOnly");
}, "Propagation of readonly=true in a readonly treegrid");
</script>