Bonjour à toutes et tous,
je viens de lire un article sur la difficulté de programmer des widgets
ARIA pour qu'ils soient et restent accessibles au clavier pour un
utilisateur de lecteur d'écran.
titre original: "Why There are Only Two Ways to Make ARIA Widgets
Programmatically Focusable for Screen Reader Users".
<https://www.ssbbartgroup.com/blog/2013/10/22/why-there-are-only-two-ways-to-make-aria-widgets-programmatically-focusable-for-screen-reader-users/>
Voici en résumé ce que j'en ai compris, les spécialistes corrigeront ou
complèteront.
La difficulté est d'exposer des widgets en programmant le focus pour
qu'il soit utilisable par les technologies d'assistance. Ces
technologies sont les lecteurs d'écran, les outils de reconnaissance
vocale ou les logiciels d'agrandissement qui affichent une zone agrandie
de l'information.
L'article explique qu'il n'y a que deux solutions permettant de
positionner le focus dans un widget ARIA lorsque l'utilisateur se sert
d'un lecteur d'écran. L'une d'elle est "aria-activedescendant."
Il arrive que les roles ARIA ne correspondent pas aux éléments utilisés
pour positionner le focus et le retour accessible fourni par le role est
ignoré par le lecteur d'écran.
Ce problème concerne les widgets ARIA suivants :
Listes déroulantes ARIA
Zones d'édition ARIA
des listes, des menus et barres de menus, des listes d'onglets, des
arborescences, et des barres d'outils ARIA.
Chacun de ces widgets doit avoir une seule possibilité de tabulation au
clavier (activable avec la touche tabulation). Il faut ensuite utiliser
les flèches de direction et autres touches pour se déplacer à
l'intérieur du widget.
Si tout cela est codé correctement, on se déplace d'un widget à l'autre
à l'aide de la touche tab, et on se déplace à l'intérieur du composant à
l'aide d'autres touches telles que les flèches de direction. On utilise
tabindex=0 pour positionner le focus sur le composant, et si
l'utilisateur appuie de nouveau sur tab il sort du composant et va autre
part.
La première possibilité pour assurer l'accessibilité d'un composant
ARIA pour un lecteur d'écran est de positionner le focus
individuellement sur chaque noeud enfant. Pour une boîte de liste, on
positionne le focus sur le role="option. en conséquence, si je comprends
bien, lorsque l'utilisateur appuie sur la tabulation, il est positionné
sur le premier élément de la liste dans le composant ARIA. S'il veut
aller au deuxième, premier ou dernier élément de la liste, il n'utilise
pas tab mais les flèches de direction ou toute autre touche.
Pour illustrer cette première solution, l'article donne un lien vers un
exemple à :
http://whatsock.com/tsg/Coding%20Arena/ARIA%20Listboxes/Standard/demo.htm)
La seconde possibilité est de positionner le focus sur le contenant du
composant, et d'utiliser l'attribut "aria-activedescendant". Cela permet
de pointer de façon dynamiique vers l'ID du noeud enfant sélectionné.
Dans le cas d'une arborescence ARIA? cela implique que l'on positionne
le focus sur le contenant de niveau supérieur qui inclut role=tree. On
met aussi tabindex=0 sur cet élément pour s'assurer que le focus sera
positionné à cet endroit. Les flèches de direction permettent alors de
mettre à jour dynamiquement l'attribut aria-activedescendant du même
élément afin qu'il pointe vers l'id du noeud enfant actif contenant
role=”treeitem”.
L'article indique que le problème pour le développeur est que les
navigateurs ne gèrent pas le focus de la même façon. Ainsi, pour un
navigateur windows le rectangle représentant le focus ne bougera pas et
n'indiquera pas quel noeud enfant est sélectionné par l'attribut
aria-activedescendant. Par contre, avec Safari et Voiceover, le focus se
déplacera bien sur le noeud enfant actif mais ce n'est qu'un effet visuel.
L'article donne un code pour tester tout cela.
Bon voilà ce que j'ai compris de l'article, aux techniciens
d'interpréter et d'en débattre si besoin.
Bonne journée
Sylvie
--
Sylvie Duchateau
Association BrailleNet
Tél.: +33 (0) 1 44 27 26 25 / Fax : +33 (0) 1 44 27 34 38
www.braillenet.org / www.accessiweb.org
_______________________________________________
liste_gta mailing list
[email protected]
http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org