đŽ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 hat | Nicht 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:
| Constraint | Verhalten |
|---|---|
| Required | Das Feld wird ungĂŒltig, wenn der Wert zunĂ€chst eingegeben und anschlieĂend gelöscht wird. |
| Min / Max | Definiert den erlaubten Wertebereich. Ein Wert unterhalb des Minimums oder oberhalb des Maximums macht das Feld ungĂŒltig. Helper text sollte den erlaubten Bereich kommunizieren. |
| Step | Ein Wert, der kein Vielfaches des definierten Steps ist, macht das Feld ungĂŒltig. |
| Bad input | Jede 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 characters | Ein 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-labelnötig. - Platzhalter (Placeholder) im Eingabefeld können optional zugÀnglich gemacht werden, indem sie im
aria-labelAttribut 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.");