axe-core vs Pa11y: open-source accessibility testing tools compared
Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.
Summary
axe-core: JavaScript accessibility testing engine that checks HTML interfaces against WCAG rules inside existing test suites.
Pa11y: Accessibility testing CLI and Node.js library that checks web pages with HTML_CodeSniffer or axe runners.
Both are listed under Accessibility testing. The table gives repository metrics from the GitHub API with their fetch date, then the documented facts used for every comparison in this category, each linked to the README or docs page it comes from. A cell reads "not documented" when the fact was not found in the project's documentation; that does not mean the feature is absent.
Side by side
| Fact | axe-core | Pa11y |
|---|---|---|
| Stars | 7,5421 | 4,5361 |
| Forks | 9371 | 3011 |
| Contributors | 2651 | 631 |
| Last release | 2026-08-051 | 2026-08-281 |
| Last commit | 2026-09-211 | 2026-08-281 |
| Commits in 90 days | 891 | 101 |
| License | MPL-2.01 | LGPL-3.01 |
| Primary language | HTML1 | JavaScript1 |
| Status | active1 | active1 |
| Rules or standards | WCAG 2.0, 2.1 and 2.2 at levels A, AA and AAA; additional rules outside WCAG source: README | WCAG2A, WCAG2AA (default), WCAG2AAA (HTML_CodeSniffer runner only) source: README |
| Browsers | Edge 40+, Chrome 42+, Firefox 38+, Safari 7+; Internet Explorer 11 (deprecated) source: README | Headless Chrome, configured through Puppeteer launch options source: README |
| Framework integrations | Deque packages for React, WebdriverJS, WebdriverIO, Playwright, Puppeteer; Selenium, Capybara, Cucumber, RSpec, Watir source: Docs: Projects that use axe-core | Test runners HTML_CodeSniffer (default) and axe-core; custom runners as CommonJS modules source: README |
| CI integration | Axe + Azure Pipelines samples, listed among community projects source: Docs: Projects that use axe-core | Error thresholds that set the exit code, for CI builds source: README |
| Report formats | JSON results object (passes, violations, incomplete, inapplicable) source: Docs: axe-core API | cli, csv, html, json, tsv; custom reporters source: README |
| Install method | npm (npm install axe-core --save-dev) or pnpm source: README | npm (npm install -g pa11y) source: README |
1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.
When each fits
Written from each project's documented scope, not from preference. Neither tool is ranked.
axe-core
Fits projects that automate accessibility testing alongside functional tests; its README describes an accessibility testing engine for websites and HTML-based interfaces. source: README
Pa11y
Fits projects that automate accessibility tests on web pages; its README describes running accessibility tests via the command line or Node.js. source: README
More on these tools
Sources
- GitHub REST API: repository, read
- GitHub REST API: repository, read
- GitHub REST API: contributors, read
- GitHub REST API: contributors, read
- GitHub REST API: latest release, read
- GitHub REST API: latest release, read
- GitHub REST API: commits, read
- GitHub REST API: commits, read
- README, read
- README, read
- Docs: Projects that use axe-core, read
- Docs: axe-core API, read
Documented facts collected 2026-09-22. See the methodology for how metrics and facts are gathered.