Skip to content

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, plus nodes[] (the actual elements failing the rule with target CSS selectors and failureSummary).
  • 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 via cypress-axe).
  • Component-test frameworks — run Axe against a rendered JSDOM / happy-dom (jest-axe).

Seen in

Last updated · 470 distilled / 1,213 read