Pa11y logo

Pa11y

Open Source

Command-line accessibility testing tool — runs axe and HTML CodeSniffer rules against URLs.

Visit websiteGitHub

Pricing

Free / Open source

Type

Automation

Languages

JavaScript

// VERDICT

Reach for Pa11y when you want to scan whole pages or a sitemap for accessibility issues from the command line and gate CI with pa11y-ci, no test code required. Skip it when you want an embeddable engine in your tests (axe-core), a visual checker (WAVE), or manual testing.

Best for

A CLI-first accessibility scanner built for CI - point it at URLs or a sitemap and it reports WCAG issues, with pa11y-ci to fail the build, all without writing test code.

Avoid when

You want to embed checks in your own test code (axe-core), a visual in-browser checker (WAVE), or manual assistive-tech testing.

CI/CD fit

pa11y CLI · pa11y-ci (URLs/sitemap) · GitHub Actions · GitLab CI · Jenkins

Languages

JavaScript

Team fit

Teams wanting no-code a11y scans · QA adding a11y to CI · Site-wide accessibility checks

Setup

Easy

Maintenance

Low

Learning

Beginner

Licence

Free / Open source

// BEST FOR

  • Scanning pages for accessibility issues from the command line
  • Testing a whole site via a URL list or sitemap (pa11y-ci)
  • Failing CI builds on accessibility issues without writing tests
  • A quick way to add a11y coverage to a pipeline
  • Running engines like axe / HTML_CodeSniffer under one CLI
  • Dashboards and a webservice via the wider Pa11y ecosystem

// AVOID WHEN

  • You want checks embedded in your own test code (axe-core)
  • You want a visual in-browser checker for manual review (WAVE)
  • You need manual screen-reader / assistive-tech testing
  • You want a broader audit beyond accessibility (Lighthouse)
  • You expect automation to cover all of WCAG (it covers a subset)
  • You need a hosted enterprise monitoring platform

// QUICK START

npm install -g pa11y
pa11y https://example.com
# or pa11y-ci with a .pa11yci config listing URLs / a sitemap, in CI

// ALTERNATIVES TO CONSIDER

ToolChoose it when
axe-coreYou want to embed accessibility checks inside your own test code.
LighthouseYou want a combined a11y + performance + SEO audit.
WAVEYou want a visual in-browser checker for manual evaluation.

// FEATURES

  • CLI for one-off URL audits
  • Pa11y CI for budgeted regression runs
  • Pa11y Dashboard for tracking issues over time
  • Pluggable runners (axe, HTML CodeSniffer)
  • Headless Chrome via Puppeteer
  • JSON, CSV, and HTML reporters

// PROS

  • Simple CLI — `pa11y https://example.com` and you're done
  • Pa11y CI integrates with budgets per page
  • Combines multiple a11y engines in one tool

// CONS

  • Smaller community than axe-core directly
  • Dashboard project less actively maintained
  • Dynamic SPA flows require custom actions config

// EXAMPLE QA WORKFLOW

  1. Install Pa11y (npm)

  2. Run pa11y against a URL, or configure pa11y-ci with URLs/a sitemap

  3. Choose the standard (e.g. WCAG2AA)

  4. Review reported issues and tune ignore rules

  5. Run pa11y-ci in the pipeline and fail on threshold

  6. Pair with embedded axe checks and manual testing