axe-core logo

axe-core

Open Source

The accessibility testing engine behind most modern a11y tools — embeddable, fast, and standards-aligned.

Visit websiteGitHub

Pricing

Free / Open source

Type

Automation

Languages

JavaScript, TypeScript

// VERDICT

Reach for axe-core when you want to bake accessibility checks into your unit/E2E tests and CI with a trusted, zero-false-positive engine. Skip it when you want a visual in-browser checker (WAVE), a CLI-first scanner (Pa11y), or manual assistive-tech testing.

Best for

An embeddable open-source accessibility engine you drop into automated tests - it scans rendered HTML against WCAG rules with zero false positives, and is the de-facto engine that powers many other a11y tools.

Avoid when

You want a no-code visual checker, manual screen-reader testing, or a hosted monitoring platform rather than a library in your test suite.

CI/CD fit

npm library · @axe-core/playwright, cypress-axe, Selenium · Jest/Vitest · GitHub Actions · GitLab CI

Languages

JavaScript · TypeScript

Team fit

Dev/QA teams shifting a11y left · Automation engineers · Teams adding a11y gates to CI

Setup

Easy

Maintenance

Low

Learning

Beginner

Licence

Free / Open source

// BEST FOR

  • Embedding accessibility checks directly in automated tests
  • Scanning rendered HTML against WCAG 2.0/2.1/2.2 (A/AA/AAA) rules
  • Zero false positives - flagged issues are real
  • Integrating with Playwright, Cypress, Selenium, Jest and more
  • The de-facto engine (it also powers Lighthouse's a11y audit and axe DevTools)
  • Catching the automatable share of a11y issues early, in CI

// AVOID WHEN

  • You want a no-code visual in-browser checker (WAVE)
  • You prefer a CLI/sitemap scanner over a code library (Pa11y)
  • You need manual screen-reader / assistive-tech testing
  • You want a hosted monitoring platform with dashboards
  • You expect automation to cover all of WCAG (it covers a subset)
  • You don't have an automated test suite to embed it in

// QUICK START

npm install --save-dev @axe-core/playwright
// in a test:
// const results = await new AxeBuilder({ page }).analyze();
// expect(results.violations).toEqual([]);

// ALTERNATIVES TO CONSIDER

ToolChoose it when
Pa11yYou want a CLI/CI scanner over URLs or a sitemap rather than a code library.
LighthouseYou want a broader audit (a11y + performance + SEO) in one run.
WAVEYou want a visual in-browser checker for manual evaluation.

// FEATURES

  • WCAG 2.0/2.1/2.2 rule coverage
  • Zero false-positive philosophy
  • Embeddable in any browser-driven test runner
  • Integrations for Cypress, Playwright, Selenium, Jest, Storybook
  • Best-practice rules beyond strict WCAG
  • Custom rule and check authoring

// PROS

  • Industry standard for automated a11y checks
  • Zero-false-positive design — every flagged issue is real
  • Drops into existing E2E and unit test suites
  • Active development by Deque

// CONS

  • Catches roughly 30–40% of WCAG issues — manual review still required
  • Rule-specific configuration can be involved
  • Best paired with screen-reader and keyboard testing

// EXAMPLE QA WORKFLOW

  1. Install axe-core or an integration (Playwright/Cypress/Selenium)

  2. Call axe against the page/DOM in your tests

  3. Assert there are no violations (zero false positives makes this safe)

  4. Cover key pages and interactive states

  5. Fail the CI build on violations

  6. Complement automated runs with manual a11y checks

// Practise with axe-core

Put axe-core to work on a realistic app with seeded bugs, scenarios and automation tasks.