:user-valid 擬似クラスと :user-invalid 擬似クラス

:user-valid

対応ブラウザ

  • Chrome: 119. <ph type="x-smartling-placeholder">
  • Edge: 119. <ph type="x-smartling-placeholder">
  • Firefox: 88。 <ph type="x-smartling-placeholder">
  • Safari: 16.5。 <ph type="x-smartling-placeholder">

ソース

:user-invalid

対応ブラウザ

  • Chrome: 119. <ph type="x-smartling-placeholder">
  • Edge: 119.
  • Firefox: 88。
  • Safari: 16.5。

ソース

ユーザー入力は、どのユーザー インターフェースでも特に注意が必要な事項の 1 つです。使いやすいアプリでは、ユーザーが入力ミスを見つけて理解し、修正できるようにする必要があります。:user-valid:user-invalid の疑似クラス セレクタは、ユーザーが入力を変更した後にのみエラーに関するフィードバックを返すことで、入力検証のユーザー エクスペリエンスを向上させます。これらの新しいセレクタを使用すると、ユーザーが変更した入力をトラッキングするためのステートフル コードを記述する必要がなくなります。

ユーザー操作の疑似クラス セレクタ

:user-valid:user-invalid の疑似クラス セレクタは、既存の :valid:invalid の疑似クラスに似ています。どちらもフォーム コントロール ベースの 現在の値が検証制約を満たしているかどうかを判別します。ただし、 新しい :user-valid 疑似クラスと :user-invalid 疑似クラスの利点は、 ユーザーが操作を行った場合にのみ、フォーム コントロールに一致します。 あります。

必須で空のフォーム コントロールは、ユーザーがページの操作を開始していなくても :invalid と一致します。ただし、同じフォーム コントロールでは、 ユーザーが入力を変更し、それを残すまで、:user-invalid と一致させます。 無効な状態です。

:user-valid 疑似クラスと :user-invalid 疑似クラスを使用する

次の例に示すように、これらの疑似クラスを使用して、input、select、textarea コントロールのスタイルを設定します。

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>

3 つのスクリーンショットを並べて比較できるようにした画像。各スクリーンショットは、入力、選択、テキスト領域の各コントロールが同じウェブフォームを示しています。1 つ目のスクリーンショットは、ユーザーが入力する前の初期状態のフォームを示しています。コントロールの境界線はグレーで、下のヘルプテキストには、各コントロールが現在 :invalid 疑似クラス セレクタに一致することが示されます。2 つ目のスクリーンショットは、ユーザーが各コントロールに入力した後の同じフォームを示しています。コントロールの境界線は緑色で、下のヘルプテキストには、各コントロールが現在、:valid と :user-valid の疑似クラス セレクタの両方に一致することが示されています。3 番目(最後)のスクリーンショットは、ユーザーがすべての入力を削除した後の同じフォームを示しています。コントロールの境界線は赤色で、下のヘルプテキストには、現在、各コントロールが :invalid と :user-invalid の疑似クラス セレクタの両方に一致することが説明されています。

セレクタは、ユーザー操作と検証の組み合わせに基づいて照合されます。 必要があります。次のデモで、これらの機能の動作を確認できます。

少ないコードでユーザー エクスペリエンスを向上

これらの疑似クラスがなければ、 :user-valid:user-invalid では、追加のステートフル コードを記述する必要がありました。 初期値、現在のフォーカス状態、 値に対するユーザーの変化の程度に応じて、追加の有効性を 最後にスタイル設定のために選択するクラスを追加しますブラウザがこれらすべてを自動的に処理するようになりました。

その他のリソース

<ph type="x-smartling-placeholder"></ph> Behzad Ghaffarian によるカバー写真、 スプラッシュを解除