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

全角数字を受け付けず、理由も示さない入力欄

ネットショップの購入手続きで、電話番号欄が半角の0〜9しか受け付けないと、日本語入力のまま全角で入力した番号は、同じ番号なのに「正しくない」とされるか、入力したそばから消されます。

WCAG 2.2
SC 3.3.1ASC 3.3.3AA
必須とする規格
JIS X 8341-3 · Section 508 · EN 301 549(EU)
問題あり /^[0-9]{10,11}$/.test(tel.value)
アクセシビリティの問題を示した図: 認知:番号は合っているのに、何がだめなの?
01

問題

日本語入力のまま正しい電話番号を入力しても、理由を示されないまま、はじかれるか、入力したそばから消される

02

試してみる

フォームの上の日本語入力で電話番号を入力してから、「次へ」を押してみましょう

  • 問題1: ページは番号を受け付けますか?受け付けない場合、理由を伝えますか?IMEは番号を全角の数字で入力します。読む人にとっては同じ番号です。続けて、自分で0123456789と入力して比べてください。

  • 問題2: もう一度IMEで入力し、数字が入るときの欄を見てください。何が起きたかを、ページは伝えますか?

  • 修正を適用します。 IMEで入力して「次へ」を押してください。ページは番号を受け付けますか?それとも、どの数字を使うかを伝えますか?

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

日本語入力(再現):

お届け先

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

03

修正方法

番号を確認する前に全角数字を変換するか、半角で入力するよう伝える

  1. 1確認の前に全角の数字とハイフンを変換するか、メッセージで幅を伝える。
  2. 2入力中の文字を欄から削除しない。
  3. 3サーバーでも、同じ変換と同じ言葉で確認する。
修正前

番号が正しくないとだけ伝える確認

<form>  <label for="tel">電話番号</label>  <input id="tel" name="tel" type="tel" autocomplete="tel"    aria-describedby="tel-error">  <p id="tel-error"></p>  <button type="submit">次へ</button></form>
修正後

数字を変換してから確認する

<form>  <label for="tel">電話番号</label>  <input id="tel" name="tel" type="tel" autocomplete="tel"    aria-describedby="tel-error">  <p id="tel-error"></p>  <button type="submit">次へ</button></form>

04

修正の確認

6項目、マウス不要

確認方法: 日本語入力(IME)、キーボード、スクリーンリーダー

6件中0件を確認済み

OS、ブラウザー、IME、支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。共通のフォームの欄やその入力チェックを変更した際は、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。例は桁数の決まった電話番号の欄1つです。郵便番号、カード番号、金額には、変換の後にそれぞれの決まりが必要で、国番号付きの番号では「+」を残す必要があります。置換で取り除くのはスペースとダッシュで、括弧は残るため、03(1234)5678のように書いた番号にはメッセージが出ます。利用者が括弧を使う場合は、置換の対象に加えてください。ひらがなや半角カタカナをはじくフリガナの欄も、同じ問題です。NFKCは半角カタカナを全角にし、ひらがなはUnicodeで決まった数だけずらせばカタカナになりますが、フリガナの欄を扱うガイドはまだありません。送信に失敗した後、フォーカスの移動やエラーの一覧でメッセージをどう届けるかは、「直し方がわからないフォームエラー」で扱っています。

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

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

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

再テストの進め方