password-paste-enabled

Authentifizierungsfelder dürfen das Einfügen nicht blockieren

manualWCAG 3.3.8 (AA)Konfidenz: mediumSchweregrad: seriousunderstandable

Prüft, dass ein Passwort- oder Einmalcode-Feld keinen Inline-paste-Handler hat, der das Einfügen abbricht. Damit fiele der Passwortmanager oder die Zwischenablage weg, auf die sich WCAG 3.3.8 als unterstützenden Mechanismus stützt.

Anwendbarkeit. Gilt für jedes Bedienelement, dessen autocomplete-Token current-password, new-password oder one-time-code ist, sowie für <input type="password">, sofern sein autocomplete keinen anderen Zweck nennt. Ein deaktiviertes oder schreibgeschütztes Feld nimmt keine Eingabe an, die blockiert werden könnte, und ein Feld außerhalb des Accessibility Trees wird gar nicht abgefragt; beide fallen daher nicht darunter. Findet sie nichts nachzufragen, meldet sie notApplicable, nicht pass: Sie gilt nur für das, was ihre Prüfung markiert, und dort nichts zu finden zeigt nicht, dass alles in Ordnung ist.

Erwartung. Eine prüfende Person bestätigt, dass sich in das Feld weiterhin etwas einfügen lässt. Sich ein Passwort zu merken, ist ein kognitiver Funktionstest, und 3.3.8 verlangt einen Mechanismus, der Nutzenden dabei hilft; ein Passwortmanager bzw. bei einem Einmalcode die Zwischenablage ist dieser Mechanismus.

Was ein Befund meldet.

  • handler: der Wert des onpaste-Attributs des Felds, mit zusammengefassten Leerräumen. Er bricht das Einfügen nur ab (PASTE_CANCELLED) oder ruft anderes Skript auf, das es abbrechen kann oder auch nicht (PASTE_HANDLER_OPAQUE).

Diese Felder in data.details helfen, einen Befund zu lesen und zu reproduzieren. Außer reasonCode und den wenigen Feldern, die Ausgabeschema als stabil nennt, sind sie kein stabiler Vertrag: Ein Feld kann in einer Minor-Version umbenannt werden oder wegfallen, bauen Sie also nicht darauf auf.

Beispiele

can't tell
<label for="p">Password</label>
<input type="password" id="p" onpaste="return false">

Der Inline-Handler bricht das Einfügen komplett ab und blockiert so einen Passwortmanager oder einen kopierten Einmalcode.

n/a
<label for="p">Password</label>
<input type="password" id="p" autocomplete="current-password">

Es ist überhaupt kein paste-Handler angehängt.

So prüfen Sie es

Wenn diese Regel nicht entscheiden kann, meldet sie cantTell und überlässt die Frage einer Person. Jede Frage, die sie stellen kann, steht hier unter ihrem Reason-Code, mit den Schritten, um sie zu beantworten. Ein Befund enthält dieselben Schritte in howToCheck, in der Sprache des Scans. Siehe Ausgabeschema.

PASTE_CANCELLED

  1. Kopieren Sie ein Testpasswort oder einen Testcode in die Zwischenablage.
  2. Klicken Sie in das im Bericht genannte Feld und fügen Sie ein (Strg+V bzw. Cmd+V oder über das Kontextmenü).
  3. Ist das Feld für einen Einmalcode in Kästchen aufgeteilt, prüfen Sie, ob sich die Ziffern auf sie verteilen.
  4. Versuchen Sie außerdem, das Feld mit dem Passwortmanager des Browsers auszufüllen.
  5. Ist beides blockiert, prüfen Sie, ob derselbe Anmeldeschritt einen anderen Weg zur Anmeldung bietet, bei dem man sich nichts merken oder eintippen muss, etwa einen Passkey oder einen per E-Mail gesendeten Link. Das zählt nur, wenn er funktioniert und sich mit der Tastatur bedienen lässt.

Bestanden. Der eingefügte oder automatisch ausgefüllte Wert erscheint im Feld, oder derselbe Schritt bietet einen funktionierenden Anmeldeweg, bei dem man sich nichts merken oder eintippen muss.

Nicht bestanden. Einfügen und Ausfüllen durch den Passwortmanager sind blockiert, und kein anderer Anmeldeweg wird angeboten, Nutzer müssen sich den Wert also merken und eintippen; das verstößt gegen WCAG 3.3.8.

PASTE_HANDLER_OPAQUE

  1. Kopieren Sie ein Testpasswort oder einen Testcode in die Zwischenablage.
  2. Klicken Sie in das im Bericht genannte Feld und fügen Sie ein (Strg+V bzw. Cmd+V oder über das Kontextmenü).
  3. Prüfen Sie, ob der ganze Wert im Feld ankommt (bei aufgeteilten Code-Kästchen über alle Kästchen hinweg) und keine Meldung besagt, dass Einfügen nicht erlaubt ist.
  4. Versuchen Sie außerdem, das Feld mit dem Passwortmanager des Browsers auszufüllen.
  5. Ist beides blockiert, prüfen Sie, ob derselbe Anmeldeschritt einen anderen Weg zur Anmeldung bietet, bei dem man sich nichts merken oder eintippen muss, etwa einen Passkey oder einen per E-Mail gesendeten Link. Das zählt nur, wenn er funktioniert und sich mit der Tastatur bedienen lässt.

Bestanden. Der eingefügte oder automatisch ausgefüllte Wert erscheint vollständig im Feld, oder derselbe Schritt bietet einen funktionierenden Anmeldeweg, bei dem man sich nichts merken oder eintippen muss.

Nicht bestanden. Einfügen oder automatisches Ausfüllen ist blockiert oder der Wert wird gekürzt oder gelöscht, und kein anderer Anmeldeweg wird angeboten, Nutzer müssen ihn also aus dem Gedächtnis eintippen; das verstößt gegen WCAG 3.3.8.

Quellcode ansehen