0Pricing
CSS Academy · Lektion

Tab-Komponente mit :checked-Hack vs. JS

Implementieren Sie eine Tab-Oberfläche mit der CSS-Technik :checked und vergleichen Sie sie mit einem JavaScript-Ansatz.

Tab-Komponente mit :checked-Hack vs. JS ist eine kostenlose CSS Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CSS Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.

Anforderungen an Tab-Komponenten

Eine Tab-Komponente benötigt: eine visuelle Kennzeichnung des aktiven Tabs, ein zugehöriges Panel, das bei der Auswahl ein- oder ausgeblendet wird, Tastaturnavigation zwischen Tabs und barrierefreie ARIA-Attribute. Dies lässt sich mit reinem CSS über den :checked-Hack oder mit JavaScript für eine bessere Barrierefreiheit umsetzen.

Der :checked-Hack

Ausgeblendete Radio-Inputs dienen als Zustand: Jeder Tab ist ein mit einem Radio-Input verknüpftes <label>. Wenn ein Radio-Input ausgewählt ist, zeigen CSS-Geschwisterselektoren das entsprechende Panel an und gestalten das Label des aktiven Tabs. Dafür ist kein JavaScript erforderlich.

<div class="tabs">
  <input type="radio" name="tabs" id="tab-1" checked hidden />
  <label for="tab-1">Tab One</label>
  <div id="panel-1">Panel one content</div>
</div>

:checked-CSS-Architektur

Platzieren Sie die Radio-Inputs, anschließend alle Labels (Tabs) und danach alle Panels im selben Container. Verwenden Sie den allgemeinen Geschwisterselektor (~), um ein ausgewähltes Radio mit seinem entsprechenden Panel zu verknüpfen. Panels haben standardmäßig display: none; das passende Panel erhält display: block.

Einschränkungen des :checked-Ansatzes

Der :checked-Hack kann keine ARIA-Attribute aktualisieren (aria-selected, aria-controls), keine Navigation zwischen Tabs mit den Pfeiltasten ermöglichen, und die Einschränkung der DOM-Reihenfolge (Inputs vor Panels) kann mit den Anforderungen des visuellen Designs kollidieren. Diese Lücken schränken die tatsächliche Barrierefreiheit ein.

JavaScript-Tab-Komponente

Eine JS-Tab-Komponente reagiert auf Klickereignisse der Tab-Schaltflächen, setzt aria-selected am aktiven Tab, aktualisiert aria-hidden an den Panels und verwaltet den Fokus. Dieser Ansatz ermöglicht vollständige ARIA-Konformität und Tastaturinteraktionsmuster gemäß den ARIA Authoring Practices.

ARIA-Rollen für Tabs

Verwenden Sie role="tablist" am Container, role="tab" an jeder Tab-Schaltfläche mit aria-selected und aria-controls sowie role="tabpanel" an jedem Panel mit aria-labelledby. Screenreader geben die Anzahl, Position und den ausgewählten Zustand der Tabs aus.

Tastaturinteraktionsmuster

Die ARIA Authoring Practices für Tabs sehen Folgendes vor: Mit der Tab-Taste gelangen Sie in die Tab-Liste und fokussieren den aktiven Tab. Mit Pfeil links/rechts wechseln Sie zwischen Tabs. Home/End springen zum ersten bzw. letzten Tab. Jede Bewegung mit einer Pfeiltaste aktiviert den fokussierten Tab (Muster mit automatischer Aktivierung).

CSS für den aktiven Zustand

Gestalten Sie den aktiven Tab mit einem unteren Rahmen oder einer Hintergrundänderung über den Selektor [aria-selected="true"] – dies funktioniert sowohl mit JS als auch mit dem :checked-Ansatz. So bleibt CSS mit dem ARIA-Zustandsattribut synchron, ohne dass zwei Zustände verwaltet werden müssen.

<div role="tablist">
  <button role="tab" aria-selected="true">Overview</button>
  <button role="tab" aria-selected="false">Details</button>
</div>

Animierter Tab-Indikator

Ein animierter Tab-Indikator gleitet zwischen Tabs: Positionieren Sie ein absolut positioniertes Indikatorelement, verwenden Sie JavaScript, um seine linke Position und Breite an die Abmessungen des aktiven Tabs anzupassen, und animieren Sie es mit transition: left 200ms ease, width 200ms ease.

Responsiver Tab-Überlauf

Wenn Tabs auf kleinen Bildschirmen aus ihrem Container herauslaufen, verwenden Sie horizontales Scrollen (overflow-x: auto; scrollbar-width: none) oder reduzieren Sie sie auf mobilen Geräten zu einem Select-Dropdown. Für den Select-Ansatz ist JS erforderlich, um das native Select mit der Sichtbarkeit des Tab-Panels zu synchronisieren.

CSS-only vs. JS: Wann welches verwenden

Verwenden Sie den :checked-Hack für einfache, nicht kritische UI, bei der Barrierefreiheit keine vorrangige Anforderung ist. Verwenden Sie JavaScript-Tabs für jede Produktionsoberfläche, die Tastatur- oder Screenreader-Nutzende bedient oder in Audits bzw. aufgrund gesetzlicher Anforderungen ARIA-Konformität erfordert.

Wissenscheck

Was ist die wichtigste Einschränkung des CSS-:checked-Hacks für Tabs im Hinblick auf die Barrierefreiheit?

Zusammenfassung

Der :checked-Hack ermöglicht das Umschalten von Tabs ausschließlich mit CSS, indem Radio-Inputs und Geschwisterkombinatoren verwendet werden, bietet jedoch keine ARIA- oder Tastaturzugänglichkeit. JavaScript-Tabs mit ARIA-Rollen (tablist, tab, tabpanel), der Verwaltung von aria-selected und der Behandlung der Pfeiltasten ermöglichen die vollständige, barrierefreie Benutzererfahrung, die für produktionsreife Komponenten erforderlich ist.

Häufig gestellte Fragen

Ist die Lektion „Tab-Komponente mit :checked-Hack vs. JS“ kostenlos?

Ja — der vollständige Text von „Tab-Komponente mit :checked-Hack vs. JS“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CSS Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Tab-Komponente mit :checked-Hack vs. JS“?

Implementieren Sie eine Tab-Oberfläche mit der CSS-Technik :checked und vergleichen Sie sie mit einem JavaScript-Ansatz. Du übst CSS Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um CSS Academy zu starten?

Keine Vorkenntnisse erforderlich. CSS Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Tab-Komponente mit :checked-Hack vs. JS“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser CSS Academy-Lektion Code schreiben und ausführen?

Ja. Jede CSS Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Card-Komponente mit CSS Custom Properties
  2. Styling von Modals und Dialogen
  3. Dropdown- und Popover-Muster
  4. Tab-Komponente mit :checked-Hack vs. JS
← Zurück zu CSS Academy