mfpaccessibilite/MFP_AccessPlayer

[audit lecteur 11/2019] Problème de reconnaissance et de focus sur les fenêtres modales

julianastoria opened this issue · 6 comments

L’utilisation du clavier et de la souris sur la fenêtre fonctionne parfaitement, mais lorsque nous l’activons, le focus se dirige automatiquement sur le premier lien du menu, alors qu’il devrait se diriger sur la fenêtre elle-même.
Faire en sorte que le focus dans le script soit sur la fenêtre modale lorsque nous les activons.

Toutes les fenêtres modales sauf les fenêtres "Informations" et "Personnalisation des sous-titres" ne sont pas reconnus aux lecteurs d'écrans et la direction que prend le focus lorsque nous les activons.
image

La recommandation ARIA semble ne pas aller dans ce sens :
https://www.w3.org/TR/wai-aria-practices/#dialog_modal
Il est clairement indiqué :
When a dialog opens, focus moves to an element inside the dialog.
et
Unless a condition where doing otherwise is advisable, focus is initially set on the first focusable element.

Dans notre cas le premier éléments et l'entrée "Aucun sous-titre"
Donc le focus doit se faire dans la modale et pas sur la modale

Effectivement, ARIA dit :

Unless a condition where doing otherwise is advisable, focus is initially set on the first focusable element.

Et c'est le cas ici. Comme 2 Design Patterns sont imbriqués, le seul rôle énoncé est celui du 2e DP, c'est-à-dire le rôle menu. L'utilisateur au lecteur d'écran ne sait pas qu'il est dans une fenêtre modale. Il est donc impératif ici de donner d'abord le focus sur la modale elle-même afin que le rôle dialog soit bien énoncé par la synthèse vocale.

Le comportement est celui de jQuery UI Dialog. Il faudrait donc faire une demande de modification auprès de JqueryUI afin que le focus ne soit pas fait à l'intérieur. EN attendant nous avons ajouté un code qui fait le focus sur la fenêtre après l'avoir, ouvert.
Fix dans le commit 12cdcfd

Merci pour l'ajout du focus. La restitution est meilleure, mais reste aléatoire selon les navigateurs/TA. Ça fonctionne sur Windows/Jaws+FF, Voice/Safari, mais pas sur NVDA+FF.

Ajouter aria-modal="true" peut potentiellement résoudre le problème.

S'il persiste après cela, on gardera l'issue pour la prochaine version du lecteur.

L'attribut aria-modal="true" vient d'être ajouté sur les dialog box dans le commit f74c852

Jaws et VoiceOver restituent bien la modale, mais NVDA continue à seulement vocaliser le menu.
Le problème est peut-être dû à la prise de focus sur la div englobant la modale plutôt que sur le premier élément à l'intérieur (le bouton fermeture).
Cf. https://www.w3.org/TR/wai-aria-practices-1.1/#dialog_modal

When a dialog opens, focus placement depends on the nature and size of the content.
In all circumstances, focus moves to an element contained in the dialog.

Pourrais-tu stp mettre le focus sur le bouton de fermeture @simchaba ?