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

Répondre à