A couple of times I archived some of my emails accidentally ( touch screen you know ) . They don't usually ask for confirmation while archiving messages or emails. But they do while deleting . So in what situations is it appropriate to ask for user confirmation ?
User confirmation is almost always a bad solution. It breaks the user's flow and there's a real risk of habitually clicking yes on the confirmation. It basically makes 99% of the actions require more attention to catch the 1% that go wrong. And it works poorly.
This article explains it better than I can.
Of course, if there's no undo option, a confirmation is often the only option, but even then there are better or additional ways of making the user aware of the risk:
- Separate the dangerous actions from the safe ones by space and color. Make sure the user is already aware of the risk before initiating the action and make sure to limit the risk of initiating the action accidentally
- Queue the action if immediate feedback is not required (Gmail can do this when sending an email). Give the user some time to realize a possible mistake. This basically gives you a temporary undo.
- Show a preview in the confirmation dialog. If the confirmation changes appearance in a meaningful way, it can help to break the user out of the habitual flow. A kind of "oh wait, I don't want that!" response.
Confirmation is warranted when
User initiated action will have significant consequence which cannot be undone
The user initiated action itself may not be risky, but there is a severe side effect of the action that user needs to be aware of
Note: But, having confirmation in place will not suffice. User should be clearly conveyed the consequences of the action while soliciting the confirmation. This will make the process of user confirmation a success.
Confirmation From user is required in some conditions which are given below :-
When the user activity looses some data or changes in some structure of information heavily.
When user enters or leaves a secured environment.
When accessing hardware or interacting with other programs or structure.
When user possessing any payment method successful or failure.
Other than above main reasons there are so many things which may depend upon the system or environment in which we are working , have such an requirement or not.