Datentabellen im Web können sehr leicht unübersichtlich werden, für eingeschränkte Internetuser noch mehr. Um dieses Problem zu lösen und der Tabelle eine Struktur zu geben, stehen eine Vielzahl an Tabellenspezifische (X)HTML-Elementen und Attributen zur Verfügung. Leider werden derzeit nicht alle Elemente von Screenreadern unterstützt, dennoch macht es für ein semantisches Markup sehr viel Sinn. Die Lesbarkeit und Accessibility wird deutlich erhöht.
Aus aktuellem Anlass (für eine Modellrechnungsapplikation), hab ich mich entschlossen meinen Bloglesern die wichtigsten Eckdaten für eine zugängliche und strukturierte Tabelle nicht vorzuenthalten.
Tabellenzusammenfassung
<summary>Das ist die Zusammenfassung des Inhaltes der Datentabelle </summary>
Dieses Attribut wird direkt innerhalb des <table> Tags angewendet und soll als Inhaltsbeschreibung dienen. Das Summary ist besonders wichtig für die Barrierefreiheit, da es Screenreadern exklusiv zur Verfügung steht. Vergleichen kann man das Attribut mit dem ebenso sehr unerlässlichem „Alt-Text“ von Bilddateien in Webseiten.
Tabellenbezeichnung und Zusammenfassung
<caption>Das ist die Tabellenüberschrift</caption>
Dieser Tag fungiert als Tabellenbezeichnung oder Überschrift, in diesem Fall würde ich aber empfehlen lieber über die Tabellen (zusätzlich oder stattdessen) ein klassisches Überschriften-Element zu setzen. (h1, h2..), da Screenreader-Benutzer besser zu solchen Überschriften springen können.
Struktur der Tabelle
Die 3 logischen Bereiche
<thead>
Tableheader<tbody>
Tablebody<tfoot>
Tablefooter
bieten die Möglichkeit einer passenden Aufteilung in die Bereiche: Kopf, Inhalt und Footer. Wichtig: Wenn Tableheader oder -footer verwendet werden muß unbedingt ein Tablebody-Element festgelegt werden, die 3 funktionieren nur zusammen. Eine Tabelle darf nur einen <thead>
oder <tfoot>
, aber mehrere <tbody>
, um mehr Überschaubarkeit festzulegen.
Zeilen- oder Spaltenformatierung
Die Elemente <colgroup>
und <col>
ermöglichen eine spezifische Darstellung der Spalten. Für eine Formatierung einer ganzen Zeile kann das <tr>
Element zum Ansteuern verwendet werden. Das Element <colgroup
> ermöglicht eine oder mehrere mit dem <col> Element ausgezeichneten Spalten. Hier gibts ein paar Einbußen bei älteren Browsern.
Praxisbeispiel
1 | 3% | 4% |
---|---|---|
2 | 3% | 4% |
1 | 10000 | 20000 |
2 | 20000 | 30000 |
3 | 30000 | 40000 |
<h2>Tabelle Performance</h2>
<table summary="Wie entwickelt sich mein Sparvertrag bei verschiedener Aktienperformance">
<caption>Performance</caption>
<colgroup>
<col id="Jahre" />
<col id="Performance_3" />
<col id="Performance_4" />
</colgroup>
<thead>
<tr>
<th scope="col">1</th>
<th scope="col">3%</th>
<th scope="col">4%</th>
</tr>
</thead>
<tfoot>
<tr>
<th scope="col">2</th>
<th scope="col">3%</th>
<th scope="col">4%</th>
</tr>
</tfoot>
<tbody>
<tr>
<td>1</td>
<td>10000</td>
<td>20000</td>
</tr>
<tr>
<td>2</td>
<td>20000</td>
<td>30000</td>
</tr>
<tr>
<td>3</td>
<td>30000</td>
<td>40000</td>
</tr>
</tbody>
</table>
Formatierung
In der CSS-Spezifikation gibt es 2 Varianten von Tabellenrahmen:
seperate
collapse
Bei seperate
erhält jede Zelle einen eigenen Rahmen, während bei collapse
die Zellen sich Ränder teilen, welches ich nützlicher finde. Damit die Tabelle ein Rasterlayout behält, sollte auch eine feste Breite festgelegt werden, der Rahmen hilft sicher optisch besser abzugrenzen und ein Padding verbessert das Lesen der Zellendaten. Alle anderen oben genannten Elemente können wie üblich mit CSS gestylt werden. Empfehlen kann ich die CSS Table Galler, ausprobieren lohnt sich.
Referenzen
Du willst mit jemanden über das Thema plaudern?
Einen kostenlosen Termin mit CEO Susanne vereinbaren!UX Snacks Vol.09
That’s a wrap on UX Snacks 2024. Am 7. November hat die vierte und letzte Ausgabe in diesem Jahr stattgefunden und wir nehmen mit diesem Recap ganz viel positive UX-Energie mit ins neue Jahr. Und keine Angst: Schon bald verkünden wir die Daten für 2025.
Jetzt lesenFolge #62 mit Susanne Liechtenecker
In Folge 62 besinnt sich Susanne auf die Anfänge dieses Podcasts und begrüßt keinen Gast, sondern erzählt über das Buch "Jäger, Hirten, Kritiker" von Richard David Precht und warum es sie inspiriert hat.
Jetzt anhören