IDs für Tabellenüberschriften
Silktide prüft Tabellen, die ihre Zellen mithilfe des Attributs headers mit Überschriften verknüpfen. In solchen Tabellen benötigt jede Überschriftenzelle eine eigene ID, sonst funktionieren die Verknüpfungen nicht.
In komplexen Tabellen – zum Beispiel mit zwei Ebenen von Überschriften oder Zellen, die sich über mehrere Zeilen erstrecken – lässt sich die Beziehung zwischen einer Zelle und ihren Überschriften nicht allein aus der Position ableiten. löst dies mit dem Attribut headers: Jede Datenzelle listet die id-Werte der Überschriftenzellen auf, die für sie gelten. Das funktioniert nur, wenn jede Überschriftenzelle tatsächlich eine id hat.
<!-- Problem: Die zweite Überschrift hat keine id, daher können die Zellen nicht auf sie verweisen -->
<table>
<tr>
<th id="name">Name</th>
<th>Score</th>
</tr>
<tr>
<td headers="name">Ada</td>
<td>98</td>
</tr>
</table>
Warum das wichtig ist
Wenn eine Tabelle headers-Zuordnungen verwendet, liest ein die verknüpften Überschriften vor jedem Wert vor, sodass die Hörenden in einer komplexen Tabelle die Orientierung behalten. Auf eine Überschriftenzelle ohne id kann nicht verwiesen werden; die Zellen darunter werden daher ohne Kontext angekündigt und die Tabelle wird für Personen, die sie nicht sehen können, zum Ratespiel.
So beheben Sie das
- Geben Sie jeder
<th>-Überschriftenzelle in der Tabelle eine eindeutigeid. - Aktualisieren Sie in jeder Datenzelle das Attribut
headers, sodass es die IDs aller für sie geltenden Überschriften – durch Leerzeichen getrennt – auflistet:
<!-- Behoben: Jede Überschrift hat eine id und die Zellen verweisen auf sie -->
<table>
<tr>
<th id="name">Name</th>
<th id="score">Score</th>
</tr>
<tr>
<td headers="name">Ada</td>
<td headers="score">98</td>
</tr>
</table>
- Alternativ können Sie die Tabelle vereinfachen. Einfache Tabellen mit nur einer Zeile oder Spalte von Überschriften benötigen überhaupt keine
headers-Zuordnungen –<th>-Zellen mitscope-Attributen reichen aus und sind deutlich einfacher zu pflegen.
So testet Silktide dies
- Auf jeder Seite werden alle Tabellen ermittelt.
- Tabellen, in denen keine Zelle ein
headers-Attribut verwendet, werden übersprungen – diese Prüfung gilt nur für Tabellen, die explizite Überschriften-Zuordnungen verwenden. - In den verbleibenden Tabellen wird jede
<th>-Überschriftenzelle gemeldet, die keinid-Attribut hat.