Accessible Table

Was Ihre Tabelle Zelle für Zelle sagt

Kopfzellen, Bezüge, Überschrift: ohne sie ist jede Zelle nur eine Zahl.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 1.3.1Sichtbare Köpfe ohne Kopfsemantik

Eine Zelle, zwei Bezüge

Machen Sie den Kopfbezug sichtbar

Die Zahl 8 wird erst durch ihren Zeilen- und Spaltenkopf verständlich.

Illustratives BeispielWorkshopplan · Oktober 2026
Workshopplan · Oktober 2026
WorkshopTerminFormat Freie Plätze
Keramik am Abend8. OktoberStudio12
Holzschnitt 15. OktoberWerkstatt8
Fotolabor22. OktoberLabor5
Freie Plätze insgesamt25

Auf schmalen Bildschirmen lässt sich nur die Tabelle horizontal verschieben.

ZeilenkopfHolzschnitt<th scope="row">
SpaltenkopfFreie Plätze<th scope="col">
Bedeutung der ZelleHolzschnitt · freie Plätze · 8<td>8</td>

Was im Markup die Arbeit leistet

caption benennt die Tabelle. th kennzeichnet Kopfzellen; scope="row" und scope="col" legen deren Richtung fest. Assistive Technik kann so beim Navigieren den passenden Kontext zur Datenzelle liefern.

Was die Darstellung nicht versprechen darf

Die genaue Ansage hängt von Vorleseprogramm, Browser und Einstellungen ab. Prüfen Sie deshalb die Beziehung, nicht einen auswendig gelernten Satz. Für mehrstufige Köpfe brauchen Sie je nach Struktur colgroup, rowgroup oder explizite headers-Bezüge.

Kopierbares Grundmuster

Das vollständige HTML

Für eine einfache Tabelle mit je einem Zeilen- und Spaltenkopf.

<div class="table-scroll" role="region" tabindex="0"
  aria-labelledby="workshopplan-title">
  <table>
    <caption id="workshopplan-title">
      Workshopplan · Oktober 2026
    </caption>
    <thead>
      <tr>
        <th scope="col">Workshop</th>
        <th scope="col">Termin</th>
        <th scope="col">Format</th>
        <th scope="col">Freie Plätze</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th scope="row">Keramik am Abend</th>
        <td>8. Oktober</td>
        <td>Studio</td>
        <td>12</td>
      </tr>
      <tr>
        <th scope="row">Holzschnitt</th>
        <td>15. Oktober</td>
        <td>Werkstatt</td>
        <td>8</td>
      </tr>
      <tr>
        <th scope="row">Fotolabor</th>
        <td>22. Oktober</td>
        <td>Labor</td>
        <td>5</td>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <th scope="row" colspan="3">
          Freie Plätze insgesamt
        </th>
        <td>25</td>
      </tr>
    </tfoot>
  </table>
</div>

Der schmale, tastaturbedienbare Rahmen

.table-scroll {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid currentColor;
}

.table-scroll:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}

table {
  width: 100%;
  min-width: 42rem;
  border-collapse: collapse;
}

th,
td {
  padding: 0.75rem;
  border-bottom: 1px solid currentColor;
  text-align: left;
}

So prüfen Sie die Beziehung

VisuellVerkleinern Sie auf 320 CSS-Pixel. Nur der Tabellenrahmen darf horizontal scrollen.

TastaturSpringen Sie mit Tab zum Rahmen und verschieben Sie ihn mit den Pfeiltasten.

VorleseprogrammNavigieren Sie auf die 8. Zeilenkopf „Holzschnitt“ und Spaltenkopf „Freie Plätze“ müssen als Kontext verfügbar sein.

Aus dem Prüfbericht

Vier Stellen, vier Befunde

Zum Mitnehmen

Die Tabelle, korrigiert

caption, th mit scope, keine leere Spalte.

Korrektur in 2 Schritten ansehen
  1. Überschrift und Kopfzellen auszeichnen

    caption nennt die Tabelle, th mit scope sagt, wofür die Zelle Kopf ist.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <table>
      <tr><td colspan="4">Kursplan · Frühjahr 2026</td></tr>
      <tr><td>Kurs</td><td>Beginn</td><td>Ende</td><td>Plätze</td></tr>
      <tr><td>Töpfern</td><td>18:00</td><td>19:30</td><td>12</td></tr>
    </table>

    Nachher

    <table>
      <caption>Kursplan · Frühjahr 2026</caption>
      <thead>
        <tr><th scope="col">Kurs</th><th scope="col">Beginn</th>
          <th scope="col">Ende</th><th scope="col">Plätze</th></tr>
      </thead>
      <tbody>
        <tr><th scope="row">Töpfern</th><td>18:00</td><td>19:30</td><td>12</td></tr>
      </tbody>
    </table>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Gehen Sie mit einem Vorleseprogramm auf die 12. Es sagt „Töpfern, Plätze, 12“.

  2. Leere Spalten und falsche Bezüge entfernen

    Eine Kopfzelle ohne Daten verwirrt. Ein headers-Attribut braucht echte ids, sonst weg damit.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <tr><th scope="col">Plätze</th><th scope="col">Raum</th></tr>
    <tr><td headers="platz">8</td><td></td></tr>

    Nachher

    <tr><th scope="col">Plätze</th></tr>
    <tr><td>8</td></tr>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Die Tabelle hat jetzt in jeder Spalte Daten unter jedem Kopf.

Werbung

Kostenloser Website-Barrierefreiheits-Check

Website auf Barrierefreiheit prüfen.

Technische WCAG-Warnsignale erkennen. Kritische Stellen zuerst prüfen.

Der Website-Check ist bereit.

Werbung

Ein letzter Schritt

Prüfen, bevor Sie gehen.

Finden Sie automatisch erkennbare Barrieren auf Ihrer eigenen Website.

Website prüfen

Kostenlos starten · keine Installation

Automatisches Screening. Tastaturbedienung und Screenreader bleiben manuelle Prüfung.