HTML 5.2 autocomplete 属性を使用する

達成方法に関する重要な情報

この達成方法 (参考) の使用法と、この達成方法が WCAG 2.1 達成基準 (規定) とどのように関係するのかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用 (対象) のセクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法の存在は、その技術があらゆる状況で WCAG 2.1 を満たすコンテンツを作成するために使用できることを意味するものではない。

適用 (対象)

HTML 5.2 autofill トークンに対応する全ての HTML フォームフィールド。

これは、達成基準 1.3.5: 入力目的の特定(十分)に関連する達成方法である。

解説

この達成方法の目的は、入力が機械でも解釈できるように、事前に定義及び公開された分類用語をプログラム的に入力へリンクすることである。この方法では、どの言語が使用されているか、又は入力にラベルを付けるためにどういった画面上に表示される用語が使用されているかに関係なく、入力には常に共通で、参照可能及び識別可能な関連付けられた値を持つ。それから、さらに利用者を支援するためにカスタマイズ又は機械操作することができる。

この達成方法では、フォームの各フォームフィールドに適切な autocomplete トークンを追加して、特定の入力をプログラムによる解釈が可能にすることで動作する。これは、コンテンツ制作者が使用しているラベルが馴染みがないためにフィールドの目的をすぐには理解できない認知障害の人に役立つ。入力がプログラムによって割り当てられている場合、サードパーティのプラグイン及びソフトウェアは、フォームフィールドを認知障害のある人にとってよりアクセシブルにするために、そのフォームフィールドを操作できる。例えば、プラグインはテキスト文字列 "tel" を持つ autocomplete トークンを検出し、電話アイコンを挿入することができる。さらに、サードパーティのソフトウェアが、既存のラベルを利用者がより馴染みのあるテキストラベルと交換できるようになる。例えば、"Given Name" を "First Name" に変更できる。

autocomplete 属性は、利用者が望む値をフォームフィールドに事前に入力するブラウザの能力も向上する。入力が既知のトークン値で適切に “タグ付け” されると、利用者が入力した値はホストマシン上のローカルに保管され、再利用のためにトークン値に関連付けられる。これは、タイピングに問題をもつ巧緻性障害のある人、より多くの時間を必要とするかもしれない人、及びフォームに記入するための労力を減らしたいと望む全ての人に役立つ。

autocomplete 属性は、ブラウザにローカルで格納されている値のリストに対してパターンマッチを実行でき、入力がプログラムによりタグ付けされたときに適切な対応する値を提供できる。これは、末端利用者がオンもしくはオフにする、又は変更することができる利用者設定である。これは、フィールドに入力する格納された値を使用するため、タイピングが減る、及び記憶への依存が少なくなる。

達成基準の入力目的の特定及びオートコンプリート属性は、利用者に関する情報を収集する入力フィールドにのみ必要条件として設定することに注意するのが重要である。

達成基準では、HTML 5.2 の仕様で説明されているオートコンプリートフィールドに対応しないフォームフィールドでは、autocomplete 属性が使用されないと仮定する。autocomplete フィールドが、仕様に記述されているものではなく、“カスタム” 分類法の記述するために使用されている場合、このルールは誤った結果を生成する可能性がある。

訳注:

HTML 5.2 仕様は、廃止予定の仕様である。代わりに HTML Standard の autocomplete 属性を参照できる。

セキュリティへの配慮

組織では、入力フィールドを自動的に入力できるようにすることを懸念する場合がある。ブラウザが情報を保存する方法及びセキュリティ上の影響について混乱がしばしば生じる。

autocomplete 属性の場合:

  • この達成方法は、フォームに入力している利用者に関するデータを要求する場合にのみ使用し、他の人には使用すべきではない。
  • 同じコンピュータ上で、同じ利用者のアカウントを使用し、及び同じブラウザを利用する場合にのみ機能する。いかなるマルチログインの状況でも、異なるアカウント間でオートコンプリートのデータが保存されることはない。(利用者はコンピュータ間でデータの同期を設定できるが、これはデフォルトではない。)
  • オートコンプリートを使用した情報の保存は、通常データを初めて保存する時点で利用者が同意する。
  • フォームは自動送信されない。利用者は送信前にデータを確認できる。
  • 履歴及びフォームデータの両方をブラウザの設定で簡単に消去できる。
  • プライベートブラウジングのような、プライバシーモードを簡単に利用できる。
  • ウェブページにオートコンプリートが設定されていないとしても、ブラウザはデータを保存することができ、一部のプラグイン (パスワードマネージャーなど) は、何のフィールドかを推測する、及びそのフィールドに入力するために、経験則を積極的に使用する。autocomplete 属性を使用すると、これらの推測が正確になる。

ブラウザの履歴は、利用者が何をしたかについてより詳細な情報を提供する、及びオートコンプリートのデータとして利用できる。ブラウザ履歴の解決方法/軽減は、オートコンプリートと同様である。

事例

事例 1: 通貨

利用者の連絡先及びクレジットカード情報を収集するシンプルなフォーム。

<form method="post" action="step2">
 <div>
   <label for="fname">First Name</label>
  <input id="fname" type="text" autocomplete="given-name" ... >
  </div>
  <div>
    <label for="lname">Last Name Name</label>
  <input id="lname" type="text" autocomplete="family-name" ... >
    <label for="cc-num">Credit card number:</label>
    <input type="text" id="cc-num" autocomplete="cc-number">
  </div>
  <div>
    <label for="exp-date">Expiry Date:</label>
    <input type="month" id="exp-date" autocomplete="cc-exp">
  </div>
  <div>
    <input type="submit" value="Continue...">
  </div>
</form>

検証

手順

利用者に関する情報及びWCAG 2.1 7. 入力目的の特定を理解するで解説されているオートコンプリートフィールドに対応する各フォームフィールドでは、以下を確認する:

  1. フォームフィールドは、有効な及び適切な形式のオートコンプリート属性及び値のペアを持つ。
  2. ラベルが示すフォームフィールドの目的が、入力フィールドへ設定されたオートコンプリートトークンと一致する。

期待される結果

  • 1. 及び 2. が真である場合、検証試験は合格であり、及び達成方法は正しく実装されている。