mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
3.3.2 Labels or instructions - Replace bare <label>Lecteur·ices :</label> (no 'for', no associated control) with <fieldset class="admin-jury-lecteurs"><legend>Lecteur·ices</legend> giving AT a proper programmatic label for the entire lecteur group 4.1.2 Name, role, value — Externe checkboxes lacked group context - Add aria-label="Promoteur·ice — externe" on the promoteur Externe checkbox - Add aria-label="Lecteur·ice N — nom" on every lecteur name input - Add aria-label="Lecteur·ice N — externe" on every lecteur Externe checkbox - All three attributes added to both PHP-rendered rows and the addJuryRow() JS that builds new rows dynamically 2.1.1 Keyboard — remove buttons already had aria-label; verified and updated label text to "Supprimer le lecteur·ice N" (consistent with new numbering) CSS (admin.css) - Add .admin-body fieldset fieldset.admin-jury-lecteurs rule: removes border/padding/background from the nested fieldset so it reads as a sub-group inside the outer jury fieldset, not a double-bordered card Audit (no code change) - WCAG 1.4.4: all font-size values use rem — no px text sizing anywhere - WCAG 1.4.12: only overflow:hidden on media containers and .sr-only utility; no essential text content is clipped by text-spacing overrides - WCAG 4.1.2 bulk JS: result is a redirect to flash-messages.php which already emits role="alert"/role="status" — no additional JS announcement needed
TODO Index
Pending tasks split by topic. Completed tasks have been removed.
| File | Topic |
|---|---|
| 01-css-semantic-refactor.md | CSS class audit, semantic HTML for templates (public + admin), inline style extraction, favicon |
| 02-php-components.md | Form field partials, shared UI partials, controller extraction, backend maintenance |
| 03-system-cache.md | system_cache table, SystemCache class, system.php refactor |
| 04-accessibility.md | WCAG 2.1 AA — remaining failures grouped by success criterion |