本文へ移動
easeweb
ご相談
トピックを検索

自動入力が効かないフォームの入力欄

配送先フォームが自動入力をオフにし、独自のautocomplete値を使っているため、ブラウザーはどの欄が名前、メール、郵便番号、電話番号なのか判断できません。

WCAG 2.2
SC 1.3.5AA· 2.1 で追加
必須とする規格
EN 301 549(EU)
問題あり autocomplete="off"
アクセシビリティの問題を示した図: また手で入力。
01

問題

自動入力に頼る人が、名前、メール、郵便番号、電話番号を一文字ずつ手で入力しなければなりません。

02

試してみる

ブラウザーで保存済みの情報を選んだつもりで、「自動入力を試す」を押してください。

自動入力できるのは、標準のトークンで目的を示している欄だけです。各欄の下で、ブラウザーに何が伝わっているか見てください。

問題あり 修正できますか?

autocomplete="off" 標準のトークンではない:手で入力
autocomplete="e-mail" 標準のトークンではない:手で入力
autocomplete="postcode" 標準のトークンではない:手で入力
autocomplete="off" formから 標準のトークンではない:手で入力

再現デモです。「問題あり」は意図的にアクセシブルでない状態にしています。

03

修正方法

標準のautocompleteトークンで、各欄の目的をブラウザーに伝えます。

  1. 1利用者本人の情報を尋ねるすべての欄に、目的に合ったautocompleteトークンを付ける。
  2. 2HTMLの自動入力一覧にあるトークンだけを使う。phoneではなくtel、postcodeではなくpostal-code。
  3. 3本人の情報について、欄でもformでも自動入力をオフにしない。
修正前 自動入力のオフと独自の値
<form autocomplete="off">  <label for="name">氏名</label>  <input id="name" name="name" type="text" autocomplete="off">   <label for="email">メールアドレス</label>  <input id="email" name="email" type="text" autocomplete="e-mail">   <label for="postcode">郵便番号</label>  <input id="postcode" name="postcode" type="text" autocomplete="postcode">   <label for="phone">電話番号</label>  <input id="phone" name="phone" type="text"></form>
修正後 標準のautocompleteトークン
<form>  <label for="name">氏名</label>  <input id="name" name="name" type="text" autocomplete="name">   <label for="email">メールアドレス</label>  <input id="email" name="email" type="email" autocomplete="email">   <label for="postcode">郵便番号</label>  <input id="postcode" name="postcode" type="text" autocomplete="postal-code">   <label for="phone">電話番号</label>  <input id="phone" name="phone" type="tel" autocomplete="tel"></form>

AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得

04

修正の確認

マウスを使わない4つの確認

確認方法: 自動入力、パスワード管理ツール、タッチ

4件中0件を確認済み

OS、ブラウザー、パスワード管理ツールと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。共通の入力欄コンポーネントを変更した際は、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。トークンの使い方はブラウザーやパスワード管理ツールごとに異なり、offを独自に無視するものもあります。1.3.5が求めるのは目的の宣言で、どこでも自動入力が成功することではありません。決済用のiframeや外部ウィジェットの欄は、それを管理する側で同じ確認が必要です。利用者が使うブラウザーやツールで、操作全体を確認してください。

よくある問題を再現した学習用のサンプルです。実在のクライアントの診断結果ではありません。コードは出発点となる実装例のため、実際の製品でも確認してください。ここでは支援技術でのテスト結果は報告していません。

コードを更新しても、使いやすさを保つために

ガイドの内容を、コーディングエージェントやCIで使える開発ルールにまとめます。更新後は、キーボードとスクリーンリーダーで再テストし、問題が再発していないか確認します。

再テストの進め方