blob: 82ce861a0f8e7fe8c007092572e9652f57d2a424 [file] [edit]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../resources/accessibility-helper.js"></script>
<script src="../resources/js-test.js"></script>
</head>
<body>
<div id="grid" role="grid" aria-colcount="16" aria-rowcount="30">
<div role="rowgroup">
<div role="row" aria-rowindex="7" aria-rowindextext="Seven">
<span id="cell1" role="columnheader" aria-colindex="2" aria-colindextext="B">First Name</span>
<span role="columnheader" aria-colindex="3" aria-colindextext="C">Last Name</span>
<span role="columnheader" aria-colindex="4" aria-colindextext="D">Company</span>
<span role="columnheader" aria-colindex="5" aria-colindextext="E">Address</span>
</div>
</div>
<div role="rowgroup">
<div role="row" aria-rowindex="8" aria-rowindextext="Eight">
<span role="gridcell" aria-colindex="2" aria-colindextext="B" aria-rowindex="8" aria-rowindextext="Eight">Fred</span>
<span role="gridcell" aria-colindex="3" aria-colindextext="C" aria-rowindex="8" aria-rowindextext="Eight">Jackson</span>
<span id="cell2" role="gridcell" aria-colindex="4" aria-colindextext="D" aria-rowindex="8" aria-rowindextext="Eight" aria-rowspan="2">Acme, Inc.</span>
<span id="cell3" role="gridcell" aria-colindex="5" aria-colindextext="E" aria-rowindex="8" aria-rowindextext="Eight" aria-rowspan="3">123 Broad St.</span>
</div>
<div role="row" aria-rowindex="9" aria-rowindextext="Nine">
<span role="gridcell" aria-colindex="2" aria-colindextext="B">Sara</span>
<span role="gridcell" aria-colindex="3" aria-colindextext="C">James</span>
</div>
</div>
<div role="rowgroup">
<div role="row" aria-rowindex="15" aria-rowindextext="Fifteen">
<span role="gridcell" aria-colindex="2" aria-colindextext="B">Footer 1</span>
<span role="gridcell" aria-colindex="3" aria-colindextext="C">Footer 2</span>
<span role="gridcell" aria-colindex="4" aria-colindextext="D" aria-colspan="2">Footer 3</span>
</div>
</div>
</div>
<div id="grid2" role="grid" aria-colcount="16">
<div role="rowgroup">
<div role="row" aria-colindex="2" aria-colindextext="B">
<span id="cell4" role="columnheader">Name</span>
<span id="cell5" role="columnheader">Company</span>
<span id="cell6" role="columnheader" aria-colspan="3">Address</span>
</div>
</div>
</div>
<script>
var testOutput = "This tests that aria-{row,col}indextext attributes in aria table/grid are working correctly.\n\n";
if (window.accessibilityController) {
window.jsTestIsAsync = true;
var cell1 = accessibilityController.accessibleElementById("cell1");
var cell2 = accessibilityController.accessibleElementById("cell2");
var cell3 = accessibilityController.accessibleElementById("cell3");
var cell4 = accessibilityController.accessibleElementById("cell4");
var cell5 = accessibilityController.accessibleElementById("cell5");
var cell6 = accessibilityController.accessibleElementById("cell6");
testOutput += expect("cell1.stringAttributeValue('AXColumnIndexDescription')", "'B'");
testOutput += expect("cell1.stringAttributeValue('AXRowIndexDescription')", "'Seven'");
testOutput += expect("cell2.stringAttributeValue('AXColumnIndexDescription')", "'D'");
testOutput += expect("cell2.stringAttributeValue('AXRowIndexDescription')", "'Eight'");
testOutput += expect("cell3.stringAttributeValue('AXColumnIndexDescription')", "'E'");
testOutput += expect("cell3.stringAttributeValue('AXRowIndexDescription')", "'Eight'");
// aria-colindextext is not allowed on a row, so must not be reflected in its cells, not even in the first one
testOutput += expect("cell4.stringAttributeValue('AXColumnIndexDescription')", "null");
testOutput += expect("cell5.stringAttributeValue('AXColumnIndexDescription')", "null");
testOutput += expect("cell6.stringAttributeValue('AXColumnIndexDescription')", "null");
// Test that dynamic changes to attributes are reflected
document.getElementById("cell1").setAttribute("aria-colindextext", "D");
setTimeout(async function() {
testOutput += await expectAsync("cell1.stringAttributeValue('AXColumnIndexDescription')", "'D'");
document.getElementById("cell1").setAttribute("aria-rowindextext", "Ten");
testOutput += await expectAsync("cell1.stringAttributeValue('AXRowIndexDescription')", "'Ten'");
debug(testOutput);
finishJSTest();
}, 0);
}
</script>
</body>
</html>