a écrit :
QuentinC en faite la principale difficulté que je constate c'est de ne pas rendre possible la navigation clavier en dehors de la modale une fois qu'elle est ouverte.
Comme je l'ai dit, c'est tout sauf facile et intuitif pour le faire: il faut attribuer tabindex=-1 à tous les éléments focusables qui sont hors de la boîte au moment où tu l'ouvres, et ne pas oublier de tous les remettre à 0 quand tu la fermes.
Les liens, les boutons et les champs de formulaire sont habituellement focusables, mais il y a tous les contrôles personnalisés à base de div/span & co qui devraient aussi l'être; et tous ne sont pas forcément focusables tout le temps, par exemple si on veut implémenter un bon menu déroulant dans les règles de l'art, seul l'item courant doit être focusable et les autres doivent le devenir quand l'utilisateur demande de changer la sélection, peu importe le type d'élément utilisé pour construire le menu au départ. ce qui fait que pour ton problème :
* Tous les éléments qui ont été mis à tabindex=-1 à l'ouverture du popup ne doit pas forcément tous être remis à tabindex=0 à la fermeture, si tu utilises des gadgets ARIA et que tu ne veux pas tout casser
* Un seul oubli de remettre un tabindex=0 à la fermeture peut avoir des conséquences désastreuses (cf. mon précédent post)
* Les éléments qui sont par défaut focusables n'ont pas de tabindex=0, et ça peut donc ne pas être si facile que ça pour bien les identifier
* Un seul oubli de mettre tabindex=-1 à l'ouverture a aussi des conséquences embêtantes
En gros, donc, c'est extrêmement facile de faire foirer tout le truc avec un seul petit oubli, et très difficile de faire en sorte que ça marche vraiment bien. C'est inutilement compliqué, alors forcément, au final, personne ne veut s'amuser. Encore un truc qui est tel une cuillère pour vider sa baignoire...
L'avantage qu'avait showModalDialog, c'est que c'était modal 100% garanti, sans prise de tête, et un appel bloquant au niveau du code qui devait être très pratique. Mais bon, paix à cette techno, elle n'est pas honnêtement appliquabl aujourd'hui. Espérons que ce <dialog> soit sérieux lui, ça faciliterait bien la tâche.
Modifié par QuentinC (29 Apr 2014 - 15:39)