UNPKG

@uuv/a11y

Version:

A javascript lib for running a11y validation based on multiple reference(RGAA, etc)

97 lines (96 loc) 4.32 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NotEmptyInnerTextSpecification = exports.EmptyInnerTextSpecification = exports.AccessibleNameNotContainsVisibleTextSpecification = exports.EqualsAttributeSpecification = exports.NotEqualsAttributeSpecification = exports.NotUniqueIdAttributeSpecification = exports.EmptyElementWithIdSpecification = exports.NotEmptyAttributeSpecification = exports.EmptyAttributeSpecification = void 0; const lodash_1 = __importDefault(require("lodash")); // eslint-disable-next-line @typescript-eslint/no-var-requires const $ = require("jquery/dist/jquery.min"); const dom_accessibility_api_1 = require("dom-accessibility-api"); class EmptyAttributeSpecification { isSatisfiedBy(element, attributeName) { const attributeValue = element.getAttribute(attributeName); return lodash_1.default.isEmpty(attributeValue); } } exports.EmptyAttributeSpecification = EmptyAttributeSpecification; class NotEmptyAttributeSpecification { isSatisfiedBy(element, attributeName) { const attributeValue = element.getAttribute(attributeName); return !lodash_1.default.isEmpty(attributeValue); } } exports.NotEmptyAttributeSpecification = NotEmptyAttributeSpecification; class EmptyElementWithIdSpecification { isSatisfiedBy(element, attributeName) { const attributeValue = element.getAttribute(attributeName); if (attributeValue === null || lodash_1.default.isEmpty(attributeValue)) { return true; } const bindingNodeId = $(`#${attributeValue.replaceAll(".", "\\.")}`).text(); return lodash_1.default.isEmpty(bindingNodeId); } } exports.EmptyElementWithIdSpecification = EmptyElementWithIdSpecification; class NotUniqueIdAttributeSpecification { isSatisfiedBy(element, attributeName) { if (lodash_1.default.isNull(element.id) || lodash_1.default.isEmpty(element.id)) { return true; } return $(`[id=${element.id}]`).length > 1; } } exports.NotUniqueIdAttributeSpecification = NotUniqueIdAttributeSpecification; class NotEqualsAttributeSpecification { expectedValueList; constructor(expectedValueList) { this.expectedValueList = expectedValueList; } isSatisfiedBy(element, attributeName) { const attributeValue = element.getAttribute(attributeName); if (attributeValue === null) { return true; } return !this.expectedValueList.includes(attributeValue); } } exports.NotEqualsAttributeSpecification = NotEqualsAttributeSpecification; class EqualsAttributeSpecification { expectedValueList; constructor(expectedValueList) { this.expectedValueList = expectedValueList; } isSatisfiedBy(element, attributeName) { const attributeValue = element.getAttribute(attributeName); if (attributeValue === null) { return false; } return this.expectedValueList.includes(attributeValue); } } exports.EqualsAttributeSpecification = EqualsAttributeSpecification; class AccessibleNameNotContainsVisibleTextSpecification { isSatisfiedBy(element, attributeName) { const visibleText = element.textContent; if (visibleText === null || lodash_1.default.isEmpty(visibleText)) { return false; } const accessibleName = (0, dom_accessibility_api_1.computeAccessibleName)(element); console.debug("visibleText", visibleText, "accessibleName", accessibleName); return accessibleName?.toLowerCase().indexOf(visibleText.toLowerCase()) === -1; } } exports.AccessibleNameNotContainsVisibleTextSpecification = AccessibleNameNotContainsVisibleTextSpecification; class EmptyInnerTextSpecification { isSatisfiedBy(element, attributeName) { return lodash_1.default.isEmpty(element.textContent); } } exports.EmptyInnerTextSpecification = EmptyInnerTextSpecification; class NotEmptyInnerTextSpecification { isSatisfiedBy(element, attributeName) { return !lodash_1.default.isEmpty(element.textContent); } } exports.NotEmptyInnerTextSpecification = NotEmptyInnerTextSpecification;