Last updated: 9th February 1998

# Think Twice *

. . . . a user may accidentally carry out an action which has serious consequences, such as deleting a file, erasing a disc and so on.  The consequences of this may be mitigated by ALLOW UNDO (#) where this is possible.  However, in some circumstances an erroneous action may be unrecoverable.

A user will, in general, expect some protection from disastrous errors, but at the same time will wish to have fluidity in their operation of the system.

A system that does not allow the user to make any errors is likely to be highly constraining and clunky to operate.  Dangerous actions may need to be taken by the user.  For most office applications the occurrence of truly irreversible actions should not be great — but in some systems, particularly those controlling equipment (e.g., process control, autopilots, etc.), they are inevitable.

There are three categories of action depending on their reversibility;

There are also categories of systems, based on the occurrence of each type of action; The amount of care taken by the user will be influenced by the category of system (above) and the potential for problems or disaster that the system has: so users of a system in which all actions are easily reversible many not be particularly careful, whilst the user of a system in which no actions are reversible will know that they have to exercise care at every step.  The real problems lie between these extremes.  Where most actions are reversible, a false sense of security may build up.  These categories of actions and systems make for 12 possible specific considerations for error prevention at the level of selecting an action.

Overlaid on this schema is the need to consider the consequences of the action being taken erroneously.  This may vary between minor inconvenience while the action is undone, to damage to capital assets, to loss of life.  Additionally, the frequency with which the action is carried out should be taken into account.

There are a number of levels of protection that may be applied to actions;

The table below suggests the types of protection that should be considered for each combination of action and system.
 
Easily Reversible Reversible at Cost Irreversible
All Reversible Unprotected 
Inconvenience Damage
Frequent Warn Confirm
Infrequent Confirm Authorize
 
Most Reversible Unprotected 
Inconvenience Damage
Frequent Warn Confirm
Infrequent Confirm Authorize
 
Inconvenience Damage
Frequent Confirm Authorize
Infrequent Authorize Authorize
 
Many Reversible Unprotected
Inconvenience Damage
Frequent Warn Confirm
Infrequent Confirm Authorize
 
Inconvenience Damage
Frequent Confirm Authorize
Infrequent Authorize Authorize
 
Few Reversible Unprotected 
Inconvenience Damage
Frequent Unprotected Warn
Infrequent Confirm Confirm
 
Inconvenience Damage
Frequent Unprotected Confirm
Infrequent Confirm Authorize
 
None Reversible
Inconvenience Damage
Frequent Unprotected Automatic override
Infrequent Unprotected Automatic override
 
 
The immediacy of perception that an erroneous action has been taken should influence error protection.  I.e., sequentially - how many subsequent actions may be taken before the error of an earlier action becomes apparent, or temporally - how long before the error becomes apparent.

Therefore:

For each action that a user may take, having regard for; the reversibility of the action, the proportion of reversible actions that the system supports, the frequency with which the action is taken, the degree of damage that may be caused, and the immediacy of feedback, consider whether a warning, confirmation, authorization or automatic override may be appropriate.


Users must be able to see what effect their actions are having on the system, so give INTERACTION FEEDBACK (#).  Where error protection at the action level is required, the following patterns specify the different types of protection; GIVE A WARNING (#), GET CONFIRMATION (#), GET AUTHORIZATION (#), AUTOMATIC OVERRIDE(#) . . . .


Part of a Usability Pattern Collection maintained by The Usability Group at the University of Brighton, UK.

CGI