75 lines
3.1 KiB
HTML
75 lines
3.1 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
|
|
<textarea name="area1" id="area1" rows="5" cols="40">
|
|
line 1
|
|
line 2
|
|
line 3
|
|
</textarea>
|
|
|
|
<textarea name="area2" id="area2" rows="5" cols="40"></textarea>
|
|
|
|
<div id="contenteditable-div" role="textbox" contenteditable="true" tabindex="0">
|
|
<div id="contenteditable-line1">Line1</div>
|
|
<textarea id="contenteditable-line2" rows="1" cols="40">Line2</textarea>
|
|
<div id="contenteditable-line3">Line3</div>
|
|
</div>
|
|
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
|
|
<script>
|
|
description("This tests that lineNumberForPosition is reported correctly for textarea and contenteditable elements.");
|
|
|
|
if (window.accessibilityController) {
|
|
var area1 = document.getElementById("area1");
|
|
area1.focus();
|
|
var area1AXUIElement = accessibilityController.focusedElement;
|
|
var lineNumber = -2;
|
|
|
|
// Set the insertion point to the beginning of each line in area1 and
|
|
// check that accessibility returns the correct line number.
|
|
for (var currentLine = 0; currentLine < 3; currentLine++) {
|
|
area1.selectionStart = currentLine * 7;
|
|
area1.selectionEnd = currentLine * 7;
|
|
shouldBe("area1AXUIElement.insertionPointLineNumber", "currentLine");
|
|
}
|
|
|
|
// area2 is an empty textarea so the insertion point line number should be 0.
|
|
var area2 = document.getElementById("area2");
|
|
area2.focus();
|
|
var area2AXUIElement = accessibilityController.focusedElement;
|
|
shouldBe("area2AXUIElement.insertionPointLineNumber", "0");
|
|
|
|
// Set focus to the contenteditable-div element and set the insertion
|
|
// point in each of the children lines.
|
|
var contenteditableDiv = document.getElementById("contenteditable-div");
|
|
contenteditableDiv.focus();
|
|
var contenteditableAXUIElement = accessibilityController.focusedElement;
|
|
|
|
var contenteditableLine1 = document.getElementById("contenteditable-line1");
|
|
window.getSelection().setBaseAndExtent(contenteditableLine1, 1, contenteditableLine1, 1);
|
|
shouldBe("contenteditableAXUIElement.insertionPointLineNumber", "0");
|
|
|
|
var contenteditableLine2 = document.getElementById("contenteditable-line2");
|
|
window.getSelection().setBaseAndExtent(contenteditableLine2, 1, contenteditableLine2, 1);
|
|
shouldBe("contenteditableAXUIElement.insertionPointLineNumber", "1");
|
|
|
|
var contenteditableLine3 = document.getElementById("contenteditable-line3");
|
|
window.getSelection().setBaseAndExtent(contenteditableLine3, 1, contenteditableLine3, 1);
|
|
shouldBe("contenteditableAXUIElement.insertionPointLineNumber", "2");
|
|
|
|
// Set focus to line 2 and get the insertion point line number relative
|
|
// to the nested textarea, which should be 0.
|
|
contenteditableLine2.focus();
|
|
var textareaAXUIElement = accessibilityController.focusedElement;
|
|
shouldBe("textareaAXUIElement.insertionPointLineNumber", "0");
|
|
}
|
|
</script>
|
|
<script src="../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|