ARCHIVÉ - Questions d'accessibilité liées à JavaScript
Cette information est archivée parce qu'elle est désuete et n'est plus pertinente.
Contenu archivé
Information archivée dans le Web à des fins de consultation, de recherche ou de tenue de documents. Cette dernière n’a aucunement été modifiée ni mise à jour depuis sa date de mise en archive. Les pages archivées dans le Web ne sont pas assujetties aux normes qui s’appliquent aux sites Web du gouvernement du Canada. Conformément à la Politique de communication du gouvernement du Canada, vous pouvez obtenir cette information dans un autre format en communiquant avec nous.
Table des matières
- 1.0 Connaître le public cible
- 2.0 Scénarios d'accessibilité
- 3.0 Ne jamais présumer...
- 4.0 Problèmes
- 4.1 Document.write
- 4.2 Window.status
- 4.3 4.3 Position du curseur
- 4.4 Liens de pseudoprotocole JavaScript
- 4.5 Modules de traitement d'événements « doubleClick »
- 4.6 Fenêtres contextuelles et fenêtres à ouverture automatique
- 4.7 Glisser-déposer
- 4.8 Données de téléscripteur
- 4.9 Caractéristique de rafraîchissement de page
- 4.10 Formulaires sans bouton de validation
- 4.11 Liens formés avec JavaScript ou désignant une fonction JavaScript
- 4.12 Modules de traitement d'événements
- 4.13 Messages d'erreur
- 5.0 Documents source
1.0 Connaître le public cible
On ne devrait jamais présumer que tous les clients sont capables de se débrouiller avec JavaScript. Lorsque des éléments d'une page requièrent JavaScript, il se peut qu'ils ne soient pas accessibles aux personnes ayant une déficience ou à celles qui ont désactivé JavaScript dans leurs navigateurs pour des motifs de sécurité ou pour des raisons personnelles. En outre, les navigateurs avec lecteurs d'écran, les navigateurs substituts et les dipositifs de communication électronique comme Blackberry, les téléphones Web ou les assistants numériques (PDA) seront très probablement incapables d'afficher correctement ces éléments. Des équivalents ne faisant pas appel à JavaScript doivent être fournis pour que le site soit utilisable lorsque JavaScript est désactivé
2.0 Scénarios d'accessibilité
Les scénarios d'accessibilité que les concepteurs Web doivent examiner dans le cadre de l'élaboration de solutions JavaScript se divisent en 3 grands groupes :
Groupe 1 : Clients à mobilité réduite disposant d'un navigateur standard récent
Les scripts créés de manière accessible *peuvent* être utilisables.
Groupe 2 : Clients ayant une déficience visuelle disposant d'un lecteur d'écran récent et d'un navigateur standard
Les scripts créés de manière accessible *peuvent* être utilisables.
Groupe 3 : Clients ayant un ancien navigateur, de vieilles technologies d'adaptation, et des explorateurs de texte comme Lynx ou ayant désactivé les scripts dans leurs navigateurs
Les scripts ne sont généralement pas pris en charge dans le cas des clients de ce groupe; les fonctionnalités fournies par les scripts leur sont inaccessibles à moins qu'une solution de rechange ne faisant pas appel aux scripts leur soit offerte.
3.0 Ne jamais présumer...
N'effectuez jamais de test et de conception en tenant compte uniquement de la plus récente technologie, plus particulièrement s'il s'agit de la technologie utilisée par les personnes ayant une déficience. Il est inacceptable de concevoir des fichiers qui ne seront accessibles qu'aux personnes qui ont les moyens de se doter de la plus récente technologie. Le coût d'achat de JAWS (y compris les mises à niveau des autres systèmes et logiciels) peut s'élever à au moins 1 500 $.
4.0 Problèmes
4.1 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 ». Veuillez trouver une autre manière de concevoir votre site.
Groupes concernés : 2 et 3
4.2 Window.status
La barre d'état située au bas de certains navigateurs sert souvent à fournir des renseignements supplémentaires aux clients lorsqu'ils amènent le curseur sur un lien. Cette barre d'état peut être contrôlée à l'aide de « window.status ». Les navigateurs comme Lynx sont incapables de lire le texte mis à jour ou créé au moyen de « window.status ». 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.
Groupes concernés : 2 et 3
4.3 Position du curseur
Si vous utilisez un script articulé à partir des coordonnées du curseur, tenez compte de la manière dont les utilisateurs du clavier vont simuler cette activité. S'il n'est pas possible de le faire à l'aide d'un clavier, vous devez trouver une autre solution.
Groupes concernés : 1, 2 et 3
4.4 Liens de pseudoprotocole JavaScript
Le pseudoprotocole JavaScript doit être évité à cause des problèmes d'accessibilité qui peuvent survenir. JavaScript n'est pas toujours activé ou pris en charge, et un certain nombre de navigateurs compatibles avec JavaScript n'offrent pas le soutien du pseudoprotocole. 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. Veuillez trouver une autre manière de concevoir votre site. Voici un exemple de lien de pseudoprotocole JavaScript.
<a href="javascript:window.open('fred.html','windowname','height=100')">Fred</a>
Groupes concernés : 2 et 3
4.5 Modules de traitement d'événements « doubleClick »
Il n'existe actuellement aucun module de traitement non tributaire des dispositifs ou équivalents au clavier pour le module de traitement d'événements « doubleClick ».
Groupes concernés : 1, 2 et 3
4.6 Fenêtres contextuelles et fenêtres à ouverture automatique
Il existe d'autres moyens que les fenêtres contextuelles pour véhiculer l'information. L'utilisation de ce type de fenêtre est fortement déconseillée par les normes sur la NSI, à cause des problèmes d'accessibilité qu'elle pose. 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.
Groupes concernés : 1, 2 et 3
4.7 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.
Groupes concernés : 1, 2 et 3
4.8 Données de téléscripteur
Les données de téléscripteur sont des segments de texte déroulant à l'écran. On s'en sert souvent pour fournir les cotes de la bourse et les renseignements météorologiques. Il est important que cette fonction soit activée par le client car ces données peuvent détourner son attention de la zone du site qu'il tente de lire. En d'autres termes, le centre d'intérêt passe à maintes reprises au texte déroulant, ce qui rend l'utilisation du site impossible.
Groupes concernés : 1, 2 et 3
4.9 Caractéristique de rafraîchissement de page
Il est important que le « rafraîchissement automatique » soit une fonction que le client doive activer, car cela peut détourner son attention de la zone du site qu'il essaie de lire. En d'autres termes, le centre d'intérêt passe à maintes reprises au début de la page, ce qui rend l'utilisation du site impossible.
Groupes concernés : 1, 2 et 3
4.10 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.
Groupes concernés : 1, 2 et 3
4.11 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
Groupes concernés : 1, 2 et 3
4.12 Modules de traitement d'événements
JavaScript sert souvent au traitement d'événements dans une page Web. Ces modules de traitement d'événements 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
Groups affected: group 1, group 2, and group 3
4.13 Messages d'erreur
Les fenêtres contextuelles sont extrêmement déconcertantes pour quiconque utilise un lecteur d'écran. Les clients aveugles trouveront très difficile de recevoir les messages d'erreur d'un formulaire si ces messages apparaissent sur une page distincte (fenêtre contextuelle). En effet, quand le message d'erreur est sur une page distincte, le client est souvent bloqué dans un champ et il est par conséquent incapable de lire l'information supplémentaire fournie sur la page.
En outre, lorsqu'il a fini de lire le contenu de la fenêtre contextuelle, le système le ramène au début de la page d'origine. Il doit donc parcourir toute la page afin de trouver l'endroit où l'erreur en question est survenue. Il vaut mieux réafficher le formulaire en y intégrant les messages d'erreur, car ce mode de présentation des erreurs est plus commode pour tous les clients.
Dans le cas de la validation de formulaire côté client au moyen de JavaScript ou d'autres méthodes, vous devez installer également la validation côté serveur pour les personnes ayant des problèmes avec le langage script parce que leur système ne l'accepte pas ou parce qu'elles ont désactivé cette fonction.
Groupes concernés : 1, 2 et 3
5.0 Documents source
- [508] Guide to meeting requirements of 508 with regard to JavaScript
- [IBM] "Techniques for Scripts"
- [National Cancer Institution] "508 Tutorial (l): Scripting"
- [Snow] "JavaScript and Accessibility"
- [SW Missouri State University] "checkpoint Scripting"
- [Trace] "JavaScript Accessibility Project"
- [Tom Gilder] "Accessible Scripting"
- [EC:ACT] "Accessibility Field Guide"