Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Permettre de mieux contrôler la fermeture d'une modale #1044

Open
thibault opened this issue Nov 14, 2024 · 2 comments
Open

Permettre de mieux contrôler la fermeture d'une modale #1044

thibault opened this issue Nov 14, 2024 · 2 comments
Labels
évolution Nouvelle fonctionnalité ou requête

Comments

@thibault
Copy link

Hello,

Si votre suggestion concerne un composant existant, merci de décrire le problème rencontré de façon claire et concise

Sauf erreur de ma part, il n'est pas possible de contrôler la possibilité de fermeture des modales, notamment en empêchant l'utilisation de la touche « ESC ».

(Où alors cette possibilité n'est pas documentée.)

Décrivez le comportement souhaité

Dans mon projet actuel, voici le workflow que je veux implémenter :

  • un utilisateur créé un objet
  • une modale s'ouvre contenant un formulaire, que l'utilisateur doit compléter
  • tant que le formulaire n'est pas validé, l'utilisateur ne peut pas fermer la modale

Par exemple, cette modale s'ouvre après avoir tracé une haie sur une carte, et il faut obligatoirement compléter les infos correspondantes.

image

Le comportement actuel, problématique :

  • l'utilisateur appuie sur la touche ESC, fermant la modale sans avoir terminé son action obligatoire.

Si vous avez déjà identifié une correction

J'ai testé la possibilité d'intercepter l'événement dsfr.conceal mais sans obtenir le résultat espéré.

      // La modale se ferme quand même
      dialog.addEventListener("dsfr.conceal", (e) => {
        e.preventDefault();
        return null;
      });

Je n'ai malheureusement pas de solution alternative, mis à part me passer complètement du composant « modale ».

Merci.

@thibault thibault added the évolution Nouvelle fonctionnalité ou requête label Nov 14, 2024
@keryanS
Copy link
Contributor

keryanS commented Nov 14, 2024

Bonjour,
Pour des raisons d'accessibilité, la possibilité de fermer la modale via le bouton fermer ET la touche échape (à minima) sont obligatoires.
Fermer la modale devrait donc annuler l'action, éventuellement en gardant en mémoire les informations renseignées.

@thibault
Copy link
Author

Hello,

Merci pour ta réponse @keryanS .

Effectivement, j'ai bien conscience des problématiques d'accessibilité soulevées par l'utilisation des modales, ainsi que des bonnes pratiques en vigueur.

D'ailleurs, l'appli dont il est question ici présente un gros défi niveau accessibilité (il s'agit d'un tracé minutieux de polylignes représentant des haies sur une carte satellite). Les différents choix qui ont été faits jusqu'à maintenant font qu'on a l'impression que l'impossibilité de fermer la modale représente plus un handicap qu'un avantage pour l'utilisabilité et l'accessibilité.

Au final nous allons sans doute devoir adapter la solution retenue et partir sur la piste que tu suggères, mais nous aimerions quand même aller au bout de notre exploration sur la solution actuelle. Penses-tu qu'une solution technique existe pour répondre à ma demande initiale, même si j'ai conscience que ce serait une mauvaise pratique dans 99% des cas ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
évolution Nouvelle fonctionnalité ou requête
Projects
None yet
Development

No branches or pull requests

2 participants