Die Pseudoklassen „:user-valid“ und „:user-invalid“

:user-valid

Unterstützte Browser

  • 119
  • 119
  • 88
  • 16,5

Quelle

:user-invalid

Unterstützte Browser

  • 119
  • 119
  • 88
  • 16,5

Quelle

Die Eingabe der Nutzer gehört zu den sensibelsten Belangen einer Benutzeroberfläche. Eine brauchbare Anwendung muss Nutzern helfen, Fehler in ihrer Eingabe zu sehen, zu verstehen und zu beheben. Die Pseudoklassenselektoren :user-valid und :user-invalid verbessern die Nutzerfreundlichkeit der Eingabevalidierung, da sie erst Feedback zu Fehlern geben, nachdem ein Nutzer die Eingabe geändert hat. Mit diesen neuen Selektoren muss kein zustandsorientierter Code mehr geschrieben werden, um Eingaben eines Nutzers nachzuverfolgen.

Pseudoklassenselektoren für die Nutzerinteraktion

Die Pseudoklassenselektoren :user-valid und :user-invalid ähneln den vorhandenen Pseudoklassen :valid und :invalid. Beide stimmen mit einer Formularsteuerung überein, je nachdem, ob ihr aktueller Wert die Validierungseinschränkungen erfüllt. Die neuen Pseudoklassen :user-valid und :user-invalid haben jedoch den Vorteil, dass sie nur dann einer Formularsteuerung entsprechen, wenn ein Nutzer erheblich mit der Eingabe interagiert hat.

Wenn ein Steuerelement erforderlich und leer ist, entspricht es :invalid, auch wenn ein Nutzer noch nicht mit der Seite interagiert. Dasselbe Formularsteuerelement stimmt jedoch erst mit :user-invalid überein, wenn der Nutzer die Eingabe geändert und im ungültigen Status belassen hat.

Die Pseudoklassen :user-valid und :user-invalid verwenden

Verwenden Sie diese Pseudoklassen, um Eingabe-, Auswahl- und Textbereichssteuerelemente zu gestalten, wie in den folgenden Beispielen gezeigt:

input:user-valid,
select:user-valid,
textarea:user-valid {
  border-color: green;
}

input:user-invalid,
select:user-invalid,
textarea:user-invalid {
  border-color: red;
}
<input required="required" />

<select required="required">
  <option value="">Choose an option</option>
  <option value="1">One</option>
</select>

<textarea required="required"></textarea>

Ein Bild, auf dem drei Screenshots zum Vergleich nebeneinander zu sehen sind. Jeder Screenshot zeigt ein Webformular mit denselben Steuerelementen für Eingabe, Auswahl und Textbereich. Im ersten Screenshot ist das Formular im Ausgangszustand vor jeder Nutzereingabe zu sehen. Die Rahmen der Steuerelemente sind grau und im Hilfetext unten wird erläutert, dass jedes Steuerelement derzeit dem Selektor :invalid pseudo-class entspricht. Im zweiten Screenshot ist das gleiche Formular zu sehen, nachdem Nutzende für jedes Steuerelement Eingaben gemacht haben. Die Steuerelemente sind grün und im Hilfetext unten wird erläutert, dass jedes Steuerelement derzeit den Pseudoklassen-Selektoren :valid und :user-valid entspricht. Der dritte und letzte Screenshot zeigt das gleiche Formular, nachdem Nutzende alle Eingaben entfernt haben. Die Steuerelementrahmen sind rot und im Hilfetext unten wird erläutert, dass jedes Steuerelement derzeit sowohl mit den Pseudoklassen-Selektoren &quot;:invalid&quot; als auch &quot;:user-invalid&quot; übereinstimmt.

Die Selektoren stimmen anhand einer Kombination aus Nutzerinteraktionen und Validierungseinschränkungen überein. Sehen Sie sich die folgende Demo an, um sie in Aktion zu sehen:

Bessere User Experience mit weniger Code

Ohne diese Pseudoklassen musste zum Erreichen der durch :user-valid und :user-invalid ermöglichten Nutzererfahrung zusätzlicher zustandsorientierter Code geschrieben werden. Dieser Code war erforderlich, um den Anfangswert, den aktuellen Fokusstatus der Eingabe und das Ausmaß der Wertänderungen durch den Nutzer zu verfolgen, eine zusätzliche Gültigkeitsprüfung durchzuführen und schließlich eine Klasse für die Gestaltung hinzuzufügen. Sie können sich jetzt darauf verlassen, dass der Browser all dies automatisch erledigt.

Weitere Ressourcen

Titelbild von Behzad Ghaffarian auf Unsplash.