Attribut scope obsolète
Silktide recherche des 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 apparaître 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 : la cellule est en réalité un en-tête et devrait être une <th>, ou l’attribut est hérité d’un ancien balisage et doit être supprimé.
<!-- Problème : scope sur une cellule de données -->
<td scope="col">Name</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 constitue un signal contradictoire : l’élément dit « Je contiens des données » tandis que l’attribut dit « Je décris d’autres cellules ». Différentes résolvent cette contradiction de manières diverses - certaines ignorent l’attribut, d’autres traitent la cellule comme un en-tête - si bien que le tableau peut être annoncé avec des en-têtes erronés ou incohérents selon le logiciel utilisé par le visiteur.
Comment le corriger
Décidez de ce qu’est réellement la cellule :
- Si elle agit comme un en-tête, remplacez-la par une
<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">Name</th>
- Si c’est une donnée ordinaire, supprimez complètement l’attribut
scope:
<!-- Corrigé : cellule de données simple -->
<td>Name</td>
Comment Silktide teste cela
- Trouver toutes les cellules de tableau sur chaque page.
- Signaler chaque cellule de données
<td>qui comporte un attributscope, quelle que soit sa valeur.