Portées des en-têtes de tableau
Silktide vérifie que chaque cellule d’en-tête de tableau indique ce dont elle est l’en-tête — une colonne, une ligne ou un groupe d’entre elles. Cela indique aux à quelles cellules s’applique chaque en-tête.
En , une cellule d’en-tête <th> peut précéder une colonne, une ligne ou un groupe de colonnes ou de lignes. L’attribut scope précise lequel, en supprimant toute ambiguïté sur la structure du tableau.
<!-- Problème : rien n’indique si « Nom » est l’en-tête d’une colonne ou d’une ligne -->
<th>Nom</th>
<!-- Correction : la portée (scope) le rend explicite -->
<th scope="col">Nom</th>
Pourquoi c’est important
Un annonce les en-têtes pertinents avec chaque cellule lorsque l’utilisateur se déplace dans un tableau. Pour cela, il doit savoir à quelles cellules chaque en-tête s’applique. Dans les tableaux qui comportent à la fois des en-têtes de colonne et de ligne, ou des en-têtes qui couvrent des groupes de cellules, un en-tête sans portée (scope) oblige le lecteur d’écran à deviner — et s’il se trompe, les valeurs sont annoncées avec un mauvais contexte ou sans contexte du tout.
Comment corriger
Ajoutez un attribut scope à chaque cellule <th>. Les valeurs valides sont :
col— l’en-tête s’applique à la colonne située en dessous.row— l’en-tête s’applique à la ligne adjacente.colgroup— l’en-tête s’applique à un groupe de colonnes.rowgroup— l’en-tête s’applique à un groupe de lignes.
<table>
<tr>
<th scope="col">Nom</th>
<th scope="col">Âge</th>
</tr>
<tr>
<th scope="row">Bob</th>
<td>35</td>
</tr>
</table>
Comment Silktide teste cela
- Rechercher chaque cellule d’en-tête
<th>sur chaque page. - Signaler chaque cellule dont l’attribut
scopeest manquant ou n’est pas l’une des valeursrow,col,rowgroupoucolgroup.
Dépannage
Mon tableau simple fonctionne bien sans l’attribut scope
Pour un tableau avec une seule ligne d’en-têtes en haut, les navigateurs et les lecteurs d’écran peuvent généralement déduire la structure. Indiquer explicitement la portée supprime néanmoins toute ambiguïté, ne coûte rien et vous protège si le tableau est ensuite complexifié, c’est pourquoi Silktide la demande pour chaque cellule d’en-tête. Si vous jugez qu’un tableau particulier est correct en l’état, vous pouvez le constat.