Thématique 5 · Tableaux
Critère RGAA 5.7 : Association cellules / en-têtes
Dans un tableau, chaque cellule doit être annoncée avec ses en-têtes ; sans association correcte, les données perdent leur sens.
- Niveau
- A
- WCAG 2.2
- 1.3.1
- Thématique
- Tableaux
- Vérification
- Détecté automatiquement
La question posée par le RGAA
Pour chaque tableau de données, la technique appropriée permettant d’associer chaque cellule avec ses en-têtes est-elle utilisée (hors cas particuliers) ?
Comment respecter ce critère
- Pour un tableau simple, ajoutez scope="col" ou scope="row" sur les th.
- Pour un tableau complexe, utilisez les attributs id et headers.
Exemple
L'association en-têtes/cellules n'est pas exploitable (scope ou headers/id incorrects).
✗ À éviter
<th>Trimestre</th>✓ À faire
<th id="t1" scope="col">Trimestre</th>Les tests officiels
Pour être conforme, chaque élément concerné de la page doit satisfaire les tests suivants :
- 5.7.1 — Pour chaque contenu de balise <th> s’appliquant à la totalité de la ligne ou de la colonne, la balise <th> respecte-t-elle une de ces conditions (hors cas particuliers) ? (La balise <th> possède un attribut id unique ; La balise <th> possède un attribut scope ; La balise <th> possède un attribut WAI-ARIA role="rowheader" ou role="columnheader".)
- 5.7.2 — Pour chaque contenu de balise <th> s’appliquant à la totalité de la ligne ou de la colonne et possédant un attribut scope, la balise <th> vérifie-t-elle une de ces conditions ? (La balise <th> possède un attribut scope avec la valeur "row" pour les en-têtes de ligne ; La balise <th> possède un attribut scope avec la valeur "col" pour les en-têtes de colonne.)
- 5.7.3 — Pour chaque contenu de balise <th> ne s’appliquant pas à la totalité de la ligne ou de la colonne, la balise <th> vérifie-t-elle ces conditions ? (La balise <th> ne possède pas d’attribut scope ; La balise <th> ne possède pas d’attribut WAI-ARIA role="rowheader" ou role="columnheader" ; La balise <th> possède un attribut id unique.)
- 5.7.4 — Pour chaque contenu de balise <td> ou <th> associée à un ou plusieurs en-têtes possédant un attribut id, la balise vérifie-t-elle ces conditions ? (La balise possède un attribut headers ; L’attribut headers possède la liste des valeurs d’attribut id des en-têtes associés.)
- 5.7.5 — Pour chaque balise pourvue d’un attribut WAI-ARIA role="rowheader" ou role="columnheader" dont le contenu s’applique à la totalité de la ligne ou de la colonne, la balise vérifie-t-elle une de ces conditions ? (La balise possède un attribut WAI-ARIA role="rowheader" pour les en-têtes de ligne ; La balise possède un attribut WAI-ARIA role="columnheader" pour les en-têtes de colonne.)
Source : RGAA 4.1.2, critère 5.7, DINUM (nouvel onglet), sous Licence Ouverte. Le RGAA précise aussi des cas particuliers et un glossaire à consulter pour un audit officiel.
Comment Accessia le vérifie
Accessia détecte automatiquement les manquements à ce critère : l'analyse en ligne et l'extension Chrome localisent chaque élément en cause et proposent le correctif. Un contrôle humain reste utile pour les cas particuliers.