Zum Hauptinhalt springen
Version: 2.5.0

Input Group

Synonyme: Input mit Präfix / Suffix, Eingabefeld mit Zusatz, Input-Gruppe, Kombiniertes Eingabefeld
Ähnliche Komponenten: Input Text, Search, Input Password

Kurzbeschreibung

Input Groups erweitern ein Eingabefeld um ein Präfix, ein Suffix oder eine Aktion, um den erwarteten Eingabewert klarer zu machen oder direkt zu verarbeiten.

Beispiele

Text-Präfix

Code anzeigen
<div class="kern-form-input">
    <label class="kern-label" for="group-text">Telefonnummer</label>
    <div class="kern-hint" id="group-text-hint">Geben Sie Ihre Telefonnummer ohne die führende 0 oder +49 ein.</div>
    <div class="kern-input-group">
      <span class="kern-input-group-text" aria-hidden="true">+49</span>
      <input class="kern-form-input__input" id="group-text" name="group-text" type="tel" autocomplete="tel-national" aria-describedby="group-text-hint" />
    </div>
  </div>

Text-Suffix

Code anzeigen
<div class="kern-form-input">
    <label class="kern-label" for="group-suffix-text">Wohnfläche in Quadratmetern</label>
    <div class="kern-input-group">
      <input class="kern-form-input__input" id="group-suffix-text" name="group-suffix-text" type="text" inputmode="numeric" />
      <span class="kern-input-group-text" aria-hidden="true">m²</span>
    </div>
  </div>

Text-Präfix und -Suffix

Code anzeigen
<div class="kern-form-input">
    <label class="kern-label" for="group-prefix-suffix-text">Internetadresse (URL)</label>
    <div class="kern-hint" id="group-prefix-suffix-text-hint">Tragen Sie nur den Domainnamen ohne https:// und ohne Endung .de ein.</div>
    <div class="kern-input-group">
      <span class="kern-input-group-text" aria-hidden="true">https://</span>
      <input class="kern-form-input__input" id="group-prefix-suffix-text" name="group-prefix-suffix-text" type="text" autocomplete="url" aria-describedby="group-prefix-suffix-text-hint" />
      <span class="kern-input-group-text" aria-hidden="true">.de</span>
    </div>
  </div>

Button-Suffix

Code anzeigen
<div class="kern-form-input">
<label class="kern-label" for="group-with-icon-text">Passwort</label>
<div class="kern-input-group">
  <input class="kern-form-input__input" id="group-with-icon-text" name="group-with-icon-text" type="password" autocomplete="current-password" />
  <button class="kern-btn kern-btn--secondary" type="button" aria-pressed="false">
    <span class="kern-icon kern-icon--visibility-off" aria-hidden="true"></span>
    <span class="kern-label kern-sr-only">Passwort anzeigen</span>
  </button>
</div>
</div>

Readonly

Code anzeigen
<div class="kern-form-input">
    <label class="kern-label" for="group-readonly-text">Wie hoch ist die Miete, in Euro pro Monat?</label>
    <div class="kern-input-group">
      <span class="kern-input-group-text kern-input-group-text--readonly" aria-hidden="true">€</span>
      <input class="kern-form-input__input" id="group-readonly-text" name="group-readonly-text" type="text" inputmode="numeric" readonly value="850" />
      <span class="kern-input-group-text kern-input-group-text--readonly" aria-hidden="true">pro Monat</span>
    </div>
  </div>

Disabled

Achtung

Vermeide disabled, da es die Zugänglichkeit einschränkt. Weitere Informationen zur Barrierefreiheit

Code anzeigen
<div class="kern-form-input">
    <label class="kern-label" for="group-disabled-text">Wie hoch ist die Miete, in Euro pro Monat?</label>
    <div class="kern-input-group">
      <span class="kern-input-group-text kern-input-group-text--disabled" aria-hidden="true">€</span>
      <input class="kern-form-input__input" id="group-disabled-text" name="group-disabled-text" type="text" inputmode="numeric" disabled value="850" />
      <span class="kern-input-group-text kern-input-group-text--disabled" aria-hidden="true">pro Monat</span>
    </div>
  </div>

Hinweistext und Fehlermeldung

Code anzeigen
<div class="kern-form-input kern-form-input--error">
    <label class="kern-label" for="group-error-text">Wie hoch ist die Miete, in Euro pro Monat?</label>
    <div class="kern-input-group">
      <span class="kern-input-group-text" aria-hidden="true">€</span>
      <input class="kern-form-input__input kern-form-input__input--error" id="group-error-text" name="group-error-text" type="text" inputmode="numeric" aria-describedby="group-error-message" />
      <span class="kern-input-group-text" aria-hidden="true">pro Monat</span>
    </div>
    <p class="kern-error" id="group-error-message" role="alert">
      <span class="kern-icon kern-icon--danger" aria-hidden="true"></span>
      <span class="kern-body">Die Miete muss größer als 0 sein</span>
    </p>
  </div>

Beschreibung

Hinweis

Für Input Group gelten die allgemein beschriebenen Eigenschaften eines Inputs, wie z. B. Zustände (states) oder Dos and Don’ts.

Eine Input Group ist eine Komponente, die ein Eingabefeld um zusätzliche Elemente vor (Präfix) oder nach (Suffix) dem Input erweitert. Diese Elemente können aus Text oder interaktiven Komponenten wie Buttons bestehen und dienen dazu, den Kontext der Eingabe zu verdeutlichen oder eine direkte Interaktion zu ermöglichen. Input Groups werden eingesetzt, um Eingaben verständlicher zu machen, beispielsweise durch die Darstellung von Einheiten, Währungen oder strukturellen Bestandteilen wie URL-Präfixen. Die zusätzlichen Elemente sind dabei nicht Teil des eigentlichen Eingabewerts, sondern dienen ausschließlich der visuellen und funktionalen Unterstützung.

Die Komponente verhält sich funktional wie ein einzelnes Eingabefeld. Interaktionen wie Fokus, Eingabe und Validierung beziehen sich ausschließlich auf das Input-Feld selbst. Bei einer ungültigen Eingabe wird eine Fehlermeldung unterhalb der Input Group angezeigt. Input Groups unterstützen die Zustände Default, Focus, Error, Disabled und Read-only. Weitere Hinweise zu Verhalten und Zuständen findest du in der allgemeinen Input-Dokumentation „States“.

Da Präfixe und Suffixe nicht automatisch von assistiven Technologien erfasst werden, müssen deren Bedeutung und Kontext im Label oder in unterstützenden Texten beschrieben werden.

Verwendungsregeln

Um eine klare und verständliche Eingabe zu gewährleisten, sollten Input Groups gezielt und kontextabhängig eingesetzt werden.

Verwende Input Groups, wenn zusätzliche Informationen direkt am Eingabefeld dargestellt werden sollen, die den Kontext der Eingabe verdeutlichen. Dazu zählen beispielsweise Einheiten wie Euro, Prozent oder Kilogramm, strukturierende Bestandteile wie URL-Präfixe oder auch Aktionen, die in direktem Zusammenhang mit der Eingabe stehen, etwa das Ein- und Ausblenden eines Passworts.

Sie eignen sich besonders für standardisierte Eingaben, bei denen Teile des Werts bereits vorgegeben sind und daher nicht von den Nutzenden eingegeben werden müssen. Dadurch wird die Eingabe vereinfacht und Missverständnisse werden reduziert.

Input Groups können auch eingesetzt werden, um Aktionen im direkten Zusammenhang mit einer Eingabe anzubieten, beispielsweise das Auslösen einer Suche. In diesem Fall sollte die Aktion eng mit dem Eingabefeld verknüpft sein und dessen Nutzung sinnvoll ergänzen.

Dos und Don’ts

  • Formuliere das Label so, dass der Kontext der Eingabe eindeutig ist, etwa „Kosten in Euro“ statt nur „Kosten“.
  • Achte darauf, dass Eingaben auch dann korrekt verarbeitet werden, wenn Nutzende Präfixe oder Suffixe zusätzlich manuell in das Input-Feld einfügen.
  • Wenn ein Feld selbsterklärend ist, verwende keine Input Group.
  • Verwende universell verständliche Präfixe und Suffixe, z. B. „%“ statt „v. H.“ (von Hundert).
  • Vermeide unklare oder mehrdeutige Abkürzungen sowie lange oder komplexe Inhalte in Präfixen und Suffixen.
  • Nutze Präfixe und Suffixe sparsam. Sie sollen nicht von der eigentlichen Eingabe ablenken.
  • Platziere das Label immer außerhalb der Input Group, damit die Bedeutung des Eingabefeldes eindeutig und barrierefrei vermittelt wird.

Barrierefreiheit

Die Barrierefreiheit unserer Komponenten wird nach der Barrierefreie-Informationstechnik-Verordnung (BITV 2.0) geprüft, die auf der europäischen Norm EN 301 549 basiert. Diese legt Anforderungen an die Zugänglichkeit von Informations- und Kommunikationstechnologien (IKT) fest und orientiert sich an den WCAG 2.1. Die für Webinhalte relevanten Kriterien sind in Kapitel 9 der EN 301 549 beschrieben und übernehmen die Nummerierung der WCAG-Kriterien, ergänzt um eine führende 9 – z. B. wird aus WCAG 2.4.3 „Focus Order“ das Kriterium 9.2.4.3.

Da bereits an einer Aktualisierung der EN 301 549 gearbeitet wird, haben wir uns entschieden, alle dort referenzierten Kriterien schon jetzt anhand der WCAG 2.2 zu prüfen und zu dokumentieren. So stellen wir sicher, dass unser Design-System den kommenden europäischen Standards voraus ist und langfristig barrierefrei bleibt.

Implementierungsabhängig

Unsere Komponenten wurden einzeln auf Barrierefreiheit geprüft und sind für sich genommen barrierefrei. Bei der Nutzung bzw. Kombination mehrerer Komponenten müssen jedoch bestimmte Aspekte beachtet werden, um die Barrierefreiheit im Gesamtkontext sicherzustellen:

Implementierungsabhängig

WCAG 1.3.5

Input der Input Group hat ein passendes autocomplete-Attribut

Implementierungsabhängig

WCAG 3.3.1

Fehler in der Input Group werden klar identifiziert

Implementierungsabhängig

WCAG 3.3.2

Label oder Hinweistext beschreibt Präfix und Suffix der Input Group aussagekräftig

Implementierungsabhängig

WCAG 4.1.2

Eingebettete Buttons in der Input Group haben einen aussagekräftigen Namen

Bestanden

Folgendes ist bereits geprüft und erfüllt, vorausgesetzt die Komponente wird wie in den Code-Beispielen gezeigt verwendet:

Bestanden

WCAG 1.3.1

Input der Input Group ist programmatisch mit Label verknüpft

Bestanden

WCAG 1.3.1

Fehlermeldung ist programmatisch mit dem Eingabefeld der Input Group verknüpft

Bestanden

WCAG 1.4.1

Zustände der Input Group werden nicht nur durch Farbe vermittelt

Bestanden

WCAG 1.4.6

Text in Input, Präfix und Suffix erfüllt das minimale Kontrastverhältnis von 7:1

Bestanden

WCAG 1.4.11

Rahmen der Input Group hebt sich mit mindestens 3:1 Kontrast ab

Bestanden

WCAG 2.1.1

Input Group ist vollständig per Tastatur bedienbar

Bestanden

WCAG 2.4.13

Input Group hat sichtbare Fokuszustände

Bestanden

WCAG 4.1.2

Visuelle Präfix- und Suffix-Elemente sind für Screenreader korrekt ausgeblendet

Bestanden

WCAG 4.1.3

Fehlermeldung wird als Status-Nachricht gekennzeichnet

Siehe auch: BFIT Handreichungen

KERN Chat (Beta 2.1)

Hallo!

Ich bin die KERN KI und kann zu allen Inhalten auf dieser Website Auskunft geben.