| "use strict"; |
| |
| exports.__esModule = true; |
| exports.isInaccessible = isInaccessible; |
| exports.isSubtreeInaccessible = isSubtreeInaccessible; |
| /** |
| * Partial implementation https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion |
| * which should only be used for elements with a non-presentational role i.e. |
| * `role="none"` and `role="presentation"` will not be excluded. |
| * |
| * Implements aria-hidden semantics (i.e. parent overrides child) |
| * Ignores "Child Presentational: True" characteristics |
| * |
| * @param element |
| * @param options |
| * @returns {boolean} true if excluded, otherwise false |
| */ |
| function isInaccessible(element) { |
| var _element$ownerDocumen; |
| var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; |
| var _options$getComputedS = options.getComputedStyle, |
| getComputedStyle = _options$getComputedS === void 0 ? (_element$ownerDocumen = element.ownerDocument.defaultView) === null || _element$ownerDocumen === void 0 ? void 0 : _element$ownerDocumen.getComputedStyle : _options$getComputedS, |
| _options$isSubtreeIna = options.isSubtreeInaccessible, |
| isSubtreeInaccessibleImpl = _options$isSubtreeIna === void 0 ? isSubtreeInaccessible : _options$isSubtreeIna; |
| if (typeof getComputedStyle !== "function") { |
| throw new TypeError("Owner document of the element needs to have an associated window."); |
| } |
| // since visibility is inherited we can exit early |
| if (getComputedStyle(element).visibility === "hidden") { |
| return true; |
| } |
| var currentElement = element; |
| while (currentElement) { |
| if (isSubtreeInaccessibleImpl(currentElement, { |
| getComputedStyle: getComputedStyle |
| })) { |
| return true; |
| } |
| currentElement = currentElement.parentElement; |
| } |
| return false; |
| } |
| /** |
| * |
| * @param element |
| * @param options |
| * @returns {boolean} - `true` if every child of the element is inaccessible |
| */ |
| function isSubtreeInaccessible(element) { |
| var _element$ownerDocumen2; |
| var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; |
| var _options$getComputedS2 = options.getComputedStyle, |
| getComputedStyle = _options$getComputedS2 === void 0 ? (_element$ownerDocumen2 = element.ownerDocument.defaultView) === null || _element$ownerDocumen2 === void 0 ? void 0 : _element$ownerDocumen2.getComputedStyle : _options$getComputedS2; |
| if (typeof getComputedStyle !== "function") { |
| throw new TypeError("Owner document of the element needs to have an associated window."); |
| } |
| if (element.hidden === true) { |
| return true; |
| } |
| if (element.getAttribute("aria-hidden") === "true") { |
| return true; |
| } |
| if (getComputedStyle(element).display === "none") { |
| return true; |
| } |
| return false; |
| } |
| //# sourceMappingURL=is-inaccessible.js.map |