Veraltetes scope-Attribut
Silktide prüft auf scope-Attribute, die auf gewöhnlichen Tabellendatenzellen gesetzt sind. Das scope-Attribut beschreibt, worauf sich eine Überschrift bezieht, daher gehört es nur auf Überschriftenzellen; auf einer Datenzelle ist es veraltet und kann Hilfstechnologien in die Irre führen.
In ist scope für <th>-Überschriftenzellen definiert. Das Attribut auf eine
<td>-Datenzelle zu setzen, bedeutet meist eines von zwei Dingen: Die Zelle ist eigentlich eine
Überschrift und sollte ein <th> sein, oder das Attribut ist ein Überbleibsel aus altem Markup und
sollte entfernt werden.
<!-- Problem: scope auf einer Datenzelle -->
<td scope="col">Name</td>
Warum das wichtig ist
Ein erstellt sein Verständnis einer Tabelle anhand des Markups.
Ein scope-Attribut auf einer Datenzelle ist ein widersprüchliches Signal: Das Element sagt 'Ich
bin eine Datenzelle', während das Attribut sagt 'Ich beschrifte andere Zellen'. Verschiedene
lösen diesen Widerspruch unterschiedlich – einige
ignorieren das Attribut, andere behandeln die Zelle als Überschrift –, sodass die Tabelle je nach
verwendeter Software mit falschen oder uneinheitlichen Überschriften ausgegeben werden kann.
So beheben Sie das
Entscheiden Sie, was die Zelle wirklich ist:
- Wenn sie als Überschrift fungiert, ändern Sie sie in ein
<th>und behalten Sie einen gültigenscope-Wert bei (row,col,rowgroupodercolgroup):
<!-- Behoben: Die Überschrift ist eine echte Überschriftenzelle -->
<th scope="col">Name</th>
- Wenn es sich um gewöhnliche Daten handelt, entfernen Sie das
scope-Attribut vollständig:
<!-- Behoben: einfache Datenzelle -->
<td>Name</td>
So testet Silktide dies
- Sucht auf jeder Seite nach allen Tabellenzellen.
- Meldet jede
<td>-Datenzelle, die einscope-Attribut trägt, unabhängig von dessen Wert.