blob: 591e70b70d9b808d3812015a3bfbefbfc5b73b34 [file] [log] [blame]
<!DOCTYPE>
<html>
<script src="../../resources/js-test-pre.js"></script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Table test</title>
<style>
table {border: 1px solid;}
table th {background-color: #eeeeee;}
table td {background-color: #dddddd;}
.table thead {display:block;}
.table tbody {display:block;}
.table2 thead {display:block;}
.table2 tbody {display:block;}
</style>
</head>
<body id="body">
<table role="grid" class="table" id="table">
<caption>Table with CSS and ARIA</caption>
<thead>
<tr role="row">
<th role="gridcell">Heading one</th>
<th role="gridcell">Heading two</th>
</tr>
</thead>
<tbody>
<tr role="row">
<td role="gridcell">a</td>
<td role="gridcell">b</td>
</tr>
</tbody>
</table>
<table class="table2" id="table2">
<caption>Table with CSS and no ARIA</caption>
<thead>
<tr>
<th>Heading one</th>
<th>Heading two</th>
</tr>
</thead>
<tbody>
<tr>
<td>a</td>
<td>b</td>
</tr>
<tbody>
</table>
<p id="description"></p>
<div id="console"></div>
<script>
description("This tests that contents in malformed tables are accessible.");
if (window.accessibilityController) {
var table1 = accessibilityController.accessibleElementById("table");
var table2 = accessibilityController.accessibleElementById("table2");
var tableArray = [table1, table2];
// check for table role
shouldBe("table1.role", "'AXRole: AXTable'");
shouldBe("table2.role", "'AXRole: AXTable'");
// check for correct column and row count
var table1ColumnCount = table1.numberAttributeValue("AXColumnCount");
var table1RowCount = table1.numberAttributeValue("AXRowCount");
var table2ColumnCount = table2.numberAttributeValue("AXColumnCount");
var table2RowCount = table2.numberAttributeValue("AXRowCount");
shouldBe("table1ColumnCount", "2");
shouldBe("table1RowCount", "2");
shouldBe("table2ColumnCount", "2");
shouldBe("table2RowCount", "2");
// check rows
for (var tableIndex = 0; tableIndex < 2; tableIndex++) {
debug("\nCheck rows for Table" + (tableIndex+1));
var table = tableArray[tableIndex];
for (var i = 0; i < 2; i++) {
var rowa = table.rowAtIndex(i);
var rowb = table.childAtIndex(i);
shouldBeTrue("rowa.isEqual(rowb)");
shouldBe("rowa.role", "'AXRole: AXRow'");
}
}
// check cells
for (var tableIndex = 0; tableIndex < 2; tableIndex++) {
debug("\nCheck cells for Table" + (tableIndex+1));
var table = tableArray[tableIndex];
for (var i = 0; i < 2; i++) {
for (var j = 0; j < 2; j++) {
var cella = table.cellForColumnAndRow(i, j);
var cellb = table.childAtIndex(j).childAtIndex(i);
shouldBeTrue("cella.isEqual(cellb)");
shouldBe("cella.role", "'AXRole: AXCell'");
}
}
}
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>