| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | |
| <html> | |
| <head> | |
| <script src="../../../fast/js/resources/js-test-pre.js"></script> | |
| </head> | |
| <body id="body"> | |
| <ul id="tree" role="tree" aria-multiselectable="true" tabindex="0"> | |
| <li id="treeitem1" role="treeitem"><span>Siamese</span></li> | |
| <li id="treeitem2" role="treeitem"><span>Tabby</span></li> | |
| </ul> | |
| <p id="description"></p> | |
| <div id="console"></div> | |
| <script> | |
| description("This tests that aria trees that are multi selectable will return the right selected rows."); | |
| if (window.accessibilityController) { | |
| var tree = document.getElementById("tree"); | |
| tree.focus(); | |
| // Test tree attributes. | |
| tree = accessibilityController.focusedElement; | |
| var treeitem1 = tree.childAtIndex(0); | |
| shouldBe("treeitem1.role", "'AXRole: AXRow'"); | |
| shouldBe("treeitem1.subrole", "'AXSubrole: AXOutlineRow'"); | |
| document.getElementById("treeitem1").setAttribute("aria-selected", true); | |
| var treeitem2 = tree.childAtIndex(1); | |
| shouldBe("treeitem2.role", "'AXRole: AXRow'"); | |
| shouldBe("treeitem2.subrole", "'AXSubrole: AXOutlineRow'"); | |
| document.getElementById("treeitem2").setAttribute("aria-selected", true); | |
| // Test that the tree will give us both rows as selected (since its multi-selectable) | |
| var selectedRow1 = tree.selectedRowAtIndex(0); | |
| var selectedRow2 = tree.selectedRowAtIndex(1); | |
| shouldBe("selectedRow1.isEqual(treeitem1)", "true"); | |
| shouldBe("selectedRow2.isEqual(treeitem2)", "true"); | |
| // Test that if one of the items becomes de-selected, we still get the right selected row. | |
| document.getElementById("treeitem1").setAttribute("aria-selected", false); | |
| selectedRow1 = tree.selectedRowAtIndex(0); | |
| shouldBe("selectedRow1.isEqual(treeitem2)", "true"); | |
| } | |
| </script> | |
| <script src="../../../fast/js/resources/js-test-post.js"></script> | |
| </body> | |
| </html> |