gitextract_cjgil3o8/ ├── .babelrc ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE/ │ │ ├── config.yml │ │ ├── documentation.yml │ │ ├── feature-request.yml │ │ ├── possible-bug.yml │ │ └── question.yaml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── actions/ │ │ └── install-deps/ │ │ └── action.yml │ ├── axe-linter.yml │ ├── bin/ │ │ ├── determine-version.sh │ │ ├── validate-npm-deploy.sh │ │ ├── validate-package.mjs │ │ ├── wait-for-npm-ready.sh │ │ └── wait-for-workflow-success.sh │ ├── dependabot.yml │ ├── review.yml │ └── workflows/ │ ├── deploy.yml │ ├── format.yml │ ├── label-extension-linter-issues.yml │ ├── nightly-tests.yml │ ├── release.yml │ ├── semantic-pr-title.yml │ ├── sync-master-develop.yml │ ├── test.yml │ └── update-generated-files.yaml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .jsdoc.json ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .prettierrc.json ├── .vscode/ │ ├── extensions.json │ └── launch.json ├── CHANGELOG.md ├── CLAUDE.md ├── CONTRIBUTING.md ├── Gruntfile.js ├── LICENSE ├── LICENSE-3RD-PARTY.txt ├── README.md ├── SECURITY.md ├── axe-linter.yml ├── axe.d.ts ├── bower.json ├── build/ │ ├── build-manual.js │ ├── check-node-version.js │ ├── cherry-pick.js │ ├── configure.js │ ├── rule-generator/ │ │ ├── directories.js │ │ ├── get-answers.js │ │ ├── get-files-metadata.js │ │ └── questions.js │ ├── rule-generator.js │ ├── shared/ │ │ ├── create-file.js │ │ └── format.js │ ├── sri-update.js │ ├── tasks/ │ │ ├── add-locale.js │ │ ├── aria-supported.js │ │ ├── configure.js │ │ ├── esbuild.js │ │ ├── langs.js │ │ ├── metadata-function-map.js │ │ ├── notify.js │ │ ├── test.js │ │ ├── update-help.js │ │ └── validate.js │ └── templates.js ├── code-of-conduct.md ├── doc/ │ ├── API.md │ ├── accessibility-supported.md │ ├── act-rules-format.md │ ├── aria-supported.md │ ├── backwards-compatibility-doc.md │ ├── check-message-template.md │ ├── check-options.md │ ├── code-submission-guidelines.md │ ├── context.md │ ├── developer-guide.md │ ├── examples/ │ │ ├── chrome-debugging-protocol/ │ │ │ ├── README.md │ │ │ ├── axe-cdp.js │ │ │ └── package.json │ │ ├── code-patterns.md │ │ ├── html-handlebars.md │ │ ├── jasmine/ │ │ │ ├── README.md │ │ │ ├── karma.conf.js │ │ │ ├── package.json │ │ │ └── spec/ │ │ │ └── a11y.js │ │ ├── jest_react/ │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── link.js │ │ │ ├── link.test.js │ │ │ └── package.json │ │ ├── jsdom/ │ │ │ ├── package.json │ │ │ └── test/ │ │ │ └── a11y.js │ │ ├── mocha/ │ │ │ ├── README.md │ │ │ ├── karma.conf.js │ │ │ ├── package.json │ │ │ └── test/ │ │ │ └── a11y.js │ │ ├── pr-review-patterns.md │ │ ├── puppeteer/ │ │ │ ├── README.md │ │ │ ├── axe-puppeteer.js │ │ │ ├── package.json │ │ │ └── set-content.js │ │ ├── qunit/ │ │ │ ├── Gruntfile.js │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── test/ │ │ │ ├── a11y.js │ │ │ └── test.html │ │ ├── rule-check-templates.md │ │ ├── test-examples.js │ │ └── test-patterns.md │ ├── frame-messenger.md │ ├── issue_impact.md │ ├── plugins.md │ ├── projects.md │ ├── pull-request-checklist.md │ ├── release-and-support.md │ ├── rule-descriptions.md │ ├── rule-development.md │ ├── rule-proposal.md │ ├── run-partial.md │ └── standards-object.md ├── eslint.config.js ├── lib/ │ ├── checks/ │ │ ├── aria/ │ │ │ ├── abstractrole-evaluate.js │ │ │ ├── abstractrole.json │ │ │ ├── aria-allowed-attr-evaluate.js │ │ │ ├── aria-allowed-attr.json │ │ │ ├── aria-allowed-role-evaluate.js │ │ │ ├── aria-allowed-role.json │ │ │ ├── aria-busy-evaluate.js │ │ │ ├── aria-busy.json │ │ │ ├── aria-conditional-attr-evaluate.js │ │ │ ├── aria-conditional-attr.json │ │ │ ├── aria-conditional-checkbox-attr-evaluate.js │ │ │ ├── aria-conditional-row-attr-evaluate.js │ │ │ ├── aria-errormessage-evaluate.js │ │ │ ├── aria-errormessage.json │ │ │ ├── aria-hidden-body-evaluate.js │ │ │ ├── aria-hidden-body.json │ │ │ ├── aria-level-evaluate.js │ │ │ ├── aria-level.json │ │ │ ├── aria-prohibited-attr-evaluate.js │ │ │ ├── aria-prohibited-attr.json │ │ │ ├── aria-required-attr-evaluate.js │ │ │ ├── aria-required-attr.json │ │ │ ├── aria-required-children-evaluate.js │ │ │ ├── aria-required-children.json │ │ │ ├── aria-required-parent-evaluate.js │ │ │ ├── aria-required-parent.json │ │ │ ├── aria-roledescription-evaluate.js │ │ │ ├── aria-roledescription.json │ │ │ ├── aria-unsupported-attr-evaluate.js │ │ │ ├── aria-unsupported-attr.json │ │ │ ├── aria-valid-attr-evaluate.js │ │ │ ├── aria-valid-attr-value-evaluate.js │ │ │ ├── aria-valid-attr-value.json │ │ │ ├── aria-valid-attr.json │ │ │ ├── braille-label-equivalent-evaluate.js │ │ │ ├── braille-label-equivalent.json │ │ │ ├── braille-roledescription-equivalent-evaluate.js │ │ │ ├── braille-roledescription-equivalent.json │ │ │ ├── deprecatedrole-evaluate.js │ │ │ ├── deprecatedrole.json │ │ │ ├── fallbackrole-evaluate.js │ │ │ ├── fallbackrole.json │ │ │ ├── has-global-aria-attribute-evaluate.js │ │ │ ├── has-global-aria-attribute.json │ │ │ ├── has-widget-role-evaluate.js │ │ │ ├── has-widget-role.json │ │ │ ├── invalidrole-evaluate.js │ │ │ ├── invalidrole.json │ │ │ ├── is-element-focusable-evaluate.js │ │ │ ├── is-element-focusable.json │ │ │ ├── no-implicit-explicit-label-evaluate.js │ │ │ ├── no-implicit-explicit-label.json │ │ │ ├── unsupportedrole-evaluate.js │ │ │ ├── unsupportedrole.json │ │ │ ├── valid-scrollable-semantics-evaluate.js │ │ │ └── valid-scrollable-semantics.json │ │ ├── color/ │ │ │ ├── color-contrast-enhanced.json │ │ │ ├── color-contrast-evaluate.js │ │ │ ├── color-contrast.json │ │ │ ├── link-in-text-block-evaluate.js │ │ │ ├── link-in-text-block-style-evaluate.js │ │ │ ├── link-in-text-block-style.json │ │ │ └── link-in-text-block.json │ │ ├── forms/ │ │ │ ├── autocomplete-appropriate-evaluate.js │ │ │ ├── autocomplete-appropriate.json │ │ │ ├── autocomplete-valid-evaluate.js │ │ │ └── autocomplete-valid.json │ │ ├── generic/ │ │ │ ├── README.md │ │ │ ├── attr-non-space-content-evaluate.js │ │ │ ├── has-descendant-after.js │ │ │ ├── has-descendant-evaluate.js │ │ │ ├── has-text-content-evaluate.js │ │ │ ├── matches-definition-evaluate.js │ │ │ ├── page-no-duplicate-after.js │ │ │ └── page-no-duplicate-evaluate.js │ │ ├── index.js │ │ ├── keyboard/ │ │ │ ├── accesskeys-after.js │ │ │ ├── accesskeys-evaluate.js │ │ │ ├── accesskeys.json │ │ │ ├── focusable-content-evaluate.js │ │ │ ├── focusable-content.json │ │ │ ├── focusable-disabled-evaluate.js │ │ │ ├── focusable-disabled.json │ │ │ ├── focusable-element-evaluate.js │ │ │ ├── focusable-element.json │ │ │ ├── focusable-modal-open-evaluate.js │ │ │ ├── focusable-modal-open.json │ │ │ ├── focusable-no-name-evaluate.js │ │ │ ├── focusable-no-name.json │ │ │ ├── focusable-not-tabbable-evaluate.js │ │ │ ├── focusable-not-tabbable.json │ │ │ ├── frame-focusable-content-evaluate.js │ │ │ ├── frame-focusable-content.json │ │ │ ├── landmark-is-top-level-evaluate.js │ │ │ ├── landmark-is-top-level.json │ │ │ ├── no-focusable-content-evaluate.js │ │ │ ├── no-focusable-content.json │ │ │ ├── page-has-heading-one.json │ │ │ ├── page-has-main.json │ │ │ ├── page-no-duplicate-banner.json │ │ │ ├── page-no-duplicate-contentinfo.json │ │ │ ├── page-no-duplicate-main.json │ │ │ ├── tabindex-evaluate.js │ │ │ └── tabindex.json │ │ ├── label/ │ │ │ ├── alt-space-value-evaluate.js │ │ │ ├── alt-space-value.json │ │ │ ├── duplicate-img-label-evaluate.js │ │ │ ├── duplicate-img-label.json │ │ │ ├── explicit-evaluate.js │ │ │ ├── explicit.json │ │ │ ├── help-same-as-label-evaluate.js │ │ │ ├── help-same-as-label.json │ │ │ ├── hidden-explicit-label-evaluate.js │ │ │ ├── hidden-explicit-label.json │ │ │ ├── implicit-evaluate.js │ │ │ ├── implicit.json │ │ │ ├── label-content-name-mismatch-evaluate.js │ │ │ ├── label-content-name-mismatch.json │ │ │ ├── multiple-label-evaluate.js │ │ │ ├── multiple-label.json │ │ │ ├── title-only-evaluate.js │ │ │ └── title-only.json │ │ ├── landmarks/ │ │ │ ├── landmark-is-unique-after.js │ │ │ ├── landmark-is-unique-evaluate.js │ │ │ └── landmark-is-unique.json │ │ ├── language/ │ │ │ ├── has-lang-evaluate.js │ │ │ ├── has-lang.json │ │ │ ├── valid-lang-evaluate.js │ │ │ ├── valid-lang.json │ │ │ ├── xml-lang-mismatch-evaluate.js │ │ │ └── xml-lang-mismatch.json │ │ ├── lists/ │ │ │ ├── dlitem-evaluate.js │ │ │ ├── dlitem.json │ │ │ ├── invalid-children-evaluate.js │ │ │ ├── listitem-evaluate.js │ │ │ ├── listitem.json │ │ │ ├── only-dlitems-evaluate.js │ │ │ ├── only-dlitems.json │ │ │ ├── only-listitems-evaluate.js │ │ │ ├── only-listitems.json │ │ │ ├── structured-dlitems-evaluate.js │ │ │ └── structured-dlitems.json │ │ ├── media/ │ │ │ ├── caption-evaluate.js │ │ │ ├── caption.json │ │ │ ├── frame-tested-after.js │ │ │ ├── frame-tested-evaluate.js │ │ │ ├── frame-tested.json │ │ │ ├── no-autoplay-audio-evaluate.js │ │ │ └── no-autoplay-audio.json │ │ ├── mobile/ │ │ │ ├── css-orientation-lock-evaluate.js │ │ │ ├── css-orientation-lock.json │ │ │ ├── meta-viewport-large.json │ │ │ ├── meta-viewport-scale-evaluate.js │ │ │ ├── meta-viewport.json │ │ │ ├── target-offset-evaluate.js │ │ │ ├── target-offset.json │ │ │ ├── target-size-evaluate.js │ │ │ └── target-size.json │ │ ├── navigation/ │ │ │ ├── header-present.json │ │ │ ├── heading-order-after.js │ │ │ ├── heading-order-evaluate.js │ │ │ ├── heading-order.json │ │ │ ├── identical-links-same-purpose-after.js │ │ │ ├── identical-links-same-purpose-evaluate.js │ │ │ ├── identical-links-same-purpose.json │ │ │ ├── internal-link-present-evaluate.js │ │ │ ├── internal-link-present.json │ │ │ ├── landmark.json │ │ │ ├── meta-refresh-evaluate.js │ │ │ ├── meta-refresh-no-exceptions.json │ │ │ ├── meta-refresh.json │ │ │ ├── p-as-heading-evaluate.js │ │ │ ├── p-as-heading.json │ │ │ ├── region-after.js │ │ │ ├── region-evaluate.js │ │ │ ├── region.json │ │ │ ├── skip-link-evaluate.js │ │ │ ├── skip-link.json │ │ │ ├── unique-frame-title-after.js │ │ │ ├── unique-frame-title-evaluate.js │ │ │ └── unique-frame-title.json │ │ ├── parsing/ │ │ │ ├── duplicate-id-active.json │ │ │ ├── duplicate-id-after.js │ │ │ ├── duplicate-id-aria.json │ │ │ ├── duplicate-id-evaluate.js │ │ │ └── duplicate-id.json │ │ ├── shared/ │ │ │ ├── aria-label-evaluate.js │ │ │ ├── aria-label.json │ │ │ ├── aria-labelledby-evaluate.js │ │ │ ├── aria-labelledby.json │ │ │ ├── avoid-inline-spacing-evaluate.js │ │ │ ├── avoid-inline-spacing.json │ │ │ ├── button-has-visible-text.json │ │ │ ├── doc-has-title-evaluate.js │ │ │ ├── doc-has-title.json │ │ │ ├── error-occurred.json │ │ │ ├── exists-evaluate.js │ │ │ ├── exists.json │ │ │ ├── has-alt-evaluate.js │ │ │ ├── has-alt.json │ │ │ ├── has-visible-text.json │ │ │ ├── important-letter-spacing.json │ │ │ ├── important-line-height.json │ │ │ ├── important-word-spacing.json │ │ │ ├── inline-style-property-evaluate.js │ │ │ ├── is-on-screen-evaluate.js │ │ │ ├── is-on-screen.json │ │ │ ├── non-empty-alt.json │ │ │ ├── non-empty-if-present-evaluate.js │ │ │ ├── non-empty-if-present.json │ │ │ ├── non-empty-placeholder.json │ │ │ ├── non-empty-title.json │ │ │ ├── non-empty-value.json │ │ │ ├── presentational-role-evaluate.js │ │ │ ├── presentational-role.json │ │ │ ├── role-none.json │ │ │ ├── role-presentation.json │ │ │ ├── svg-non-empty-title-evaluate.js │ │ │ └── svg-non-empty-title.json │ │ ├── tables/ │ │ │ ├── caption-faked-evaluate.js │ │ │ ├── caption-faked.json │ │ │ ├── html5-scope-evaluate.js │ │ │ ├── html5-scope.json │ │ │ ├── same-caption-summary-evaluate.js │ │ │ ├── same-caption-summary.json │ │ │ ├── scope-value-evaluate.js │ │ │ ├── scope-value.json │ │ │ ├── td-has-header-evaluate.js │ │ │ ├── td-has-header.json │ │ │ ├── td-headers-attr-evaluate.js │ │ │ ├── td-headers-attr.json │ │ │ ├── th-has-data-cells-evaluate.js │ │ │ └── th-has-data-cells.json │ │ └── visibility/ │ │ ├── hidden-content-evaluate.js │ │ └── hidden-content.json │ ├── commons/ │ │ ├── aria/ │ │ │ ├── allowed-attr.js │ │ │ ├── arialabel-text.js │ │ │ ├── arialabelledby-text.js │ │ │ ├── get-accessible-refs.js │ │ │ ├── get-element-unallowed-roles.js │ │ │ ├── get-explicit-role.js │ │ │ ├── get-owned-virtual.js │ │ │ ├── get-role-type.js │ │ │ ├── get-role.js │ │ │ ├── get-roles-by-type.js │ │ │ ├── get-roles-with-name-from-contents.js │ │ │ ├── implicit-nodes.js │ │ │ ├── implicit-role.js │ │ │ ├── index.js │ │ │ ├── is-accessible-ref.js │ │ │ ├── is-aria-role-allowed-on-element.js │ │ │ ├── is-combobox-popup.js │ │ │ ├── is-unsupported-role.js │ │ │ ├── is-valid-role.js │ │ │ ├── label-virtual.js │ │ │ ├── label.js │ │ │ ├── lookup-table.js │ │ │ ├── named-from-contents.js │ │ │ ├── required-attr.js │ │ │ ├── required-context.js │ │ │ ├── required-owned.js │ │ │ ├── validate-attr-value.js │ │ │ └── validate-attr.js │ │ ├── color/ │ │ │ ├── center-point-of-rect.js │ │ │ ├── color.js │ │ │ ├── element-has-image.js │ │ │ ├── element-is-distinct.js │ │ │ ├── filtered-rect-stack.js │ │ │ ├── flatten-colors.js │ │ │ ├── flatten-shadow-colors.js │ │ │ ├── get-background-color.js │ │ │ ├── get-background-stack.js │ │ │ ├── get-contrast.js │ │ │ ├── get-foreground-color.js │ │ │ ├── get-own-background-color.js │ │ │ ├── get-rect-stack.js │ │ │ ├── get-stroke-colors-from-shadows.js │ │ │ ├── get-text-shadow-colors.js │ │ │ ├── has-valid-contrast-ratio.js │ │ │ ├── incomplete-data.js │ │ │ ├── index.js │ │ │ ├── parse-text-shadows.js │ │ │ └── stacking-context.js │ │ ├── dom/ │ │ │ ├── create-grid.js │ │ │ ├── find-elms-in-context.js │ │ │ ├── find-nearby-elms.js │ │ │ ├── find-up-virtual.js │ │ │ ├── find-up.js │ │ │ ├── focus-disabled.js │ │ │ ├── get-composed-parent.js │ │ │ ├── get-element-by-reference.js │ │ │ ├── get-element-coordinates.js │ │ │ ├── get-element-stack.js │ │ │ ├── get-modal-dialog.js │ │ │ ├── get-node-grid.js │ │ │ ├── get-overflow-hidden-ancestors.js │ │ │ ├── get-rect-stack.js │ │ │ ├── get-root-node.js │ │ │ ├── get-scroll-offset.js │ │ │ ├── get-tabbable-elements.js │ │ │ ├── get-target-rects.js │ │ │ ├── get-target-size.js │ │ │ ├── get-text-element-stack.js │ │ │ ├── get-viewport-size.js │ │ │ ├── get-visible-child-text-rects.js │ │ │ ├── has-content-virtual.js │ │ │ ├── has-content.js │ │ │ ├── has-lang-text.js │ │ │ ├── idrefs.js │ │ │ ├── index.js │ │ │ ├── inserted-into-focus-order.js │ │ │ ├── is-current-page-link.js │ │ │ ├── is-focusable.js │ │ │ ├── is-hidden-for-everyone.js │ │ │ ├── is-hidden-with-css.js │ │ │ ├── is-html5.js │ │ │ ├── is-in-tab-order.js │ │ │ ├── is-in-text-block.js │ │ │ ├── is-inert.js │ │ │ ├── is-modal-open.js │ │ │ ├── is-multiline.js │ │ │ ├── is-natively-focusable.js │ │ │ ├── is-node.js │ │ │ ├── is-offscreen.js │ │ │ ├── is-opaque.js │ │ │ ├── is-skip-link.js │ │ │ ├── is-visible-on-screen.js │ │ │ ├── is-visible-to-screenreader.js │ │ │ ├── is-visible.js │ │ │ ├── is-visual-content.js │ │ │ ├── reduce-to-elements-below-floating.js │ │ │ ├── shadow-elements-from-point.js │ │ │ ├── url-props-from-attribute.js │ │ │ ├── visibility-methods.js │ │ │ ├── visually-contains.js │ │ │ ├── visually-overlaps.js │ │ │ └── visually-sort.js │ │ ├── forms/ │ │ │ ├── index.js │ │ │ ├── is-aria-combobox.js │ │ │ ├── is-aria-listbox.js │ │ │ ├── is-aria-range.js │ │ │ ├── is-aria-textbox.js │ │ │ ├── is-disabled.js │ │ │ ├── is-native-select.js │ │ │ └── is-native-textbox.js │ │ ├── index.js │ │ ├── matches/ │ │ │ ├── attributes.js │ │ │ ├── condition.js │ │ │ ├── explicit-role.js │ │ │ ├── from-definition.js │ │ │ ├── from-function.js │ │ │ ├── from-primative.js │ │ │ ├── has-accessible-name.js │ │ │ ├── implicit-role.js │ │ │ ├── index.js │ │ │ ├── matches.js │ │ │ ├── node-name.js │ │ │ ├── properties.js │ │ │ └── semantic-role.js │ │ ├── math/ │ │ │ ├── get-bounding-rect.js │ │ │ ├── get-intersection-rect.js │ │ │ ├── get-offset.js │ │ │ ├── get-rect-center.js │ │ │ ├── has-visual-overlap.js │ │ │ ├── index.js │ │ │ ├── is-point-in-rect.js │ │ │ ├── rect-has-minimum-size.js │ │ │ ├── rects-overlap.js │ │ │ └── split-rects.js │ │ ├── standards/ │ │ │ ├── get-aria-roles-by-type.js │ │ │ ├── get-aria-roles-supporting-name-from-content.js │ │ │ ├── get-element-spec.js │ │ │ ├── get-elements-by-content-type.js │ │ │ ├── get-global-aria-attrs.js │ │ │ ├── implicit-html-roles.js │ │ │ └── index.js │ │ ├── table/ │ │ │ ├── get-all-cells.js │ │ │ ├── get-cell-position.js │ │ │ ├── get-headers.js │ │ │ ├── get-scope.js │ │ │ ├── index.js │ │ │ ├── is-column-header.js │ │ │ ├── is-data-cell.js │ │ │ ├── is-data-table.js │ │ │ ├── is-header.js │ │ │ ├── is-row-header.js │ │ │ ├── to-grid.js │ │ │ └── traverse.js │ │ └── text/ │ │ ├── accessible-text-virtual.js │ │ ├── accessible-text.js │ │ ├── form-control-value.js │ │ ├── has-unicode.js │ │ ├── index.js │ │ ├── is-human-interpretable.js │ │ ├── is-icon-ligature.js │ │ ├── is-valid-autocomplete.js │ │ ├── label-text.js │ │ ├── label-virtual.js │ │ ├── label.js │ │ ├── native-element-type.js │ │ ├── native-text-alternative.js │ │ ├── native-text-methods.js │ │ ├── remove-unicode.js │ │ ├── sanitize.js │ │ ├── subtree-text.js │ │ ├── title-text.js │ │ ├── unicode.js │ │ ├── unsupported.js │ │ ├── visible-text-nodes.js │ │ ├── visible-virtual.js │ │ └── visible.js │ ├── core/ │ │ ├── _exposed-for-testing.js │ │ ├── base/ │ │ │ ├── audit.js │ │ │ ├── cache.js │ │ │ ├── check-result.js │ │ │ ├── check.js │ │ │ ├── context/ │ │ │ │ ├── create-frame-context.js │ │ │ │ ├── normalize-context.js │ │ │ │ └── parse-selector-array.js │ │ │ ├── context.js │ │ │ ├── rule-result.js │ │ │ ├── rule.js │ │ │ └── virtual-node/ │ │ │ ├── abstract-virtual-node.js │ │ │ ├── serial-virtual-node.js │ │ │ └── virtual-node.js │ │ ├── constants.js │ │ ├── core.js │ │ ├── imports/ │ │ │ ├── index.js │ │ │ └── polyfills.js │ │ ├── index.js │ │ ├── log.js │ │ ├── public/ │ │ │ ├── cleanup.js │ │ │ ├── configure.js │ │ │ ├── finish-run.js │ │ │ ├── frame-messenger.js │ │ │ ├── get-rules.js │ │ │ ├── load.js │ │ │ ├── plugins.js │ │ │ ├── reporter.js │ │ │ ├── reset.js │ │ │ ├── run/ │ │ │ │ ├── globals-setup.js │ │ │ │ └── normalize-run-params.js │ │ │ ├── run-partial.js │ │ │ ├── run-rules.js │ │ │ ├── run-virtual-rule.js │ │ │ ├── run.js │ │ │ ├── setup.js │ │ │ └── teardown.js │ │ ├── reporters/ │ │ │ ├── helpers/ │ │ │ │ ├── failure-summary.js │ │ │ │ ├── incomplete-fallback-msg.js │ │ │ │ ├── index.js │ │ │ │ └── process-aggregate.js │ │ │ ├── na.js │ │ │ ├── no-passes.js │ │ │ ├── raw-env.js │ │ │ ├── raw.js │ │ │ ├── v1.js │ │ │ └── v2.js │ │ └── utils/ │ │ ├── aggregate-checks.js │ │ ├── aggregate-node-results.js │ │ ├── aggregate-result.js │ │ ├── aggregate.js │ │ ├── are-styles-set.js │ │ ├── assert.js │ │ ├── check-helper.js │ │ ├── clone.js │ │ ├── closest.js │ │ ├── collect-results-from-frames.js │ │ ├── contains.js │ │ ├── css-parser.js │ │ ├── deep-merge.js │ │ ├── dq-element.js │ │ ├── element-matches.js │ │ ├── escape-selector.js │ │ ├── extend-meta-data.js │ │ ├── filter-html-attrs.js │ │ ├── finalize-result.js │ │ ├── find-by.js │ │ ├── frame-messenger/ │ │ │ ├── assert-window.js │ │ │ ├── channel-store.js │ │ │ ├── create-responder.js │ │ │ ├── message-handler.js │ │ │ ├── message-id.js │ │ │ ├── message-parser.js │ │ │ ├── post-message.js │ │ │ └── process-error.js │ │ ├── frame-messenger.js │ │ ├── get-all-checks.js │ │ ├── get-ancestry.js │ │ ├── get-base-lang.js │ │ ├── get-check-message.js │ │ ├── get-check-option.js │ │ ├── get-element-source.js │ │ ├── get-environment-data.js │ │ ├── get-flattened-tree.js │ │ ├── get-frame-contexts.js │ │ ├── get-friendly-uri-end.js │ │ ├── get-node-attributes.js │ │ ├── get-node-from-tree.js │ │ ├── get-root-node.js │ │ ├── get-rule.js │ │ ├── get-scroll-state.js │ │ ├── get-scroll.js │ │ ├── get-selector.js │ │ ├── get-shadow-selector.js │ │ ├── get-standards.js │ │ ├── get-stylesheet-factory.js │ │ ├── get-xpath.js │ │ ├── index.js │ │ ├── inject-style.js │ │ ├── is-array-like.js │ │ ├── is-context.js │ │ ├── is-hidden.js │ │ ├── is-html-element.js │ │ ├── is-node-in-context.js │ │ ├── is-shadow-root.js │ │ ├── is-xhtml.js │ │ ├── match-ancestry.js │ │ ├── matches.js │ │ ├── memoize.js │ │ ├── merge-results.js │ │ ├── node-lookup.js │ │ ├── node-serializer.js │ │ ├── node-sorter.js │ │ ├── normalize-run-options.js │ │ ├── object-has-own.js │ │ ├── parse-crossorigin-stylesheet.js │ │ ├── parse-sameorigin-stylesheet.js │ │ ├── parse-stylesheet.js │ │ ├── parse-tabindex.js │ │ ├── performance-timer.js │ │ ├── pollyfill-elements-from-point.js │ │ ├── preload-cssom.js │ │ ├── preload-media.js │ │ ├── preload.js │ │ ├── process-message.js │ │ ├── publish-metadata.js │ │ ├── query-selector-all-filter.js │ │ ├── query-selector-all.js │ │ ├── queue.js │ │ ├── respondable.js │ │ ├── rule-error.js │ │ ├── rule-should-run.js │ │ ├── select.js │ │ ├── selector-cache.js │ │ ├── send-command-to-frame.js │ │ ├── serialize-error.js │ │ ├── set-scroll-state.js │ │ ├── shadow-select-all.js │ │ ├── shadow-select.js │ │ ├── to-array.js │ │ ├── token-list.js │ │ ├── unique-array.js │ │ ├── uuid.js │ │ ├── valid-input-type.js │ │ └── valid-langs.js │ ├── intro.stub │ ├── misc/ │ │ ├── any-failure-summary.json │ │ ├── incomplete-fallback.json │ │ └── none-failure-summary.json │ ├── outro.stub │ ├── rules/ │ │ ├── accesskeys.json │ │ ├── area-alt.json │ │ ├── aria-allowed-attr-matches.js │ │ ├── aria-allowed-attr.json │ │ ├── aria-allowed-role-matches.js │ │ ├── aria-allowed-role.json │ │ ├── aria-braille-equivalent.json │ │ ├── aria-command-name.json │ │ ├── aria-conditional-attr.json │ │ ├── aria-deprecated-role.json │ │ ├── aria-dialog-name.json │ │ ├── aria-has-attr-matches.js │ │ ├── aria-hidden-body.json │ │ ├── aria-hidden-focus-matches.js │ │ ├── aria-hidden-focus.json │ │ ├── aria-input-field-name.json │ │ ├── aria-meter-name.json │ │ ├── aria-progressbar-name.json │ │ ├── aria-prohibited-attr.json │ │ ├── aria-required-attr.json │ │ ├── aria-required-children-matches.js │ │ ├── aria-required-children.json │ │ ├── aria-required-parent-matches.js │ │ ├── aria-required-parent.json │ │ ├── aria-roledescription.json │ │ ├── aria-roles.json │ │ ├── aria-tab-name.json │ │ ├── aria-text.json │ │ ├── aria-toggle-field-name.json │ │ ├── aria-tooltip-name.json │ │ ├── aria-treeitem-name.json │ │ ├── aria-valid-attr-value.json │ │ ├── aria-valid-attr.json │ │ ├── audio-caption.json │ │ ├── autocomplete-matches.js │ │ ├── autocomplete-valid.json │ │ ├── avoid-inline-spacing.json │ │ ├── blink.json │ │ ├── button-name.json │ │ ├── bypass-matches.js │ │ ├── bypass.json │ │ ├── color-contrast-enhanced.json │ │ ├── color-contrast-matches.js │ │ ├── color-contrast.json │ │ ├── css-orientation-lock.json │ │ ├── data-table-large-matches.js │ │ ├── data-table-matches.js │ │ ├── definition-list.json │ │ ├── dlitem.json │ │ ├── document-title.json │ │ ├── duplicate-id-active-matches.js │ │ ├── duplicate-id-active.json │ │ ├── duplicate-id-aria-matches.js │ │ ├── duplicate-id-aria.json │ │ ├── duplicate-id-misc-matches.js │ │ ├── duplicate-id.json │ │ ├── empty-heading.json │ │ ├── empty-table-header.json │ │ ├── focus-order-semantics.json │ │ ├── form-field-multiple-labels.json │ │ ├── frame-focusable-content-matches.js │ │ ├── frame-focusable-content.json │ │ ├── frame-tested.json │ │ ├── frame-title-has-text-matches.js │ │ ├── frame-title-unique.json │ │ ├── frame-title.json │ │ ├── has-implicit-chromium-role-matches.js │ │ ├── heading-matches.js │ │ ├── heading-order.json │ │ ├── hidden-content.json │ │ ├── html-has-lang.json │ │ ├── html-lang-valid.json │ │ ├── html-namespace-matches.js │ │ ├── html-xml-lang-mismatch.json │ │ ├── identical-links-same-purpose-matches.js │ │ ├── identical-links-same-purpose.json │ │ ├── image-alt.json │ │ ├── img-redundant-alt.json │ │ ├── input-button-name.json │ │ ├── input-image-alt.json │ │ ├── inserted-into-focus-order-matches.js │ │ ├── is-initiator-matches.js │ │ ├── is-visible-matches.js │ │ ├── is-visible-on-screen-matches.js │ │ ├── label-content-name-mismatch-matches.js │ │ ├── label-content-name-mismatch.json │ │ ├── label-matches.js │ │ ├── label-title-only.json │ │ ├── label.json │ │ ├── landmark-banner-is-top-level.json │ │ ├── landmark-complementary-is-top-level.json │ │ ├── landmark-contentinfo-is-top-level.json │ │ ├── landmark-has-body-context-matches.js │ │ ├── landmark-main-is-top-level.json │ │ ├── landmark-no-duplicate-banner.json │ │ ├── landmark-no-duplicate-contentinfo.json │ │ ├── landmark-no-duplicate-main.json │ │ ├── landmark-one-main.json │ │ ├── landmark-unique-matches.js │ │ ├── landmark-unique.json │ │ ├── layout-table-matches.js │ │ ├── link-in-text-block-matches.js │ │ ├── link-in-text-block.json │ │ ├── link-name.json │ │ ├── list.json │ │ ├── listitem.json │ │ ├── marquee.json │ │ ├── meta-refresh-no-exceptions.json │ │ ├── meta-refresh.json │ │ ├── meta-viewport-large.json │ │ ├── meta-viewport.json │ │ ├── nested-interactive-matches.js │ │ ├── nested-interactive.json │ │ ├── no-autoplay-audio-matches.js │ │ ├── no-autoplay-audio.json │ │ ├── no-empty-role-matches.js │ │ ├── no-explicit-name-required-matches.js │ │ ├── no-naming-method-matches.js │ │ ├── no-negative-tabindex-matches.js │ │ ├── no-role-matches.js │ │ ├── not-html-matches.js │ │ ├── object-alt.json │ │ ├── object-is-loaded-matches.js │ │ ├── p-as-heading-matches.js │ │ ├── p-as-heading.json │ │ ├── page-has-heading-one.json │ │ ├── presentation-role-conflict-matches.js │ │ ├── presentation-role-conflict.json │ │ ├── region.json │ │ ├── role-img-alt.json │ │ ├── scope-attr-valid.json │ │ ├── scrollable-region-focusable-matches.js │ │ ├── scrollable-region-focusable.json │ │ ├── select-name.json │ │ ├── server-side-image-map.json │ │ ├── skip-link-matches.js │ │ ├── skip-link.json │ │ ├── summary-interactive-matches.js │ │ ├── summary-name.json │ │ ├── svg-img-alt.json │ │ ├── svg-namespace-matches.js │ │ ├── tabindex.json │ │ ├── table-duplicate-name.json │ │ ├── table-fake-caption.json │ │ ├── table-or-grid-role-matches.js │ │ ├── target-size.json │ │ ├── td-has-header.json │ │ ├── td-headers-attr.json │ │ ├── th-has-data-cells.json │ │ ├── valid-lang.json │ │ ├── video-caption.json │ │ ├── widget-not-inline-matches.js │ │ ├── window-is-top-matches.js │ │ └── xml-lang-mismatch-matches.js │ └── standards/ │ ├── aria-attrs.js │ ├── aria-roles.js │ ├── css-colors.js │ ├── dpub-roles.js │ ├── graphics-roles.js │ ├── html-elms.js │ └── index.js ├── locales/ │ ├── README.md │ ├── _template.json │ ├── da.json │ ├── de.json │ ├── el.json │ ├── es.json │ ├── eu.json │ ├── fr.json │ ├── he.json │ ├── it.json │ ├── ja.json │ ├── ko.json │ ├── nl.json │ ├── no_NB.json │ ├── pl.json │ ├── pt_BR.json │ ├── pt_PT.json │ ├── ru.json │ ├── zh_CN.json │ └── zh_TW.json ├── package.json ├── patches/ │ └── colorjs.io+0.4.3.patch ├── sri-history.json ├── test/ │ ├── act-rules/ │ │ ├── README.md │ │ ├── act-runner.js │ │ ├── aria-attr-defined-5f99a7.spec.js │ │ ├── aria-hidden-no-focusable-content-6cfa84.spec.js │ │ ├── aria-required-context-ff89c9.spec.js │ │ ├── aria-required-id-references-in6db8.spec.js │ │ ├── aria-required-owned-element-bc4a75.spec.js │ │ ├── aria-state-or-property-permitted-5c01ea.spec.js │ │ ├── autocomplete-valid-value-73f2c2.spec.js │ │ ├── button-non-empty-accessible-name-97a4e1.spec.js │ │ ├── css-restrict-orientation-b33eff.spec.js │ │ ├── element-lang-valid-de46e4.spec.js │ │ ├── element-marked-decorative-is-not-exposed-46ca7f.spec.js │ │ ├── explicit-SVG-image-non-empty-accessible-name-7d6734.spec.js │ │ ├── form-field-non-empty-accessible-name-e086e5.spec.js │ │ ├── heading-non-empty-accessible-name-ffd0e9.spec.js │ │ ├── html-page-lang-b5c3f8.spec.js │ │ ├── html-page-lang-valid-bf051a.spec.js │ │ ├── html-page-lang-xml-lang-match-5b7ae0.spec.js │ │ ├── html-page-non-empty-title-2779a5.spec.js │ │ ├── id-value-unique-3ea0c8.spec.js │ │ ├── iframe-non-empty-accessible-name-cae760.spec.js │ │ ├── image-button-non-empty-accessible-name-59796f.spec.js │ │ ├── image-non-empty-accessible-name-23a2a8.spec.js │ │ ├── letter-spacing-not-important-24afc2.spec.js │ │ ├── line-height-not-important-78fd32.spec.js │ │ ├── link-non-empty-accessible-name-c487ae.spec.js │ │ ├── links-identical-name-equivalent-purpose-b20e66.spec.js │ │ ├── links-with-identical-names-and-context-serve-equivalent-purpose-fd3a94.spec.js │ │ ├── menuitem-non-empty-name-m6b1q3.spec.js │ │ ├── meta-viewport-b4f0c3.spec.js │ │ ├── object-has-acessible-name-8fc3b6.spec.js │ │ ├── presentational-children-no-focusable-content-307n5z.spec.js │ │ ├── role-required-states-and-properties-4e8ab6.spec.js │ │ ├── scrollable-element-keyboard-accessible-0ssw9k.spec.js │ │ ├── table-headers-attribute-refer-to-data-cells-a25f45.spec.js │ │ ├── text-contrast-afw4f7.spec.js │ │ ├── text-contrast-enhanced-09o5cg.spec.js │ │ ├── visible-label-in-accessible-name-2ee8b8.spec.js │ │ └── word-spacing-not-important-9e45ec.spec.js │ ├── aria-practices/ │ │ ├── README.md │ │ └── apg.spec.js │ ├── assets/ │ │ ├── video.webm │ │ └── webfont-attribution-license.md │ ├── checks/ │ │ ├── aria/ │ │ │ ├── aria-allowed-attr.js │ │ │ ├── aria-allowed-role.js │ │ │ ├── aria-busy.js │ │ │ ├── aria-conditional-attr.js │ │ │ ├── aria-hidden-body.js │ │ │ ├── aria-level.js │ │ │ ├── aria-prohibited-attr.js │ │ │ ├── aria-required-attr.js │ │ │ ├── aria-roledescription.js │ │ │ ├── braille-label-equivalent.js │ │ │ ├── braille-roledescription-equivalent.js │ │ │ ├── deprecatedrole.js │ │ │ ├── errormessage.js │ │ │ ├── fallbackrole.js │ │ │ ├── has-global-aria-attribute.js │ │ │ ├── has-widget-role.js │ │ │ ├── is-element-focusable.js │ │ │ ├── no-implicit-explicit-label.js │ │ │ ├── required-children.js │ │ │ ├── required-parent.js │ │ │ ├── unsupportedattr.js │ │ │ ├── unsupportedrole.js │ │ │ ├── valid-attr-value.js │ │ │ ├── valid-attr.js │ │ │ └── valid-scrollable-semantics.js │ │ ├── color/ │ │ │ ├── color-contrast.js │ │ │ ├── link-in-text-block-style.js │ │ │ └── link-in-text-block.js │ │ ├── forms/ │ │ │ ├── autocomplete-appropriate.js │ │ │ └── autocomplete-valid.js │ │ ├── keyboard/ │ │ │ ├── accesskeys.js │ │ │ ├── focusable-content.js │ │ │ ├── focusable-disabled.js │ │ │ ├── focusable-element.js │ │ │ ├── focusable-modal-open.js │ │ │ ├── focusable-no-name.js │ │ │ ├── focusable-not-tabbable.js │ │ │ ├── frame-focusable-content.js │ │ │ ├── landmark-is-top-level.js │ │ │ ├── no-focusable-content.js │ │ │ ├── page-has-elm.js │ │ │ ├── page-no-duplicate.js │ │ │ └── tabindex.js │ │ ├── label/ │ │ │ ├── alt-space-value.js │ │ │ ├── duplicate-img-label.js │ │ │ ├── explicit.js │ │ │ ├── help-same-as-label.js │ │ │ ├── hidden-explicit-label.js │ │ │ ├── implicit.js │ │ │ ├── label-content-name-mismatch.js │ │ │ ├── multiple-label.js │ │ │ └── title-only.js │ │ ├── landmarks/ │ │ │ ├── landmark-is-unique-after.js │ │ │ └── landmark-is-unique.js │ │ ├── language/ │ │ │ ├── has-lang.js │ │ │ ├── valid-lang.js │ │ │ └── xml-lang-mismatch.js │ │ ├── lists/ │ │ │ ├── dlitem.js │ │ │ ├── listitem.js │ │ │ ├── only-dlitems.js │ │ │ ├── only-listitems.js │ │ │ └── structured-dlitems.js │ │ ├── media/ │ │ │ ├── caption.js │ │ │ ├── frame-tested.js │ │ │ └── no-autoplay-audio.js │ │ ├── mobile/ │ │ │ ├── css-orientation-lock.js │ │ │ ├── meta-viewport-scale.js │ │ │ ├── target-offset.js │ │ │ └── target-size.js │ │ ├── navigation/ │ │ │ ├── header-present.js │ │ │ ├── heading-order.js │ │ │ ├── identical-links-same-purpose-after.js │ │ │ ├── identical-links-same-purpose.js │ │ │ ├── internal-link-present.js │ │ │ ├── landmark.js │ │ │ ├── meta-refresh.js │ │ │ ├── p-as-heading.js │ │ │ ├── region-after.js │ │ │ ├── region.js │ │ │ ├── skip-link.js │ │ │ ├── unique-frame-title-after.js │ │ │ └── unique-frame-title.js │ │ ├── parser/ │ │ │ └── duplicate-id.js │ │ ├── shared/ │ │ │ ├── abstractrole.js │ │ │ ├── aria-label.js │ │ │ ├── aria-labelledby.js │ │ │ ├── avoid-inline-spacing.js │ │ │ ├── button-has-visible-text.js │ │ │ ├── doc-has-title.js │ │ │ ├── exists.js │ │ │ ├── has-alt.js │ │ │ ├── has-visible-text.js │ │ │ ├── inline-style-property.js │ │ │ ├── invalidrole.js │ │ │ ├── is-on-screen.js │ │ │ ├── non-empty-alt.js │ │ │ ├── non-empty-if-present.js │ │ │ ├── non-empty-placeholder.js │ │ │ ├── non-empty-title.js │ │ │ ├── non-empty-value.js │ │ │ ├── presentational-role.js │ │ │ ├── role-none.js │ │ │ ├── role-presentation.js │ │ │ └── svg-non-empty-title.js │ │ ├── tables/ │ │ │ ├── caption-faked.js │ │ │ ├── html5-scope.js │ │ │ ├── same-caption-summary.js │ │ │ ├── scope-value.js │ │ │ ├── td-has-header.js │ │ │ ├── td-headers-attr.js │ │ │ └── th-has-data-cells.js │ │ ├── theme.css │ │ └── visibility/ │ │ └── hidden-content.js │ ├── commons/ │ │ ├── aria/ │ │ │ ├── allowed-attr.js │ │ │ ├── arialabel-text.js │ │ │ ├── arialabelledby-text.js │ │ │ ├── get-accessible-refs.js │ │ │ ├── get-element-unallowed-roles.js │ │ │ ├── get-explicit-role.js │ │ │ ├── get-owned-virtual.js │ │ │ ├── get-role-type.js │ │ │ ├── get-role.js │ │ │ ├── get-roles-by-type.js │ │ │ ├── get-roles-with-name-from-contents.js │ │ │ ├── implicit-role.js │ │ │ ├── is-accessible-ref.js │ │ │ ├── is-aria-role-allowed-on-element.js │ │ │ ├── is-combobox-popup.js │ │ │ ├── is-unsupported-role.js │ │ │ ├── is-valid-role.js │ │ │ ├── label-virtual.js │ │ │ ├── named-from-contents.js │ │ │ ├── required-attr.js │ │ │ ├── required-context.js │ │ │ ├── required-owned.js │ │ │ ├── roles.js │ │ │ ├── validate-attr-value.js │ │ │ └── validate-attr.js │ │ ├── color/ │ │ │ ├── center-point-of-rect.js │ │ │ ├── color.js │ │ │ ├── element-has-image.js │ │ │ ├── element-is-distinct.js │ │ │ ├── flatten-colors.js │ │ │ ├── get-background-color.js │ │ │ ├── get-contrast.js │ │ │ ├── get-foreground-color.js │ │ │ ├── get-own-background-color.js │ │ │ ├── get-stroke-colors-from-shadows.js │ │ │ ├── get-text-shadow-colors.js │ │ │ ├── has-valid-contrast-ratio.js │ │ │ ├── incomplete-data.js │ │ │ ├── parse-text-shadows.js │ │ │ └── stacking-context.js │ │ ├── dom/ │ │ │ ├── create-grid.js │ │ │ ├── find-elms-in-context.js │ │ │ ├── find-nearby-elms.js │ │ │ ├── find-up.js │ │ │ ├── focus-disabled.js │ │ │ ├── get-composed-parent.js │ │ │ ├── get-element-by-reference.js │ │ │ ├── get-element-coordinates.js │ │ │ ├── get-element-stack.js │ │ │ ├── get-modal-dialog.js │ │ │ ├── get-node-grid.js │ │ │ ├── get-overflow-hidden-ancestors.js │ │ │ ├── get-scroll-offset.js │ │ │ ├── get-tabbable-elements.js │ │ │ ├── get-target-rects.js │ │ │ ├── get-target-size.js │ │ │ ├── get-text-element-stack.js │ │ │ ├── get-viewport-size.js │ │ │ ├── get-visible-child-text-rects.js │ │ │ ├── has-content-virtual.js │ │ │ ├── has-lang-text.js │ │ │ ├── idrefs.js │ │ │ ├── inserted-into-focus-order.js │ │ │ ├── is-current-page-link.js │ │ │ ├── is-focusable.js │ │ │ ├── is-hidden-for-everyone.js │ │ │ ├── is-hidden-with-css.js │ │ │ ├── is-html5.js │ │ │ ├── is-in-tab-order.js │ │ │ ├── is-in-text-block.js │ │ │ ├── is-inert.js │ │ │ ├── is-modal-open.js │ │ │ ├── is-multiline.js │ │ │ ├── is-natively-focusable.js │ │ │ ├── is-node.js │ │ │ ├── is-offscreen.js │ │ │ ├── is-skip-link.js │ │ │ ├── is-visible-on-screen.js │ │ │ ├── is-visible-to-screenreader.js │ │ │ ├── is-visible.js │ │ │ ├── is-visual-content.js │ │ │ ├── shadow-elements-from-point.js │ │ │ ├── url-props-from-attribute.js │ │ │ ├── visibility-methods.js │ │ │ ├── visually-contains.js │ │ │ ├── visually-overlaps.js │ │ │ └── visually-sort.js │ │ ├── forms/ │ │ │ ├── is-aria-combobox.js │ │ │ ├── is-aria-listbox.js │ │ │ ├── is-aria-range.js │ │ │ ├── is-aria-textbox.js │ │ │ ├── is-disabled.js │ │ │ ├── is-native-select.js │ │ │ └── is-native-textbox.js │ │ ├── index.js │ │ ├── matches/ │ │ │ ├── attributes.js │ │ │ ├── condition.js │ │ │ ├── explicit-role.js │ │ │ ├── from-definition.js │ │ │ ├── from-function.js │ │ │ ├── from-primative.js │ │ │ ├── has-accessible-name.js │ │ │ ├── implicit-role.js │ │ │ ├── node-name.js │ │ │ ├── properties.js │ │ │ └── semantic-role.js │ │ ├── math/ │ │ │ ├── get-bounding-rect.js │ │ │ ├── get-intersection-rect.js │ │ │ ├── get-offset.js │ │ │ ├── get-rect-center.js │ │ │ ├── has-visual-overlap.js │ │ │ ├── is-point-in-rect.js │ │ │ ├── rect-has-minimum-size.js │ │ │ ├── rects-overlap.js │ │ │ └── split-rects.js │ │ ├── standards/ │ │ │ ├── get-aria-roles-by-type.js │ │ │ ├── get-aria-roles-supporting-name-from-content.js │ │ │ ├── get-element-spec.js │ │ │ ├── get-elements-by-content-type.js │ │ │ └── get-global-aria-attrs.js │ │ ├── table/ │ │ │ ├── get-cell-position.js │ │ │ ├── get-headers.js │ │ │ ├── get-scope.js │ │ │ ├── is-column-header.js │ │ │ ├── is-data-cell.js │ │ │ ├── is-data-table.js │ │ │ ├── is-header.js │ │ │ ├── is-row-header.js │ │ │ ├── to-grid.js │ │ │ └── traverse.js │ │ ├── text/ │ │ │ ├── accessible-text.js │ │ │ ├── form-control-value.js │ │ │ ├── is-human-interpretable.js │ │ │ ├── is-icon-ligature.js │ │ │ ├── is-valid-autocomplete.js │ │ │ ├── label-text.js │ │ │ ├── label-virtual.js │ │ │ ├── native-text-alternative.js │ │ │ ├── native-text-methods.js │ │ │ ├── sanitize.js │ │ │ ├── subtree-text.js │ │ │ ├── unicode.js │ │ │ ├── visible-text-nodes.js │ │ │ └── visible-virtual.js │ │ └── utils/ │ │ └── index.js │ ├── core/ │ │ ├── base/ │ │ │ ├── audit.js │ │ │ ├── cache.js │ │ │ ├── check-result.js │ │ │ ├── check.js │ │ │ ├── context.js │ │ │ ├── rule-result.js │ │ │ ├── rule.js │ │ │ └── virtual-node/ │ │ │ ├── abstract-virtual-node.js │ │ │ ├── serial-virtual-node.js │ │ │ └── virtual-node.js │ │ ├── constants.js │ │ ├── export.js │ │ ├── index.js │ │ ├── log.js │ │ ├── public/ │ │ │ ├── cleanup.js │ │ │ ├── configure.js │ │ │ ├── finish-run.js │ │ │ ├── frame-messenger.js │ │ │ ├── get-rules.js │ │ │ ├── load.js │ │ │ ├── plugins.js │ │ │ ├── reporter.js │ │ │ ├── reset.js │ │ │ ├── run-partial.js │ │ │ ├── run-rules.js │ │ │ ├── run-virtual-rule.js │ │ │ ├── run.js │ │ │ ├── setup.js │ │ │ └── teardown.js │ │ ├── reporters/ │ │ │ ├── helpers/ │ │ │ │ ├── 000_runfirst.js │ │ │ │ ├── failure-summary.js │ │ │ │ ├── incomplete-fallback-msg.js │ │ │ │ └── process-aggregate.js │ │ │ ├── na.js │ │ │ ├── no-passes.js │ │ │ ├── raw-env.js │ │ │ ├── raw.js │ │ │ ├── v1.js │ │ │ └── v2.js │ │ └── utils/ │ │ ├── aggregate.js │ │ ├── aggregateChecks.js │ │ ├── aggregateNodeResults.js │ │ ├── aggregateResult.js │ │ ├── are-styles-set.js │ │ ├── assert.js │ │ ├── check-helper.js │ │ ├── clone.js │ │ ├── closest.js │ │ ├── collect-results-from-frames.js │ │ ├── contains.js │ │ ├── deep-merge.js │ │ ├── dq-element.js │ │ ├── element-matches.js │ │ ├── escape-selector.js │ │ ├── extend-meta-data.js │ │ ├── filter-html-attrs.js │ │ ├── finalize-result.js │ │ ├── find-by.js │ │ ├── flattened-tree.js │ │ ├── frame-messenger/ │ │ │ ├── frame-messenger.js │ │ │ └── subscribe.js │ │ ├── get-all-checks.js │ │ ├── get-ancestry.js │ │ ├── get-base-lang.js │ │ ├── get-check-message.js │ │ ├── get-check-option.js │ │ ├── get-element-source.js │ │ ├── get-environment-data.js │ │ ├── get-frame-contexts.js │ │ ├── get-friendly-uri-end.js │ │ ├── get-node-attributes.js │ │ ├── get-root-node.js │ │ ├── get-rule.js │ │ ├── get-scroll.js │ │ ├── get-selector.js │ │ ├── get-shadow-selector.js │ │ ├── get-standards.js │ │ ├── get-stylesheet-factory.js │ │ ├── get-xpath.js │ │ ├── is-array-like.js │ │ ├── is-context.js │ │ ├── is-hidden.js │ │ ├── is-html-element.js │ │ ├── is-node-in-context.js │ │ ├── is-shadow-root.js │ │ ├── is-xhtml.js │ │ ├── matchAncestry.js │ │ ├── matches.js │ │ ├── memoize.js │ │ ├── merge-results.js │ │ ├── node-lookup.js │ │ ├── node-serializer.js │ │ ├── node-sorter.js │ │ ├── normalize-run-options.js │ │ ├── object-has-own.js │ │ ├── parse-crossorigin-stylesheet.js │ │ ├── parse-sameorigin-stylesheet.js │ │ ├── parse-tabindex.js │ │ ├── performance-timer.js │ │ ├── pollyfills.elements-from-point.js │ │ ├── preload-cssom.js │ │ ├── preload-media.js │ │ ├── preload.js │ │ ├── process-message.js │ │ ├── publish-metadata.js │ │ ├── qsa.js │ │ ├── queue.js │ │ ├── respondable.js │ │ ├── rule-error.js │ │ ├── rule-should-run.js │ │ ├── scroll-state.js │ │ ├── select.js │ │ ├── selector-cache.js │ │ ├── send-command-to-frame.js │ │ ├── serialize-error.js │ │ ├── shadow-select-all.js │ │ ├── shadow-select.js │ │ ├── to-array.js │ │ ├── token-list.js │ │ └── valid-langs.js │ ├── get-webdriver.js │ ├── integration/ │ │ ├── adapter.js │ │ ├── api/ │ │ │ └── external/ │ │ │ └── index.js │ │ ├── full/ │ │ │ ├── README.md │ │ │ ├── all-rules/ │ │ │ │ ├── all-rules.html │ │ │ │ ├── all-rules.js │ │ │ │ └── frames/ │ │ │ │ └── focusable.html │ │ │ ├── aria-hidden-body/ │ │ │ │ ├── fail.html │ │ │ │ ├── fail.js │ │ │ │ ├── frames/ │ │ │ │ │ └── frame-hidden-body.html │ │ │ │ ├── pass.html │ │ │ │ └── pass.js │ │ │ ├── aria-hidden-focus/ │ │ │ │ ├── modal.html │ │ │ │ └── modal.js │ │ │ ├── async/ │ │ │ │ ├── async.html │ │ │ │ └── async.js │ │ │ ├── bypass/ │ │ │ │ ├── aria-header.html │ │ │ │ ├── fail.html │ │ │ │ ├── fail.js │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ ├── level2-a.html │ │ │ │ │ └── level2.html │ │ │ │ ├── header-iframe-fail.html │ │ │ │ ├── header-iframe-fail.js │ │ │ │ ├── header-iframe-pass.html │ │ │ │ ├── header-iframe-pass.js │ │ │ │ ├── header1.html │ │ │ │ ├── header2.html │ │ │ │ ├── pass-tests.js │ │ │ │ ├── region.html │ │ │ │ └── skip-link.html │ │ │ ├── configuration/ │ │ │ │ ├── tag-exclude.html │ │ │ │ └── tag-exclude.js │ │ │ ├── configure-options/ │ │ │ │ ├── configure-options.html │ │ │ │ └── configure-options.js │ │ │ ├── context/ │ │ │ │ ├── context.html │ │ │ │ ├── context.js │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1.html │ │ │ │ │ ├── level2-a.html │ │ │ │ │ ├── level2-b.html │ │ │ │ │ └── shadow-frame.html │ │ │ │ ├── shadow-dom.html │ │ │ │ └── shadow-dom.js │ │ │ ├── contrast/ │ │ │ │ ├── blending.html │ │ │ │ ├── blending.js │ │ │ │ ├── code-highlighting.html │ │ │ │ ├── code-highlighting.js │ │ │ │ ├── memory.html │ │ │ │ ├── memory.js │ │ │ │ ├── prototype-lib-1.7.3.js │ │ │ │ ├── prototype.html │ │ │ │ ├── prototype.js │ │ │ │ ├── shadow-dom.html │ │ │ │ ├── shadow-dom.js │ │ │ │ ├── sticky-header.html │ │ │ │ └── sticky-header.js │ │ │ ├── contrast-enhanced/ │ │ │ │ ├── simple.html │ │ │ │ └── simple.js │ │ │ ├── css-orientation-lock/ │ │ │ │ ├── incomplete.html │ │ │ │ ├── incomplete.js │ │ │ │ ├── passes.html │ │ │ │ ├── passes.js │ │ │ │ ├── violations.css │ │ │ │ ├── violations.html │ │ │ │ └── violations.js │ │ │ ├── definition-list/ │ │ │ │ ├── dl-role.html │ │ │ │ ├── dl-role.js │ │ │ │ ├── dlitem-role.html │ │ │ │ └── dlitem-role.js │ │ │ ├── dialog/ │ │ │ │ ├── dialog.html │ │ │ │ └── dialog.js │ │ │ ├── document-title/ │ │ │ │ ├── document-title-fail.html │ │ │ │ ├── document-title-fail.js │ │ │ │ ├── document-title-pass.html │ │ │ │ ├── document-title-pass.js │ │ │ │ └── frames/ │ │ │ │ ├── level1.html │ │ │ │ ├── level2-a.html │ │ │ │ └── level2.html │ │ │ ├── error-occurred/ │ │ │ │ ├── error-frame.html │ │ │ │ ├── error-frame.js │ │ │ │ ├── error-occurred.html │ │ │ │ ├── error-occurred.js │ │ │ │ ├── error-ruleset.js │ │ │ │ └── frames/ │ │ │ │ └── error.html │ │ │ ├── frame-tested/ │ │ │ │ ├── frame-tested-fail.html │ │ │ │ ├── frame-tested-fail.js │ │ │ │ ├── frame-tested-incomplete.html │ │ │ │ ├── frame-tested-incomplete.js │ │ │ │ ├── frame-tested-pass.html │ │ │ │ ├── frame-tested-pass.js │ │ │ │ └── frames/ │ │ │ │ ├── nested-no-axe.html │ │ │ │ ├── no-axe.html │ │ │ │ └── with-axe.html │ │ │ ├── frame-wait-time/ │ │ │ │ ├── frame-wait-time.html │ │ │ │ ├── frame-wait-time.js │ │ │ │ └── frames/ │ │ │ │ └── frame.html │ │ │ ├── get-selector/ │ │ │ │ ├── get-selector.js │ │ │ │ └── get-selector.xhtml │ │ │ ├── heading-order/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── heading.html │ │ │ │ │ └── nested-heading.html │ │ │ │ ├── no-heading-page.html │ │ │ │ ├── no-heading-page.js │ │ │ │ ├── partial-context-with-iframe-excluded.html │ │ │ │ ├── partial-context-with-iframe-excluded.js │ │ │ │ ├── partial-context-with-iframe.html │ │ │ │ ├── partial-context-with-iframe.js │ │ │ │ ├── partial-context.html │ │ │ │ └── partial-context.js │ │ │ ├── html-has-lang/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1.html │ │ │ │ │ ├── level2-a.html │ │ │ │ │ └── level2.html │ │ │ │ ├── html-has-lang-fail-xml-lang.html │ │ │ │ ├── html-has-lang-fail-xml-lang.js │ │ │ │ ├── html-has-lang-fail.html │ │ │ │ ├── html-has-lang-fail.js │ │ │ │ ├── html-has-lang-pass-xhtml.js │ │ │ │ ├── html-has-lang-pass-xhtml.xhtml │ │ │ │ ├── html-has-lang-pass.html │ │ │ │ └── html-has-lang-pass.js │ │ │ ├── html-lang-valid/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1.html │ │ │ │ │ ├── level2-a.html │ │ │ │ │ ├── level2-b.html │ │ │ │ │ ├── level2-c.html │ │ │ │ │ ├── level2-d.html │ │ │ │ │ ├── level2-e.html │ │ │ │ │ └── level2.html │ │ │ │ ├── html-lang-valid.html │ │ │ │ └── html-lang-valid.js │ │ │ ├── identical-links-same-purpose/ │ │ │ │ ├── frames/ │ │ │ │ │ └── level1.html │ │ │ │ ├── page.html │ │ │ │ └── page.js │ │ │ ├── incomplete/ │ │ │ │ ├── color-contrast.html │ │ │ │ ├── color-contrast.js │ │ │ │ ├── th-has-data-cells.html │ │ │ │ └── th-has-data-cells.js │ │ │ ├── is-xhtml/ │ │ │ │ ├── is-xhtml.js │ │ │ │ └── is-xhtml.xhtml │ │ │ ├── isolated-env/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── focusable.html │ │ │ │ │ └── isolated.html │ │ │ │ ├── isolated-env.html │ │ │ │ └── isolated-env.js │ │ │ ├── jquery/ │ │ │ │ ├── run-include-exclude.html │ │ │ │ ├── run-include-exclude.js │ │ │ │ ├── run-object.html │ │ │ │ └── run-object.js │ │ │ ├── landmark-banner-is-top-level/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ └── level2.html │ │ │ │ ├── landmark-banner-is-top-level-fail.html │ │ │ │ ├── landmark-banner-is-top-level-fail.js │ │ │ │ ├── landmark-banner-is-top-level-pass.html │ │ │ │ └── landmark-banner-is-top-level-pass.js │ │ │ ├── landmark-complementary-is-top-level/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ └── level2.html │ │ │ │ ├── landmark-complementary-is-top-level-fail.html │ │ │ │ ├── landmark-complementary-is-top-level-fail.js │ │ │ │ ├── landmark-complementary-is-top-level-pass.html │ │ │ │ └── landmark-complementary-is-top-level-pass.js │ │ │ ├── landmark-contentinfo-is-top-level/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ └── level2.html │ │ │ │ ├── landmark-contentinfo-is-top-level-fail.html │ │ │ │ ├── landmark-contentinfo-is-top-level-fail.js │ │ │ │ ├── landmark-contentinfo-is-top-level-pass.html │ │ │ │ └── landmark-contentinfo-is-top-level-pass.js │ │ │ ├── landmark-main-is-top-level/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ ├── level2-a.html │ │ │ │ │ └── level2.html │ │ │ │ ├── landmark-main-is-top-level-fail.html │ │ │ │ ├── landmark-main-is-top-level-fail.js │ │ │ │ ├── landmark-main-is-top-level-pass.html │ │ │ │ └── landmark-main-is-top-level-pass.js │ │ │ ├── landmark-no-duplicate-banner/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ └── level2.html │ │ │ │ ├── landmark-no-duplicate-banner-fail.html │ │ │ │ ├── landmark-no-duplicate-banner-fail.js │ │ │ │ ├── landmark-no-duplicate-banner-pass.html │ │ │ │ └── landmark-no-duplicate-banner-pass.js │ │ │ ├── landmark-no-duplicate-contentinfo/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ └── level2.html │ │ │ │ ├── landmark-no-duplicate-contentinfo-fail.html │ │ │ │ ├── landmark-no-duplicate-contentinfo-fail.js │ │ │ │ ├── landmark-no-duplicate-contentinfo-pass.html │ │ │ │ └── landmark-no-duplicate-contentinfo-pass.js │ │ │ ├── landmark-no-duplicate-main/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ └── level2.html │ │ │ │ ├── landmark-no-duplicate-main-fail.html │ │ │ │ ├── landmark-no-duplicate-main-fail.js │ │ │ │ ├── landmark-no-duplicate-main-pass.html │ │ │ │ └── landmark-no-duplicate-main-pass.js │ │ │ ├── landmark-one-main/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ ├── level2-a.html │ │ │ │ │ └── level2.html │ │ │ │ ├── landmark-one-main-fail.html │ │ │ │ ├── landmark-one-main-fail.js │ │ │ │ ├── landmark-one-main-pass1.html │ │ │ │ ├── landmark-one-main-pass1.js │ │ │ │ ├── landmark-one-main-pass2.html │ │ │ │ ├── landmark-one-main-pass2.js │ │ │ │ ├── landmark-one-main-pass3.html │ │ │ │ ├── landmark-one-main-pass3.js │ │ │ │ ├── landmark-one-main-pass4.html │ │ │ │ └── landmark-one-main-pass4.js │ │ │ ├── list/ │ │ │ │ ├── li-role.html │ │ │ │ ├── li-role.js │ │ │ │ ├── list-role.html │ │ │ │ └── list-role.js │ │ │ ├── meta-refresh/ │ │ │ │ ├── meta-refresh-fail.js │ │ │ │ ├── meta-refresh-fail1.html │ │ │ │ ├── meta-refresh-inapplicable.js │ │ │ │ ├── meta-refresh-inapplicable1.html │ │ │ │ ├── meta-refresh-inapplicable2.html │ │ │ │ ├── meta-refresh-pass.js │ │ │ │ ├── meta-refresh-pass1.html │ │ │ │ └── meta-refresh-pass2.html │ │ │ ├── meta-refresh-no-exceptions/ │ │ │ │ ├── meta-refresh-fail.js │ │ │ │ ├── meta-refresh-fail1.html │ │ │ │ ├── meta-refresh-inapplicable.js │ │ │ │ ├── meta-refresh-inapplicable1.html │ │ │ │ ├── meta-refresh-inapplicable2.html │ │ │ │ ├── meta-refresh-pass.js │ │ │ │ ├── meta-refresh-pass1.html │ │ │ │ └── meta-refresh-pass2.html │ │ │ ├── no-autoplay-audio/ │ │ │ │ ├── no-autoplay-audio.html │ │ │ │ └── no-autoplay-audio.js │ │ │ ├── options-parameter/ │ │ │ │ ├── frames/ │ │ │ │ │ └── frame.html │ │ │ │ ├── options-parameter.html │ │ │ │ └── options-parameter.js │ │ │ ├── page-has-heading-one/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1-fail.html │ │ │ │ │ ├── level1.html │ │ │ │ │ ├── level2-a.html │ │ │ │ │ └── level2.html │ │ │ │ ├── page-has-heading-one-fail.html │ │ │ │ ├── page-has-heading-one-fail.js │ │ │ │ ├── page-has-heading-one-pass1.html │ │ │ │ ├── page-has-heading-one-pass1.js │ │ │ │ ├── page-has-heading-one-pass10.html │ │ │ │ ├── page-has-heading-one-pass10.js │ │ │ │ ├── page-has-heading-one-pass2.html │ │ │ │ ├── page-has-heading-one-pass2.js │ │ │ │ ├── page-has-heading-one-pass3.html │ │ │ │ ├── page-has-heading-one-pass3.js │ │ │ │ ├── page-has-heading-one-pass4.html │ │ │ │ ├── page-has-heading-one-pass4.js │ │ │ │ ├── page-has-heading-one-pass5.html │ │ │ │ ├── page-has-heading-one-pass5.js │ │ │ │ ├── page-has-heading-one-pass6.html │ │ │ │ ├── page-has-heading-one-pass6.js │ │ │ │ ├── page-has-heading-one-pass7.html │ │ │ │ ├── page-has-heading-one-pass7.js │ │ │ │ ├── page-has-heading-one-pass8.html │ │ │ │ ├── page-has-heading-one-pass8.js │ │ │ │ ├── page-has-heading-one-pass9.html │ │ │ │ └── page-has-heading-one-pass9.js │ │ │ ├── patch/ │ │ │ │ ├── patch.html │ │ │ │ └── patch.mjs │ │ │ ├── plugin/ │ │ │ │ ├── plugin.html │ │ │ │ └── plugin.js │ │ │ ├── preload/ │ │ │ │ ├── import-non-existing-cross-origin.css │ │ │ │ ├── preload.html │ │ │ │ └── preload.js │ │ │ ├── preload-cssom/ │ │ │ │ ├── base.css │ │ │ │ ├── cyclic-cross-origin-import-1.css │ │ │ │ ├── cyclic-cross-origin-import-2.css │ │ │ │ ├── cyclic-import-1.css │ │ │ │ ├── cyclic-import-2.css │ │ │ │ ├── frames/ │ │ │ │ │ └── level1.html │ │ │ │ ├── import-non-existing-cross-origin.css │ │ │ │ ├── multiple-import-1.css │ │ │ │ ├── multiple-import-2.css │ │ │ │ ├── multiple-import-3.css │ │ │ │ ├── nested-import-1.css │ │ │ │ ├── nested-import-2.css │ │ │ │ ├── nested-import-3.css │ │ │ │ ├── preload-cssom.html │ │ │ │ └── preload-cssom.js │ │ │ ├── region/ │ │ │ │ ├── frames/ │ │ │ │ │ ├── region-fail.html │ │ │ │ │ ├── region-nested.html │ │ │ │ │ └── region.html │ │ │ │ ├── region-fail-iframe.html │ │ │ │ ├── region-fail-iframe.js │ │ │ │ ├── region-fail-nested-iframe.html │ │ │ │ ├── region-fail-nested-iframe.js │ │ │ │ ├── region-fail.html │ │ │ │ ├── region-fail.js │ │ │ │ ├── region-iframe-with-landmarks.html │ │ │ │ ├── region-iframe-within-landmark.html │ │ │ │ ├── region-pass-nested-iframe.html │ │ │ │ ├── region-pass.html │ │ │ │ └── region-pass.js │ │ │ ├── rerun/ │ │ │ │ ├── frames/ │ │ │ │ │ └── frame.html │ │ │ │ ├── rerun.html │ │ │ │ └── rerun.js │ │ │ ├── run-partial/ │ │ │ │ ├── after-method.html │ │ │ │ ├── after-method.js │ │ │ │ ├── context-size-focusable.html │ │ │ │ ├── context-size-focusable.js │ │ │ │ ├── frames/ │ │ │ │ │ ├── heading-frame-h3.html │ │ │ │ │ ├── heading-h2.html │ │ │ │ │ ├── link-nested.html │ │ │ │ │ └── link.html │ │ │ │ ├── initiator.html │ │ │ │ ├── initiator.js │ │ │ │ ├── page-level.html │ │ │ │ └── page-level.js │ │ │ ├── serializer/ │ │ │ │ ├── custom-source-serializer.js │ │ │ │ ├── frames/ │ │ │ │ │ ├── level1.html │ │ │ │ │ ├── level2-a.html │ │ │ │ │ └── level2-b.html │ │ │ │ ├── serializer.html │ │ │ │ └── serializer.js │ │ │ ├── skip-link/ │ │ │ │ ├── skip-link-fail.html │ │ │ │ ├── skip-link-fail.js │ │ │ │ ├── skip-link-pass.html │ │ │ │ └── skip-link-pass.js │ │ │ ├── strict-csp/ │ │ │ │ ├── strict-csp.html │ │ │ │ └── strict-csp.js │ │ │ ├── target-size/ │ │ │ │ ├── shadow-dom.html │ │ │ │ ├── shadow-dom.js │ │ │ │ ├── target-size.html │ │ │ │ ├── target-size.js │ │ │ │ ├── too-many-rects.html │ │ │ │ └── too-many-rects.js │ │ │ ├── test-webdriver.js │ │ │ ├── umd/ │ │ │ │ ├── mock-define.js │ │ │ │ ├── mock-module-exports.js │ │ │ │ ├── umd-define.html │ │ │ │ ├── umd-define.js │ │ │ │ ├── umd-module-exports.html │ │ │ │ ├── umd-module-exports.js │ │ │ │ ├── umd-window.html │ │ │ │ └── umd-window.js │ │ │ └── xml-lang-mismatch/ │ │ │ ├── xml-lang-mismatch.fail.js │ │ │ ├── xml-lang-mismatch.fail1.html │ │ │ ├── xml-lang-mismatch.fail2.html │ │ │ ├── xml-lang-mismatch.inapplicable.js │ │ │ ├── xml-lang-mismatch.inapplicable1.html │ │ │ ├── xml-lang-mismatch.inapplicable2.html │ │ │ ├── xml-lang-mismatch.pass.js │ │ │ ├── xml-lang-mismatch.pass1.html │ │ │ ├── xml-lang-mismatch.pass2.html │ │ │ ├── xml-lang-mismatch.pass3.html │ │ │ ├── xml-lang-mismatch.pass4.html │ │ │ └── xml-lang-mismatch.pass5.html │ │ ├── no-ui-reporter.js │ │ ├── rules/ │ │ │ ├── README.md │ │ │ ├── accesskeys/ │ │ │ │ ├── accesskeys.html │ │ │ │ ├── accesskeys.json │ │ │ │ └── frame.html │ │ │ ├── area-alt/ │ │ │ │ ├── area-alt.html │ │ │ │ └── area-alt.json │ │ │ ├── aria-allowed-attr/ │ │ │ │ ├── failures.html │ │ │ │ ├── failures.json │ │ │ │ ├── incomplete.html │ │ │ │ ├── incomplete.json │ │ │ │ ├── passes.html │ │ │ │ └── passes.json │ │ │ ├── aria-allowed-role/ │ │ │ │ ├── aria-allowed-role.html │ │ │ │ ├── aria-allowed-role.json │ │ │ │ └── dummy.html │ │ │ ├── aria-braille-equivalent/ │ │ │ │ ├── aria-braille-equivalent.html │ │ │ │ └── aria-braille-equivalent.json │ │ │ ├── aria-command-name/ │ │ │ │ ├── aria-command-name.html │ │ │ │ └── aria-command-name.json │ │ │ ├── aria-conditional-attr/ │ │ │ │ ├── aria-conditional-attr.html │ │ │ │ └── aria-conditional-attr.json │ │ │ ├── aria-deprecated-role/ │ │ │ │ ├── aria-deprecated-role.html │ │ │ │ └── aria-deprecated-role.json │ │ │ ├── aria-dialog-name/ │ │ │ │ ├── aria-dialog-name.html │ │ │ │ └── aria-dialog-name.json │ │ │ ├── aria-hidden-focus/ │ │ │ │ ├── aria-hidden-focus.html │ │ │ │ └── aria-hidden-focus.json │ │ │ ├── aria-input-field-name/ │ │ │ │ ├── aria-input-field-name.html │ │ │ │ └── aria-input-field-name.json │ │ │ ├── aria-meter-name/ │ │ │ │ ├── aria-meter-name.html │ │ │ │ └── aria-meter-name.json │ │ │ ├── aria-progressbar-name/ │ │ │ │ ├── aria-progressbar-name.html │ │ │ │ └── aria-progressbar-name.json │ │ │ ├── aria-prohibited-attr/ │ │ │ │ ├── aria-prohibited-attr.html │ │ │ │ └── aria-prohibited-attr.json │ │ │ ├── aria-required-attr/ │ │ │ │ ├── required-attr.html │ │ │ │ └── required-attr.json │ │ │ ├── aria-required-children/ │ │ │ │ ├── aria-required-children.html │ │ │ │ └── aria-required-children.json │ │ │ ├── aria-required-parent/ │ │ │ │ ├── aria-required-parent.html │ │ │ │ └── aria-required-parent.json │ │ │ ├── aria-roledescription/ │ │ │ │ ├── aria-roledescription.html │ │ │ │ └── aria-roledescription.json │ │ │ ├── aria-roles/ │ │ │ │ ├── aria-roles.html │ │ │ │ └── aria-roles.json │ │ │ ├── aria-tab-name/ │ │ │ │ ├── aria-tab-name.html │ │ │ │ └── aria-tab-name.json │ │ │ ├── aria-text/ │ │ │ │ ├── aria-text.html │ │ │ │ └── aria-text.json │ │ │ ├── aria-toggle-field-name/ │ │ │ │ ├── aria-toggle-field-name.html │ │ │ │ └── aria-toggle-field-name.json │ │ │ ├── aria-tooltip-name/ │ │ │ │ ├── aria-tooltip-name.html │ │ │ │ └── aria-tooltip-name.json │ │ │ ├── aria-treeitem-name/ │ │ │ │ ├── aria-treeitem-name.html │ │ │ │ └── aria-treeitem-name.json │ │ │ ├── aria-valid-attr/ │ │ │ │ ├── aria-valid-attr.html │ │ │ │ └── aria-valid-attr.json │ │ │ ├── aria-valid-attr-value/ │ │ │ │ ├── aria-valid-attr-value.html │ │ │ │ └── aria-valid-attr-value.json │ │ │ ├── audio-caption/ │ │ │ │ ├── audio-caption.html │ │ │ │ └── audio-caption.json │ │ │ ├── autocomplete-valid/ │ │ │ │ ├── autocomplete-valid.html │ │ │ │ └── autocomplete-valid.json │ │ │ ├── avoid-inline-spacing/ │ │ │ │ ├── avoid-inline-spacing.html │ │ │ │ └── avoid-inline-spacing.json │ │ │ ├── blink/ │ │ │ │ ├── blink.html │ │ │ │ └── blink.json │ │ │ ├── button-name/ │ │ │ │ ├── button-name.html │ │ │ │ └── button-name.json │ │ │ ├── color-contrast/ │ │ │ │ ├── color-contrast.html │ │ │ │ ├── color-contrast.json │ │ │ │ ├── text-shadows.html │ │ │ │ └── text-shadows.json │ │ │ ├── color-contrast-enhanced/ │ │ │ │ ├── color-contrast-enhanced.html │ │ │ │ └── color-contrast-enhanced.json │ │ │ ├── definition-list/ │ │ │ │ ├── definition-list.html │ │ │ │ └── definition-list.json │ │ │ ├── dlitem/ │ │ │ │ ├── dlitem.html │ │ │ │ └── dlitem.json │ │ │ ├── duplicate-id/ │ │ │ │ ├── duplicate-id.html │ │ │ │ └── duplicate-id.json │ │ │ ├── duplicate-id-active/ │ │ │ │ ├── duplicate-id-active.html │ │ │ │ └── duplicate-id-active.json │ │ │ ├── duplicate-id-aria/ │ │ │ │ ├── duplicate-id-aria.html │ │ │ │ └── duplicate-id-aria.json │ │ │ ├── empty-heading/ │ │ │ │ ├── empty-heading.html │ │ │ │ └── empty-heading.json │ │ │ ├── empty-table-header/ │ │ │ │ ├── empty-table-header.html │ │ │ │ └── empty-table-header.json │ │ │ ├── focus-order-semantics/ │ │ │ │ ├── focus-order-semantics.html │ │ │ │ └── focus-order-semantics.json │ │ │ ├── form-field-multiple-labels/ │ │ │ │ ├── form-field-multiple-labels.html │ │ │ │ └── form-field-multiple-labels.json │ │ │ ├── frame-focusable-content/ │ │ │ │ ├── frame-focusable-content.html │ │ │ │ ├── frame-focusable-content.json │ │ │ │ └── frames/ │ │ │ │ ├── focusable-negative-tabindex.html │ │ │ │ ├── focusable.html │ │ │ │ └── not-focusable.html │ │ │ ├── frame-title/ │ │ │ │ ├── frame-title.html │ │ │ │ ├── frame-title.json │ │ │ │ └── frames/ │ │ │ │ ├── level1.html │ │ │ │ ├── level1a.html │ │ │ │ ├── level2-a.html │ │ │ │ └── level2.html │ │ │ ├── frame-title-unique/ │ │ │ │ ├── frame-title-unique.html │ │ │ │ ├── frame-title-unique.json │ │ │ │ └── frames/ │ │ │ │ ├── level1.html │ │ │ │ ├── level1a.html │ │ │ │ ├── level2-a.html │ │ │ │ └── level2.html │ │ │ ├── heading-order/ │ │ │ │ ├── heading-order.html │ │ │ │ └── heading-order.json │ │ │ ├── hidden-content/ │ │ │ │ ├── hidden-content.html │ │ │ │ └── hidden-content.json │ │ │ ├── identical-links-same-purpose/ │ │ │ │ ├── identical-links-same-purpose.html │ │ │ │ └── identical-links-same-purpose.json │ │ │ ├── image-alt/ │ │ │ │ ├── image-alt.html │ │ │ │ └── image-alt.json │ │ │ ├── image-redundant-alt/ │ │ │ │ ├── image-redundant-alt.html │ │ │ │ └── image-redundant-alt.json │ │ │ ├── input-button-name/ │ │ │ │ ├── input-button-name.html │ │ │ │ └── input-button-name.json │ │ │ ├── input-image-alt/ │ │ │ │ ├── input-image-alt.html │ │ │ │ └── input-image-alt.json │ │ │ ├── label/ │ │ │ │ ├── label.html │ │ │ │ └── label.json │ │ │ ├── label-content-name-mismatch/ │ │ │ │ ├── label-content-name-mismatch.html │ │ │ │ └── label-content-name-mismatch.json │ │ │ ├── label-title-only/ │ │ │ │ ├── label-title-only.html │ │ │ │ └── label-title-only.json │ │ │ ├── landmark-unique/ │ │ │ │ ├── frame.html │ │ │ │ ├── landmark-unique-fail.html │ │ │ │ ├── landmark-unique-fail.json │ │ │ │ ├── landmark-unique-pass.html │ │ │ │ └── landmark-unique-pass.json │ │ │ ├── link-in-text-block/ │ │ │ │ ├── link-in-text-block.html │ │ │ │ └── link-in-text-block.json │ │ │ ├── link-name/ │ │ │ │ ├── link-name.html │ │ │ │ └── link-name.json │ │ │ ├── list/ │ │ │ │ ├── list.html │ │ │ │ └── list.json │ │ │ ├── listitem/ │ │ │ │ ├── listitem.html │ │ │ │ └── listitem.json │ │ │ ├── marquee/ │ │ │ │ ├── marquee.html │ │ │ │ └── marquee.json │ │ │ ├── meta-refresh/ │ │ │ │ ├── meta-refresh.html │ │ │ │ └── meta-refresh.json │ │ │ ├── meta-viewport/ │ │ │ │ ├── frames/ │ │ │ │ │ └── iframe-with-zooming-disabled.html │ │ │ │ ├── meta-viewport-fail1.html │ │ │ │ ├── meta-viewport-fail1.json │ │ │ │ ├── meta-viewport-fail2.html │ │ │ │ ├── meta-viewport-fail2.json │ │ │ │ ├── meta-viewport-pass1.html │ │ │ │ ├── meta-viewport-pass1.json │ │ │ │ ├── meta-viewport-pass2.html │ │ │ │ ├── meta-viewport-pass2.json │ │ │ │ ├── meta-viewport-pass3.html │ │ │ │ └── meta-viewport-pass3.json │ │ │ ├── meta-viewport-large/ │ │ │ │ ├── meta-viewport-large-fail1.html │ │ │ │ ├── meta-viewport-large-fail1.json │ │ │ │ ├── meta-viewport-large-fail2.html │ │ │ │ ├── meta-viewport-large-fail2.json │ │ │ │ ├── meta-viewport-large-pass1.html │ │ │ │ ├── meta-viewport-large-pass1.json │ │ │ │ ├── meta-viewport-large-pass2.html │ │ │ │ ├── meta-viewport-large-pass2.json │ │ │ │ ├── meta-viewport-large-pass3.html │ │ │ │ ├── meta-viewport-large-pass3.json │ │ │ │ ├── meta-viewport-large-pass4.html │ │ │ │ └── meta-viewport-large-pass4.json │ │ │ ├── nested-interactive/ │ │ │ │ ├── nested-interactive.html │ │ │ │ └── nested-interactive.json │ │ │ ├── object-alt/ │ │ │ │ ├── object-alt.html │ │ │ │ └── object-alt.json │ │ │ ├── p-as-heading/ │ │ │ │ ├── p-as-heading.html │ │ │ │ └── p-as-heading.json │ │ │ ├── preprocessor.js │ │ │ ├── presentation-role-conflict/ │ │ │ │ ├── presentation-role-conflict.html │ │ │ │ └── presentation-role-conflict.json │ │ │ ├── role-img-alt/ │ │ │ │ ├── role-img-alt.html │ │ │ │ └── role-img-alt.json │ │ │ ├── runner.js │ │ │ ├── scope-attr-valid/ │ │ │ │ ├── scope-attr-valid.html │ │ │ │ └── scope-attr-valid.json │ │ │ ├── scrollable-region-focusable/ │ │ │ │ ├── scrollable-region-focusable.html │ │ │ │ └── scrollable-region-focusable.json │ │ │ ├── select-name/ │ │ │ │ ├── select-name.html │ │ │ │ └── select-name.json │ │ │ ├── server-side-image-map/ │ │ │ │ ├── server-side-image-map.html │ │ │ │ └── server-side-image-map.json │ │ │ ├── summary-name/ │ │ │ │ ├── summary-name.html │ │ │ │ └── summary-name.json │ │ │ ├── svg-img-alt/ │ │ │ │ ├── svg-img-alt.html │ │ │ │ └── svg-img-alt.json │ │ │ ├── tabindex/ │ │ │ │ ├── tabindex.html │ │ │ │ └── tabindex.json │ │ │ ├── table-duplicate-name/ │ │ │ │ ├── table-duplicate-name.html │ │ │ │ └── table-duplicate-name.json │ │ │ ├── table-fake-caption/ │ │ │ │ ├── table-fake-caption.html │ │ │ │ └── table-fake-caption.json │ │ │ ├── target-size/ │ │ │ │ ├── target-size.html │ │ │ │ └── target-size.json │ │ │ ├── td-has-header/ │ │ │ │ ├── td-has-header.html │ │ │ │ └── td-has-header.json │ │ │ ├── td-headers-attr/ │ │ │ │ ├── td-headers-attr.html │ │ │ │ └── td-headers-attr.json │ │ │ ├── th-has-data-cells/ │ │ │ │ ├── th-has-data-cells.html │ │ │ │ └── th-has-data-cells.json │ │ │ ├── valid-lang/ │ │ │ │ ├── valid-lang.html │ │ │ │ └── valid-lang.json │ │ │ └── video-caption/ │ │ │ ├── video-caption.html │ │ │ └── video-caption.json │ │ └── virtual-rules/ │ │ ├── area-alt.js │ │ ├── aria-allowed-attr.js │ │ ├── aria-allowed-role.js │ │ ├── aria-braille-equivalent.js │ │ ├── aria-command-name.js │ │ ├── aria-conditional-attr.js │ │ ├── aria-dialog-name.js │ │ ├── aria-input-field-name.js │ │ ├── aria-meter-name.js │ │ ├── aria-progressbar-name.js │ │ ├── aria-prohibited-attr.js │ │ ├── aria-required-attr.js │ │ ├── aria-roledescription.js │ │ ├── aria-roles.js │ │ ├── aria-tab-name.js │ │ ├── aria-text.js │ │ ├── aria-toggle-field-name.js │ │ ├── aria-tooltip-name.js │ │ ├── aria-treeitem-name.js │ │ ├── aria-valid-attr-value.js │ │ ├── aria-valid-attr.js │ │ ├── autocomplete-valid.js │ │ ├── button-name.js │ │ ├── definition-list.js │ │ ├── empty-heading.js │ │ ├── empty-table-header.js │ │ ├── frame-title.js │ │ ├── html-has-lang.js │ │ ├── html-lang-valid.js │ │ ├── image-alt.js │ │ ├── input-button-name.js │ │ ├── input-image-alt.js │ │ ├── label.js │ │ ├── link-name.js │ │ ├── list.js │ │ ├── meta-refresh-no-exceptions.js │ │ ├── meta-refresh.js │ │ ├── meta-viewport.js │ │ ├── nested-interactive.js │ │ ├── object-alt.js │ │ ├── presentation-role-conflict.js │ │ ├── role-img-alt.js │ │ ├── select-name.js │ │ ├── summary-name.js │ │ ├── svg-img-alt.js │ │ ├── tabindex.js │ │ ├── table-duplicate-name.js │ │ └── valid-lang.js │ ├── karma.conf.js │ ├── mock/ │ │ └── frames/ │ │ ├── context.html │ │ ├── e2e.html │ │ ├── frame-frame.html │ │ ├── frame1.html │ │ ├── nested0.html │ │ ├── nested1.html │ │ ├── nested2.html │ │ ├── noHtml-config.html │ │ ├── nocode.html │ │ ├── results-timeout.html │ │ ├── rule-error.html │ │ ├── test.html │ │ ├── throwing.html │ │ ├── with-echo-axe.html │ │ ├── with-echo.html │ │ └── zombie-frame.html │ ├── node/ │ │ ├── jsdom.js │ │ ├── node.js │ │ └── package.json │ ├── playground.html │ ├── rule-matches/ │ │ ├── aria-allowed-attr-matches.js │ │ ├── aria-allowed-role-matches.js │ │ ├── aria-has-attr-matches.js │ │ ├── aria-hidden-focus-matches.js │ │ ├── aria-required-children-matches.js │ │ ├── aria-required-parent-matches.js │ │ ├── autocomplete-matches.js │ │ ├── color-contrast-matches.js │ │ ├── data-table-matches.js │ │ ├── duplicate-id-active-matches.js │ │ ├── duplicate-id-aria-matches.js │ │ ├── duplicate-id-misc-matches.js │ │ ├── frame-focusable-content-matches.js │ │ ├── frame-title-has-text-matches.js │ │ ├── has-implicit-chromium-role-matches.js │ │ ├── heading-matches.js │ │ ├── html-namespace-matches.js │ │ ├── html-xml-lang-mismatch.js │ │ ├── identical-links-same-purpose-matches.js │ │ ├── inserted-into-focus-order-matches.js │ │ ├── is-initiator-matches.js │ │ ├── is-visible-matches.js │ │ ├── is-visible-on-screen-matches.js │ │ ├── label-content-name-mismatch-matches.js │ │ ├── label-matches.js │ │ ├── landmark-has-body-context.js │ │ ├── landmark-unique-matches.js │ │ ├── layout-table-matches.js │ │ ├── link-in-text-block-matches.js │ │ ├── nested-interactive-matches.js │ │ ├── no-autoplay-audio-matches.js │ │ ├── no-empty-role-matches.js │ │ ├── no-explicit-name-required-matches.js │ │ ├── no-naming-method-matches.js │ │ ├── no-negative-tabindex.js │ │ ├── no-role-matches.js │ │ ├── object-is-loaded-matches.js │ │ ├── p-as-heading-matches.js │ │ ├── scrollable-region-focusable-matches.js │ │ ├── skip-link-matches.js │ │ ├── summary-interactive-matches.js │ │ ├── svg-namespace-matches.js │ │ ├── table-or-grid-role-matches.js │ │ └── widget-not-inline-matches.js │ ├── test-locales.js │ ├── test-rule-help-version.js │ ├── test-virtual-rules.js │ └── testutils.js ├── tsconfig.json └── typings/ └── axe-core/ └── axe-core-tests.ts