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

入力もキーボード操作もできない日付ピッカー

お届け日の欄が読み取り専用で、クリックするとただのdivでできたカレンダーが開くため、キーボードでは日付を入れられず、スクリーンリーダーには数字しか聞こえません。入力できるようにしても、どの順と形で書けばよいかが示されていません。

合格の条件
日付や時刻を直接入力でき、カレンダーもキーボードで操作できる
WCAG 2.2
SC 2.1.1ASC 4.1.2ASC 3.3.2A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <input id="delivery" type="text" readonly>
アクセシビリティの問題を示した図: 手の操作:日付はどう入力するの?
01

問題

キーボード利用者はお届け日をまったく入れられず、スクリーンリーダーの利用者には選んだ日も今日も分からない数字だけが聞こえます。入力できるようになっても、どの順と形で書けば読み取られるのかがどこにも書かれていません。

02

試してみる

キーボードだけで、お届け日を11月12日(木)にしてください。Tabで欄へ移動し、日付を入力するか、カレンダーを開きます。

  1. 問題1:Tabで「お届け日」へ移動し、文字を入力するか、Enterや下矢印キーを押します。何も入らず、何も開きません。カレンダーはクリックでしか開きません。
  2. 欄をクリックしてカレンダーを開き、日にマウスを重ねてください。マウスの下を読むスクリーンリーダーの読み上げが下の欄に出ます。数字だけで、どの日が選ばれているかも、今日がどれかも読まれません。
  3. 問題2:「11/12」や「2026年11月12日」と入力し、Tabを押します。ショップがどう読むかを確かめてください。
  4. 修正を適用します。日付を入力するか、ダイアログの修正では、Tabでカレンダーのボタンへ移動してEnterを押し、矢印キー、Page Up、Page Downで移動します。

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

スクリーンリーダーの読み上げ:

(Tabで「お届け日」へ移動)

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

03

修正方法

日付は、ページが示す形式か標準の日付欄で入力できるようにし、カレンダーを置くなら、キーボードで日に届き、スクリーンリーダーが読み上げるダイアログにします。

  1. 1日付を入力でき、欄が書き方を示しているか、標準の日付欄である。
  2. 2カレンダーはボタンから開き、矢印キー、Enter、Escapeで使える。
  3. 3各日は日付全体で読まれ、選んだ日と今日は、見た目だけでなくコードでも伝える。
修正前

読み取り専用の欄と、クリックでしか開かないカレンダー

<label for="delivery">お届け日</label><input id="delivery" name="delivery" type="text" readonly placeholder="日付を選択"><div class="calendar" hidden>  <div class="cal-head">    <span class="prev">‹</span>    <span class="cal-month">2026年11月</span>    <span class="next">›</span>  </div>  <div class="cal-week">    <span>日</span>    <span>月</span>    <span>火</span>    <span>水</span>    <span>木</span>    <span>金</span>    <span>土</span>  </div>  <div class="cal-days"></div></div>
修正後

標準の日付入力

<label for="delivery">お届け日</label><input id="delivery" name="delivery" type="date">

この方法を選ぶ理由:まずHTMLの要素を使う

AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得、または全ガイドをコーディングエージェントで使う。

04

修正の確認

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

確認方法: キーボード、スクリーンリーダー、ズーム、強制配色

5件中0件を確認済み

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

制限

これは日付を一つ選ぶための出発点となる実装例です。チェックインとチェックアウトのような期間の選択、タイムゾーン、和暦のようなグレゴリオ暦以外の暦には当てはまりません。ショップが配達する日かどうかの確認は、コードから省いています。実際の日付を使い、対応するブラウザーと支援技術で、デスクトップだけでなくスマートフォンでも操作全体を確認してください。

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

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

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

再テストの進め方