Je réalise un composant de type listbox à 2 niveaux. Il doit pouvoir être pleinement accessible.
A l'affichage du formulaire, la listbox est fermée. Elle peut être ouverte avec le clavier (focus + entrée). Pour l'accessibilité, je dois donner le focus à chaque élément de liste sur lequel on se positionne avec les touches fléchées.
Je dois fermer la listbox si l'utilisateur clique en dehors ou porte le focus sur un autre élément du formulaire. J'utilise donc l'évènement "blur" de jQuery. Problème : il survient aussi lorsque je porte par programmation le focus sur un item de liste suite à la navigation clavier. Et quand je traite l'évènement, je n'arrive pas à en connaître la source, donc je ne sais pas si je dois fermer la listbox ou pas.
Comment faire ?
Partager