Skip to content

pa11y

Automated accessibility testing for your websites.

Self-hostedNot yet verified
Report issueDemo online
Apache-2.0★ 3000

Open the official app on pa11y.org

This tool is hosted by its maintainers. Click below to open pa11y.org in a new tab — it's their official demo.

Browse developer tools →

What's next with pa11y?

Choose how you want to get started.

Use it free

Open the official tool or demo — no account needed.

Free

Self-host it

Run the open-source version on your own infrastructure.

Open

What is pa11y?

pa11y is an open-source accessibility testing tool designed to automate the identification of web accessibility issues. Under the Apache-2.0 license, it provides developers and non-developers with tools to ensure websites comply with accessibility standards like WCAG. The project caters to teams needing to monitor progress over time and individuals seeking to perform one-off audits. By integrating with continuous integration (CI) pipelines and offering a dashboard for visual tracking, pa11y addresses the challenge of maintaining accessible web content while reducing manual testing efforts. Its modular architecture allows users to choose between command-line interfaces, web dashboards, or custom integrations depending on their workflow needs.

How it works

pa11y is a command-line tool that loads web pages and evaluates them against accessibility guidelines, highlighting issues such as missing alt text or insufficient color contrast. It serves as a foundational component for automated accessibility testing, enabling developers to catch problems early in the development cycle. The project also includes a web dashboard for tracking accessibility performance over time and a webservice for custom integrations. These tools collectively address the need for both technical validation and visual progress monitoring in accessibility efforts. pa11y's CLI tool supports one-off tests on individual URLs, while its CI variant iterates through lists of pages to enforce accessibility standards in development pipelines. The dashboard provides daily automated checks and graphical insights into trends, making it accessible to non-technical stakeholders. The webservice allows developers to build tailored interfaces or integrate accessibility data into existing systems.

How to use it

  1. 1Install pa11y via npm or download the binary from the GitHub repository. 2. Run the CLI tool with a URL argument to analyze a single page, e.g., `pa11y https://example.com`. 3. For CI integration, configure a script to iterate through a list of URLs and output results to a file. 4. Set up the dashboard by configuring the webservice endpoint and accessing the UI for real-time monitoring. Practical tips include using the `--format` flag to customize output, leveraging the dashboard's graphing features for trend analysis, and ensuring test URLs are publicly accessible to avoid authentication errors.

What it can do

  • accessibility auditing

Use cases

Assumptions and limitations

Assumptions

  • source: https://github.com/pa11y/pa11y
  • license: Apache-2.0 — free to use
  • privacy: Self-hosted — you control your data

Limitations

  • Relies on axe-core for rule enforcement, which may not cover all WCAG 2.1 criteria
  • Struggles with dynamic content loaded via JavaScript without proper pausing mechanisms
  • Does not validate browser-specific accessibility features like VoiceOver interactions
  • Requires manual configuration for complex CI/CD pipeline integrations
  • Lacks real-time testing capabilities for user interaction scenarios

Understanding the result

Automated accessibility testing for your websites.

Tool details

  • Clearly flagged when a network request is needed.
  • No account, no sign-up, and no tracking of your content.
  • Powered by (Apache-2.0).
Built with
(pa11y/pa11y)
License
Apache-2.0
Runs locally
No — requires a network request
Verification
Not yet verified
Input
Query
Output
Text
Open-source source & license

Built with pa11y/pa11y. OpenToolVault provides the discovery and browser interface while crediting the original project maintainers.

Built with
License
Apache-2.0
View source on GitHub

Open-source project

OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.

References

Frequently asked

How does pa11y determine if a website is accessible?

pa11y uses axe-core, a library of accessibility rules, to evaluate web pages against WCAG 2.1 standards. It checks for issues like missing alt text, insufficient color contrast, and improper form labeling. Results are generated by loading the page and applying these rules, with severity levels indicating urgency for fixes.

How does the dashboard track accessibility improvements over time?

The dashboard connects to the pa11y webservice, which stores test results in a database. It aggregates data from daily runs, displaying metrics like total issues, resolved issues, and regression alerts. Graphs visualize trends, allowing users to monitor progress toward accessibility goals and identify patterns in recurring problems.

How do I run pa11y in a CI pipeline?

Install pa11y via npm, then create a script that executes `pa11y-ci` with a list of URLs. For example, `pa11y-ci https://example.com https://another-page.com > results.txt` will run tests and save output. Integrate this script into your CI tool's build process to enforce accessibility checks before deployment.

How does pa11y compare to tools like axe or Lighthouse?

pa11y focuses on automated, rule-based testing with a modular architecture, while axe is a library often integrated into other tools. Lighthouse provides broader performance and accessibility metrics but lacks pa11y's dedicated dashboard and CI integration. pa11y's strength lies in its specialized accessibility rules and scalability for enterprise use.

What should I do if pa11y throws an error about a missing dependency?

Check if required Node.js versions are met, ensure all npm packages are installed via `npm install`, and verify internet access to the webservice if using the dashboard. For CLI errors, review the URL syntax and ensure target pages are publicly accessible without authentication barriers.

Spotted something wrong with pa11y, or want to maintain it? See how to help.