Bonjour Nicolas, Tu écris : Je viens de noter un différence notable de comportement entre les deux solutions techniques : avec un tabindex=-1, il est possible de tabuler en dehors de la page (vers la barre d’adresse ou les menus du navigateur), ce qui n’est pas possible avec la gestion d’évènements.
Le tabindex -1 permet de sortir un élément du parcours de tabulation et/ou de donner la capacité à un élément ne pouvant recevoir le focus de le recevoir via programmation. Ce que tu nous remontes n'est pas lié au tabindex mais à l'implémentation en tant que telle (qui ne serait d'ailleurs pas conforme au DP ARIA Dialog). L'implémentation avec tabindex -1 requière d'avoir un élément neutre en fin de dialog modal qui reçoit le focus et le redistribue (élément span avec tabindex 0 doté d'un listener pour gérer la tabulation dans les deux sens : tabulation et "tabulation arrière"). Concernant ta remarque sur la possibilité d'aller dans les menus ou la barre d'adresse du navigateur, cette possibilité reste offerte à l'utilisateur, peu importe l'implémentation, par l'utilisation des raccourcis navigateur (exemple : un Commande + L (Cmd+L ou Ctrl+L) sous Firefox pour se placer dans la barre d'adresse et il y a bien d'autres raccourcis). Ne pas penser à empêcher l'utilisateur de le faire (ce qui n'est d'ailleurs jamais demandé) mais s'assurer que la navigation clavier ne puisse se faire que sur la dialog modal. Et ça les deux implémentations le permettent. L'implémentation avec tabindex -1, bien que "plus compliquée" techniquement, me semble plus robuste si l'on envisage des fonctionnalités de navigation pouvant être offertes via extension ou nativement par le navigateur (ça existe peut être déjà). Mais d'un point de vue accessibilité, le choix est libre. Supplément : le DP ARIA Dialog ne le demande pas mais les éléments de second plan doivent être masqués aux ATs (usage d'aria-hidden à true sur un parent "englobant"). Tu écris : Après pas mal de recherches, il s’avère que Internet Explorer 8 et 9 ne désactivent pas la tabulation sur les bouton radio avec un tabindex négatif. Du coup, la seule solution qui fonctionne dans mon cas est la gestion des évènements au clavier. C'est très ennuyeux ce souci avec IE mais non, cela ne rend pas l'implémentation via tabindex -1 inapplicable. Cela peut se contourner en désactivant les éléments de formulaire via disabled. A l'époque d'IE 6, les select posaient problème avec ces même dialog modals, pas pour cela que l'on ne contournait pas le problème ;). Romain Le 7 août 2014 11:35, Chardon Nicolas <[email protected]> a écrit : > Je viens de noter un différence notable de comportement entre les deux > solutions techniques : avec un tabindex=-1, il est possible de tabuler en > dehors de la page (vers la barre d’adresse ou les menus du navigateur), ce > qui n’est pas possible avec la gestion d’évènements. Après pas mal de > recherches, il s’avère que Internet Explorer 8 et 9 ne désactivent pas la > tabulation sur les bouton radio avec un tabindex négatif. Du coup, la > seule solution qui fonctionne dans mon cas est la gestion des évènements au > clavier. > > > > Nicolas > > > > *De :* Chardon Nicolas > *Envoyé :* lundi 4 août 2014 17:31 > *À :* GTA > *Objet :* RE: [Liste GTA] Design Pattern "Dialog" et tabindex > > > > Bonjour Romain, > > > > Merci pour ta réponse qui me conforte dans l’approche par gestionnaire > d’évènement que je trouve plus fine. En ce qui concerne la problématique de > performance, mon inquiétude vient du fait que j’ai environ 400 éléments > dans la page qui doivent recevoir un tabindex=-1, au sein d’un DOM assez > touffu (environ 2800 nœuds), ce qui sur des navigateurs anciens comme > Internet Explorer 8, me préoccupait un peu. C’est peut-être un excès de > précaution de ma part … > > > > Nicolas > > > > *De :* liste_gta [mailto:[email protected] > <[email protected]>] *De la part de* Romain Gervois > *Envoyé :* lundi 4 août 2014 10:23 > *À :* GTA > *Objet :* Re: [Liste GTA] Design Pattern "Dialog" et tabindex > > > > Bonjour Nicolas, > > Les deux implémentations (tabindex ou listeners) sont tout à fait > acceptables. Le DP ne se positionne pour aucune des deux (et il a bien > raison là dessus). Celle basée sur les listeners est assez intéressante du > fait qu'elle ne travaille pas sur les éléments et qu'elle n'a de ce fait > aucun impact sur leurs spécificités éventuelles. > > Pour l'histoire de la performance, je suppose que l'affirmation se base > sur le fait que l'une nécessite un parcours de l'arbre et l'autre pas. Je > ne sais pas si la problématique de performance est vraiment réelle et > impactante dans ce contexte ; je suis preneur de ressources si tu as ;). > > Pour le tabindex -1 sur le bouton radio sous IE 8 (pas testé pour ma > part), le comportement que tu décris indique la présence d'un bug (absence > ou mauvaise implémentation d'IE). Là comme ça, je dirai pas le choix il > faut "patcher" via propriété/attribut disabled du bouton radio. > > Romain > > > > Le 31 juillet 2014 15:33, Chardon Nicolas <[email protected]> a > écrit : > > Bonjour à toutes et à tous, > > > > Pour les fenêtres modales, le design pattern WAI ( > http://www.w3.org/TR/wai-aria-practices/#dialog_modal) recommande que la > navigation au clavier reste dans la fenêtre modale. Dans le wiki AcceDe Web > ( > http://wiki.accede-web.com/notices/interfaces-riches-javascript/fenetres-modales-pop-in#comportement-avec-javascript), > la technique JavaScript recommandée consiste à rajouter un « tabindex=-1 » > à tous les éléments ne faisant pas partie de la modale. > > > > Sur un document complexe, le rajout d’un tabindex=-1 sur tous les > éléments pouvant prendre le focus peut concerner un grand nombre > d’éléments, et engendrer des problématiques de performances. Le design > pattern du WAI ne parle que du comportement de la tabulation, et j’ai > trouvé plusieurs ressources sur le web qui utilisent une approche par la > gestion des évènements du clavier pour respecter le pattern : > > http://juicystudio.com/article/custom-built_dialogs.php#comment9 > > http://drublic.de/blog/accessible-dialogs-modals/ > > > > Cette approche par gestion des évènements clavier me semble plus > pertinente, d’un point de vue de la solution technique, et elle respecte le > design pattern : > > Quels sont vos avis sur ce sujet ? > > > > De plus, lors d’un test sur Internet Explorer 8, j’ai pu prendre le focus > sur un bouton radio avec un tabindex=-1 : avez-vous déjà rencontré ce > problème ? > > > > En vous remerçiant par avance de vos lumières sur ce sujet, > > > > Cordialement, > > > > *NICOLAS CHARDON * > > *ARCHITECTE IHM * > > *VSC Technologies* > > 2 place de la Défense – CNIT 1 – BP 440 – 92053 Paris La Défense Cedex > > TÉL. : +33 (0)1 58 13 73 22 (73 22) - [email protected] > > Voyages-sncf.com, 23 sites couvrant plus de 30 pays. > > *[image: cid:[email protected]]* > > *[image: V.png]* <http://mobile.voyages-sncf.com/> > > Téléchargez notre application mobile <http://mobile.voyages-sncf.com/> > > *[image: twitter.jpg]* <https://twitter.com/Voyagessncf_com> > > Suivez-nous sur Twitter <https://twitter.com/Voyagessncf_com> > > *[image: Facebook.png]* <https://fr-fr.facebook.com/VoyagesSncf.com> > > Rejoignez-nous sur Facebook <https://fr-fr.facebook.com/VoyagesSncf.com> > > *[image: GooglePlus-512-Red.png]* > <https://plus.google.com/+voyagessncf/posts> > > Rejoignez-nous sur Google + <https://plus.google.com/+voyagessncf/posts> > > > > > > > _______________________________________________ > liste_gta mailing list > [email protected] > http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org > > > > _______________________________________________ > liste_gta mailing list > [email protected] > http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org > >
_______________________________________________ liste_gta mailing list [email protected] http://list.accessiweb.org/mailman/listinfo/liste_gta_list.accessiweb.org

