67 lines
3.0 KiB
HTML
67 lines
3.0 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body id="body">
|
|
|
|
<table border=1>
|
|
<tr><th>Column</th></tr>
|
|
<tr><td><h1 tabindex="0" id="heading">heading</h1></td></tr>
|
|
</table>
|
|
|
|
<h1>outside heading</h1>
|
|
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
description("This tests that when we start searching from an element within a table, we do not get as a result, the same element.");
|
|
|
|
if (window.accessibilityController) {
|
|
document.getElementById("body").focus();
|
|
var containerElement = accessibilityController.focusedElement;
|
|
|
|
document.getElementById("heading").focus();
|
|
var heading = accessibilityController.focusedElement;
|
|
|
|
// The next heading should be outside the table
|
|
resultElement = containerElement.uiElementForSearchPredicate(heading, true, "AXHeadingSearchKey", "", false);
|
|
shouldBe("resultElement.role", "'AXRole: AXHeading'");
|
|
shouldBe("resultElement.title", "'AXTitle: outside heading'");
|
|
|
|
// A search for the previous heading should return nothing.
|
|
resultElement = containerElement.uiElementForSearchPredicate(heading, false, "AXHeadingSearchKey", "", false);
|
|
shouldBeUndefined("resultElement");
|
|
|
|
// When asking the child of the heading for the previous element, it should return the heading.
|
|
resultElement = containerElement.uiElementForSearchPredicate(heading.childAtIndex(0), false, "AXAnyTypeSearchKey", "", false);
|
|
shouldBe("resultElement.role", "'AXRole: AXHeading'");
|
|
|
|
// When asking the heading for the previous element, it should return the cell.
|
|
resultElement = containerElement.uiElementForSearchPredicate(resultElement, false, "AXAnyTypeSearchKey", "", false);
|
|
shouldBe("resultElement.role", "'AXRole: AXCell'");
|
|
|
|
// When asking the cell for the previous element, it should return the row.
|
|
resultElement = containerElement.uiElementForSearchPredicate(resultElement, false, "AXAnyTypeSearchKey", "", false);
|
|
shouldBe("resultElement.role", "'AXRole: AXRow'");
|
|
|
|
// Now when trying to find the previous static text, it should go into the table's children to find the text in the first cell.
|
|
resultElement = containerElement.uiElementForSearchPredicate(resultElement, false, "AXStaticTextSearchKey", "", false);
|
|
shouldBe("resultElement.role", "'AXRole: AXStaticText'");
|
|
shouldBe("resultElement.stringValue", "'AXValue: Column'");
|
|
|
|
// When asking the text for the previous element it should return the first cell of the table.
|
|
resultElement = containerElement.uiElementForSearchPredicate(resultElement, false, "AXAnyTypeSearchKey", "", false);
|
|
shouldBe("resultElement.role", "'AXRole: AXCell'");
|
|
shouldBe("resultElement.rowIndexRange()", "'{0, 1}'");
|
|
shouldBe("resultElement.columnIndexRange()", "'{0, 1}'");
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|