-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Some time ago we stopped running both pa11ycrawler and axe-core (via bok-choy Selenium tests) because they rarely told us anything useful and often broke for unrelated reasons. But we really do want some form of automated accessibility checks in CI, and both the available a11y tools and our web page rendering strategy have changed significantly since we first chose that previous generation of a11y checks. We should choose a new tool (or set of tools) that strikes the best balance between the following objectives:
- Runs many/most of the accessibility checks that can be usefully done in an automated manner
- Generates reports which provide useful information to professional a11y coordinators
- Minimal effort to set up to start producing useful results
- Few false positives that fail CI builds for spurious reasons
- Few failures for reasons unrelated to the accessibility of the tested code
- Resilient to changes in the source code which don't impact the accessibility of the rendered pages (for example, not closely tied to the current page layout expectations)
- Ideally open source (especially for integration into the openedx repositories that 2U doesn't manage)
Here is an incomplete list of potential tools to employ for this:
- axe-core (there are indications this may cease to be open source in the near future)
- https://github.com/dequelabs/axe-core (also see Run axe-core/react in development as part of frontend-platform #39)
- https://github.com/nickcolley/jest-axe
- https://github.com/component-driven/cypress-axe
- https://storybook.js.org/docs/react/writing-tests/accessibility-testing (for checking components, for example in Paragon)
- Lighthouse (uses axe-core under the hood, but gives fancier reporting)
- IBM Equal Access Toolkit
- Pa11y
- JSX-specific tooling
- Surveys of other options
A/C:
- Discuss the list of objectives with Jeff Witt (2U's accessibility coordinator for edx.org) and add any that were overlooked
- Flesh out the list of potentially viable candidates
- Create a wiki page and/or spreadsheet with a rough estimation of how well each tool satisfies each of the stated objectives
- Suggest one or more tools to move forward with
- Write new tickets for next steps in employing the chosen tool(s)
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Backlog