Accessibilité des applications web (Handicap) et HTML5

Accessibilité: Liste des points de vigilance sur l’accessibilité des applications web et la prise en compte des différents handicaps.
Pierre LISERONMis à jour le 18 Mars 2014

Lobjectif de cet article est de faire un point sur les points de vigilance dans le développement dapplications et sites web pour les rendre le plus accessibles possible avec les différents profils de handicap.

Laccessibilité dans les applications et sites web est très complexe à mettre en oeuvre. Cet article ne prétend pas faire un état des lieux exhaustif de ce quil est nécessaire de faire mais tente modestement de lister quelques points de vigilance à destination des développeurs web. Le but est également de montrer quil est possible daméliorer significativement laccessibilité de nos applications et sites web en appliquant quelques règles simples. Qui plus est, lamélioration de laccessibilité bénéficie à tous les utilisateurs, car une application accessible est souvent une application bien pensée!

Pour permettre une accessibilité la plus correcte possible, nous avons séparé larticle en trois types de déficience : visuelle, moteur et cognitive.

Handicap et déficience visuelle

Fonctionnement de la relecture pour personne déficiente visuelle : les personnes mal voyantes utilisent souvent des interpréteurs vocaux de la page. Ces lecteurs audios sont assez basiques et se contentent le plus souvent de lire le texte dans le sens où ils le trouvent dans la page. Ils ninterprètent évidement pas le CSSFeuilles de style qui permettent de mettre en forme des pages web. et se contentent donc de la représentation HTMLHTML (HyperText Markup Language) est un langage permettant de décrire le découpage d'une page web. de la page. Ils sont en revanche (de plus en plus) sensibles à la sémantique contenue dans le HTML. Laccessibilité de votre site web va donc se jouer majoritairement sur la structure HTML de vos pages.

Le HTML propose un grand nombre de balises, dont beaucoup sont méconnues, peu ou pas utilisées. Il est toujours tentant pour un développeur de construire ses pages HTML avec seulement des div et des span. Ce sont pourtant des balises noffrant aucune valeur sémantique. Leur seule valeur est structurelle : une div est un bloc, une span est un élément de ligne. Il est pourtant possible de donner de la valeur sémantique aux éléments, surtout pour les blocs : un bloc de texte doit être une balise p, une liste déléments peut presque toujours être une ul, une ol ou une dl, du texte mis en valeur par du CSS et imbriqué dans une div doit être un titre h. La structure HTML dune page doit refléter son contenu sémantique. Il est donc avant tout important davoir une idée claire du sens du contenu de votre page, dans la mesure où le HTML reflète ce dernier (ce nest pas le HTML qui donne du sens à votre texte !). Vous pouvez trouver une liste des balises avec leur description structurelle, technique et sémantique, ainsi que leur compatibilité sur le site du W3C Schools.

Le HTML5 introduit quelques nouvelles balises très intéressantes pour la structure sémantique de vos pages : header, footer, section, article, aside, nav. Le lien précédent pourra vous éclairer plus précisément sur le sens de ces éléments et la meilleure façon de les utiliser. Un très bon article en français sur le site AlsaCreations pourra également vous renseigner. De plus, le W3C définit la notion doutline qui permet, par lanalyse du code HTML dune page, détablir un plan de celle-ci en fonction de ses éléments sectionnant imbriqués et de ses titres. En fonction de la outline obtenue, vous pouvez évaluer la pertinence de la structure de votre page : si le plan ne correspond pas à ce que vous avez voulu dire, ou si aucun titre ne ressort, il faut retravailler tout ça. Plusieurs outils en ligne existent pour générer la outline comme celui-là.

Toutefois, si la tentation est grande dutiliser massivement les nouvelles balises, leur mise en oeuvre « accessible » nécessite la plus grande prudence et lapplication dune certaine méthodologie pour conserver la compatibilité sur les principaux navigateurs. En effet, comme vous pouvez le constater sur la documentation du W3C Schools, les nouvelles balises HTML5 ne sont reconnues par IE (Internet Explorer) quà partir de la version 9. Or IE8 a encore à lheure actuelle une part de marché non négligeable : à peine moins de 8% sur le baromètre 2013. Les versions antérieures peuvent raisonnablement être ignorées, IE7 ne recueillant plus que 0.6% des suffrages sur ce même baromètre. Mais un site web accessible est avant tout un site web compatible sur les principaux navigateurs, et donc la compatibilité IE8 (pour linstant) ne peut pas se concevoir comme une option dans une démarche daccessibilité.

La mise en oeuvre conjointe de la sémantique HTML5 et de la compatibilité IE8 passe par deux actions. Dabord la mise en place du script JS éprouvé qui modifira votre HTML à la volée. Ensuite la prise en compte de ces modifications dans votre feuille de style. Le mieux est de tester son site sur IE8 avec le script pour se rendre compte des changements provoqués. Pour le CSS, cela implique 2 choses (outre le fait de ne pas utiliser de sélecteurs CSS3 non reconnus par IE8 : pour cela voir le W3 Schools) :

  1. ne pas appliquer de style aux balises non-compatibles ;
  2. tenir compte de la modification du DOM par le script JS dans ses sélecteurs CSS pour les éléments à lintérieur des balises non-compatibles : par exemple, un élément à lintérieur dune balise section va se retrouver un niveau plus haut et après une balise que lon ne peut pas cibler par son nom en CSS ;

Pour le deuxième point, on pourrait argumenter quil suffit dappliquer une classe CSS à lélément imbriqué. Cest vrai. Il est néanmoins intéressant de chercher à limiter le nombre de classes CSS déclarées de façon à en débarrasser au maximum de code HTML, afin que ce dernier soit plus lisible.

Le choix des balises nest cependant pas la seule manière dintroduire de la sémantique dans le HTML. Une autre façon, particulièrement bien reconnue par IE et Firefox, est davoir recours à la spécification ARIA (Accessible Rich Internet Applications), autre production du W3C. Elle permet entre autres de définir des rôles pour chaque bloc, par le simple ajout dun attribut role sur la balise concernée. Vous trouverez plus dinformations et la liste des rôles sur la documentation technique.

Pour aller plus loin, il est intéressant dutiliser vous-même des lecteurs décrans pour vous rendre compte de ce que ces logiciels font de vos pages. On peut citer JAWS et Window-Eyes. Vous constaterez par exemple si vous utilisez des caractères tels que les chevrons ou le pipe en guise de séparateur quils sont lus par les lecteurs décran. Une solution peut être de placer ces séparateurs dans la propriété CSS content. Dautres situations comme celle-ci existent, cest pourquoi il est utile dessayer soi-même les lecteurs décran.

Accessibilité: Points de vigilance

  • le code HTML doit valider sur le site du W3C (http://validator.w3.org/)
  • les pages doivent être compatibles IE8 minimum (http://www.w3schools.com/tags/default.asp)
  • le code HTML doit utiliser au maximum la diversité des tags existants
  • lutilisation des différents tags HTML doit se faire judicieusement selon leur valeur sémantique
  • la structure des pages HTML doit avoir une outline cohérente avec leur contenu sémantique
  • les caractères utilisés comme éléments de décoration doivent être soit déplacés dans une CSS (attribut content) soit remplacés par des images
  • lutilisation des sélecteurs CSS doit conserver la compatibilité IE8

Handicap et déficience moteur

Un des problèmes les plus souvent négligés est le handicap moteur. En effet, une personne qui possède des difficultés avec sa main par exemple aura du mal à scroller pendant des heures sur des pages particulièrement longues. Pour pallier ce problème, il est nécessaire de mettre de nombreux liens vers les différentes sections de la page. Par exemple, un lien remonter en haut de la page permet à lutilisateur de ne pas avoir à scroller, ce qui est reposant.

Handicap et déficience cognitive

Le handicap cognitif est probablement lun des plus négligés et aussi sûrement lun des plus difficiles à appréhender. Le problème est que trop dinformation rend généralement lapplication ou le site complètement inaccessible pour une personne déficiente cognitive. Cest souvent le cas dans les applications ou de nombreuses fonctionnalités sont accessibles sur la même page.