Jour 77 - Implémenter une modale (la pratique)

Après la théorie, on met les mains dans le code.

Ce que j’ai fait :

Ce que j’ai appris

Limiter le focus à l’intérieur de la modale

Pour empêcher l’internaute de cliquer en dehors de la modale, le principe est de “bloquer” le focus entre le premier et le dernier élément focusable de la modale.

On fait la liste de tous les éléments à l’intérieur de la modale susceptibles de recevoir le focus et on détermine le premier et le dernier élément focusable : ils constitueront les limites de la zone de focus tant que la modale est ouverte. Lorsque l’internaute atteint le dernier élément et appuie sur “Tab”, c’est le premier élément focusable de la modale qui est ensuite atteint, et non pas un élément focusable en dehors de la modale.

Il est aussi possible de bloquer le focus en appliquant un tabindex="-1" à tous les éléments en dehors de la modale.

Keycodes JavaScript

Chaque touche du clavier possède un “keycode” en Javascript, c’est-à-dire un nombre représentant la valeur de caractère de la touche, qui permet ensuite de cibler la touche en question directement dans le code.

Pour cette modale, l’interaction au clavier fait intervenir les touches “Tab” et “Escape”, dont les keycodes respectifs sont “9” et “27”.

Le site Keycode Infos (lien externe) de Wes Bos permet de tester et récupérer directement le keycode des différentes touches du clavier.

A faire

  • prévoir une version mobile de la modale

  • tester la modale dans différents navigateurs (testée uniquement dans Firefox à l’heure actuelle)

  • tester la modale avec un lecteur d’écran (ce sera sûrement avec Talk Back ou Voice Over sur mobile étant donné qu’Orca refait des siennes sur mon ordinateur portable)