Diese Woche habe ich mich überwiegend mit Tabellen befasst, und wie man sie so gestaltet, dass sie barrierefrei sind.
Bei allem was man auf einer Website darstellt, sollte man daran denken, dass es auch Menschen mit körperlicher und/ oder geistiger Behinderung gibt, die sich mit bestimmten Hilfsmitteln eigenständig im Netz bewegen. Hierzu zählen z.B. Blinde Menschen bzw. Menschen mit eingeschränktem Sehvermögen. Diese Menschen benutzen als Hilfsmittel z.B. einen Screenreader.
Auch eine Tabelle hat eine semantische Struktur. Normalerweise gliedert sie sich in den Tabellenkopf <thead></thead>, den Tabellenrumpf <tbody></tbody> und den Tabellenfuß <tfoot></tfoot>. Der Tabellenkopf enthält die jeweiligen Spaltenüberschriften, im Tabellenrumpf befinden sich die inhaltlichen Daten und im Tabellenfuß kann man zum Beispiel Fußnoten platzieren.
Jeder der drei Abschnitte ist wiederum in unterschiedlich viele Zeilen unterteilt, die mit <tr></tr> eingeschlossen sind und meistens genau so viele Zellen <td></td> enthalten, wie es Spalten gibt. Bei weniger komplexen Tabellen wird die Gliederung in Tabellenkopf, Tabellenrumpf und Tabellenfuß weggelassen. Dann gelten alle Zeilen als Tabellenrumpf. Außerdem sollte der Tabelle eine sinnvolle Überschrift vorangestellt werden.
Für Benutzer, die sich den Inhalt einer Website mithilfe eines Screenreaders vorlesen lassen, sind aber noch weitere Informationen wichtig.
Die <table summary=““ > sollte eine längere Beschreibung des Tabelleninhaltes enthalten, damit der Benutzer weiß, welche Daten die Tabelle enthält, und somit direkt entscheiden kann, ob diese Daten für ihn wichtig sind. So braucht er sich nicht erst die Tabellendaten vorlesen lassen.
Durch eine zusätzliche <caption></caption> kann man der Tabelle eine eigene Überschrift geben. Diese Aufgabe kann unter Umständen aber schon die summary übernehmen.
Der Screenreader liest die Tabelle normalerweise zeilenweise vor. Bei großen und komplexen Tabellen kann man dabei schnell den Überblick verlieren. Deshalb gibt es die Attribute „id“ und „headers“. Verwendet man diese Attribute in einer Tabelle liest der Screenreader vor dem Zelleninhalt die jeweilige Spaltenüberschrift vor.
Das funktioniert, indem man jeder Zelle im Tabellenkopf eine „id“ und somit einen eindeutigen Namen gibt. Jeder Zelle in dieser Spalte muss man nun das Attribut „headers“ mit dem entsprechenden Wert zuordnen.
Beispiel:
<table summary=”Diese Tabelle enthält Beispieldaten”>
<caption></caption>
<thead>
<tr>
<th id=”aktion”>Aktion</th>
<th id=”tag”>Wochentag</th>
<th id=”datum”>Datum</th>
</tr>
</thead>
<tfoot>
<tr>
<td headers=”aktion”>*Sportart</td>
<td headers=”tag”>*Wochentag</td>
<td headers=”datum”>*Datum</td>
</tr>
</tfoot>
<tbody>
<tr>
<td headers=”aktion”>Wandern</td>
<td headers=”tag”>Montag</td>
<td headers=”datum”>20.08.</td>
</tr>
<tr>
<td headers=”aktion”>Surfen</td>
<td headers=”tag”>Dienstag</td>
<td headers=”datum”>21.08.</td>
</tr>
<tr>
<td headers=”aktion”>Radfahren</td>
<td headers=”tag”>Mittwoch</td>
<td headers=”datum”>22.08.</td>
</tr>
</tbody>
</table>
