The workshop · Edition No. 11 · 5 Sep 2026

pa11y/pa11y

Command-line accessibility auditing that names the failing element, not just the score.

← The workshopRead the whole edition →

4.5k stars · LGPL-3.0 · 10.0.0 (2026-08-28) · Track this in Scout

Command-line accessibility auditing that names the failing element, not just the score.

▶Repo detailsthe review · specs · pros & cons

What it is

A command-line accessibility testing tool: it loads a page in headless Chrome, runs it through the HTML CodeSniffer and axe rule sets, and reports the WCAG failures with the exact element responsible. A companion CI mode checks a whole list of URLs in one run.

What it is good for. The European Accessibility Act has applied to consumer-facing digital services since mid-2025, which puts any consumer-facing EU service squarely in scope — this is a compliance surface, not a nice-to-have. Beyond that, an interactive canvas that cannot be reached with a keyboard is a defect you will never hear about, because the affected visitor simply leaves; the react-arborist tree from Edition 7 #11 exists precisely because a canvas is unusable for a whole class of person. Unlighthouse (Ed. 2 #9) already gives a Lighthouse accessibility score, but a score is not a task list. Pa11y names the failing element on each page, which is the difference between a number you feel bad about and a morning's work you can actually finish.

Stars4.5k
LicenceLGPL-3.0
Latest10.0.0 (2026-08-28)checked 7 Sep 2026
Written inJavaScript
RunsLocally, on your own machine
Setup effort
2 / 5
Payoff
3 / 5
Good
  • Element-level failures rather than a score, so the output is directly actionable by Claude Code.
  • Headless and scriptable, so it belongs in the same build step as Vale (Ed. 10 #2) and LanguageTool (Ed. 10 #1).
  • Two rule engines behind one interface, which catches more than either alone.
Watch for
  • LGPL-3.0-only. Run it as a tool; do not link it into anything you ship.
  • Automated checks catch roughly a third of real accessibility problems. Colour contrast judgement and focus order still need a human pass.
  • Six months since v9.1.1, with a small maintainer team. Healthy, but not a fast-moving project.
Screenshots
pa11y/pa11y: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.