Accessibilité : [5.2.1.2] : Il faut regrouper les niveaux logiques des en-têtes de tableau (en-têtes de lignes)

Priorité 1

Cause :

Vous utilisez un tableau qui contient plusieurs niveaux d'en-tête de ligne ou de colonne. Il faut utiliser le balisage approprié pour associer les cellules de données avec leur en-tête.

Exemple :

Error <table summary="Ce tableau devrait utilisez le balisage pour regrouper les niveaux logiques des en-têtes de tableau.">
<caption>Ce tableau devrait utilisez le balisage pour regrouper les niveaux logiques des en-têtes de tableau.</caption>
<tr>
<th>Système</th><td>a-1</td><td>Suzanne</td><td>Macintosh</td>
</tr>
<tr>
<th rowspan="2">ID<br>lieu ou code</th><td>Local</td><td>Immeuble 1</td><td>Front Desk</td>
</tr>
<tr>
<td>Local</td><td>Immeuble 2</td><td>Back Desk</td>
</tr>
<tr>
<th>Obligatoire</th><td>oui</td><td>oui</td><td>non</td>
</tr>
</table>

Solution :

Pour des tableaux de données qui ont deux ou plusieurs niveaux logiques d'en-têtes de lignes et de colonnes, il faut utiliser des balises pour associer les cellules de données avec les cellules d'en-têtes.
Par exemple, il faut utiliser <thead>, <tfoot> et <tbody> pour regrouper les lignes, <col> et <colgroup> pour regrouper les colonnes, et les attributs "axis", "scope" et "headers" pour décrire des relations plus complexes entre les données.

Références :

.