En-têtes de cellule
Silktide vérifie les cellules de tableau qui indiquent leurs en-têtes au moyen de l’attribut headers, et confirme que chaque ID référencé existe bien. Une référence vers un ID manquant rompt silencieusement la liaison entre une cellule et son en‑tête.
Dans les tableaux complexes, chaque cellule de données peut porter un attribut headers répertoriant les valeurs id des cellules d’en‑tête qui s’y appliquent. Si un ID est mal saisi, ou si l’en‑tête visé a été renommé ou supprimé, l’association cesse discrètement de fonctionner.
<!-- Problème : aucun élément avec id="prise" n’existe (faute de frappe pour « price ») -->
<td headers="prise">$40</td>
Pourquoi c’est important
Un utilise les associations headers pour annoncer les bons en‑têtes avant chaque valeur, ce qui permet à une personne qui ne peut pas voir le tableau de comprendre à quoi correspond chaque nombre. Lorsqu’une référence ne pointe vers rien, la cellule est annoncée sans son contexte, et l’auditeur n’a aucun moyen de savoir que quelque chose manque — le tableau devient simplement plus difficile, voire impossible, à suivre.
Les références rompues apparaissent généralement avec le temps : l’id d’un en‑tête est renommé, une colonne est supprimée, ou un régénère les ID. Visuellement, rien ne change, donc sans vérification automatisée, personne ne s’en aperçoit.
Comment corriger
- Repérez l’attribut
headersde la cellule et comparez chaque ID listé avec les attributsiddes cellules d’en‑tête du tableau. - Corrigez toute faute de frappe, ou mettez la liste à jour avec l’
idactuel de l’en‑tête. - Si un en‑tête référencé n’existe plus, supprimez l’ID obsolète de la liste.
- Si le tableau est simple — une seule ligne ou colonne d’en‑têtes — envisagez d’abandonner complètement les associations
headerset d’utiliser plutôt des cellules<th>avec des attributsscope, qui ne peuvent pas se rompre de cette manière.
<!-- Corrigé : la référence correspond à un véritable en‑tête -->
<th id="price">Prix</th>
...
<td headers="price">$40</td>
Comment Silktide teste cela
- Recherchez chaque cellule de tableau possédant un attribut
headerssur chaque page. - Scindez la valeur de l’attribut en ID individuels.
- Recherchez chaque ID partout dans la page.
- Signalez chaque cellule qui référence au moins un ID inexistant.
Dépannage
L’ID existe mais la cellule est quand même signalée
Vérifiez les problèmes d’exactitude : les ID sont sensibles à la casse, donc Price et price sont des ID différents. Assurez‑vous également que la liste est séparée uniquement par des espaces — les virgules ou autres signes de ponctuation deviennent partie de l’ID et perturbent la recherche.