@qualweb/util
Version:
Utilities module for qualweb
43 lines (42 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function getOwnedElements(element) {
const children = element.getElementChildren();
const result = new Array();
const ariaOwnedElements = getAriaOwnedElements(element);
result.push(...ariaOwnedElements);
for (const child of children !== null && children !== void 0 ? children : []) {
result.push(...getOwnedElementsAux(child, element.getElementSelector()));
}
return result;
}
function getOwnedElementsAux(element, ownerSelector) {
let ariaOwner = window.AccessibilityUtils.getAriaOwner(element);
if (window.AccessibilityUtils.isElementInAT(element) &&
(!ariaOwner || (!!ariaOwner && ariaOwner.getElementSelector() === ownerSelector))) {
return [element];
}
else {
let children = element.getElementChildren();
let result = new Array();
for (const child of children !== null && children !== void 0 ? children : []) {
result.push(...getOwnedElementsAux(child, ownerSelector));
}
return result;
}
}
function getAriaOwnedElements(element) {
const ariaOwns = element.getElementAttribute('aria-owns');
const elements = new Array();
if (ariaOwns) {
const splitted = ariaOwns.split(',');
for (const id of splitted !== null && splitted !== void 0 ? splitted : []) {
const elem = window.qwPage.getElementByID(id);
if (!!elem) {
elements.push(elem);
}
}
}
return elements;
}
exports.default = getOwnedElements;