Ross Esmond

Code, Prose, and Mathematics.

portrait of myself, Ross Esmond
Written — Last Updated

Intentional Impediments

Intentional impediments are interactive barriers placed in an application in order to make a dangerous user action more difficult to perform by accident. These impediments often add additional actions that the user must perform to commit to an actual change, sometimes with an explanation of the action being provided with a user before they do so. The quintessential example is that of a confirmation modal—a popup that both asks the user to reaffirm their intentions and explains to the user the action that the application is about to perform.

Dealing with an impediment takes extra time from the user by design, and so they are naturally a less efficient way of protecting the user from mistakes than reversibility. For this reason, impediments should only be implemented when an action is truly irreversible, like sending an email, or permanently deleting a file.

An impediment will generally prevent misclicks, where the user did not intend to perform an action at all, but will not necessarily prevent a misunderstanding, where the user did not understand the action they were performing. For this, the impediment must be combined with an explanation of the action, called Telegraphing the action. These explanations are more important with irreversible actions, as any feedback that the user will naturally attain from the action taking place will be provided too late for the user to correct their mistake. If a user attempts to delete the wrong file, for instance, they will likely notice once the wrong file disappears, but at such point will have no opportunity to correct the issue.

It should be noted that the user will often fail to read the explanation provided during confirmation, as they won’t know that they misunderstood the action, and should therefore read the dialogue. To fix this, many applications have introduced a requirement that you type a provided phrase, in order to further affirm your intent. As an example, Github prompts users to type the name of a repository before deletion, which both confirms their intent, completely elliminating misclicks, and confirms that they have not accidentally selected the wrong repository, an easy misunderstanding that could result in the user confirming the action by accident.

An impediment need not be a confirmation modal, however, as in the case of the Trash folder in many email systems. You don’t “delete” an email in Gmail; you “send it to trash.” In order to permanently delete an email, an irreversible action, you either have to wait 30 days, or travel to the trash folder, select the email, and then click “delete forever”. This impediment doesn’t require extra time investment to perform, but still helps to prevent mistaken deletion of emails.