| <!DOCTYPE html> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| |
| <div id="editable" contentEditable="true" spellcheck="true">Test spelling markers</div> |
| |
| <p id="paragraph" tabIndex="0" spellcheck="true">Test spelling markers</p> |
| |
| <input id="input" spellcheck="true" value="Test spelling markers"> |
| |
| <textarea id="textarea" spellcheck="true">Test spelling markers</textarea> |
| |
| <script> |
| test(() => { |
| if (!window.internals) |
| return; |
| |
| var editable = document.getElementById('editable'); |
| assert_equals(editable.childNodes.length, 1); |
| var text = editable.firstChild; |
| var range = document.createRange(); |
| range.setStart(text, 0); |
| range.setEnd(text, 4); |
| internals.setMarker(document, range, 'spelling'); |
| range.setStart(text, 14); |
| range.setEnd(text, 21); |
| internals.setMarker(document, range, 'spelling'); |
| |
| var axEditable = accessibilityController.accessibleElementById('editable'); |
| var axStaticText = axEditable.childAtIndex(0); |
| |
| assert_equals(axStaticText.misspellingsCount, 2); |
| assert_equals(axStaticText.misspellingAtIndex(0), 'Test'); |
| assert_equals(axStaticText.misspellingAtIndex(1), 'markers'); |
| }, 'Spelling markers should be reported in content editables.'); |
| |
| test(() => { |
| if (!window.internals) |
| return; |
| |
| document.designMode = 'on'; |
| var paragraph = document.getElementById('paragraph'); |
| assert_equals(paragraph.childNodes.length, 1); |
| var text = paragraph.firstChild; |
| var range = document.createRange(); |
| range.setStart(text, 0); |
| range.setEnd(text, 4); |
| internals.setMarker(document, range, 'spelling'); |
| range.setStart(text, 14); |
| range.setEnd(text, 21); |
| internals.setMarker(document, range, 'spelling'); |
| |
| var axParagraph = accessibilityController.accessibleElementById('paragraph'); |
| var axStaticText = axParagraph.childAtIndex(0); |
| |
| assert_equals(axStaticText.misspellingsCount, 2); |
| assert_equals(axStaticText.misspellingAtIndex(0), 'Test'); |
| assert_equals(axStaticText.misspellingAtIndex(1), 'markers'); |
| |
| document.designMode = 'off'; |
| }, 'Spelling markers should be reported in static text when design mode is on.'); |
| |
| test(() => { |
| if (!window.internals) |
| return; |
| |
| var input = document.getElementById('input'); |
| input.focus(); |
| var innerEditor = internals.innerEditorElement(input); |
| assert_equals(innerEditor.childNodes.length, 1); |
| var text = innerEditor.firstChild; |
| var range = document.createRange(); |
| range.setStart(text, 5); |
| range.setEnd(text, 13); |
| internals.setMarker(document, range, 'spelling'); |
| |
| var axInput = accessibilityController.accessibleElementById('input'); |
| // If input's shadow DOM changes, this logic might need to be modified. |
| assert_equals(axInput.childrenCount, 1); |
| var axDiv = axInput.childAtIndex(0); |
| assert_equals(axDiv.childrenCount, 1); |
| var axStaticText = axDiv.childAtIndex(0); |
| |
| assert_equals(axStaticText.misspellingsCount, 1); |
| assert_equals(axStaticText.misspellingAtIndex(0), 'spelling'); |
| }, 'Spelling markers should be reported in input text fields.'); |
| |
| test(() => { |
| if (!window.internals) |
| return; |
| |
| var textarea = document.getElementById('textarea'); |
| var innerEditor = internals.innerEditorElement(textarea); |
| assert_equals(innerEditor.childNodes.length, 1); |
| var text = innerEditor.firstChild; |
| var range = document.createRange(); |
| range.setStart(text, 14); |
| range.setEnd(text, 21); |
| internals.setMarker(document, range, 'spelling'); |
| |
| var axTextarea = accessibilityController.accessibleElementById('textarea'); |
| // If textarea's shadow DOM changes, this logic might need to be modified. |
| assert_equals(axTextarea.childrenCount, 1); |
| var axDiv = axTextarea.childAtIndex(0); |
| assert_equals(axDiv.childrenCount, 1); |
| var axStaticText = axDiv.childAtIndex(0); |
| |
| assert_equals(axStaticText.misspellingsCount, 1); |
| assert_equals(axStaticText.misspellingAtIndex(0), 'markers'); |
| }, 'Spelling markers should be reported in textareas.'); |
| </script> |