SurjectionAccessibility checks for CI and tests, client-ready reports and accessibility statements in five languages. Built on axe-core, no overlay.
pnpm add -D @sweberdev/surjectionSurjection helps agencies make accessibility part of every project instead of a one-off scan. It runs axe-core in Playwright and Vitest, maps every finding to WCAG 2.2 and EN 301 549, and fails the build only on new problems thanks to a baseline for existing sites.
It also generates the accessibility statement (Erklärung zur Barrierefreiheit) in German, Swiss German, French, Italian and English, and ships small accessible React building blocks. Surjection is deliberately not an overlay widget: it helps you fix the code, it does not hide problems. Automated tests find only part of all barriers, so Surjection does not promise legal conformity.
Example
A short exampleCopy it into your project.
tests/a11y.spec.ts
import { test } from "@playwright/test"
import { expectAccessible } from "@sweberdev/surjection/playwright"
import baseline from "./a11y-baseline.json"
for (const path of ["/", "/shop", "/checkout"]) {
test(`${path} is accessible`, async ({ page }) => {
await page.goto(path)
await expectAccessible(page, { baseline, failOn: "serious", locale: "de" })
})
}Features
What you getFree under MIT, with Pro on top.
Free, MIT
- Playwright helper and Vitest matcher on top of axe-core, tested against WCAG 2.2 AA by default
- Every finding mapped to its WCAG success criterion and EN 301 549 clause
- Baseline for existing sites: CI fails only on new issues, not on the whole backlog
- Markdown report for pull requests and job summaries, in German, Swiss German, French, Italian and English
- Accessibility statement generator (DE, DE-CH, FR, IT, EN) as Markdown and HTML
- Accessible React building blocks: skip link, visually hidden text, live announcements, reduced motion
Pro
- Client reports in your agency's branding, as HTML and PDF
- History across all client projects, so you can show progress over time
- Guided manual checklist for the criteria automated tests cannot cover
Compare
Free and ProSide by side.
| Feature | Free | Pro |
|---|---|---|
| Playwright helper, Vitest matcher and CLI | Included | Included |
| WCAG 2.2 and EN 301 549 mapping | Included | Included |
| Baseline for existing sites | Included | Included |
| Markdown report and accessibility statement in five languages | Included | Included |
| Accessible React building blocks | Included | Included |
| Client report in your branding (HTML and PDF) | Not included | Included |
| History and dashboard across client projects | Not included | Included |
| Manual WCAG 2.2 checklist with browser editor | Not included | Included |
| Licence | MIT | Per person |
| Support | GitHub issues | Agency and Lifetime |
Pro
Pro packagesAdd-ons on top of the core.
Try the themes, browse the catalog and read a real scanner report. The demo also shows the GTM container check, the monitoring of many client sites and the catalog changes per project.
@weber-development/surjection-reportClient reports in your branding as HTML and PDF, in German, Swiss German, French, Italian and English.
@weber-development/surjection-historyRecords every run per project and renders a dashboard with status, change and trend.
@weber-development/surjection-checklistThe 55 WCAG 2.2 A/AA criteria with instructions for manual testing, a browser editor and export to the statement.
Pricing
PricingPrices are in CHF.
Freelancer
For one person working on client projects.
CHF 190
per year
2 months free
- 1 person
- No support entitlement
Agency
RecommendedFor teams of up to ten named people, one price.
CHF 590
per year
2 months free
- Up to 10 people
- Support included
Lifetime
Pay once for up to ten people and keep updates and repository access.
CHF 1'990
one-time
- Up to 10 people
- Support included
11 people or more: get in touch
- After cancelling, every version you already received keeps working. Only updates and repository access end.
- No licence key, no phone-home. The packages never contact a server to check your licence.
- Agency and Lifetime cover up to ten named people for one price: you choose the number of seats at checkout and assign them in Polar. Your clients and their websites need no licence of their own.
- Checkout, invoices and VAT are handled by Polar as merchant of record.
FAQ
QuestionsShort answers.
Does Surjection make my website legally compliant?
No tool can promise that. Automated tests detect only part of all barriers. Surjection makes testing and documentation part of your workflow, but a manual review is still needed.
Is this an accessibility overlay?
No. Overlays add a widget on top of a site and leave the code unchanged. Surjection runs in development and CI and helps you fix the code itself.
Who needs a licence?
Every person on your team who works with the Pro packages. Freelancer covers one person. Agency and Lifetime cover up to ten named people for the same price: you pick the number of seats at checkout, assign them in Polar, and each person connects their own GitHub account. For eleven or more, get in touch.
What happens when I cancel?
Every version you already received keeps working, in every project you used it in. Only new updates and access to the private repository end.
Do my clients need their own licence?
No. The licence covers the people building the sites. The websites you deliver and the clients who own them need nothing.
Is there a licence key or usage tracking?
No. The packages are installed from a private GitHub Packages registry and never contact a licence server.
Who issues the invoice, and is VAT included?
Polar sells Surjection Pro as merchant of record. It handles checkout, invoices and VAT for your country.
Can I use the open-source part on its own?
Yes. @sweberdev/surjection and @sweberdev/surjection-react are MIT-licensed and complete without Pro.
Articles
ArticlesGuides and release notes.
2026-10-05
Surjection 0.1.0 releasedAccessibility checks for Playwright and Vitest, a baseline for existing sites, reports and accessibility statements in five languages. MIT licensed, with a Pro edition for agencies.