| <html> |
| <script> |
| if (window.layoutTestController) |
| layoutTestController.dumpAsText(); |
| </script> |
| <body id="body"> |
| |
| <!-- This test performs a number of tests on ARIA tables to make sure they conform as expected --> |
| |
| <div role="grid"> |
| <div role="row"> |
| <div role="columnheader" id="h1">header 1</div> |
| <div role="columnheader">header 2</div> |
| <div role="columnheader">header 3</div> |
| </div> |
| <div role="row"> |
| <div role="gridcell" headers="h1">cell </div> |
| <div role="gridcell">cell </div> |
| <div role="gridcell">cell </div> |
| </div> |
| <div role="row"> |
| <div role="gridcell">cell </div> |
| <div role="gridcell">cell </div> |
| <div headers="h1" role="rowheader">cell </div> |
| </div> |
| </div> |
| |
| <table border=1 role="grid"> |
| <tr role="row"> |
| <th role="columnheader">header 1</th> |
| <th role="columnheader">header 2</th> |
| <th role="columnheader">header 2</th> |
| </tr> |
| <tr role="row"> |
| <td role="rowheader">cell</td> |
| <td role="gridcell">cell</td> |
| <td role="gridcell">cell</td> |
| </tr> |
| <tr role="row"> |
| <td role="gridcell">cell</td> |
| </tr> |
| </table> |
| |
| <div id="result"></div> |
| |
| <script> |
| if (window.accessibilityController) { |
| var result = document.getElementById("result"); |
| |
| var body = document.getElementById("body"); |
| body.focus(); |
| var focusedElement = accessibilityController.focusedElement; |
| var table1 = focusedElement.childAtIndex(0); |
| var table2 = focusedElement.childAtIndex(1); |
| |
| var failed = 0; |
| <!-- make sure they are tables --> |
| if (table1.allAttributes().indexOf("AXRole: AXTable") == -1) { |
| failed = 1; |
| } |
| if (table2.allAttributes().indexOf("AXRole: AXTable") == -1) { |
| failed = 1; |
| } |
| |
| <!-- Make sure we can use cell for column and row and it works --> |
| if (table1.cellForColumnAndRow(0,0).allAttributes().indexOf("AXRole: AXCell") == -1) { |
| failed = 1; |
| } |
| if (table2.cellForColumnAndRow(0,0).allAttributes().indexOf("AXRole: AXCell") == -1) { |
| failed = 1; |
| } |
| |
| if (table1.cellForColumnAndRow(2,2).allAttributes().indexOf("AXRole: AXCell") == -1) { |
| failed = 1; |
| } |
| if (table2.cellForColumnAndRow(1,1).allAttributes().indexOf("AXRole: AXCell") == -1) { |
| failed = 1; |
| } |
| |
| <!-- now make sure we can call all the relevant methods without crashing --> |
| table1.attributesOfColumnHeaders(); |
| table2.attributesOfColumnHeaders(); |
| |
| table1.attributesOfRowHeaders(); |
| table2.attributesOfRowHeaders(); |
| |
| table1.attributesOfColumns(); |
| table2.attributesOfColumns(); |
| |
| table1.attributesOfRows(); |
| table2.attributesOfRows(); |
| |
| table1.attributesOfHeader(); |
| table2.attributesOfHeader(); |
| |
| if (failed) { |
| result.innerText += "Test failed\n"; |
| } |
| else { |
| result.innerText += "Test passed\n"; |
| } |
| } |
| </script> |
| </body> |
| </html> |