1178 sujets

Accessibilité du Web

Bonjour,

Je me posais une question simple dont j'ai du mal à trouver la réponse, mais j'aimerais savoir si du code html généré par un javascript posait des problèmes d'accessibilités ou si ce code était interprété de la même façon que s'il avait été écrit "en dur" dans la page ?

J'ai pensé à l'accessibilité du code en lui-même, mais le site étant hébergé sur un serveur ne permettant pas d’exécuter du code, j'ai du intégrer une série de fonction redondante dans des scripts javascript appelés dans les pages.

Le site que je gère n'a pas d'impératif d'accessibilité, mais je me dis qu'au final, ça serait pas plus mal qu'il le soit.

Merci d'avance.
Salut,

le code html généré via JavaScript n'est ni plus ni moins accessible qu'un code html écrit "en dur". Ce qui peut poser problème c'est de ne pas tenir compte du fait que JavaScript n'est qu'une surcouche facultative et qu'il peut être désactivé / indisponible (tout comme le CSS).
En clair, à moins de spécifier que le JS est obligatoire (par exemple dans le cas d'une application Web ou pour augmenter la sécurisation d'un traitement), une page devrait être complètement fonctionnelle sans JavaScript et ce dernier n'être utilisé que comme valeur ajoutée (en modifiant le DOM au besoin et donc en ajoutant / supprimant des éléments HTML).
Salut,

Ben si tu désactive javascript, le script ne s'exécute pas et n'injecte pas d'html dans ta page, donc les données qui s'y trouvent sont forcément inaccessibles. Javascript doit être une surcouche d'un document html, et ne dois pas se substituer à ce document. Smiley cligne

edit : grillé Smiley murf
Modifié par Mikachu (12 Sep 2010 - 11:00)
Administrateur
Bonjour,

tu ne peux pas savoir à l'avance si :
- le visiteur voit les couleurs (donc ne pas utiliser QUE les couleurs pour transmettre une info telle que valide/invalide. Partout dans le monde, les feux rouge/orange/vert ont le rouge en haut et le vert en bas, pas de confusion possible !)

- les CSS sont activées ("l'info est dans la colonne de droite" => ouais ben chez moi les colonnes sont affichées l'une en dessous de l'autre ou bien je suis non-voyant, je sais pas où c'est)

- JS est activé ou pas, voir les réponses précédentes

- les images seront affichées ou visibles (non-voyant, belge ayant atteint son quota de téléchargement en fin de mois, français utilisant un mobile avec un forfait data "illimité" (*), robot d'indexation, envoi par mail, ... ). Il y a l'attribut alt pour cela (au minimum)

- le gris clair sur fond blanc pourra être vu (malvoyant, écran de portable dalle brillante, moniteur à côté d'une vitre, etc). Il y a des règles de contraste pour éviter cela

- le visiteur ne verra pas ta page avec un zoom énorme (malvoyant) ou au moins un cran de zoom (moi sur des sites qui exagèrent)

- le visiteur va comprendre comment naviguer dans ton site ou trouver l'information attendue (d'où l'intérêt des pages Plan du site voire du moteur de recherche sur les gros sites)

- le visiteur va arriver à utiliser ce menu déroulant que s'il dérape d'1px le menu se referme ou que le menu ne va s'ouvrir que s'il utilise une souris

- le visiteur utilise les touches Tab et Entrée ou une souris

- le visiteur est français, francophone (il faut expliquer le jargon et éviter les particularismes tels que "asbl" seulement connu des belges) ou n'a appris le français que comme 3ème langue

Tu peux être certain que :
- un pirate va aller lire ton code source y compris le JS et y lire les mots de passe écrits en clair (si motdepasse_entré == "toto" alors admin = true) ou passer outre les fonctions de vérification (faire un certain test et s'il est validé aller à une certaine page ou renvoyer une certaine valeur ==> autant aller directement à cette page ou renvoyer la valeur attendue, tu sauras jamais que le test n'a pas été fait)

-----
Pour 30€/an ou moins, domaine inclus, tu peux avoir un serveur plus que correct et t'éviter bien des ennuis Smiley cligne
Modifié par Felipe (12 Sep 2010 - 12:37)
Merci pour vos réponses, j'aurais peut-être dû mieux formuler ma question.

Effectivement, je suis conscient qu'il est obligatoire que javascript soit activé pour que le site fonctionne, mais il s'agit juste d'un site consultatif et il n'y a pas de formulaire par exemple.

Ce que je souhaitais surtout savoir c'est si les navigateurs utilisé par les personnes handicapées par exemple interprétait ce code correctement ou si cela posait effectivement problème.

Après il est certain que l'idéal serait de se passer de javascript mais je considère que si la majorité des outils (navigateur mobile, outils pour personnes handicapées, etc) sont capable d'interpréter ce code, alors l'outils sera considéré comme étant d'un niveau d'accessibilité suffisant (le temps de pouvoir refaire le site avec des technologies côté serveur).
Les aides techniques, comme les lecteurs d'écran, peuvent prendre en compte le JavaScript. Par conséquent, si le code HTML généré par JavaScript pose des problèmes d'accessibilité (comme ceux cités en exemple par Felipe), les utilisateurs des lecteurs d'écran les ressentiront.
Merci, effectivement le code généré est conforme et ne devrait pas poser de problèmes d'accessibilité. Ce qui n'inquiète c'est le tableau généré justement par un code javascript mais que j'ai commenté avec l'option "summary" pour que les gens puisse comprendre ce qu'il y a dedans.
a écrit :
Les aides techniques, comme les lecteurs d'écran, peuvent prendre en compte le JavaScript. Par conséquent, si le code HTML généré par JavaScript pose des
problèmes d'accessibilité (comme ceux cités en exemple par Felipe), les utilisateurs des lecteurs d'écran les ressentiront.

C'est exactement ça. IL faut que le DOM qui représente l'ensemble du code de la page, parties dynamiques et parties statiques ensemble, soit en permanence dans un état accessible. Ca implique qu'il ne faut rien oublier côté js, notamment mettre à jour les alt, les attributs aria, les libellés des liens et boutons, l'état focusable ou non des éléments, la position des éléments dans le DOM en accord avec la position graphique/CSS (linéarité), etc. C'est souvent dans ces choses-là que ça pêche, et c'est donc souvent pour cette raisonque les surcouches javascript et autres applications complexes sont partiellement ou totalement inaccessibles (*). Je ne dis pas que c'est facile, bien au contraire, mais c'est beaucoup trop souvent voire presque systématiquement oublié, même si on est conscient de l'accessibilité et de ce que ça implique quand on écrit du code statique.

(*) C'est pour la même raison qu'on juge souvent à tort bien trop hâtivement que javascript = inaccessible. Dans l'absolu, c'est complètement faux, c'est la façon de l'utiliser qui fait que le résultat final soit plus ou moins accessible. Notons que je n'ai malheureusement vu encore aucune application complexe concrète tenir compte de tout ça. Les grosses pointures comme facebook et twitter, et même google, en sont à des années lumières, et c'est bien dommage.
Modifié par QuentinC (14 Sep 2010 - 11:26)