Identifiants d'en-têtes de tableau
Silktide vérifie les tableaux qui relient leurs cellules à des en-têtes au moyen de l'attribut headers. Dans ces tableaux, chaque cellule d'en-tête a besoin de son propre ID, sinon les liens ne peuvent pas fonctionner.
Dans les tableaux complexes - par exemple, ceux comportant deux niveaux d'en-têtes ou des cellules s'étendant sur plusieurs lignes - la relation entre une cellule et ses en-têtes ne peut pas être déterminée à partir de la position uniquement.
résout cela avec l'attribut headers : chaque cellule de données énumère les valeurs id des cellules d'en-tête qui s'appliquent à elle. Cela ne fonctionne que si chaque
cellule d'en-tête possède effectivement un id.
<!-- Problème : le deuxième en-tête n'a pas d'id, donc les cellules ne peuvent pas s'y référer -->
<table>
<tr>
<th id="name">Nom</th>
<th>Pointage</th>
</tr>
<tr>
<td headers="name">Ada</td>
<td>98</td>
</tr>
</table>
Pourquoi c'est important
Quand un tableau utilise des associations headers, un
lit à voix haute les en-têtes liés
avant chaque valeur, ce qui permet à l'auditeur de savoir où il se trouve dans
un tableau complexe. Une cellule d'en-tête sans id ne peut pas être référencée, donc les
cellules en dessous sont annoncées sans contexte, et le tableau devient
une devinette pour toute personne qui ne peut pas le voir.
Comment corriger
- Attribuez à chaque cellule d'en-tête
<th>du tableau unidunique. - Mettez à jour l'attribut
headersde chaque cellule de données pour lister les ID de tous les en-têtes qui s'appliquent à elle, séparés par des espaces :
<!-- Corrigé : chaque en-tête a un id et les cellules s'y réfèrent -->
<table>
<tr>
<th id="name">Nom</th>
<th id="score">Pointage</th>
</tr>
<tr>
<td headers="name">Ada</td>
<td headers="score">98</td>
</tr>
</table>
- Sinon, envisagez de simplifier le tableau. Les tableaux simples avec une seule ligne
ou une seule colonne d'en-têtes n'ont pas besoin d'associations
headersdu tout - des<th>avec des attributsscopesuffisent, et elles sont beaucoup plus faciles à maintenir.
Comment Silktide teste ceci
- Repérer tous les tableaux sur chaque page.
- Ignorer les tableaux où aucune cellule n'utilise l'attribut
headers- cette vérification ne s'applique qu'aux tableaux qui ont opté pour des associations d'en-têtes explicites. - Dans les tableaux restants, signaler chaque cellule d'en-tête
<th>qui n'a pas d'attributid.