Know your design system passes — before anyone asks.
Passa11y scans every component in your Storybook against WCAG 2.2, on every commit — and turns the results into an EAA compliance report your lawyer can actually read. Your code never leaves your CI.
- Open-source CLI
- Results-only upload
- EU-hosted
$ npx passa11y scan
passa11y v0.4.1 · storybook http://localhost:600684 stories · 42 components · WCAG 2.2 AA ✓ PASS Input/Default label and hint linked 1.3.1✓ PASS Card/Featured text contrast 8.1:1 1.4.3✕ FAIL Button/Ghost focus not visible 2.4.7! WARN Modal/Sheet focus order needs a human 2.4.3 2 passed · 1 blocker · 1 needs human reviewreport written to .passa11y/report.html
EAA readiness
77%
of 179 checks verified by machine
- Verified by machine138
- Needs human review41
You always see both numbers. Anyone promising 100% automated compliance is lying to you.
Read the full reportIt’s Tuesday, 4:12 pm. Legal forwards you an email: a client’s procurement team asks for your accessibility conformance statement — by Friday.
You have a design system, a Storybook, and a vague memory of an audit PDF from 2024. You open it. Half the components have been rewritten since.
So you do what everyone does: you ask the frontend team, they ask each other, someone runs a page scanner that returns 400 issues on the marketing site — none of them mapped to the components that actually caused them.
Friday comes. You send a carefully worded paragraph instead of an answer.
There’s a cheaper moment to find all this out: before the email.
What it changes
Catch it before it ships.
Every PR gets a check: new accessibility blockers fail the build.
A dev opens a PR, the check goes red: Button — focus not visible (WCAG 2.4.7). They fix it in ten minutes, before review, before release.
Shipping day stops being the day you find out.
Fix once, fixed everywhere.
Findings map to components, not pages.
One fix in
Inputclears the finding from every screen that uses it — you watch the number drop across the whole product.Your design system finally works the way you promised it would.
An answer, not an archaeology project.
One click: current EAA readiness report, mapped WCAG → EN 301 549 → EAA.
Legal asks on Tuesday. You export the report on Tuesday. It’s dated this morning.
The compliance question stops being scary. It’s just a button.
How it works
npx passa11y init
Scan in your CI
Your EAA readiness report
$ npx passa11y init
detected storybook · http://localhost:6006✓ wrote .passa11y/config.json next: npx passa11y scan
- Scans the static Storybook build in your CI
- Your code never leaves your infrastructure — only results do. Security won’t block this purchase.
- axe-core + component-level rules (keyboard, focus, target size)
- The checks auditors actually trust, plus the ones page scanners can’t do at all.
- Findings carry the full WCAG → EN 301 549 → EAA chain
- The report speaks lawyer. You keep speaking code.
- Baseline & diff between scans
- You’re only ever alerted about what’s new — no 400-issue wall of shame every Monday.
- Guided manual-review checklists per component
- The 26 criteria machines can’t check don’t get ignored — each gets a checklist, an owner, and a date.
- Works locally, free, no signup (npx passa11y scan)
- At launch, try it on your real code in minutes — free, no signup. Waitlist members get there first.
This site passes its own scan
EAA enforcement, so far
The European Accessibility Act is adopted as EU Directive 2019/882.
The EAA applies. Products and services placed on the EU market must be accessible.
A French court orders Carrefour to make its site and app accessible within six months — €500 per day past the deadline.
- H2 2026
The Dutch regulator ACM moves from monitoring to formal enforcement of the EAA for e-commerce.
The 30-Minute Guarantee
From npx passa11y init to your first report in under 30 minutes — or we get on a call and set it up with you, free. If it still doesn’t run on your Storybook, you shouldn’t pay us: cancel in one click, no questions.
Every plan starts with a 30-day free trial — no card, no lock-in.
Included with every plan
The EAA Readiness Checklist
A two-page PDF that maps EAA requirements to decisions your team can actually make.
Included because without it, you don’t even know what to ask.
The CTO One-Pager
A ready-made business case with numbers: audit cost vs. subscription vs. the risk of fines.
Included because your boss won’t buy a link to a landing page — one page can convince them.
The Component Fix Playbook
The ten most common component failures, each with a ready fix pattern — in code.
Included because a finding without a fix is just a guilty conscience.
Pricing that scales with your design system
30-day free trial on all plans — no credit card required. The local CLI is free forever.
Starter
€49/mo
Up to 100 components · 1 project
- Unlimited users
- CI gate on every PR
- EAA readiness report
- 90-day history
Founding price
Professional
€99/mo
Up to 300 components · 3 projects
- Everything in Starter
- Manual review checklists
- VPAT/ACR export
- 365-day history
Founding price
Business
€149/mo
Up to 750 components · unlimited projects
- Everything in Professional
- Token Drift module included
- Priority support
Founding price
Custom
Get a quote
750+ components, multi-org, agencies
- Everything in Business
- SSO
- DPA & security review
- White-label reports
- Dedicated support
A one-off agency audit runs €10–20k and is stale within a quarter. Passa11y Business is €1,490/year — under a tenth of the price, current on every commit. €149/month is less than one hour of an accessibility consultant. Per month. For your entire design system, every day.
The honest part
“Of the 55 WCAG 2.2 AA criteria, 4 can be verified by a machine end to end. 25 more can be checked in part. The remaining 26 need a human — so anyone promising 100% automated compliance is lying to you. Passa11y automates what can be automated, brutally well — every component, every commit — and gives your team guided checklists for the rest. You always see both numbers: what’s verified by machine, what needs a human. An absence of findings is never presented as proof of conformance. That’s what an honest compliance tool looks like.”
Get early access
Lock in current pricing — plans keep their price for as long as you stay subscribed. New pricing applies only to new customers.
FAQ
We already tried an accessibility scanner and drowned in false positives.
Every finding is machine-verified, not guessed — that’s the whole point of showing you both numbers instead of one score. Between scans you only see what’s new, never the same 400 issues again: baseline & diff between scans, not a wall of shame every Monday. At launch, npx passa11y scan will run locally, free, no signup — try it on your own code before you pay anything. Waitlist members get there first.
We don’t have capacity to fix what you find.
Findings don’t arrive as a bare list. The Component Fix Playbook gives the ten most common component failures, each with a ready fix pattern in code, and findings are ranked by compliance impact — not alphabetically — so the order to fix things in is already decided. What machines can’t check doesn’t get ignored either: guided manual-review checklists give it an owner and a date, not a footnote.
Is this enough for EAA compliance?
About half of the 55 WCAG 2.2 AA criteria can be checked by machine — 4 fully, 25 in part. The other 26 need a human, so anyone promising 100% automated compliance is lying to you. Passa11y automates what can be automated and gives your team guided checklists for the rest — every finding is labeled verified by machine or needs human review, never blended into one score, and an absence of findings is never presented as proof of conformance. The report is a readiness report, not a certificate — it tells you where you stand, not whether a court would agree, and it isn’t legal advice.
We use Vue / web components / old Storybook.
Passa11y is built for product teams with a design system in Storybook (v7+). No Storybook yet? Then we’re honestly not a fit — Passa11y scans your Storybook build.
Security won’t let a scanner near our code.
Open-source CLI · results-only upload · EU-hosted. Passa11y scans the static Storybook build inside your own CI — your code never leaves your infrastructure, only the results do. Security won’t block this purchase.
When can I get it? What does early access mean?
There’s no public launch date yet — Passa11y is being tested privately with real design systems first. Joining the waitlist means you get access before anyone else, at founding price, the moment that private testing wraps. We never promise a date we don’t have.
What counts as a component?
A unique component in your Storybook (by title path). Stories and variants don’t count separately — a Button with 12 stories is one component. If you go over your limit, nothing breaks: scans keep running, you get 30 days to upgrade.