Guides pratiques

Concevoir et tester une fenêtre de dialogue modale

Une fenêtre modale suspend l’interaction avec le reste de la page. Elle convient à une décision courte qui exige une réponse avant de continuer. Une longue lecture, une présentation de service ou un formulaire complexe peuvent gagner à disposer d’une page dédiée.

Voir la méthode

Ordinateur portable, téléphone et carnet ouverts sur une table blanche
Illustration

Justifier l’interruption

Définissez ce que la personne doit décider et pourquoi elle ne peut pas poursuivre sans le faire. Réservez la confirmation aux conséquences qui demandent réellement une vérification. Une fenêtre répétée pour des actions faciles à annuler ralentit la tâche et peut rendre les confirmations importantes moins visibles.

Rédigez un titre qui nomme l’objet et deux actions explicites. Pour retirer une pièce jointe, « Retirer le document » est plus clair que « OK ». Expliquez si le retrait supprime le fichier définitivement ou le retire seulement du dossier affiché. Préservez les informations déjà saisies en cas d’annulation.

Prévoir le focus et la fermeture

Le modèle de dialogue W3C décrit un focus placé dans la fenêtre à l’ouverture, un parcours Tab contenu dans celle-ci et un retour logique après fermeture. Une fermeture visible et l’usage d’Échap permettent de quitter l’interruption. Ne déclarez pas une fenêtre modale si l’arrière-plan reste utilisable.

L’élément HTML dialog ouvert avec showModal() rend le reste du document inerte. Son usage ne décide pas du libellé, du choix initial ni de la sauvegarde. Testez la fenêtre réellement intégrée, y compris si le bouton d’ouverture disparaît après une suppression.

Traiter le contenu long et les opérations différées

Sur un petit écran, le titre et la fermeture doivent rester atteignables. Vérifiez le défilement de la fenêtre et évitez que le clavier du téléphone masque le champ actif. Si la lecture nécessaire devient longue, comparez une page dédiée plutôt que d’accumuler des fenêtres imbriquées.

Pour une opération distante, distinguez attente et réussite. Un échec doit conserver la décision et proposer une reprise compréhensible. Fermer l’interface ne prouve pas que l’opération serveur a été annulée : prévoyez un comportement explicite et évitez de promettre une annulation que le service ne sait pas effectuer.

Exemple : retirer un document d’un dossier

Exemple pédagogique : « Retirer devis.pdf de ce dossier ? » annonce l’objet et précise que le fichier d’origine reste conservé. La personne peut revenir sans changement. Après retrait, le message confirme le résultat et le focus rejoint une commande proche de la liste mise à jour. Le test vérifie aussi l’échec du retrait et l’absence du bouton initial, sans supprimer un vrai document.

Contenu mis à jour le 7 octobre 2026

Matrice de recette à adapter au projet

Ces contrôles proposés utilisent des cas fictifs. Décidez du comportement attendu avec l’équipe, notez le résultat et attribuez les écarts non résolus avant publication.

Faites défiler le tableau horizontalement pour lire toutes les colonnes. Au clavier, placez le focus sur le tableau puis utilisez les flèches.

Cas de test, résultats attendus et preuves utiles
CasRésultat attenduPreuve à conserver
Ouverture au clavierLe titre et l’action sont atteignables dans la fenêtreÉlément actif avant et après ouverture
AnnulationLes données précédentes restent présentesValeurs avant et après fermeture
Contenu long sur mobileLa fermeture et les champs restent utilisablesTaille de fenêtre et capture
Erreur distanteLa fenêtre distingue échec et réussiteMessage et possibilité de reprise

Questions fréquentes

Faut-il placer le focus sur la confirmation ?

Choisissez selon la tâche et le risque. Le début du contenu ou l’action la moins dommageable peut être préférable lorsqu’une décision exige une lecture ou peut être difficile à annuler.

Le clic sur le fond suffit-il pour fermer ?

Une commande visible reste nécessaire pour les personnes qui ne peuvent pas utiliser ce geste. Testez aussi Échap et le retour du focus.

Peut-on ouvrir une seconde fenêtre depuis la première ?

Cela augmente les états et les retours à gérer. Préférez un parcours plus simple lorsque possible ; si l’imbrication est nécessaire, vérifiez chaque niveau de fermeture.