Aller au contenu principal
Virabo Hoy
UX Design

Le bouton
« Sauve-moi
la vie »

Arrêtez de faire péter les plombs à vos utilisateurs avec des modales de confirmation inutiles.

21 mai 2026 · 4 min de lecture

Chaque fois qu'un utilisateur supprime une ligne dans un tableau, une modale s'ouvre :
« Êtes-vous sûr de vouloir supprimer ? »
Ça semble prudent… mais en réalité, tu fais subir une interruption à 100 % de tes utilisateurs pour en protéger que 5 %.

Le problème du 95%

Visualise tes 100 utilisateurs. 95 d'entre eux savent exactement ce qu'ils font. Ils cliquent sur supprimer intentionnellement. Et toi, tu les arrêtes quand même — tu leur demandes de confirmer une décision qu'ils ont déjà prise.

🔴

Le vrai coût de la modale inutile

Interruption du flow · Frustration accumulée · Sentiment de ne pas être fait confiance · Ralentissement de toutes les tâches répétitives

Côte à côte

La même action — supprimer une tâche — traitée de deux façons radicalement différentes.

Avec modale

Flow interrompu · Décision forcée · Friction inutile

Avec toast + Annuler

Action immédiate · Filet de sécurité discret · Flow préservé

Pourquoi ça marche ?

La modale active le Système 2 : elle interrompt le flow et demande une décision consciente et délibérée. Pour supprimer une ligne dans un tableau, c'est un effort qui ne se justifie pas.

Le toast garde l'utilisateur en Système 1 : l'action se fait sans friction, mais le filet de sécurité est là — discret et disponible pendant quelques secondes.

🧠

Système 1 vs Système 2 — Daniel Kahneman

Le Système 1 opère automatiquement, rapidement, sans effort. Le Système 2 alloue de l'attention aux activités mentales complexes. Forcer le passage au Système 2 pour une action banale, c'est sur-ingéniérer la friction.

La règle d'or : le poids de l'action

Ce pattern ne remplace pas toutes les modales. Supprimer un projet entier ou révoquer l'accès d'un membre sont des actions à fort impact — la modale reste la bonne réponse. C'est une friction voulue et utile.

Comment l'implémenter ?

La logique est simple : tu ne bloques pas. Tu laisses l'action se faire immédiatement, puis tu affiches un toast en bas de l'écran avec un bouton Annuler. L'utilisateur a 4 à 6 secondes pour revenir en arrière.

01

L'utilisateur clique sur Supprimer

Pas de modale. L'action s'exécute immédiatement dans le DOM.

02

Le toast apparaît en bas

« Tâche supprimée · Annuler » — visible 5 secondes avec barre de progression.

03

S'il clique Annuler

Tu restaures l'élément exactement où il était, sans recharger la page.

04

S'il ne fait rien

Le toast disparaît et l'action est validée côté serveur (DELETE en BDD).

💡

Conseil d'implémentation

En React, garde l'élément dans le state avec un flag isDeleted: true plutôt que de le retirer du DOM immédiatement. Si l'utilisateur annule, tu passes isDeleted à false. Si le timer expire, tu envoies la vraie requête DELETE à ton API.

En résumé

Impact local (une tâche, un tag)

Toast + Annuler

Impact global (projet, accès membre)

Modale de confirmation

"Avant de mettre une modale sur chaque suppression, pose-toi une seule question : Est-ce que cette action mérite vraiment qu'on arrête l'utilisateur ? Si la réponse est non, donne-lui le bouton Sauve-moi la vie."

← Tous les articles