eu-accessibility-mapping
June 6, 2026 · View on GitHub
An open, machine-readable crosswalk from WCAG 2.x success criteria to the EN 301 549, EU Accessibility Act (EAA), and German BFSG that reference them.
If you build accessibility tooling, write a VPAT/accessibility statement, or argue a BFSG case, you keep re-deriving the same chain: which WCAG criterion maps to which EN 301 549 clause, and how does that connect to the EAA and the BFSG? This repo answers that once, as data you can diff and reuse — MIT, no attribution required.
It's the reference mapping behind the reports at wcagdesk.eu, published openly so the legal↔technical mapping our reports use can be verified independently.
The chain
WCAG 2.x SC → EN 301 549 v3.2.1 (ch. 9, Web) → EAA (Directive (EU) 2019/882) → BFSG / BFSGV (DE)
EN 301 549 chapter 9 references WCAG 2.1 Level A + AA verbatim. The EAA and the German BFSG do not enumerate individual success criteria — they incorporate WCAG wholesale through the harmonised standard EN 301 549, which grants the presumption of conformity. So the per-criterion EAA/BFSG columns mean "in scope via EN 301 549", not a distinct clause number.
Files
mapping.json— authoritative, machine-readable (metadata +criteria[]).mapping.csv— same data, spreadsheet-friendly.build.mjs— the generator and single source of truth.node build.mjsregenerates both outputs. No dependencies.
Columns
| Column | Meaning |
|---|---|
sc | WCAG success criterion (e.g. 1.4.3) |
level | Conformance level — A or AA |
title | Criterion short title |
wcag_version | Version that introduced it — 2.0 / 2.1 / 2.2 |
en301549 | EN 301 549 v3.2.1 clause (ch. 9). Empty = not yet harmonised. |
eaa | EAA reference (via EN 301 549) |
bfsg | BFSG / BFSGV reference (presumption via EN 301 549) |
harmonised | true if referenced by EN 301 549 v3.2.1 |
notes | Caveats (obsoletion, pending harmonisation) |
Scope & caveats
- Level A + AA only. AAA is out of scope (not required by the EAA/BFSG baseline).
- WCAG 2.2 additions (e.g. 2.4.11, 2.5.7, 2.5.8, 3.2.6, 3.3.7, 3.3.8) have no EN 301 549
clause yet — v3.2.1 predates WCAG 2.2. They're flagged
harmonised: falseand expected to land in EN 301 549 v4. They're included so audits are forward-compatible. - 4.1.1 Parsing is obsolete in WCAG 2.2 but kept for WCAG 2.1 / EN 301 549 v3.2.1 audits that still cite it.
- This is a standards crosswalk, not legal advice. The BFSG/EAA columns describe the harmonisation route, not a determination for any specific product.
Sources
- WCAG 2.1 — https://www.w3.org/TR/WCAG21/
- WCAG 2.2 — https://www.w3.org/TR/WCAG22/
- EN 301 549 v3.2.1 — https://www.etsi.org/deliver/etsi_en/301500_301599/301549/03.02.01_60/en_301549v030201p.pdf
- EAA (Directive (EU) 2019/882) — https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32019L0882
- BFSG — https://www.gesetze-im-internet.de/bfsg/
Contributing
Corrections welcome — open an issue or PR against build.mjs (not the generated files).
If EN 301 549 v4 publishes WCAG 2.2 clause numbers, that's the main expected update.
License
MIT. Use it in anything, commercial or not.
Maintained by WCAGdesk · continuous WCAG 2.2 AA monitoring with timestamped, independently verifiable evidence for the EU Accessibility Act and BFSG.