Allowing Interruptions
Users sometimes need to stop a command— for example, because it is taking too long. Your application should let users stop commands in progress, even if stopping a command cannot undo or "roll back" all the command's effects.
Guidelines
- Place a Esc, near the progress animation for the interruptable command. or button, which can also be activated by pressing
- Label the button if the whole operation can be cleanly abandoned with no side effects, leaving the system in the state it was in prior to the operation beginning. Terminate the command immediately when the user presses this button.
- Label the button if the command can be interrupted, but its effects up to that point cannot (or should not) be reversed. When the user presses this button, open an alert box that warns of the potential side effects of stopping the command. The alert box should have only two buttons: one for continuing the command's processing, and one for immediately terminating it.
Alternatively, you can place the
or button near the control with which the user issued the command that needs to be stopped. Place the button here only if:- There is no progress animation for the command, or
- The progress animation is in a window's status area or in another location that lacks space for a or button.
In the alert box that appears after pressing a
button, ensure the message and button labels in the alert box are specific and precise. Ambiguous button labels can cause users to terminate or continue a command unintentionally. For example, use:Continue deleting files?
rather than
Operation interrupted, continue?
since in the latter example, it is not clear whether pressing
would continue the operation or continue the interruption (i.e. cancel the operation).