Attribut scope obsolète
Silktide vérifie les attributs scope placés sur des cellules de données de tableau ordinaires. L’attribut scope décrit à quoi s’applique un en-tête; il ne doit donc se trouver que sur les cellules d’en-tête. Sur une cellule de données, il est obsolète et peut induire les technologies d’assistance en erreur.
En , scope est défini pour les cellules d’en-tête <th>. Le placer sur une cellule de données <td> signifie généralement l’une de ces deux choses : soit la cellule est réellement un en-tête et devrait être un <th>, soit l’attribut provient d’un ancien balisage et devrait être supprimé.
<!-- Problème : scope sur une cellule de données -->
<td scope="col">Nom</td>
Pourquoi c’est important
Un construit sa représentation d’un tableau à partir du balisage. Un attribut scope sur une cellule de données envoie un signal contradictoire : l’élément dit « Je suis une donnée », tandis que l’attribut dit « J’étiquette d’autres cellules ». Les différentes résolvent cette contradiction différemment : certaines ignorent l’attribut, d’autres traitent la cellule comme un en-tête. Le tableau peut donc être annoncé avec des en-têtes erronés ou incohérents selon le logiciel utilisé par le visiteur.
Comment corriger le problème
Déterminez ce qu’est réellement la cellule :
- Si elle agit comme un en-tête, remplacez-la par un
<th>et conservez une valeurscopevalide (row,col,rowgroupoucolgroup) :
<!-- Corrigé : l’en-tête est une véritable cellule d’en-tête -->
<th scope="col">Nom</th>
- S’il s’agit de données ordinaires, supprimez entièrement l’attribut
scope:
<!-- Corrigé : cellule de données simple -->
<td>Nom</td>
Comment Silktide effectue cette vérification
- Trouve chaque cellule de tableau sur chaque page.
- Signale chaque cellule de données
<td>qui comporte un attributscope, quelle que soit sa valeur.