Category guides · published
"Best open source accessibility testing tools": 9 listed, sorted by GitHub stars
Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.
The accessibility category on FreeQATools lists open-source automated accessibility checkers and rule engines. The table is sorted by GitHub stars on each tool's fetch date, which is a count and not a quality judgement. The sections below group the tools by rule engine, documented standards, place of execution and report format.
Rule engines and axe-core integrations
axe-core is a JavaScript engine that checks HTML interfaces against WCAG rules inside existing test suites. Several tools in the category reference axe-core in their documentation. axe-core-npm packages axe-core checks for a CLI, Playwright, Puppeteer, React and WebDriver. cypress-axe adds Cypress commands that run axe-core checks. Lighthouse weights its accessibility audits by axe user impact assessments.
Pa11y has HTML_CodeSniffer as its default test runner and axe-core as another built-in runner. Pa11y CI is built on Pa11y. The Pa11y CI README states that it accepts Pa11y configuration as defaults. equal-access applies its own rule policies, with IBM_Accessibility as the default policy.
Documented standards
axe-core documents WCAG 2.0, 2.1 and 2.2 rules at levels A, AA and AAA. Pa11y accepts the WCAG2A, WCAG2AA and WCAG2AAA standards, with AAA available on the HTML_CodeSniffer runner only. The assessment in Accessibility Insights for Web covers WCAG 2.2 Level AA success criteria. equal-access lists WCAG_2_1 among its rule policies.
Some wrappers select axe-core rules by tag instead of naming a standard. The axe-core-npm CLI takes a --tags option such as wcag2a. The cypress-axe README shows an example that filters by the wcag2a tag. No standard was found in the documentation read for Pa11y CI. A comparison row with no documented value is marked not documented instead of inferred (comparison method).
Where the checks run
Some accessibility tools run inside the browser. Accessibility Insights for Web runs as a Google Chrome and Microsoft Edge extension. The equal-access toolkit includes extensions for the Chrome, Firefox and Edge developer tools. Lighthouse is available as a Chrome DevTools panel.
Test framework integrations cover other workflows. The equal-access accessibility-checker package works with Selenium, Puppeteer, Playwright and Jest. cypress-axe runs inside Cypress. axe-core-npm covers Playwright, Puppeteer, React, WebdriverIO and WebdriverJS.
CI use is documented in different ways. The axe-core-npm CLI has an --exit flag that returns exit code 1 when a rule fails. Pa11y sets its exit code through error thresholds. Pa11y CI is designed for CI environments. Lighthouse CI provides configs for GitHub Actions, Travis CI, CircleCI, GitLab CI, Jenkins and Google Cloud Build.
Report formats and status
axe-core returns its results in JSON format. The axe-core-npm CLI saves results as JSON files. Pa11y reporters include cli, csv, html, json and tsv. Lighthouse writes JSON, HTML or CSV, with HTML by default. The equal-access accessibility-checker writes JSON, CSV, HTML and XLSX results.
cypress-axe adds a Cypress command log entry for each violation type. Pa11y CI includes a cli reporter and a json reporter.
Status on the fetch date follows the published status rules. Lighthouse CI is marked inactive. Pa11y CI is marked slow.
How this list is sorted
The quoted title is a search query, not a verdict. FreeQATools does not rank tools by opinion. The list below is sorted by GitHub stars, descending, as fetched from the repository host API on the date shown with each value.
Stars count how many accounts have starred a repository. They say nothing about fit for a given project, so the documented facts under each tool are the part to compare.
Every tool here meets the inclusion rules: an OSI-approved license, a public repository, software testing or quality as its primary purpose and at least one release or tag. Each status badge follows the status rules on the methodology page.
Open-source accessibility testing tools by GitHub stars
| Lighthouse | 30,7991 | 2026-09-181v13.5.0 | 2026-09-181 | Apache-2.0 | JavaScript | active |
|---|---|---|---|---|---|---|
| axe-core | 7,5421 | 2026-08-051v4.13.0 | 2026-09-211 | MPL-2.0 | HTML | active |
| Lighthouse CI | 7,0941 | 2025-06-261v0.15.1 | 2025-06-261 | Apache-2.0 | JavaScript | inactive |
| Pa11y | 4,5361 | 2026-08-28110.0.0 | 2026-08-281 | LGPL-3.0 | JavaScript | active |
| Accessibility Insights for Web | 9521 | 2026-09-081web@2.49.0 | 2026-09-151 | MIT | TypeScript | active |
| equal-access | 7781 | 2026-09-0814.0.34 | 2026-09-081 | Apache-2.0 | JavaScript | active |
| axe-core-npm | 7241 | 2026-08-111v4.13.0 | 2026-09-021 | MPL-2.0 | JavaScript | active |
| cypress-axe | 6411 | 2025-08-291v1.7.0 | 2026-09-031 | MIT | TypeScript | active |
| Pa11y CI | 6331 | 2026-05-1214.1.1 | 2026-05-121 | LGPL-3.0 | JavaScript | slow |
1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.
Filters for language, license and status are on the accessibility testing category page.
Tools in this list
Each entry gives the tool's one-line summary from its README and the facts its documentation states for this category, each with its source. Facts that are not documented are left out here and marked on the comparison pages.
Lighthouse
Web page auditing tool for performance, accessibility and SEO, run from Chrome DevTools, a Node CLI or module. README, read 2026-09-22
- Rules or standards
- Accessibility audits, weighted by axe user impact assessments source: Docs: Lighthouse accessibility score
- Browsers
- Chrome or Chromium 66.0 or later; detects Chrome Canary or Chrome stable by default source: README
- Framework integrations
- Puppeteer (launch Chrome with Puppeteer, then hand off to Lighthouse) source: Docs: Using Puppeteer with Lighthouse
- CI integration
- Lighthouse CI, listed as the official project for running Lighthouse on every commit source: README
- Report formats
- JSON, HTML, CSV (HTML by default) source: README
- Install method
- npm (npm install -g lighthouse) or yarn; also a Chrome DevTools panel source: README
axe-core
JavaScript accessibility testing engine that checks HTML interfaces against WCAG rules inside existing test suites. README, read 2026-09-22
- Rules or standards
- WCAG 2.0, 2.1 and 2.2 at levels A, AA and AAA; additional rules outside WCAG source: README
- Browsers
- Edge 40+, Chrome 42+, Firefox 38+, Safari 7+; Internet Explorer 11 (deprecated) source: README
- Framework integrations
- Deque packages for React, WebdriverJS, WebdriverIO, Playwright, Puppeteer; Selenium, Capybara, Cucumber, RSpec, Watir source: Docs: Projects that use axe-core
- CI integration
- Axe + Azure Pipelines samples, listed among community projects source: Docs: Projects that use axe-core
- Report formats
- JSON results object (passes, violations, incomplete, inapplicable) source: Docs: axe-core API
- Install method
- npm (npm install axe-core --save-dev) or pnpm source: README
Lighthouse CI
Tool suite that runs, stores and asserts against Lighthouse results in CI, with a server and dashboard. README, read 2026-09-22
- Rules or standards
- Lighthouse regression checks for accessibility, SEO, offline support and performance source: README
- Browsers
- Chrome or Chromium (chromePath option) source: Docs: Configuration
- Framework integrations
- Puppeteer scripts that prepare the browser before Lighthouse runs (puppeteerScript) source: Docs: Configuration
- CI integration
- Guide with configs for GitHub Actions, Travis CI, CircleCI, GitLab CI, Jenkins, Google Cloud Build source: Docs: Getting Started
- Report formats
- Lighthouse JSON and HTML reports with a manifest.json (filesystem target); LHCI server or temporary public storage source: Docs: Configuration
- Install method
- npm (npm install -g @lhci/cli) source: README
Pa11y
Accessibility testing CLI and Node.js library that checks web pages with HTML_CodeSniffer or axe runners. README, read 2026-09-22
- Rules or standards
- WCAG2A, WCAG2AA (default), WCAG2AAA (HTML_CodeSniffer runner only) source: README
- Browsers
- Headless Chrome, configured through Puppeteer launch options source: README
- Framework integrations
- Test runners HTML_CodeSniffer (default) and axe-core; custom runners as CommonJS modules source: README
- CI integration
- Error thresholds that set the exit code, for CI builds source: README
- Report formats
- cli, csv, html, json, tsv; custom reporters source: README
- Install method
- npm (npm install -g pa11y) source: README
Accessibility Insights for Web
Chrome and Edge extension for checking the accessibility of websites and web applications, including WCAG 2.1 AA assessments. README, read 2026-09-22
- Rules or standards
- WCAG 2.2 Level AA success criteria (Assessment) source: Docs: Assessment
- Browsers
- Google Chrome, Microsoft Edge (browser extension) source: README
- Framework integrations
- Playwright example in axe-pipelines-samples for the automated checks source: Docs: Web FAQ
- CI integration
- Azure Pipelines samples (axe-pipelines-samples) for the automated checks source: Docs: Web FAQ
- Report formats
- HTML, JSON (Assessment export) source: Docs: Assessment
- Install method
- Chrome Web Store extension in Canary, Insider and Production channels source: README
equal-access
IBM Equal Access Toolkit accessibility checkers: browser extensions, a Node package for CI, and a Cypress wrapper. README, read 2026-09-22
- Rules or standards
- Rule policies such as IBM_Accessibility (default) and WCAG_2_1 source: Docs: accessibility-checker usage
- Browsers
- Extensions for Chrome, Firefox and Edge developer tools source: README
- Framework integrations
- Selenium, Puppeteer, Playwright, Jest (accessibility-checker package) source: Docs: accessibility-checker NODE
- CI integration
- Continuous integration pipelines such as Travis CI source: README
- Report formats
- JSON, CSV, HTML, XLSX source: Docs: accessibility-checker NODE
- Install method
- npm (npm install --save-dev accessibility-checker) source: Docs: accessibility-checker usage
axe-core-npm
Set of npm packages that run axe-core accessibility checks from a CLI, Playwright, Puppeteer, React and WebDriver. README, read 2026-09-22
- Rules or standards
- axe-core rules selected by tag, such as wcag2a (CLI --tags) source: Docs: @axe-core/cli
- Browsers
- Headless Chrome by default (CLI); other browsers through their WebDriver source: Docs: @axe-core/cli
- Framework integrations
- Playwright, Puppeteer, React, WebdriverIO, WebdriverJS; plus a CLI and an EARL reporter source: README
- CI integration
- CLI --exit flag returns exit code 1 when a rule fails, for CI builds source: Docs: @axe-core/cli
- Report formats
- JSON files (CLI --save and --dir flags) source: Docs: @axe-core/cli
- Install method
- npm, one package per integration (npm install @axe-core/cli -g) source: Docs: @axe-core/cli
cypress-axe
Cypress commands that run axe-core accessibility checks against pages under test. README, read 2026-09-22
- Rules or standards
- axe-core rules; README example filters by tag wcag2a source: README
- Framework integrations
- Cypress (v10 and above; cypress-axe 0.x for Cypress v9) source: README
- Report formats
- Cypress command log entry per violation type; custom terminal output via violationCallback source: README
- Install method
- npm (npm install --save-dev axe-core cypress cypress-axe) source: README
Pa11y CI
Command-line runner that applies Pa11y accessibility tests to URL lists or sitemaps in CI pipelines. README, read 2026-09-22
- Browsers
- Chrome (executable path set in defaults.chromeLaunchConfig.executablePath) source: README
- Framework integrations
- Pa11y (built on it; accepts Pa11y configuration as defaults) source: README
- CI integration
- Designed for CI environments; Docker setup documented; Travis CI article listed source: README
- Report formats
- cli (default), json; custom reporters such as pa11y-reporter-html source: README
- Install method
- npm (npm install -g pa11y-ci) source: README