42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
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.");
|
|
}
|
|
}
|