<html xmlns:un="http://usablenet.com/namespaces/508_rules" xmlns:saxon="http://icl.com/saxon">
   <link rel="stylesheet" href="josh.css">
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   
      <title>Detailed View for rule: マウスだけでしか使えないイベントハンドラが使用されています</title>
      <!--
  508/W3C Accessibility Suite OEM V2 for Macromedia Dreamweaver
  (C) Copyright 2001-2005 UsableNet Inc. All rights reserved.
  -->
   </head>
   <body bgcolor="#ffffff">
      <div id="説明">
         <table cellpadding="0" cellspacing="0" border="0" class="main">
            <tr>
               <td valign="top" class="name" style="background-color:#dcdcdc;padding:3px;">マウスだけでしか使えないイベントハンドラが使用されています</td>
            </tr>
            <tr>
               <td colspan="2" class="divider"><img src="dwres:18084" height="1"></td>
            </tr>
            <tr>
               <td valign="top" colspan="2" class="requirements" style="text-align:right;">WAI / WCAG 1.0 優先度2 チェックポイント 6.4</td>
            </tr>
            <tr>
               <td colspan="2" class="clearseparation">&nbsp;</td>
            </tr>
            <tr>
               <td colspan="2" class="clearseparation">&nbsp;</td>
            </tr>
            <tr>
               <td valign="top" colspan="2" class="description"><b>概要</b><br>
                  
                  <p>Webページに、対応するキーボードのイベントハンドラのないマウスのイベントハンドラがあります。</p>
                  
                  <p>特に:</p>
                  
                  <ul>
                     
                     <li><strong>ondblclick</strong>は、対応するキーボードのイベントハンドラがないので、使うべきではない。
                     </li>
                     
                     <li><strong>onmousedown</strong>を使用する際は、<strong>onkeydown</strong>を併用する。
                     </li>
                     
                     <li><strong>onmouseup</strong>を使用する際は、<strong>onkeyup</strong>を併用する。
                     </li>
                     
                     <li><strong>onclick</strong>を使用する際は、<strong>onkeypress</strong>を併用する。
                     </li>
                     
                     <li>リンクおよびフォームのコントロールの<strong>onmouseover</strong>は、<strong>onfocus</strong>を併用する（ロールオーバーに用いられる）。フォームのテキストフィールドでは、<strong>onclick</strong>を<strong>onfocus</strong>に<strong>置換</strong>すべきで、onfocusを用いれば、ユーザーがテキストフィールドをマウスでクリックしてもTabキーで移動してきても、どちらの場合でもテキストフィールドにフォーカスをあてられる。
                     </li>
                     
                     <li><strong>onmouseout</strong>を使用する際は、<strong>onblur</strong>を併用する。
                     </li>
                     
                  </ul>
                  
               </td>
            </tr>
            <tr>
               <td colspan="2" class="clearseparation">&nbsp;</td>
            </tr>
            <tr>
               <td colspan="2" class="clearseparation">&nbsp;</td>
            </tr>
            <tr>
               <td valign="top" colspan="2" class="description"><b>修正方法</b>
                  
                  <p>Webページにあるすべてのイベントハンドラをチェックしてください。チェックすべきなのは、（テキスト、イメージ、レイヤー、あるいはその他のオブジェクトを追加または削除して、）Webページのコンテンツを変化させる、あるいはナビゲーション（メニュー、新しいウィンドウ、ナビゲーション・バー、リンク）の選択肢を変化させるイベントハンドラのみです。</p>
                  
                  <p>もし、そういったイベントにデバイス依存のイベントハンドラ（すなわち、onDblClick, onClick, onKeyPress, onKeydown, onMousedown, onKeyup, onMouseup, onMouseover,
                     onMouseout, onFocus, onBlur）が用いられている場合は、それに対応する他のデバイスのイベントハンドラと併用するようにしてください。
                  </p>
                  
                  <p>特に:</p>
                  
                  <ul>
                     
                     <li>リンクとフォームのコントロールでは、onClickとonKeyPressを併用する。どちらかないイベントハンドラを追加する際には、既にあるイベントハンドラと同じスクリプトをそのまま使えばよい。</li>
                     
                     <li>フォームのテキストフィールドでは、onClickをonFocusに置き換える</li>
                     
                     <li>対応するキーボードのイベントハンドラがないのでonDblClickは使用してはならない</li>
                     
                     <li>onKeydownとonMousedownを常に併用する</li>
                     
                     <li>onKeyupとonMouseupを常に併用する</li>
                     
                     <li>onMoueseoverとonFocusを常に併用する</li>
                     
                     <li>onMouseoutとonBlurを常に併用する</li>
                     
                  </ul>
                  
               </td>
            </tr>
            <tr>
               <td colspan="2" class="clearseparation">&nbsp;</td>
            </tr>
            <tr>
               <td colspan="2" class="clearseparation">&nbsp;</td>
            </tr>
            <tr>
               <td valign="top" colspan="2" class="description"><b>解説</b><br>
                  
                  <p>イベントハンドラというのは、特定のイベント（例えば、マウスが動く、キーが押される、ドキュメントが読み込まれる、など）が発生したときに起動するスクリプトのことです。イベントハンドラは、イベントハンドラの属性（"onMousedown"、"onClick"、"onKeyup"
                     など）により(X)HTMLソースコードの要素に付加されます。
                  </p>
                  
                  <p>イベントハンドラの効果は、単なる装飾的役割であることがほとんどです。例えば、テキストまたはイメージをハイライトする、あるいはWebページの色を部分的に変更する、などです。しかしながら、その他にも、イベントハンドラは重要な行為を行うことがあります。フォームの入力内容をチェックする、ロールオーバーのメニューを表示する、新しいウィンドウを開く、といったものです。
                     <br>こういったケースのすべてにおいて、提供するコンテンツを変化させたり、ナビゲーションの選択肢を変化させたりする場面では、イベントハンドラは、支援技術や一部の技術を使用しているユーザーにも同じ変化を提供できるようにアクセシブルでなければなりません。
                  </p>
                  
                  <p>もし、イベントハンドラが特定のデバイスのみに関連したものである場合（例えば、マウスに関連している "onMouseover"）、マウスを使っていないユーザーはイベントハンドラによる効果を経験することができません（例えば、運動障害のあるユーザー、あるいは自動車を運転しながら車載PCでWebサイトを見ている人）。</p>
                  
                  <p>W3CのWCAG 1.0によれば、
                     <strong>デバイス非依存</strong>というのは、以下のようなことを指します。
                     <strong>&amp;wcag;</strong>
                     [&amp;url_wcag;#device-independent]
                     ):
                  </p>
                  
                  <blockquote>ユーザーは、自分のニーズに応じて選択した入力および出力デバイスを使って、ユーザーエージェント（および、ユーザーエージェントがレンダリングするドキュメント）を操作できなけれなりません。入力デバイスには、ポインティング・デバイス（マウスなど）、キーボード、点字入力デバイス、ヘッドセット装置、マイクロホン、その他があります。出力デバイスとしては、モニタ、音声合成装置、および点字ピンディスプレイなどが挙げられます。</blockquote>
                  
               </td>
            </tr>
         </table>
      </div>
   </body>
</html>