Quelques enseignements d'accessibilité

Quelques enseignements d'accessibilité (le 13 mai 2012)

Chose promise, chose due (même avec un peu de retard), voici quelques enseignements ou confirmations de bonnes habitudes à prendre, suite à la Conférence Romande sur l'accessibilité. Elles ne sont pas très difficiles à faire, donc n'hésitez pas. J'ai pu en voir le bénéfice direct et net en démonstration durant la conférence.

J'espère sincèrement enfoncer des portes ouvertes pour la plupart des points ci-dessous.

Les synthèses vocales proposent plusieurs façons d'aborder un document web (et ce afin de faciliter et d'accélérer la navigation), notamment via la structure des titres et des sous-titres. Si vous doutiez encore de l'utilité d'avoir une structure Hx correcte et explicite, ne doutez plus.
Autre possibilité, ces synthèses vocales peuvent sortir la liste des liens de la page. Hors contexte, l'utilité d'avoir des liens avec des énoncés pertinents est donc importante dans ce cas (imaginez si tous les liens sont de type « lire la suite ».

Côté navigation, il est également possible de naviguer en utilisant la touche de tabulation, j'en ai déjà parlé plusieurs fois ici. Il faut garder à l'esprit qu'une synthèse vocale va lire séquentiellement chaque page, donc pour le dire simplement, la personne va devoir supporter à chaque changement de page la lecture de tout le contenu ! C'est également valable pour ceux qui naviguent au clavier bien sûr. On parle dans ce cas de navigation séquentielle (littéralement « à la suite »).
Si vous doutiez de l'utilité des liens d'évitements, n'en doutez plus. Dans le cas de sites ayant un nombre de liens conséquent en navigation (notamment les sites d'e-commerce), l'économie de tabulations (et donc de temps) peut être vraiment importante. Certains sites pourraient faire économiser pas moins de 4 à 500 tabulations à leurs visiteurs en ajoutant quelques « pauvres » liens d'évitement.

Une bonne habitude toute simple pour les formulaires : quand un utilisateur de synthèse vocale soumet un formulaire, et en supposant que certains champs n'aient pas été remplis correctement, le formulaire va indiquer dans son contenu un message du style « les champs suivants doivent être remplis ». Seul souci, l'utilisateur de synthèse vocale n'a pas de retour immédiat sur ce problème (en supposant qu'il en ait un, de retour !), il doit attendre que sa synthèse arrive sur ce message d'erreur, ce qui risque d'être gênant : l'utilisateur peut croire que son formulaire a été correctement soumis. Pour éviter ce risque, une solution toute simple existe : il faut indiquer clairement dans la balise title de la page qu'il y a une erreur, ainsi, l'utilisateur est tout de suite prévenu qu'il existe un problème. C'est également valable si le formulaire a été correctement soumis : il faut informer rapidement l'utilisateur.

Une autre bonne idée : parfois, on vous impose un bouton submit pas très explicite, le classique « envoyer ». Il pourra être intéressant d'ajouter un attribut title sur ce submit indiquant un complément d'action, par exemple, « envoyer mon message ».

Côté ARIA, des possibilités assez simples sont d'ores et déjà implémentables, et notamment une : les landmarks.

Sous ce nom bizarre se cache quelque chose d'extrêmement simple et pourtant très puissant : ce sont des attributs role qui permettent de définir le… rôle (!) de certaines portions de codes. ainsi, cela permet à l'utilisateur d'une synthèse vocale de pouvoir mieux appréhender la précieuse vue d'ensemble qui lui manque. En pratique, cela consiste à indiquer par exemple les rôles suivants :

  • role="contentinfo" indique des notes de pages, un copyright, un lien vers la déclaration de confidentialité, etc.
  • role="main" indique le contenu principal du document.
  • role="navigation", comme son nom l'indique, indique des liens de navigation (internes ou externes).

Pour une liste beaucoup plus complète, je vous invite à consulter : Introduction à WAI-ARIA.

C'est par exemple implémenté sur ce site, et c'est très facile à prévoir sur un site, il suffit d'ajouter quelques attributs sur son template de base.

Autre idée facile à prévoir, il arrive d'avoir une zone qui se met à jour toute seule (une zone qui affiche des nouvelles, etc.). Pour l'indiquer à la synthèse vocale, il suffit d'utiliser l'attribut aria-live. La valeur spécifiée indique à la synthèse quand elle doit notifier le changement à l'internaute, aria="polite" va attendre que l'utilisateur ait fini ce qu'il est en train de faire pour indiquer le changement.

La liste est très loin d'être exhaustive, toutefois, je me suis limité à des choses vraiment très faciles à implémenter. Ce ne sont que quelques bonnes habitudes à prendre, et quelques choses à savoir. Chose intéressante, le bénéfice est immédiat pour les utilisateurs d'aides techniques, donc faites-le !

Permalien :

Flux RSS des commentaires de ce billet : https://www.nicolas-hoffmann.net/rss/commentaires.php?id_news=1478

2 commentaires

Posté par Victor Brito le 13/05/2012 à 21:16:25
En ce qui concerne la liste des liens de la page consultée par un lecteur d'écran, je suis d'accord sur le fait que les liens sortent de leur contexte… dans l'absolu : en effet, les lecteurs d'écran, lorsque les liens de la page sont listés, offrent désormais, via un raccourci clavier, la possibilité d'indiquer le contexte de chaque lien listé, notamment l'élément h1 à h6 précédent, le paragraphe ou l'élément li comportant le lien en question, ou bien l'élément th auquel l'élément td comportant le lien est associé. Ainsi, un élément hN comportant un intitulé d'article et suivi d'un chapeau et d'un lien « Lire la suite » fournit le contexte permettant d'expliciter ce dernier lien, ce qui est conforme au niveau A des WCAG 2.0. La sanction infligée au lien « Lire la suite » en question pour son absence d'explicitation hors contexte n'intervient qu'au niveau AAA.

Quant aux liens d'évitement, ils sont également utiles à des utilisateurs de téléphones mobiles, surtout si les liens de navigation demeurent grosso modo à la même place, quand bien même les CSS seraient un minimum adaptées aux contraintes du média. Il suffit de songer à ceux qui ont l'index fatigué de tant balayer l'écran ou qui ont un mobile à clavier sans interaction tactile possible, comme certains modèles Blackberry.

Enfin, tu as oublié de signaler qu'il faut réserver la valeur "rude" de l'attribut aria-live aux messages d'alerte et éviter d'en abuser pour les bannières et autres fenêtres modales publicitaires, le cauchemar de Jean-Pierre Villain. (clin d’oeil)
Posté par Nico le 17/05/2012 à 8:18:44
Je me suis volontairement limité aux liens qui sont explicites hors contenu, car ça apporte d'autres avantages en-dehors de l'accessibilité : le référencement notamment.

Chuuuuut... ne parle pas de la valeur "rude", si un publicitaire passe par là... (sourire)

Ajouter un commentaire









L'option « Se souvenir de mes informations » utilise un cookie, elle ne sera pas effective si vous les avez désactivés.

Les balises HTML ne seront pas interprétées, il est donc inutile d'en mettre. Par contre, les sauts de lignes de votre commentaire seront pris en compte, ne mettez donc pas de <br />, le site s'en chargera. Bien sûr, un commentaire vide ne sera pas ajouté !

L'auteur (autrement dit moi) n'est pas responsable des éventuelles fautes d'orthographe dans les commentaires.
Tout propos raciste et/ou insultant sera supprimé sans préavis. Les commentaires hors de propos destinés à faire de la pub pour des sites seront également supprimés sans ménagement.

Je vous prie de me pardonner, j'ai énormément de mal à lire le "langage" SMS, il n'est donc pas du tout interdit de s'abstenir de l'utiliser. Qui plus est, vous avez sûrement un clavier digne de ce nom et pas celui d'un téléphone portable. Ne vous gênez pas pour utiliser l'option "Prévisualiser" si vous voulez vous relire avant de poster, je vous en remercie d'avance !

Cet article a été écrit par Nicolas Hoffmann.

Ce site est la propriété de Nicolas Hoffmann.
Tous droits réservés, les textes du blog sont publiés sous licence CC BY-NC-SA.