Zum Hauptinhalt springen

Ihre Meinung ist uns wichtig! Gemeinsam mit Ihnen möchten wir KoliBri stetig verbessern. Teilen Sie uns Ihre Ideen, Wünsche oder Anregungen mit – schnell und unkompliziert.

InputPassword

Diese Dokumentation wird aktuell überarbeitet und befindet sich im Beta-Status. Inhalte können sich noch ändern.
Diese Komponente wird erneut auf Barrierefreiheit getestet. Der vollständige Test steht noch aus und kann erst nach einem abgeschlossenen Release erfolgen.

Synonyme: Passwortfeld, sichere Eingabe

Beschreibung: Das InputPassword-Eingabefeld ermöglicht es Benutzer:innen, sensible Passwörter sicher einzugeben. Die Eingabe wird standardmäßig durch Punkte maskiert. Optional kann eine Sichtbarkeitsfunktion aktiviert werden, um das Passwort vorübergehend offenzulegen.

Beispiel

Standard-Passwortfeld mit Beschriftung und optional aktivierter Sichtbarkeitsfunktion:

<KolInputPassword _label="Passwort" _variant="default" />

Barrierefreiheit

  • Label erforderlich: Jedes Passwortfeld muss über das Attribut _label eine aussagekräftige Beschriftung erhalten, damit Screenreader-Nutzer:innen den Zweck verstehen.
  • Placeholder ist kein Label-Ersatz: Der Placeholder-Text (_placeholder) dient nur zur Veranschaulichung und ersetzt nicht das erforderliche Label.
  • Hinweistexte: Mit _hint können zusätzliche Informationen bereitgestellt werden (z.B. Anforderungen an die Passwortlänge).
  • Fehlermeldungen: Validierungsfehler sollten über _msg mit aussagekräftigen Meldungen kommuniziert werden.
  • Sichtbarkeitsfunktion barrierefrei: Die Toggle-Funktion (_variant="visibility-toggle") wird als ein Button mit klarer Beschriftung implementiert und ist vollständig über Tastatur bedienbar.
  • Zeichenzähler: Bei aktiviertem Zeichenzähler (_has-counter) wird dieser mit einer Verzögerung von 500 ms aktualisiert, um Screenreader nicht zu unterbrechen. Ein versteckter, nur für assistive Technologien sichtbarer Text erläutert die Grenzen.

Verwendung

Tastatursteuerung

TasteFunktion
TabFokussiert das Passwortfeld oder navigiert zum nächsten Element.
Shift + TabWechselt zum vorherigen interaktiven Element.

Wenn _variant="visibility-toggle" aktiv ist, kann der Toggle-Button über Tab und Enter oder Space gesteuert werden.

Best Practices / Empfehlungen

  • Sichere Übertragung: Verwenden Sie _autoComplete="new-password" und _autoComplete="current-password" nach Kontext, damit Browser und Passwort-Manager das Passwort korrekt behandeln.
  • Sichtbarkeitsfunktion mit Bedacht nutzen: Die Variante _variant="visibility-toggle" kann auf Geräten mit sicherer Umgebung (z.B. eigener Computer) hilfreich sein, sollte aber nicht auf unsicheren Geräten verwendet werden.
  • Klare Anforderungen kommunizieren: Teilen Sie Passwortanforderungen (Mindestlänge, erforderliche Zeichen) über _hint oder ein dediziertes Informationselement mit, bevor Benutzer:innen eingeben.
  • Formular-Attribute setzen: Stellen Sie sicher, dass _id und _name korrekt gesetzt sind, damit Daten beim Formular-Absenden korrekt übermittelt werden.
  • Keine Feldmaskierung aufheben ohne Grund: Die Maskierung mit Punkten schützt die Privatsphäre; zögern Sie nicht unnötig, sie aufzuheben.
  • Fehlerbehandlung beschriftend: Wenn das Passwort nicht den Anforderungen entspricht, geben Sie konkrete, verständliche Fehlermeldungen über _msg an.

Anwendungsfälle

  • Anmeldung und Authentifizierung
  • Passwortänderung oder -zurücksetzen
  • Konto- oder Systemzugriff
  • Bestätigung von kritischen Aktionen mittels Passwort
  • Registrierungsprozesse

FAQ

Sollte ich den Passwort-Manager aktivieren?
Ja. Verwenden Sie _autoComplete="new-password" für neue Passwörter oder _autoComplete="current-password" für Anmeldungen, damit Geräte und Browser-Passwort-Manager das Feld korrekt erkennen.

Wann sollte ich die Sichtbarkeitsfunktion verwenden?
_variant="visibility-toggle" ist hilfreich, wenn Benutzer:innen ihre Eingabe vor dem Absenden kontrollieren möchten (z.B. bei komplexen Passwörtern). Begrenzen Sie dies auf sichere Umgebungen.

Kann der Benutzer die Länge des Passworts begrenzen?
Ja, mit _has-counter, _max-length und _max-length-behavior können Sie eine Längenbegrenzung mit Zeichenzähler einführen. _max-length-behavior="hard" hindert die Eingabe nach Erreichen der Grenze; "soft" erlaubt weitere Eingaben und zeigt ein Minus im Zähler.

Konstruktion / Technik

Playground

Testen Sie die verschiedenen Eigenschaften des Passwortfelds:

<KolInputPassword _label="Passwort" _variant="visibility-toggle" />

Funktionalitäten (mit Code)

Basis-Passwortfeld

Standard-Passwortfeld mit Beschriftung:

<KolInputPassword _label="Passwort" _variant="default" />

Sichtbarkeitsfunktion (Auge-Icon)

Passwortfeld mit Toggle zum Anzeigen/Verbergen des Passworts:

<KolInputPassword _label="Passwort" _variant="visibility-toggle" />

Formular-Attribute

Standardattribute für Formulare (Pflichtfeld, deaktiviert, read-only, etc.):

<KolInputPassword _label="Passwort" _variant="visibility-toggle" />

Hinweise und Fehlermeldungen

Hilfetext und Validierungsmeldungen:

Message
<KolInputPassword _hint="Mindestens 8 Zeichen erforderlich" _label="Passwort" _variant="visibility-toggle" />

Zeichenzähler und Längenbegrenzung

Passwortfeld mit Zeichenzähler und Längenbegrenzung (hart oder weich):

<KolInputPassword _hasCounter={true} _label="Passwort" _maxLength={20} _variant="visibility-toggle" />

Events und Eingabeverarbeitung

Das InputPassword unterstützt verschiedene Events für die Eingabeverarbeitung:

EventAuslöserValue
clickPasswortfeld wird angeklickt
focusPasswortfeld wird fokussiert
blurPasswortfeld verliert Fokus
inputWert wird durch Eingabe geändertAktueller Wert des Passwortfelds
changeEingabe wurde abgeschlossenAktueller Wert des Passwortfelds

Zur Behandlung von Events bzw. Callbacks siehe .

API

Overview

The Password input type creates an input field for passwords. The input is masked with dot symbols.

Properties

PropertyAttributeDescriptionTypeDefault
_accessKey_access-keyDefines the key combination that can be used to trigger or focus the component's interactive element.string | undefinedundefined
_autoComplete_auto-completeDefines whether the input can be auto-completed.string | undefined'off'
_disabled_disabledMakes the element not focusable and ignore all events.boolean | undefinedfalse
_hasCounter_has-counterShows a character counter for the input element.boolean | undefinedfalse
_hideLabel_hide-labelHides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it.boolean | undefinedfalse
_hideMsg_hide-msgHides the error message but leaves it in the DOM for the input's aria-describedby.boolean | undefinedfalse
_hint_hintDefines the hint text.string | undefined''
_icons_iconsDefines the icon classnames (e.g. _icons="fa-solid fa-user").string | undefined | { right?: IconOrIconClass | undefined; left?: IconOrIconClass | undefined; }undefined
_label (required)_labelDefines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to false to enable the expert slot.stringundefined
_maxLength_max-lengthDefines the maximum number of input characters.number | undefinedundefined
_maxLengthBehavior_max-length-behaviorDefines the behavior when maxLength is set. 'hard' sets the maxlength attribute, 'soft' shows a character counter without preventing input."hard" | "soft" | undefined'hard'
_msg_msgDefines the properties for a message rendered as Alert component.Omit<AlertProps, "_on" | "_variant" | "_hasCloser" | "_label" | "_level"> & { _description: string; } | string | undefinedundefined
_name_nameDefines the technical name of an input field.string | undefinedundefined
_on--Gibt die EventCallback-Funktionen für das Input-Event an.InputTypeOnBlur & InputTypeOnClick & InputTypeOnChange & InputTypeOnFocus & InputTypeOnInput & InputTypeOnKeyDown | undefinedundefined
_pattern_patternDefines a validation pattern for the input field.string | undefinedundefined
_placeholder_placeholderDefines the placeholder for input field. To be shown when there's no value.string | undefinedundefined
_readOnly_read-onlyMakes the input element read only.boolean | undefinedfalse
_required_requiredMakes the input element required.boolean | undefinedfalse
_shortKey_short-keyAdds a visual shortcut hint after the label and instructs the screen reader to read the shortcut aloud.string | undefinedundefined
_smartButton_smart-buttonAllows to add a button with an arbitrary action within the element (_hide-label only).string | undefined | { _label: string; } & { _on?: ButtonCallbacksPropType<StencilUnknown> | undefined; _type?: "button" | "reset" | "submit" | undefined; _ariaExpanded?: boolean | undefined; _tabIndex?: number | undefined; _value?: StencilUnknown; _accessKey?: string | undefined; _role?: "tab" | "treeitem" | undefined; _ariaControls?: string | undefined; _ariaDescription?: string | undefined; _ariaSelected?: boolean | undefined; _customClass?: string | undefined; _disabled?: boolean | undefined; _hideLabel?: boolean | undefined; _icons?: IconsPropType | undefined; _id?: string | undefined; _inline?: boolean | undefined; _name?: string | undefined; _shortKey?: string | undefined; _syncValueBySelector?: string | undefined; _tooltipAlign?: AlignPropType | undefined; _variant?: string | undefined; }undefined
_tooltipAlign_tooltip-alignDefines where to show the Tooltip preferably: top, right, bottom or left."bottom" | "left" | "right" | "top" | undefined'top'
_touched_touchedShows if the input was touched by a user.boolean | undefinedfalse
_value_valueDefines the value of the element.string | undefinedundefined
_variant_variantDefines which variant should be used for presentation."default" | "visibility-toggle" | undefined'default'

Methods

click

click() => Promise<void>

Clicks the primary interactive element inside this component.

Returns

Type: Promise<void>

focus() => Promise<void>

Sets focus on the internal element.

Returns

Type: Promise<void>

getValue() => Promise<string | undefined>

Returns the current value.

Returns

Type: Promise<string | undefined>

Slots

SlotDescription
The label of the input field.