| function clearSelectionAndFocusOnWebArea() { |
| webArea = accessibilityController.rootElement.childAtIndex(0); |
| webArea.resetSelectedTextMarkerRange(); |
| setCaretBrowsingEnabled(webArea, false); |
| shouldBe("webArea.role", "'AXRole: AXWebArea'"); |
| shouldBe("caretBrowsingEnabled(webArea)", "false"); |
| return webArea; |
| } |
| |
| function elementAtStartMarkerOfSelectedTextMarkerRange(webArea) { |
| var range = webArea.selectedTextMarkerRange(); |
| var start = webArea.startTextMarkerForTextMarkerRange(range); |
| var element = webArea.accessibilityElementForTextMarker(start); |
| return element; |
| } |
| |
| function caretBrowsingEnabled(webArea) { |
| return webArea.boolAttributeValue("AXCaretBrowsingEnabled"); |
| } |
| |
| function setCaretBrowsingEnabled(webArea, value) { |
| webArea.setBoolAttributeValue("AXCaretBrowsingEnabled", value); |
| } |
| |
| function selectTextInNode(nodeId) { |
| var node = document.getElementById(nodeId); |
| |
| if (document.body.createTextRange) { |
| const range = document.body.createTextRange(); |
| range.moveToElementText(node); |
| range.select(); |
| } else if (window.getSelection) { |
| const selection = window.getSelection(); |
| const range = document.createRange(); |
| range.selectNodeContents(node); |
| selection.removeAllRanges(); |
| selection.addRange(range); |
| } else { |
| console.warn("Could not select text in node: Unsupported browser."); |
| } |
| } |