Skip to content

🔮Number Field ​

Die Number Field Komponente wird verwendet, um numerische und verÀnderbare Eingaben des Users abzubilden.

Overview ​

Intro ​

Number Field

Das Number Field ermöglicht dem Nutzer die Eingabe einer ganzen Zahl. Step buttons erlauben dem Nutzer, kleine Anpassungen schnell vorzunehmen. Üblicherweise wird es in Formularen verwendet, in denen ein prĂ€ziser, diskreter numerischer Wert erfasst werden soll.

Das Number Field akzeptiert ausschließlich ganzzahlige Werte.

Beispiele: ​

Anzahl Kopien - Number Field

Suchkriterien - Number Field

Mindestanzahl x - Number Field

Anzahl Kinder - Dropdown

Geburtsjahr - Dropdown

Verwendung ​

👍 Do👎 Don't
Verwenden wenn: - eine nicht feststehende, numerische Eingabe bearbeitet wird - die ĂŒbliche Auswahl der Eingabe i.d.R. nicht mehr als 10 Ergebnisse hatNicht verwenden wenn: - eine feststehende Zahl vom User eingegeben werden soll - die ĂŒbiche Auswahl der Eingabe i.d.R. mehr als 10 Ergebnisse hat - ein Dezimalwert erfasst werden soll. - Zahlen grĂ¶ĂŸer 99 in Betracht kommen

Guidelines ​

Aufbau ​

Das Number Field hat immer ein Label , das die erwartete Eingabe kennzeichnet, sowie ein Eingabefeld , in das der Nutzer die Zahl eintippen kann. Die Step buttons (+ und −) sind standardmĂ€ĂŸig sichtbar. Optional können folgende Elemente ergĂ€nzt werden:

  • Label — kennzeichnet das Feld. FĂŒr die Barrierefreiheit erforderlich. UnterstĂŒtzt Plaintext-Inhalt; die LĂ€nge ist durch die Breite des Feldes begrenzt.
  • Step buttons — ermöglichen dem Nutzer, den Wert schrittweise zu erhöhen oder zu verringern. Können deaktiviert werden, wenn ausschließlich die Tastatureingabe vorgesehen ist.
  • Helper text (optional) — erscheint unterhalb des Feldes. Geeignet, um den erlaubten Wertebereich zu kommunizieren (z.B. "1 bis 10 Personen"). Eine Style-Variante erlaubt die Darstellung oberhalb des Feldes.
  • Tooltip (optional) — kleines Text-Pop-up, das bei Hover und bei Tastatur-Fokus angezeigt wird. Helper werden gegenĂŒber Tooltips generell bevorzugt, da sie besser auffindbar und mobil besser unterstĂŒtzt sind.
  • Required indicator (bei Bedarf) — Pflichtfelder werden durch einen Indikator neben dem Label gekennzeichnet. Empfohlen wird ein Hinweistext am Anfang des Formulars, der die Bedeutung des Indikators erklĂ€rt.Verhalten

Wenn das Number Field sein Minimum erreicht hat (0 oder 1, je nach Fall), sollte das Minus im inaktiven Zustand sein.

Wenn das Number Field sein Maximum erreicht hat (je nach Fall), sollte das Plus im inaktiven Zustand sein.

Verhalten ​

Der Nutzer kann den Wert auf zwei Arten eingeben: direkt durch Tippen im Eingabefeld, oder ĂŒber die Step buttons und die Pfeiltasten der Tastatur. Nicht-numerische Zeichen werden abgewiesen.

Step buttons ​

Die Step buttons erhöhen oder verringern den aktuellen Wert um den definierten Step-Wert. Der Standard-Step-Wert ist 1. Der Wert kann auch ĂŒber die Pfeiltaste nach oben und die Pfeiltaste nach unten angepasst werden, wenn das Feld den Fokus hat.

Der Step-Wert definiert auch, welche numerischen Intervalle als gĂŒltig akzeptiert werden — ein Wert, der nicht einem Vielfachen des Steps entspricht, macht das Feld ungĂŒltig.

Min- und Max-Werte begrenzen den erreichbaren Bereich: Der Step button fĂŒr "erhöhen" wird deaktiviert, wenn der Max-Wert erreicht ist; der Step button fĂŒr "verringern" wird deaktiviert, wenn der Min-Wert erreicht ist.

Validierung ​

Die Validierung erfolgt ĂŒblicherweise, wenn der Nutzer eine WertĂ€nderung auslöst, z.B. durch Eingabe und DrĂŒcken von Enter . Ist der Wert ungĂŒltig, wird das Feld rot hervorgehoben und eine Fehlermeldung erscheint unterhalb des Eingabefeldes.

Folgende Constraints werden unterstĂŒtzt:

ConstraintVerhalten
RequiredDas Feld wird ungĂŒltig, wenn der Wert zunĂ€chst eingegeben und anschließend gelöscht wird.
Min / MaxDefiniert den erlaubten Wertebereich. Ein Wert unterhalb des Minimums oder oberhalb des Maximums macht das Feld ungĂŒltig. Helper text sollte den erlaubten Bereich kommunizieren.
StepEin Wert, der kein Vielfaches des definierten Steps ist, macht das Feld ungĂŒltig.
Bad inputJede Eingabe, die nicht in einen gĂŒltigen numerischen Wert geparst werden kann, macht das Feld ungĂŒltig und setzt den Wert zurĂŒck. Dieser Constraint ist nicht konfigurierbar und standardmĂ€ĂŸig aktiv.
Allowed charactersEin regulĂ€rer Ausdruck fĂŒr einzelne Zeichen kann einschrĂ€nken, welche Zeichen eingegeben werden dĂŒrfen. Programmatisch gesetzte Werte unterliegen dieser EinschrĂ€nkung nicht.

Jedes Constraint sollte eine eigene Fehlermeldung haben, damit der Nutzer spezifisches, umsetzbares Feedback erhÀlt.

States ​

Das Number Field unterstĂŒtzt die Standard-Eingabefeld-States. Visuell folgen sie der gleichen Darstellung wie beim Rest der Mate DS Eingabefeld — das Number Field benötigt keine eigenen State-Darstellungen.

  • Default — leer und bearbeitbar; Step buttons sichtbar.
  • Filled — das Feld enthĂ€lt einen Wert.
  • Invalid — das Feld ist rot hervorgehoben und eine Fehlermeldung erscheint unterhalb des Eingabefeldes. Wird ausgelöst, wenn ein Validierungs-Constraint verletzt wird.

Die Darstellung der States Aktiv , Disabled , Read Only , Hover und Fokus entspricht der Standarddarstellung. Siehe States .

Barrierefreiheit ​

Tastaturbedienung ​

Über die Tabulatortaste ( Tab ) oder Hochstell- und Tabulatortaste ( Shift + Tab ) lĂ€sst sich zwischen den einzelnen Eingabefeldern springen. In einem aktiven fokussierten Number Field kann die Eingabe wie gewohnt erfolgen. Über die Pfeiltaste nach oben ( ↑ ) und die Pfeiltaste nach unten ( ↓ ) kann der Wert schrittweise angepasst werden, ohne die Step buttons zu verwenden.

Spezifische Hinweise ​

  • Da jedes Eingabefeld ein Label haben muss, ist kein zusĂ€tzliches aria-label nötig.
  • Platzhalter (Placeholder) im Eingabefeld können optional zugĂ€nglich gemacht werden, indem sie im aria-label Attribut angegeben werden.
  • Gesperrte Eingabefelder sollten standardmĂ€ĂŸig nicht ĂŒber die Tastatur fokussierbar sein. Erst wenn der Nutzer entsprechende Einstellungen vornimmt, sollten auch die gesperrten Eingabefelder in den Fokussierungs-Kreislauf aufgenommen werden.
  • Fehleridentifikation & Korrekturhinweis: SchlĂ€gt die Validierung fehl, muss der Fehler programmatisch mit dem Feld verknĂŒpft sein (nicht ausschließlich ĂŒber Farbe kommuniziert) und die Meldung muss dem Nutzer mitteilen, wie er den Fehler korrigieren kann (z.B. "Bitte einen Wert zwischen 1 und 10 eingeben", nicht nur "Fehler").
  • Pflichtfeld-Kennzeichnung: Am Anfang des Formulars muss ein Hinweistext stehen, der die Bedeutung des Required indicator erklĂ€rt.
  • Prefix- und Suffix-Elemente werden von Screenreadern in der Regel nicht zuverlĂ€ssig vorgelesen. Einheiten oder Symbole, die ĂŒber Prefix oder Suffix kommuniziert werden, mĂŒssen auch im Label oder Helper text verfĂŒgbar sein (z.B. "Anzahl Personen (1–9)" statt nur ein "Stk."-Suffix).

Develop Vue ​

Die Implementierung der Webcomponenten in Vue.js kann in folgendem Showcase innerhalb des AKDB Netzwerks betrachtet werden: https://mate-ds-vue-components-showcase-25.core-platform.kubt.akdb.net/?path=/story/komponenten-text-field--number-default

Develop Flow ​

Der Showcase ist innerhalb des AKDB Netzwerks zu finden unter: https://mate-ds-flow-components-showcase-25.core-platform.kubt.akdb.net/?src=component%252Fnumber-field

Code Examples ​

Install ​

Maven ​

xml
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-text-field-flow</artifactId>
</dependency>

Import ​

java
import com.vaadin.flow.component.textfield.NumberField;

Variants ​

Default ​

java
NumberField numberField = new NumberField();
numberField.setLabel("Anzahl");
numberField.setValue(1.0);
numberField.setHelperText("Geben Sie einen Zahlenwert ein");
numberField.setStepButtonsVisible(true);

Required ​

java
NumberField numberField = new NumberField();
numberField.setLabel("Pflichtfeld");
numberField.setValue(1.0);
numberField.setRequired(true);
numberField.setStepButtonsVisible(true);

Disabled ​

java
NumberField numberField = new NumberField();
numberField.setLabel("Inaktiv");
numberField.setValue(1.0);
numberField.setEnabled(false);
numberField.setStepButtonsVisible(true);

Read Only ​

java
NumberField numberField = new NumberField();
numberField.setLabel("Nur lesen");
numberField.setValue(1.0);
numberField.setReadOnly(true);

Invalid ​

java
NumberField numberField = new NumberField();
numberField.setLabel("UngĂŒltig");
numberField.setValue(1.0);
numberField.setManualValidation(true);
numberField.setInvalid(true);
numberField.setErrorMessage("Bitte einen gĂŒltigen Zahlenwert eingeben.");