Passer au contenu
SilktideAide

En-têtes de cellules

Silktide vérifie les cellules de tableau qui nomment leurs en-têtes à l'aide de l'attribut headers et s'assure que chaque ID référencé existe réellement. Une référence à un ID manquant rompt discrètement la connexion entre une cellule et son en-tête.

Dans les tableaux complexes, chaque cellule de données peut porter un attribut headers qui énumère 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 vers lequel il pointait 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 voit pas le tableau de suivre la signification de 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 qu'il manque quelque chose - le tableau devient simplement plus difficile, voire impossible, à suivre.

Des références brisées apparaissent souvent avec le temps: l'id d'un en-tête est renommé, une colonne est supprimée, ou un régénère des ID. Rien ne change visuellement, donc sans vérification automatisée, personne ne s'en aperçoit.

Comment corriger le problème

  1. Repérez l'attribut headers de la cellule et comparez chaque ID listé aux attributs id des cellules d'en-tête du tableau.
  2. Corrigez toute faute de frappe, ou mettez à jour la liste avec l'id actuel de l'en-tête.
  3. Si un en-tête référencé n'existe plus, retirez l'ID périmé de la liste.
  4. Si le tableau est simple - une seule ligne ou colonne d'en-têtes - envisagez de supprimer complètement les associations headers et d'utiliser plutôt des cellules <th> avec des attributs scope, qui ne peuvent pas se briser de cette façon.
<!-- Corrigé: la référence correspond à un en-tête réel -->
<th id="price">Price</th>
...
<td headers="price">$40</td>

Comment Silktide teste cela

  1. Trouver chaque cellule de tableau avec un attribut headers sur chaque page.
  2. Scinder la valeur de l'attribut en ID individuels.
  3. Rechercher chaque ID n'importe où dans la page.
  4. Signaler chaque cellule qui fait référence à au moins un ID qui n'existe pas.

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 aussi que la liste est séparée uniquement par des espaces - les virgules ou autres signes de ponctuation deviennent partie de l'ID et empêchent la recherche.

En savoir plus

Dernière mise à jour

Cette page vous a-t-elle été utile?