4.2 KiB
Accessibility Audit (WCAG 2.1 AA)
1.1.1 Non-text content (alt text)
- Admin
<nav>"✕ Réinitialiser" and "✕" remove buttons — wrap✕in<span aria-hidden="true">✕</span>; addaria-label="Supprimer ce membre du jury"on jury remove buttons inadd.php/edit.php
1.3.1 Info and relationships
-
Admin form rows: multi-input rows (languages, formats) —
<label class="admin-label">withoutforlabels a group of checkboxes; replace with<fieldset>/<legend> -
Status badges in
admin/index.phpconvey state by colour alone — add visible non-colour distinction (prefix icon witharia-hidden="true") andaria-label="Statut : Publié"on badge<span>
1.3.4 / 1.3.5 Orientation & Input purpose
- No
autocompleteattributes on personal data fields —add.php/edit.php: addautocomplete="name"on author fields,autocomplete="email"on mail fields
1.4.1 Use of colour
-
Active nav link has no non-colour indicator — must include a non-colour signal (underline, border, weight change) alongside
aria-current="page" -
Admin purple
#9557b5as text colour on dark#1a1a1a: 3.57:1 — audit every use ofvar(--admin-purple)as text; ensure it is only used at large-text sizes (≥18pt/24px or bold ≥14pt)
1.4.4 Resize text
- Verify no text is set in
px— ensurewidth: 14px; height: 14pxon checkboxes and similar elements do not prevent text scaling
1.4.12 Text spacing
- No text-spacing override test done — verify WCAG 1.4.12 bookmarklet does not cause content clipping (especially
overflow: hiddenon.card__mediaand tightaspect-ratio: 4/3)
2.1.1 Keyboard
- Jury "✕" remove buttons in
add.php/edit.php— addaria-labelfor keyboard discoverability
2.4.3 Focus order
- On
tfe.phpthe← Retourback link is at the bottom of the left column in DOM — consider moving above<h1>or adding a copy at the top so keyboard users can exit quickly
2.4.4 Link purpose
- Home page cards: if two theses share the same title, identical link texts exist — append year in
<span class="sr-only">to disambiguate
2.5.3 Label in name
<a class="clear-filter">✕ Réinitialiser</a>— wrap✕in<span aria-hidden="true">- Admin jury remove buttons
✕—aria-label="Supprimer ce lecteur"replaces the symbol
2.5.5 Target size
- Pagination buttons are
2rem(32px) — increase tomin-height: 2.75rem; min-width: 2.75rem(44px) - Admin
.admin-btn-sm(~28px) — increase to minimum 32px with padding - Admin bulk action buttons and jury remove
✕buttons (~28px) — increase target size
3.1.1 Language of page
- All public pages have
<html lang="fr">— verify this is true after any template changes ✓ (no action needed unless templates change)
3.3.1 Error identification
add.php/formulaire.phpvalidation errors — addrole="alert"to error div; addautofocusto first invalid field when re-rendering form with session error data
3.3.2 Labels or instructions
- Admin jury "Lecteur·ices" label has no
forattribute — wrap lecteur rows in<fieldset>/<legend>or usearia-describedby
4.1.2 Name, role, value
-
Custom "Externe" checkbox for jury members has no group context — add
aria-label="[Nom du promoteur] est externe"dynamically via JS, oraria-describedbypointing to the adjacent name input -
<video>elements ontfe.phphave no captions — add<track kind="captions">slot in template; document caption requirement in admin upload form -
Admin
<select>for visibility/access inedit.phpuses truncated option text — use full description in option text (ortitleattribute); keep truncated text only for visual display -
Bulk publish/unpublish JS does not announce result to screen readers — add
role="alert"to error messages androle="status"to success messages across all admin pages
5 - Motion & user preferences
prefers-color-schemenot respected — site has fixed white public / fixed dark admin themes; consider a dark-mode variant for public pages (not a WCAG failure, but quality-of-life)