| Index: LayoutTests/accessibility/contenteditable-caret-position.html
|
| diff --git a/LayoutTests/accessibility/contenteditable-caret-position.html b/LayoutTests/accessibility/contenteditable-caret-position.html
|
| index a780c263d4cfe29ee18865a55e85da94791646b6..e98b9a631e4b02d568d3b2984051c244e866ab3b 100644
|
| --- a/LayoutTests/accessibility/contenteditable-caret-position.html
|
| +++ b/LayoutTests/accessibility/contenteditable-caret-position.html
|
| @@ -5,14 +5,18 @@
|
| </head>
|
| <body>
|
|
|
| - <div id="contenteditable-textbox" role="textbox" contenteditable="true">
|
| - <div id="contenteditable-line1">Line 1</div>
|
| - <textarea id="contenteditable-line2" rows="1" cols="40">Line 2</textarea>
|
| - </div>
|
| + <div id="main" role="main">
|
| +
|
| + <div id="contenteditable-textbox" role="textbox" contenteditable="true">
|
| + <div id="contenteditable-line1">Line 1</div>
|
| + <textarea id="contenteditable-line2" rows="1" cols="40">Line 2</textarea>
|
| + </div>
|
| +
|
| + <div id="contenteditable-div" contenteditable>
|
| + <p id="paragraph1">Line 1<br>Line 2</p>
|
| + <p id="paragraph2">Line 3</p>
|
| + </div>
|
|
|
| - <div id="contenteditable-div" contenteditable>
|
| - <p id="paragraph1">Line 1<br>Line 2</p>
|
| - <p id="paragraph2">Line 3</p>
|
| </div>
|
|
|
| <script>
|
| @@ -21,12 +25,17 @@
|
| if (window.accessibilityController) {
|
| var selection = window.getSelection();
|
| var selectionRange = document.createRange();
|
| + var mainAccessible = accessibilityController.accessibleElementById("main");
|
| + var rootAccessible = accessibilityController.rootElement;
|
| +
|
| + shouldBeZero("mainAccessible.selectionStart");
|
| + shouldBeZero("mainAccessible.selectionEnd");
|
|
|
| var textbox = document.getElementById("contenteditable-textbox");
|
| textbox.focus();
|
| var textboxAccessible =
|
| accessibilityController.accessibleElementById(
|
| - 'contenteditable-textbox');
|
| + "contenteditable-textbox");
|
|
|
| shouldBeZero("textboxAccessible.selectionStart");
|
| shouldBeZero("textboxAccessible.selectionEnd");
|
| @@ -38,12 +47,18 @@
|
| selection.addRange(selectionRange);
|
| shouldBeEqualToNumber("textboxAccessible.selectionStart", 1);
|
| shouldBeEqualToNumber("textboxAccessible.selectionEnd", 1);
|
| + shouldBeEqualToNumber("mainAccessible.selectionStart", 1);
|
| + shouldBeEqualToNumber("mainAccessible.selectionEnd", 1);
|
| + shouldBeZero("mainAccessible.selectionStartLineNumber");
|
| + shouldBeZero("mainAccessible.selectionEndLineNumber");
|
|
|
| var line2 = document.getElementById("contenteditable-line2");
|
| line2.focus();
|
| // The selection should have been removed from the line1 div.
|
| shouldBeZero("textboxAccessible.selectionStart");
|
| shouldBeZero("textboxAccessible.selectionEnd");
|
| + shouldBeZero("mainAccessible.selectionStart");
|
| + shouldBeZero("mainAccessible.selectionEnd");
|
|
|
| var line2Accessible = accessibilityController.focusedElement;
|
| shouldBeZero("line2Accessible.selectionStart");
|
| @@ -52,15 +67,24 @@
|
| shouldBeEqualToNumber("line2Accessible.selectionStart", 3);
|
| shouldBeEqualToNumber("line2Accessible.selectionEnd", 3);
|
|
|
| - var contenteditable = document.getElementById('contenteditable-div');
|
| + // mainAccessible should return zero here because selection is in a textarea.
|
| + shouldBeZero("mainAccessible.selectionStart");
|
| + shouldBeZero("mainAccessible.selectionEnd");
|
| + shouldBeZero("mainAccessible.selectionStartLineNumber");
|
| + shouldBeZero("mainAccessible.selectionEndLineNumber");
|
| +
|
| + var contenteditable = document.getElementById("contenteditable-div");
|
| contenteditable.focus();
|
| - var line1 = document.getElementById('paragraph1').firstChild;
|
| - var line2 = document.getElementById('paragraph1').lastChild;
|
| - var line3 = document.getElementById('paragraph2').firstChild;
|
| + // The offset from the beginning of the main div to the first character of
|
| + // contenteditable-div. The whole of the textarea is treated as a single embedded object.
|
| + var mainOffset = 9;
|
| + var line1 = document.getElementById("paragraph1").firstChild;
|
| + var line2 = document.getElementById("paragraph1").lastChild;
|
| + var line3 = document.getElementById("paragraph2").firstChild;
|
| var contenteditableLines = [ line1, line2, line3 ];
|
| var contenteditableAccessible =
|
| accessibilityController.accessibleElementById(
|
| - 'contenteditable-div');
|
| + "contenteditable-div");
|
|
|
| for (var lineNumber = 0; lineNumber < 3; ++lineNumber) {
|
| var lineOffset = lineNumber * 7;
|
| @@ -84,6 +108,15 @@
|
| lineNumber);
|
| shouldBeEqualToNumber("contenteditableAccessible.selectionEndLineNumber",
|
| lineNumber);
|
| +
|
| + shouldBeEqualToNumber("mainAccessible.selectionStart",
|
| + mainOffset + caretPosition);
|
| + shouldBeEqualToNumber("mainAccessible.selectionEnd",
|
| + mainOffset + caretPosition);
|
| + shouldBeEqualToNumber("mainAccessible.selectionStartLineNumber",
|
| + lineNumber);
|
| + shouldBeEqualToNumber("mainAccessible.selectionEndLineNumber",
|
| + lineNumber);
|
| }
|
| }
|
|
|
|
|