An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

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.