Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: use axe run options from accessibility-insights-web (disables empty-table-header rule) #2402

Merged
merged 4 commits into from
Feb 22, 2023

Conversation

dbjorge
Copy link
Contributor

@dbjorge dbjorge commented Feb 22, 2023

Details

Today, Service decides which axe-core rules to use via a RuleExclusion mechanism that starts from axe-core's default ruleset an disables rules we don't use in web.

This is inconsistent with how accessibility-insights-web defines its ruleset (via a combination of axe-core's rule tags and explicit overrides). The difference in mechanisms led to a mistake during the axe-core 4.6.3 update where the rulesets became inconsistent between web and service.

To ensure consistency between web and service, this PR replaces rule-exclusion.ts with a new mechanism based on the recently-added @accessibility-insights/axe-config package in the web repo. That package builds an axe config blob based on web's get-rule-inclusions.ts mechanism. This update bundles a copy of the current output of that package into axe-configuration.ts to form the basis of service's axe configuration, and removes rule-exclusion.ts entirely as obsolete.

Besides keeping the rules in sync, this also means adds a new axe-core config option that was previously overridden by web but not service ("pingWaitTime": 1000 instead of the default 500ms). I decided to keep the new value from the web config for consistency with web and because both values are still very comfortably within the margin of error set by the page level timeouts used in page-timeout-config.ts, even assuming pages with multiple levels of iframe nesting.

Motivation
  • Make it more reliable to keep web and service rules in sync.
  • Disables the unintentionally-enabled empty-table-header best-practice rule
Context
Testing

Besides the PR checklist, I validated that a local build of the scan package against test site https://www.catalog.update.microsoft.com/Home.aspx produced a report consistent with [email protected]'s results (no violations), where previously the service reported a slightly distinct set of errors (one violation of the empty-table-header rule, which was accidentally omitted from rule-exclusions.ts during the 4.6.3 update).

Pull request checklist

@dbjorge dbjorge requested a review from a team as a code owner February 22, 2023 00:27
@dbjorge dbjorge changed the title Axe config from web fix: use axe run options from accessibility-insights-web (disables empty-table-header rule) Feb 22, 2023
dbjorge added a commit to microsoft/accessibility-insights-web that referenced this pull request Feb 22, 2023
…6448)

#### Details

`axe-core` removed its `restoreScroll` option in mid-2020, when they
updated the only rule that scrolled the page to no longer ever do that
in [PR 2388](dequelabs/axe-core#2388).

This PR removes the obsolete option from our axe-config.

##### Motivation

* Code cleanup, axe-core doesn't care whether the option is passed or
not.
* Preparation for [using the axe-config output in
service](microsoft/accessibility-insights-service#2402)

##### Context

n/a

#### Pull request checklist
<!-- If a checklist item is not applicable to this change, write "n/a"
in the checkbox -->
- [n/a] Addresses an existing issue: #0000
- [x] Ran `yarn fastpass`
- [x] Added/updated relevant unit test(s) (and ran `yarn test`)
- [x] Verified code coverage for the changes made. Check coverage report
at: `<rootDir>/test-results/unit/coverage`
- [x] PR title *AND* final merge commit title both start with a semantic
tag (`fix:`, `chore:`, `feat(feature-name):`, `refactor:`). See
`CONTRIBUTING.md`.
- [n/a] (UI changes only) Added screenshots/GIFs to description above
- [n/a] (UI changes only) Verified usability with NVDA/JAWS
@dbjorge dbjorge merged commit 8c00499 into microsoft:main Feb 22, 2023
@dbjorge dbjorge deleted the axe-config-from-web branch February 22, 2023 18:07
abassey2 pushed a commit to msa2984/accessibility-insights-web that referenced this pull request Feb 22, 2023
…icrosoft#6448)

#### Details

`axe-core` removed its `restoreScroll` option in mid-2020, when they
updated the only rule that scrolled the page to no longer ever do that
in [PR 2388](dequelabs/axe-core#2388).

This PR removes the obsolete option from our axe-config.

##### Motivation

* Code cleanup, axe-core doesn't care whether the option is passed or
not.
* Preparation for [using the axe-config output in
service](microsoft/accessibility-insights-service#2402)

##### Context

n/a

#### Pull request checklist
<!-- If a checklist item is not applicable to this change, write "n/a"
in the checkbox -->
- [n/a] Addresses an existing issue: #0000
- [x] Ran `yarn fastpass`
- [x] Added/updated relevant unit test(s) (and ran `yarn test`)
- [x] Verified code coverage for the changes made. Check coverage report
at: `<rootDir>/test-results/unit/coverage`
- [x] PR title *AND* final merge commit title both start with a semantic
tag (`fix:`, `chore:`, `feat(feature-name):`, `refactor:`). See
`CONTRIBUTING.md`.
- [n/a] (UI changes only) Added screenshots/GIFs to description above
- [n/a] (UI changes only) Verified usability with NVDA/JAWS
abassey2 pushed a commit to msa2984/accessibility-insights-web that referenced this pull request Feb 22, 2023
…icrosoft#6448)

#### Details

`axe-core` removed its `restoreScroll` option in mid-2020, when they
updated the only rule that scrolled the page to no longer ever do that
in [PR 2388](dequelabs/axe-core#2388).

This PR removes the obsolete option from our axe-config.

##### Motivation

* Code cleanup, axe-core doesn't care whether the option is passed or
not.
* Preparation for [using the axe-config output in
service](microsoft/accessibility-insights-service#2402)

##### Context

n/a

#### Pull request checklist
<!-- If a checklist item is not applicable to this change, write "n/a"
in the checkbox -->
- [n/a] Addresses an existing issue: #0000
- [x] Ran `yarn fastpass`
- [x] Added/updated relevant unit test(s) (and ran `yarn test`)
- [x] Verified code coverage for the changes made. Check coverage report
at: `<rootDir>/test-results/unit/coverage`
- [x] PR title *AND* final merge commit title both start with a semantic
tag (`fix:`, `chore:`, `feat(feature-name):`, `refactor:`). See
`CONTRIBUTING.md`.
- [n/a] (UI changes only) Added screenshots/GIFs to description above
- [n/a] (UI changes only) Verified usability with NVDA/JAWS
dbjorge added a commit to microsoft/accessibility-insights-web that referenced this pull request Mar 1, 2023
#### Details

This PR:

* Updates the new `@accessibility-insights/axe-config` package to not
include an entry for `frame-tested`. We include this rule in AI4Web's
scans, but then post-process the results such that we don't present it
to users as an automated checks failure (we instead present it as a
special warning bar). This change means that a user relying on
axe-config won't include `frame-tested`, which will avoid the appearance
of issues reported by `axe-config` but not by automated checks.

##### Motivation

* Preparation for [using the axe-config output in
service](microsoft/accessibility-insights-service#2402)

##### Context

n/a

#### Pull request checklist
<!-- If a checklist item is not applicable to this change, write "n/a"
in the checkbox -->
- [n/a] Addresses an existing issue: #0000
- [x] Ran `yarn fastpass`
- [x] Added/updated relevant unit test(s) (and ran `yarn test`)
- [x] Verified code coverage for the changes made. Check coverage report
at: `<rootDir>/test-results/unit/coverage`
- [x] PR title *AND* final merge commit title both start with a semantic
tag (`fix:`, `chore:`, `feat(feature-name):`, `refactor:`). See
`CONTRIBUTING.md`.
- [n/a] (UI changes only) Added screenshots/GIFs to description above
- [n/a] (UI changes only) Verified usability with NVDA/JAWS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants