@@ -91,6 +91,14 @@ tests/ # unit/ (Bun), integration/ (Bun + RTL/jsdom), e2e/
91913 . Write the minimal implementation in ` lib/ ` / ` components/ ` / ` app/ `
92924 . Refactor while keeping tests green
9393
94+ ** Accessibility is mandatory** — every feature MUST comply with WCAG 2.2 AA
95+ and all markup MUST use HTML5-valid elements/attributes (no obsolete
96+ presentational attributes; presentation lives in CSS). New pages, components
97+ and template changes must keep the a11y guards green:
98+ ` tests/unit/html5-attributes.test.js ` , ` tests/unit/report-template-wcag.test.js ` ,
99+ ` tests/unit/css-a11y.test.js ` , ` tests/unit/page-titles.test.js ` — and add
100+ coverage there when introducing new markup patterns.
101+
94102## Platform-Aware Sections in This Repo
95103
96104- ** CSP** lives in ` app/layout.jsx ` (` script-src ` includes the CDN widget hosts and
@@ -111,4 +119,10 @@ tests/ # unit/ (Bun), integration/ (Bun + RTL/jsdom), e2e/
111119
112120## Current Test Count
113121
114- ~ 294 unit/integration + 112 E2E (three browsers + basePath leg).
122+ ~ 313 unit/integration + 112 E2E (three browsers + basePath leg).
123+
124+ WCAG 2.2 AA / HTML5 guards live in tests/unit/html5-attributes.test.js,
125+ tests/unit/report-template-wcag.test.js, tests/unit/css-a11y.test.js and
126+ tests/unit/page-titles.test.js — the report mustache keeps a single h1,
127+ scoped table headers, captions, labelled canvases and a named nav; obsolete
128+ presentational attributes are FORBID_ATTR-stripped in lib/renderer.js.
0 commit comments