https://github.com/sergordienko/eu-accessibility-mapping
Open MIT crosswalk: WCAG 2.x ↔ EN 301 549 ↔ EU Accessibility Act ↔ German BFSG. The reference mapping behind WCAGdesk reports.
https://github.com/sergordienko/eu-accessibility-mapping
a11y accessibility bfsg compliance eaa en-301-549 open-data wcag wcag22
Last synced: 12 days ago
JSON representation
Open MIT crosswalk: WCAG 2.x ↔ EN 301 549 ↔ EU Accessibility Act ↔ German BFSG. The reference mapping behind WCAGdesk reports.
- Host: GitHub
- URL: https://github.com/sergordienko/eu-accessibility-mapping
- Owner: sergordienko
- License: mit
- Created: 2026-06-06T10:42:30.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-06T10:53:48.000Z (about 2 months ago)
- Last Synced: 2026-06-06T12:20:51.108Z (about 2 months ago)
- Topics: a11y, accessibility, bfsg, compliance, eaa, en-301-549, open-data, wcag, wcag22
- Language: JavaScript
- Size: 7.81 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-accessibility - EU Accessibility Mapping - Open MIT dataset (JSON + CSV) crosswalking every WCAG 2.x A/AA success criterion to EN 301 549, the EU Accessibility Act, and Germany's BFSG, documenting the harmonized-standard chain that grants presumption of conformity. (Data & Datasets)
- awesome-europe - EU Accessibility Mapping - accessibility-mapping?style=flat-square&label=⭐)](https://github.com/sergordienko/eu-accessibility-mapping/stargazers) [](https://github.com/sergordienko/eu-accessibility-mapping/commits/main) [](https://github.com/sergordienko/eu-accessibility-mapping) [](https://github.com/sergordienko/eu-accessibility-mapping/blob/main/LICENSE) [](https://eur-lex.europa.eu/eli/dir/2019/882/oj) [](https://www.etsi.org/deliver/etsi_en/301500_301599/301549/) - Open machine-readable crosswalk mapping WCAG 2.x success criteria to EN 301 549, the EU Accessibility Act, and Germany's BFSG as diffable JSON/CSV. (Accessibility)
README
# eu-accessibility-mapping
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](https://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.mjs` regenerates
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: false` and 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](./LICENSE). Use it in anything, commercial or not.
---
Maintained by [WCAGdesk](https://wcagdesk.eu) · continuous WCAG 2.2 AA monitoring with
timestamped, independently verifiable evidence for the EU Accessibility Act and BFSG.