Note: Es gibt veraltete Versionen dieser Komponente. Wechseln Sie zu einer Version, die älter als 10.0.x ist, um die entsprechende Dokumentation anzuzeigen.
Die Komponente Checkbox kann allein, außerhalb des CheckboxGroup-Kontexts verwendet werden.
<Checkboxlabel="This is a single checkbox"/>
Einfache Kontrollkästchen in einer Kontrollkästchengruppe
Die Komponente CheckboxGroup dient als Container für eine Gruppe von Checkbox-Elementen. Die Beschriftung kann wahlweise ein- oder ausgeblendet werden, ist aber für die Barrierefreiheit der Komponente zwingend erforderlich.
<CheckboxGrouplabel="This is a group"> <Checkboxlabel="option 1"/> <Checkboxlabel="option 2"/> </CheckboxGroup>
Sie können die Beschriftung der CheckboxGroup ausblenden, indem Sie die Eigenschaft hideLabel auf true setzen. Dies hat keine Auswirkungen auf die anderen Verhaltensweisen des CheckboxGroup-Elements.
<CheckboxGroup label="This is only for aria-label" hideLabel={true}> <Checkboxlabel="option 1"/> <Checkboxlabel="option 2"/> </CheckboxGroup>
CheckboxGroup ermöglicht die Anzeige von Optionen in horizontaler Anordnung, indem die Eigenschaft horizontal auf true festgelegt wird.
<CheckboxGroup label="This is an horizontal group" horizontal={true}> <Checkboxlabel="option 1"/> <Checkboxlabel="option 2"/> </CheckboxGroup>
Kontrollkästchen- und Kontrollkästchengruppe-Meldungen
Mit beiden Komponenten können Entwickler Fehlermeldungen anzeigen. Bei Einstellung auf der CheckboxGroup-Ebene werden Fehler unter allen Optionen angezeigt. Wenn sie jedoch auf der Checkbox-Ebene innerhalb einer CheckboxGroup eingestellt ist, wird die Meldung ignoriert und hat keine Auswirkungen.
exportfunctionCheckboxMessages(){ const[validationMessages, setValidationMessages]=useState({}); const[groupValidationMessages, setGroupValidationMessages]=useState({}); const onChange =useCallback((e, newChecked)=>{ setValidationMessages({}); setGroupValidationMessages({}); if(newChecked){ setValidationMessages({error:['This is ignored']}); setGroupValidationMessages({error:['Only second checkbox can be marked']}); } },[]); return( <CheckboxGroup label="Do not select the forbidden option" stateMessages={groupValidationMessages} > <Checkbox label="Forbidden option" onChange={onChange} stateMessages={validationMessages} /> <Checkboxlabel="You can select this one"/> </CheckboxGroup> ); } }
Obwohl dies nicht als Teil der Checkbox implementiert ist, ist das native Verhalten eines HTML-Eingabeelements verfügbar. In diesem Fall kann der unbestimmte Zustand programmgesteuert über JavaScript festgelegt werden. Ein Kontrollkästchen im unbestimmten Zustand weist eine horizontale Linie anstelle eines Häkchens auf. Im folgenden Beispiel wird der Stil geändert, um die Option sichtbar zu machen.
exportfunctionSetIndeterminateState(){ const onChange =useCallback((e, newCheck)=>{ (document.getElementById('checkbox2')asHTMLInputElement).indeterminate= newCheck; },[]); const style ={ opacity:100}; return( <CheckboxGrouplabel="Group of checkboxes"> <Checkbox label="Set the next checkbox as 'indeterminate'" onChange={onChange} /> <Checkbox label="This is another checkbox" id="checkbox2" checked={false} style={style} /> </CheckboxGroup> ); }
Note: Es gibt veraltete Versionen dieser Komponente. Wechseln Sie zu einer Version, die älter als 10.0.x ist, um die entsprechende Dokumentation anzuzeigen.
Mithilfe von Kontrollkästchen können Benutzer Elemente aus einer Liste auswählen. Sie tauchen häufig in Formularen auf, in denen Benutzerinformationen erfasst werden müssen. Bei Verwendung von Kontrollkästchen können Benutzer ein oder mehrere Elemente aus einer Gruppe auswählen.
Eine ausführliche Orientierungshilfe zur Verwendung dieser Komponente finden Sie im folgenden Entscheidungsbaum für UI-Komponenten.
Eine Kontrollkästchengruppe ist eine Liste von Kontrollkästchenelementen unter einer Gruppenbezeichnung. Benutzer können unter der Gruppenbezeichnung alle relevanten Elemente auswählen. Dieses Format ist nützlich, wenn es mehrere gültige Optionen für eine einzelne Instanz gibt.
In Jutro werden auch Kontrollkästchen mit einem einzigen Element unterstützt. Beachten Sie, dass Kontrollkästchen verwendet werden können, um eine Option zu aktivieren oder zu deaktivieren (z. B. beim Aktivieren oder Deaktivieren einer Einstellung).
Kontrollkästchengruppe (links) und einzelnes Kontrollkästchen (rechts).
Das Kontrollkästchen besteht aus folgenden Elementen:
Bezeichnung der Kontrollkästchengruppe: Erläutert den Zweck der Kontrollkästchengruppe.
Hilfetext (optional): Gibt zusätzlichen Kontext für die Kontrollkästchengruppe an.
Kontrollkästchen-Eingabe: Zeigt den entsprechenden Zustand an. Ist standardmäßig deaktiviert.
Kontrollkästchen-Beschriftung: Beschreibt die Information, die aktiviert oder deaktiviert wird.
QuickInfo-Symbol (optional): Dient zur Verdeutlichung des Kontexts für ein bestimmtes Kontrollkästchen. Wenn Sie mit dem Cursor darüber fahren, wird die QuickInfo angezeigt.
Eine Kontrollkästchengruppe kann je nach Seitenstruktur vertikal oder horizontal angeordnet werden. Standardmäßig sind Kontrollkästchen im Interesse der Lesefreundlichkeit vertikal angeordnet.
Wie bei allen Eingabekomponenten kann die Beschriftung der Kontrollkästchengruppe oben (Standard) oder links neben der Eingabe selbst angezeigt werden.
Kontrollkästchengruppen müssen eine Beschriftung aufweisen, die beschreibt, wofür die Liste der Optionen steht. Eine Kontrollkästchengruppe ohne Beschriftung ist uneindeutig und nicht barrierefrei.
Verwenden Sie die Gruppenbeschriftung, um die Kategorie der Gruppe anzugeben oder zu beschreiben, welche Aktionen im Folgenden durchzuführen sind.
Fügen Sie eine Beschriftung hinzu, die eindeutig beschreibt, wofür die Liste der Optionen steht.
Gehen Sie nicht davon aus, dass die Optionen ohne Beschriftung selbsterklärend sind.
Verwenden Sie für Kontrollkästchen eindeutige, einheitliche Beschriftungen
Versuchen Sie, alle Beschriftungen in einer Kontrollkästchengruppe so parallel wie möglich zu gestalten. Sie sollten dem gleichen Format folgen und ungefähr die gleiche Länge haben.
Verwenden Sie klare, prägnante und eindeutige Beschriftungen. Beschriftungen sollten Optionen beschreiben, die für durchschnittliche Benutzer leicht verständlich sind.
Verwenden Sie für Kontrollkästchen-Beschriftungen positive und aktive Formulierungen. Machen Sie deutlich, was passiert, wenn der Benutzer ein bestimmtes Kontrollkästchen markiert, und was passiert, wenn er es nicht markiert.
Vermeiden Sie Verneinungen, wie z. B. „Senden Sie mir keine E-Mail-Benachrichtigungen“. Dies würde bedeuten, dass der Benutzer das Kontrollkästchen markieren müsste, damit nichts passiert.
Verwenden Sie die erste Person, wenn Sie den Benutzer um seine Zustimmung bitten. Beispiel: „Ich stimme den Nutzungsbedingungen zu“
Verwenden Sie parallele Formulierungen und versuchen Sie, die Länge bei allen Beschriftungen in etwa gleich zu halten.
Verwenden Sie keine sehr unterschiedlichen Formulierungen. Dies kann Benutzer bremsen oder sogar verwirren.
Formulieren Sie Kontrollkästchen-Beschriftungen prägnant
Beschränken Sie Kontrollkästchen-Beschriftungen auf eine einzige Zeile. Wir empfehlen, für Kontrollkästchen-Beschriftungen ein bis drei Wörter zu verwenden.
Kürzen Sie Kontrollkästchen-Beschriftungen nicht mit Auslassungspunkten (...) ab. Wenn die Beschriftung zu lang für den verfügbaren horizontalen Raum ist, sollten Sie eine andere Formulierung wählen. Lange Kontrollkästchen-Beschriftungen können auch in eine zweite Zeile umbrochen werden. Dies ist besser als kürzen.
Formulieren Sie Kontrollkästchen-Beschriftungen prägnant. Brechen Sie ggf. in eine zweite Zeile um.
Kürzen Sie Kontrollkästchen-Beschriftungen nicht mit Auslassungspunkten ab.
Verwenden von Fehlertext zur Anleitung der Benutzer
Kontrollkästchengruppen und Kontrollkästchen können Fehlermeldungen enthalten, um anzuzeigen, dass eine Auswahl erforderlich ist, um fortzufahren, oder dass die getroffene Auswahl ungültig war.
Verwenden Sie für Fehlertext die übliche Groß- und Kleinschreibung. Schreiben Sie 1 bis 2 kurze, vollständige Sätze, die mit einem Punkt enden.
Verwenden Sie Fehlermeldungstexte, um den Benutzer zu führen und ihm eine Lösung zu zeigen.
Schreiben Sie keine zweideutigen Fehlermeldungen und lassen Sie die Benutzer nicht im Unklaren darüber, wie ein Problem zu lösen ist.
Markieren Sie erforderliche Felder mit einem Sternchen (*). Das Sternchen steht vor der Feldbeschriftung. Benutzer können so leicht herausfinden, welche Felder erforderlich sind, indem sie nur das Zeichen ganz links in der Beschriftung scannen.
Zusätzlich zur Markierung erforderlicher Felder mit einem Sternchen wird empfohlen, klare Anweisungen am oberen Rand des Formulars einzufügen, z. B. „Alle mit einem Sternchen gekennzeichneten Felder sind Pflichtfelder“, um sicherzustellen, dass die Benutzer die Bedeutung des Sternchens verstehen.
Verwenden Sie ein Sternchen, um anzuzeigen, dass ein Feld ein Pflichtfeld ist.
Verwenden Sie kein Sternchen, um etwas zu kennzeichnen, das optional ist.
Schreiben Sie das erste Wort und Substantive groß.
Gruppen- und Kontrollkästchen-Beschriftungen werden in der üblichen Groß- und Kleinschreibung angezeigt.
Weitere Informationen zum Implementieren der Groß- und Kleinschreibung finden Sie im UI-Textstyleguide.
Verwenden Sie die übliche Groß- und Kleinschreibung.
Die Komponente „Kontrollkästchen“ hat 2 Hauptzustände: nicht markiert und markiert. Bei Kontrollkästchen ist standardmäßig keine der Optionen ausgewählt.
Zusätzlich zum nicht markierten und markierten Zustand verfügen Kontrollkästchen auch über interaktive Zustände für aktiviert, deaktiviert, schwebend, fokussiert, aktiv und Fehler.
Bild
Zustand
Beschreibung
Aktiviert
Teilt dem Benutzer mit, dass das Element für die Interaktion aktiviert ist (Standard).
Deaktiviert
Teilt dem Benutzer mit, dass das Element derzeit nicht interaktiv ist.
Schwebend
Zeigt an, dass der Benutzer den Mauszeiger auf dem Element positioniert hat (nur Desktopgerät).
Fokussiert
Zeigt an, dass der Benutzer das Element hervorgehoben hat, in der Regel über eine Eingabemethode wie eine Tastatur oder Sprachbefehl.
Aktiv
Gibt an, dass der Benutzer auf das Element klickt oder tippt.
Fehler
Gibt an, dass der Benutzer nicht alle Pflichtfelder bearbeitet hat (oder ein anderer formularbezogener Fehler).
Benutzer können eine Option auswählen, indem sie entweder das Kontrollkästchen selbst oder ihre Beschriftung anklicken. Untersuchungen zeigen, dass ein größeres Ziel schneller angeklickt werden kann.
Wenn das Kontrollkästchen fokussiert ist, ändert sich durch Drücken der Leertaste der Zustand des Kontrollkästchens. Dies folgt den vom World Wide Web Consortium (W3C) festgelegten Standards.
Für die Kontrollkästchengruppe: Die Kontrollkästchengruppe implementiert <input type='checkbox'>. Der barrierefreie Name der Gruppe wird von der Gruppenbezeichnung abgeleitet. Dies kann über das Beschriftungsfeld in Storybook geändert werden. Eine „for/id“-Verknüpfung wird implementiert, um jedes einzelne Kontrollkästchen mit seiner Beschriftung zu verknüpfen, während der Status „markiert/unmarkiert“ des Elements über das Attribut aria-checked kommuniziert wird.
Für das einzelne Kontrollkästchen: Das Element „Kontrollkästchen“ wird programmgesteuert mit seiner Beschriftung verknüpft. Das bedeutet, dass Benutzer mit der TAB-Taste durch Elemente navigieren können und ihre jeweiligen Beschriftungen von Screenreadern angesagt werden. Der Status „markiert/unmarkiert“ wird über das Attribut aria-checked kommuniziert.
Das Kontrastverhältnis von Textelementen zu ihrem Hintergrund liegt über 4,5:1 gemäß den Anforderungen der WCAG 2.1 AA. Nicht-textuelle Inhalte, die eine Bedeutung vermitteln müssen (z. B. Symbole und Sichtbarkeit des Tastaturfokus), weisen ein Kontrastverhältnis von mindestens 3:1 zu den angrenzenden Farben auf. Alle Inhalte sind bis einschließlich 400 % sichtbar und funktionsfähig, ohne dass ein Scrollen in zwei Dimensionen erforderlich ist.
Diese Komponente wurde validiert, um die Zugänglichkeitsrichtlinien WCAG 2.1 AA zu erfüllen. Vom Autor des Inhalts vorgenommene Änderungen können sich jedoch auf die Konformität mit der Barrierefreiheit auswirken.
Kontrollkästchen-Beschriftungen müssen eindeutig und prägnant sein.
Benutzer müssen informiert werden, wenn die Aktivierung eines Kontrollkästchens eine Änderung des Kontexts zur Folge hat.
Note: Es gibt veraltete Versionen dieser Komponente. Wechseln Sie zu einer Version, die älter als 10.0.x ist, um die entsprechende Dokumentation anzuzeigen.
Vergewissern Sie sich, dass Sie die API-Oberfläche der Design System-Komponenten und die damit verbundenen Auswirkungen und Kompromisse verstehen. Erfahren Sie mehr in unserer Einführung zur Komponenten-API.
State of the checkbox. If set to true, the checkbox is checked. Takes precedence over initialChecked. If this prop is passed, the component works in controlled mode and its value will change only if this prop changes.
If set to true, the component is rendered in disabled state. Note that when checkbox group is disabled all checkboxes inside group are disabled as well.
Möglichkeit zum Übergeben von nativen HTML-Attributen
Ref mit imperativen Handlern
Eine native event-Eigenschaft
Übergeben von HTML-Eigenschaften an die Komponente
Sie können HTML-Eingabeattribute verwenden, mit Ausnahme derjenigen, die von Jutro überschrieben werden. Diese Attribute werden dem HTML-Element input zugewiesen.
<CheckboxGrouplabel="This is a group"> <Checkbox label="This is the first one" id="firstOption" /> <Checkbox label="This is the second one" id="secondOption" /> <Checkbox label="This is the third one" id="thirdOption" /> </CheckboxGroup>
Durch die Übergabe der id-Eigenschaft wird diese Teil des HTML input-Elements, das im HTML-DOM erstellt wird.
Die Jutro-Eingaben haben imperative Handler als Mechanismus implementiert, um Zugang zu einigen gängigen nativen Funktionen zu bieten, die für Sie nützlich sein könnten. Die folgenden Funktionen sind verfügbar:
Fokus setzen ermöglicht es, den Fokus des Benutzers auf eine bestimmte Komponente zu setzen.
Weichzeichnen ermöglicht es, den Fokus von der Komponente zu entfernen.
Zur Komponente scrollen ermöglicht es, den Benutzer zu einem bestimmten Bereich der Seite zu führen.
Diese Funktionen werden über die ref-Eigenschaft bereitgestellt, die sie wie folgt verfügbar macht:
Anstelle der Eigenschaft value verwendet die Komponente Checkbox die Eigenschaft checked, um Informationen dazu zu speichern, ob das Kontrollkästchen aktiviert oder deaktiviert ist.
Vorrang der Eigenschaften disabled, displayOnly und readOnly
Wenn zwei oder mehr der Eigenschaften disabled, displayOnly, und readOnly gleichzeitig auf true gesetzt werden, gilt die folgende Vorrangregel:
Obwohl einige Jutro-Komponenten ergänzende Funktionen oder eine Hilfsfunktion zur Erleichterung des Validierungsprozesses bereitstellen, liegt es in Ihrer Verantwortung als Entwickler, die Validierung von Benutzereingaben (mit oder ohne Verwendung der ergänzenden Hilfsfunktionen) durchzuführen und zu entscheiden, welche Fehlermeldungen angezeigt werden sollen.
Jutro-Komponenten verhalten sich in Abhängigkeit von der Implementierung des Entwicklers.
Wann werden Fehlermeldungen angezeigt?
Fehlermeldungen werden nur angezeigt, wenn Sie sie über die Eigenschaft stateMessages an die Komponente übergeben. Diese Eigenschaft empfängt ein Objekt mit dem folgenden Inhalt:
Die Komponente zeigt alle bereitgestellten Fehlermeldungen in der gleichen Reihenfolge wie im Array an.
Wann erfolgt die Validierung?
Dies ist Ihre Entscheidung als Entwickler. Da die Komponenten nicht festlegen, wann die Validierung durchgeführt wird oder wann der Fehler angezeigt werden muss, müssen Sie die Logik für die Behandlung entsprechend den Projektanforderungen implementieren, z. B. während der Benutzer den Inhalt bearbeitet, wenn die Komponente den Fokus verliert und bei der Formularübermittlung.
Es wurden die neuen Komponenten @jutro/components/Checkbox und @jutro/components/CheckboxGroup eingeführt, welche CheckboxField und CheckboxGroupField ersetzen.
Die früheren Kontrollkästchen-bezogenen Komponenten wurden verworfen und in das @jutro/legacy-Paket verschoben. Wechseln Sie zu einer älteren Version, um die zugehörige Dokumentation anzuzeigen.