キーボードで使えないジャンプメニューがあります
WAI / WCAG 1.0 優先度2 チェックポイント 9.2
 
 
概要

Webページに、他のページを読み込むイベントハンドラOnChangeのあるselect要素によるジャンプメニュー(すなわち、それぞれ異なるページにリンクしている選択肢がリストになったセレクトメニュー)があります。キーボードを使用しているユーザーは、選択肢を選ぶのにリストの中をスクロールすることができません。

 
 
修正方法

ジャンプメニューをデバイス非依存にするには、以下の4つのステップがあります。

  1. select要素からonChange属性を削除する。
  2. メニューの後にボタン(type="button"のinput要素)を追加する。
  3. そのボタンに、先に削除したonChange属性と同じ内容のonClick属性を追加する。
  4. 最後に、onClick属性と同じ内容のonKeyPress属性を追加する。

Dreamweaverでドキュメントにジャンプメニューを追加したいときは、自動的にメニューの後にボタンを挿入することができます。[ジャンプメニューの挿入]ダイアログで、"メニューの後に移動ボタンを挿入" をチェックしてください。その際、忘れずに select要素のonChange属性を削除して、ボタンにonKeyPress属性を追加してください。

例えば、次のHTMLソースコードは悪い例です。

<form name="select_country">
国を選択:
  <select name="country" onChange="MM_jumpMenu('parent',this,0)">
   <option value="http://www.this_site.com/be" selected>ベルギー</option>
   <option value="http://www.this_site.com/us">アメリカ合衆国</option>
  </select>
</form>

アクセシブルなHTMLソースコード(良い例):

<form name="select_country" action="http://www.this_site.com/jump.cgi">
国を選択:
  <select name="country">
   <option value="http://www.this_site.com/be" selected>ベルギー</option>
   <option value="http://www.this_site.com/us">アメリカ合衆国</option>
  </select>
 <input type="submit" value="選択">
</form>
 
 
解説

select要素に関連付けられているJavaScriptが原因で、キーボードを使用しているユーザーは選択肢のリストをスクロールすることができません。これは、デバイス非依存ではありません。

JavaScriptは、ユーザーが任意の入力および出力デバイスを使ってWebサイトを操作することができれば、デバイス非依存であるといえます。入力デバイスには、ポインティング・デバイス(マウスなど)、キーボード、点字入力デバイス、ヘッドセット装置、マイクロホン、その他があります。出力デバイスとしては、モニタ、音声合成装置、および点字ピンディスプレイなどが挙げられます。

一般的に、キーボードのみによる操作が可能なWebページは、音声認識入力あるいはコマンドライン・インターフェースを用いてもアクセシブルです。

また、ジャンプメニューは、JavaScriptがユーザーのブラウザで実行可能な場合のみ有効であることを覚えておいてください。JavaScriptをサポートしていないブラウザ(例えば、携帯電話やPDAのブラウザ)があり、セキュリティ上の理由からブラウザのJavaScriptを無効にしている企業や団体があります。
noscript要素で、JavaScriptの代替となり同等の役割を果たすコンテンツおよびインタラクション(すなわち、リンクやフォーム)を提供してください。

また、メニューで選択されたURLを処理して、そのページへ移動させるサーバサイドのスクリプトを用いることも検討してください。