SYSTEM Cited by 1 source
Axe Core¶
Axe Core is Deque
Systems' open-source accessibility rule engine — a JavaScript
library that audits a rendered DOM for WCAG (Web Content
Accessibility Guidelines) and best-practice violations. It ships
as axe-core on npm and is the substrate under framework bindings
like @axe-core/playwright,
@axe-core/webdriverjs, @axe-core/cypress, and the axe
DevTools browser extension.
What it does¶
- Runs rules against the current DOM — Axe's rule set maps to WCAG success criteria (Level A, AA, AAA) plus best-practice rules; each rule is a function over the DOM that produces zero or more violations.
- Tags rules for scope-picking:
wcag2a,wcag2aa,wcag21a,wcag21aa,wcag22aa,best-practice,EN-301-549,ACT, etc. Callers pick which rule-set runs via tag filters. - Returns structured violations — each violation has
id(rule name),impact(critical/serious/moderate/minor),description,help,helpUrl, plusnodes[](the actual elements failing the rule withtargetCSS selectors andfailureSummary). - Minimizes false positives as a design goal. The Axe rules list documents each rule's purpose and WCAG mapping.
Impact severity taxonomy¶
Axe categorises every violation by impact:
critical— directly prevents a user from accessing the content.serious— high likelihood of blocking access.moderate— partial access loss.minor— nuisance but not blocking.
Callers filter on impact to control signal volume — see
concepts/severity-filtered-violation-reporting and
patterns/severity-gated-violation-reporting.
Integration shape¶
Axe Core is DOM-centric: it runs in whatever environment exposes a DOM. Typical integrations:
- Browser extensions (axe DevTools) — manual audit on the currently loaded page.
- E2E test frameworks — inject Axe into the browser context
(
@axe-core/playwright,@axe-core/puppeteer,@axe-core/webdriverjs, Cypress viacypress-axe). - Component-test frameworks — run Axe against a rendered
JSDOM / happy-dom (
jest-axe).
Seen in¶
- sources/2025-01-07-slack-automated-accessibility-testing-at-slack
— Slack chose Axe Core over alternatives citing "extensive
capabilities and compatibility with our current end-to-end
(E2E) test frameworks" and its low false-positive rate.
Integration via
@axe-core/playwrightinto the existing Playwright E2E suite, scoped to WCAG 2.1 A + AA tags and filtered tocriticalonly at launch.
Related¶
- systems/axe-core-playwright — the Playwright binding.
- systems/playwright — the E2E framework carrying the Axe integration at Slack.
- concepts/wcag-2-1-a-aa-scope — canonical scope-picker for automated a11y via Axe's tag filter.
- concepts/severity-filtered-violation-reporting — canonical control lever over Axe's signal volume.
- patterns/severity-gated-violation-reporting — how Slack applied severity-filtering.