Utiliser des gestionnaires d'événements indépendants du périphérique  
Point de contrôle 6,4 de priorité 2 WAI / WCAG 1.0
 
 
Description du problème

La page contient des gestionnaires pour certains événements nécessitant l'utilisation de la souris et pour lesquels aucun gestionnaire d'événements de type clavier n'existe.

En particulier :

  • le gestionnaire d'événements ondblclick n'a, en HTML 4.01, aucun événement clavier correspondant et par conséquent, il ne doit pas être utilisé.
  • le gestionnaire d'événements onmousedown va de paire avec l'événement onkeydown ;
  • le gestionnaire d'événements onmouseup va de paire avec l'événement onkeyup ;
  • le gestionnaire d'événements onclick va de paire avec l'événement onkeypress ;
  • le gestionnaire d'événement onmouseover va de paire avec l'événement onfocus pour les liens et la plupart des contrôles de formulaire (où il est généralement utilisé pour mettre en place des zones de survol) ; sur les champs de texte des formulaires, onclick doit être remplacé par onfocus, puisque onfocus active les champs de texte lorsque l'utilisateur appuie sur le bouton de la souris ou sur les touches Ctrl+Tab.
  • le gestionnaire d'événements onmouseout va de paire avec l'événement onblur.
 
 
Procédure de réparation

Contrôlez tous les gestionnaires d'événements définis dans la page. Ne tenez compte que des gestionnaires qui modifient le contenu de la page (en ajoutant ou supprimant du texte, des images, des calques et autres objets) ou les options de navigation (menus, nouvelles fenêtres, barres de navigation ou liens).

Si n'importe lequel de ces gestionnaires est spécifié à l'aide d'événements dépendants du périphérique (c'est-à-dire, ONDBLCLICK, ONCLICK, ONKEYPRESS, ONKEYDOWN, ONMOUSEDOWN, ONKEYUP, ONMOUSEUP, ONMOUSEOVER, ONMOUSEOUT, ONFOCUS et ONBLUR), ils doivent être également associés aux gestionnaires d'événements de l'autre périphérique.

En particulier :

  • pour les liens et les contrôles de formulaire, associez ONCLICK à ONKEYPRESS et vice versa. Vous pouvez y parvenir définissant l'événement manquant avec le même script utilisé pour celui existant ;
  • sur les champs de texte à l'intérieur des formulaires, remplacez ONCLICK par ONFOCUS
  • n'utilisez jamais ONDBLCLICK, car il n'existe aucun gestionnaire de clavier équivalent.
  • associez toujours ONKEYDOWN à ONMOUSEDOWN ;
  • associez toujours ONKEYUP à ONMOUSEUP ;
  • associez toujours ONMOUSEOVER à ONFOCUS ;
  • associez toujours ONMOUSEOUT à ONBLUR.
 
 
Explication du problème

Un gestionnaire d'événements est un script invoqué lorsqu'un certain événement se produit (par exemple, déplacement de la souris, utilisation d'une touche du clavier, chargement d'un document, etc.). Les gestionnaires d'événements sont reliés à des éléments HTML via des attributs de gestionnaires d'événements (notamment, " ONMOUSEDOWN ", " ONCLICK ", " ONKEYUP ", etc.).

L'effet d'un gestionnaire d'événements est purement visuel : mise en surbrillance d'une portion de texte, d'une image ou changement de la couleur de certaines parties de la page. Dans d'autres cas, cependant, le gestionnaire d'événements réalise des activités plus importantes : il valide les saisies dans un formulaire ; affiche un menu déroulant ; ouvre une fenêtre, etc.
Dans tous ces cas, où le contenu fourni est modifié ou les options de navigation offertes à l'utilisateur changent, le gestionnaire d'événements doit être entièrement accessible pour offrir les mêmes changements aux personnes se servant de technologies d'aide ou aux fonctions limitées.

Si un gestionnaire d'événements fait uniquement référence à un périphérique spécifique (par exemple, la souris, ce qui est le cas avec l'événement " ONMOUSEOVER "), l'utilisateur sans souris (par exemple, une personne ayant des troubles moteur ou un conducteur visualisant le site Web sur un ordinateur installé dans sa voiture) ne sera pas en mesure de bénéficier de l'effet du gestionnaire.

Selon le W3C, indépendance du périphérique signifie que (Web Content Accessibility Guidelines 1.0 [http://www.w3.org/TR/WCAG10/#device-independent] ) :

Les utilisateurs doivent pouvoir interagir avec un agent utilisateur (et le document qu'il rend) à l'aide des périphériques d'entrée et de sortie de leurs choix et en fonction de leurs besoins. Les périphériques d'entrée comprennent notamment les périphériques de pointage, d'entrée braille, les claviers, les licornes, 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.