JavaScript et accessibilité

Pour des bidouilles courantes...

Ne pas utiliser «javascript:…» comme valeur de l’attribut href

mais : <a href="hello.html" onclick="hello(); return false;"onkeypress="hello(); return false;">say hello</a>

Gestionnaires d’événement indépendants du dispositif d’entrée

Si des gestionnaires d’événement sont utilisés, mettez-vous à la place de vos utilisateurs potentiels. Il importe d’utiliser des gestionnaires d’événements

logiques (onfocus / onblur / onselect , mais ils ne sont pas toujours correctement implémentés / supportés) ou des combinaisons de gestionnaires d’événements.

<p><a href="hello.html" onclick="javascript:alert('hello');return false;" 
onkeypress="javascript:alert('hello');return false;">say hello</a></p>

Ne pas utiliser de scripts reposant sur les coordonnées de la souris : 

onmouseover, onmousedown, onclick

Document.write

Les lecteurs d’écran comme JAWS ne sont pas capables de lire le texte mis à jour par « document.write ». De plus, la mise à jour des navigateurs comme Lynx n'est pas exécutée adéquatement par « document.write ». 

=> utilisez bien les balises <noscript>...<\noscript> pour offrir l'équivalent à ceux qui n'ont pas le javascript d'activé sur leur navigateur.

Window.status

Les navigateurs comme Lynx sont incapables de lire le texte mis à jour ou créé au moyen de « window.status » (dans la barre d'état). En outre, si l'état est continuellement mis à jour, la page peut devenir inutilisable ou difficile à parcourir pour un utilisateur de lecteur d’écran. Au lieu de vous servir de la barre d'état pour véhiculer l'information supplémentaire, veuillez utiliser l'attribut de titre (« title ») et vous assurer qu’il est possible d’accorder un sens au lien lorsque ce dernier est pris hors contexte.

Comportement divers

S'il n'est pas possible de le faire à l'aide d'un clavier, vous devez trouver une autre solution.

Liens

Les lecteurs d’écran comme JAWS ne sont pas capables de comprendre les liens de pseudoprotocole alors que les navigateurs comme Lynx ne sont pas mis à jour correctement. 

<a href="javascript:window.open('fred.html','windowname','height=100')">Fred</a>

PopUp

Si des fenêtres contextuelles doivent être utilisées, l'utilisateur doit être averti qu'une nouvelle fenêtre de navigation s'ouvrira et il doit aussi être informé lorsqu'il se trouve dans une nouvelle fenêtre.

par ex Les clients aveugles trouveront très difficile de recevoir les messages d'erreur d'un formulaire si ces messages apparaissent sur une page distincte => rtour en haut de la p après lecture (sauf si ncre ?)

Glisser-déposer

La fonction glisser-déposer n'est pas accessible à la plupart des personnes qui ont une déficience, à moins qu'elles aient accès à une fonction semblable pilotée par clavier.

Texte déroulant, rafraîchissement automatique

important que cette fonction soit désactivable ou activée par le client car ces données peuvent détourner son attention de la zone du site qu'il tente de lire

Formulaires sans bouton de validation

JavaScript sert souvent à mettre l'information à jour ou à la valider. Le module de traitement d'événements « onChange » est utilisé fréquemment dans les zones de sélection des pages de type calendrier. À cause de problèmes d'accessibilité, les modules de traitement d'événements « onChange » et « onSelect » ne devraient jamais être utilisés dans les zones de sélection ou de liste déroulante.

Liens formés avec JavaScript ou désignant une fonction JavaScript

La plupart des lecteurs d’écran sont incapables de prendre en charge les liens qui ont été créés à l'aide de JavaScript ou qui mènent à une fonction JavaScript. Les navigateurs non compatibles avec JavaScript et ceux dans lesquels JavaScript est désactivé sont incapables d'utiliser ces types de liens. Veuillez donc éviter l'utilisation de liens créés avec JavaScript ou de liens menant à une fonction JavaScript

Event handlers

ne doivent pas être complètement tributaires de la souris. Il est important d'utiliser des modules non tributaires des dispositifs ou de jumeler des modules de traitement d'événements pilotés par la souris à d'autres qui sont pilotés par le clavier. Les fonctions qui ont recours à ces modules de traitement d'événements ne doivent pas empêcher la navigation ni lui faire obstacle.

L'erreur la plus fréquente consiste à utiliser des boutons de validation qui font appel à des fonctions JavaScript pour valider ou soumettre des données. Les modules de traitement d'événements JavaScript ne fonctionnent pas adéquatement avec les anciens navigateurs, les vieilles technologies d'adaptation, les explorateurs de texte comme Lynx ou les navigateurs dans lesquels on a désactivé JavaScript