Form Inputs
Beschreibung
Ein Eingabefeld ermöglicht es den Nutzenden, Daten in das System einzugeben, sei es durch die Eingabe von Text, numerischen Werten oder anderen Formen von Informationen. Die Eingabe ist für die Interaktion zwischen dem Nutzenden und der Anwendung in verschiedenen Kontexten wie Formularen, Suchfeldern und Dateneingabeschnittstellen von entscheidender Bedeutung. Hier findest du allgemeine Informationen zu allen Typen von Eingabefeldern, Besonderheiten der einzelnen Ausprägungen findest du auf den Unterseiten:
States
Eingabefelder können verschiedene Zustände annehmen. Nicht alle Felder nutzen alle „states“. Bei den einzelnen Ausprägungen wird angegeben, welche „states“ sie verwenden.
| State | Beschreibung und Verwendung |
|---|---|
| default | Wenn Nutzende Informationen eingeben können, wird das Input im Zustand „default“ angezeigt. Dies ist der Normalzustand in einem Formular. |
| hover | Wird verwendet, wenn der Mauszeiger der Nutzenden über dem Input schwebt. |
| focus | Sobald Nutzende das Input anklicken, antippen oder mit der Tabulatortaste ansteuern, wird es fokussiert. Dies zeigt an, dass das Feld aktiv und eingabebereit ist. |
| readonly | Inputs können im Zustand „readonly“ angezeigt werden, wenn zuvor Informationen gespeichert wurden, die an dieser Stelle nicht geändert werden können. In diesem Zustand sind die Inputs schreibgeschützt (inaktiv). Nutze diesen Zustand ausschließlich, wenn es Nutzenden einen Mehrwert bringt, die Information erneut einzusehen. Gegebenenfalls kann ein Link zu dem Ort hilfreich sein, an dem die angezeigten Informationen angepasst werden können. |
| disabled | Der Zustand „disabled“ zeigt an, dass Nutzende keine Inhalte eingeben können, beispielsweise bis eine andere Aktion abgeschlossen ist. Verwende diesen Zustand, wenn eine vorübergehende Deaktivierung des Inputs sinnvoll ist. Blende einen Input lieber aus, wenn es nicht benötigt wird. |
| error default | Beim Zustand „error“ wird das Input mit der entsprechenden Funktionsfarbe markiert und mit einer Fehlermeldung versehen. Dieser Zustand tritt auf, wenn beim Absenden des Formulars ein Fehler im entsprechenden Input festgestellt wurde – beispielsweise, wenn ein Pflichtfeld nicht ausgefüllt wurde. Die Meldung sollte knapp und verständlich erklären, was zu tun ist, um den Fehler zu beheben. Bei längeren Fehlermeldungen, achte darauf, dass sie das Layout nicht beeinträchtigen. Um Eingabefehler zu vermeiden, nutze Inputs zur Eingabe spezieller Formate. Sollen Nutzende zum Beispiel ein Datum eingeben, nutze Input Date. |
| error focus | Wenn beim Absenden eines Formulars ein Fehler festgestellt wurde, wird dieser am entsprechenden Eingabefeld angezeigt – wie im Zustand „error“ beschrieben. Sobald Nutzende das betroffene Input ansteuern, um den Fehler zu korrigieren, erhält es zusätzlich den Fokus (siehe State „focus“). Die visuelle Darstellung kann je nach Input-Typ variieren. |
| error hover | Wenn beim Absenden eines Formulars ein Fehler festgestellt wurde, wird dieser am entsprechenden Eingabefeld angezeigt – wie im Zustand „error“ beschrieben. Bewegt der Mauszeiger sich über das fehlerhafte Feld, wird dieser „error-hover“-Zustand visuell hervorgehoben. Die konkrete Darstellung kann je nach Input-Typ variieren. |
Ergänzende Elemente und Eigenschaften
Label und Legende
Das Label oder die Legende eines Inputs sollte immer möglichst knapp und präzise beschreiben, welche Eingabe nötig ist.
Required-Auszeichnung
Formulare sollten idealerweise hauptsächlich aus Pflichtfeldern und nur wenigen optionalen Feldern bestehen. So bleibt das Formular übersichtlich und benutzerfreundlich – ganz im Sinne unserer KERN-Gestaltungsprinzipien.
Für die Kennzeichnung von Pflichtfeldern setzen wir bevorzugt auf aria-required="true", statt das native HTML-Attribut required zu verwenden. Der Grund: Das required-Attribut führt zu einer automatischen Browservalidierung, bei der Stil und Verhalten nicht konsistent steuerbar sind. Je nach Browser erscheint eine unterschiedlich gestaltete Fehlermeldung (z. B. Tooltip mit „Bitte füllen Sie dieses Feld aus“) und eine automatische Umrandung – was dem Anspruch an ein einheitliches, barrierefreies Fehlermuster widerspricht.
Mit aria-required="true" hingegen wird das Feld von assistiven Technologien korrekt als erforderlich erkannt, ohne dass der Browser automatisch eingreift. Das erlaubt uns, die Validierung vollständig per JavaScript und CSS zu steuern und somit ein einheitliches visuelles Feedback sowie zugängliche Fehlermeldungen umzusetzen – wie in den KERN-Richtlinien vorgesehen.
Alternativ kann auch der Ansatz des Bootstrap-Frameworks verfolgt werden: Hier wird das required-Attribut verwendet, die native Formularüberprüfung jedoch durch eigene Validierungsmechanismen ergänzt. Auch dies kann eine gangbare Lösung sein – sofern dabei sichergestellt wird, dass die Benutzerführung und das visuelle Feedback konsistent mit den KERN-Vorgaben umgesetzt werden.
Nutze bevorzugt aria-required="true" für die Markierung von Pflichtfeldern – für maximale Kontrolle über Darstellung und Barrierefreiheit.