Le menu jump doit être indépendant du périphérique |
Point de contrôle 9,2 de priorité 2 WAI / WCAG 1.0
Description du problème La page contient un menu jump (c'est-à-dire, un menu contenant une liste d'options permettant d'accéder chacune à une page différente) en fonction d'un élément SELECT avec un gestionnaire d'événements ONCHANGE qui charge une autre page. Ce comportement empêche les personnes visitant le site d'utiliser le clavier pour faire défiler une liste afin de sélectionner une option.
Procédure de réparation Il existe deux étapes pour rendre le menu jump indépendant du périphérique : supprimez l'attribut ONCHANGE de l'élément SELECT ; ajoutez un bouton (INPUT de type BUTTON) après le menu ; affectez un attribut ONCLICK au bouton dont le contenu de l'attribut ONCHANGE a été au préalable supprimé. Enfin, placez le même contenu à l'intérieur de l'attribut ONKEYPRESS. Lors de l'ajout d'un objet menu JUMP Dreamweaver au document, il est possible d'insérer automatiquement un bouton après le menu. Il suffit de sélectionner la case Insert Go Button After Menu. N'oubliez pas de supprimer l'attribut ONCHANGE de l'élément SELECT et d'ajouter ONKEYPRESS au bouton. Par exemple, le code suivant est incorrect :
    <form name="select_country">
    Select a country:
      <select name="country" onChange="MM_jumpMenu('parent',this,0)">
       <option value="http://www.this_site.com/be" selected>Belgium</option>
       <option value="http://www.this_site.com/us">United States</option>
      </select>
    </form>
Une version accessible est :
    <form name="select_country" action="http://www.this_site.com/jump.cgi">
    Select a country:
      <select name="country">
       <option value="http://www.this_site.com/be" selected>Belgium</option>
       <option value="http://www.this_site.com/us">United States</option>
      </select>
     <input type="submit" value="Go">
    </form>
Explication du problème Le code JavaScript associé à l'élément SELECT ne permet pas à l'utilisateur de faire défiler les options disponibles via un clavier. Il est dépendant du périphérique. Le code JavaScript est indépendant du périphérique si : les utilisateurs peuvent interagir avec un site Web en utilisant les périphériques d'entrée et de sortie de leurs choix. Les périphériques d'entrée comprennent notamment les périphériques de pointage, d'entrée braille, les claviers, les micros, etc. Les périphériques de sortie comprennent notamment les moniteurs, les synthétiseurs vocaux et les périphériques de lecture braille. Généralement, les pages autorisant les interactions avec le clavier sont également accessibles par commande vocale ou via une interface de ligne de commande. N'oubliez pas qu'un menu jump ne fonctionne que si JavaScript est activé et disponible sur le navigateur de l'utilisateur. Il existe des navigateurs ne prenant pas en charge JavaScript (par exemple, les téléphones portables et les assistants personnels). En outre, certaines organisations désactivent JavaScript de leurs navigateurs standard pour des raisons de sécurité. Ajoutez une balise NOSCRIPT avec un autre contenu et type d'interaction équivalents (c'est-à-dire des liens et des formulaires). Ecrivez également un script côté serveur pour traiter les URL situées dans le menu et pour qu'elles ouvrent la page adéquate.