Lauber's Law: The best error message is the one that you don't have to show!

One of the easiest ways to improve the usability (and perceived usability) of a web/application is to improve the text that appears on the screen specifically around labels, embedded assistance and error messages.

In many web/applications, there is a false assumption that all of the users are already experts. In many situations, the placement of a simple bit of embedded assistance will help the novice and intermediate users know exactly what to do.

Have you ever, for example, tried to sign up for something where you enter a new password, only to get an error message that claims that your password is invalid? The error message explains that the password must contain a number, or a special symbol $%^#&~!

The best error message is the one you do not have to display!

Do your best to provide the labels and/or other information to your end-users so that they can get things right the first time.

Work with a technical writer and usability engineers and the text will be clear and actionable.

For most web applications, the business analysts and developers think about the application “happy path,” --that is the user journey where they know exactly what they want to enter for each item, and they know exactly which button to press, make zero typos, etc. to get them through to workflow completion.

Once on a project when talking about error messages, one developer said, “Let’s just deal with the errors on a page-by-page basis as they come up.” How’s that for a strategy?

Users are going to make errors, the system may make errors, and we have to anticipate them. Accept that fact and the better your error messages will become, and the quicker and easier your application will be to use.

Thinking about errors in advance and you can develop a common and helpful error message strategy. Anticipate the types of errors that may display. Create both visual and textual templates for each error type.

Informational messages should display and be worded differently than warnings, errors and critical errors.

Make sure that the error messages don’t blame the user, but provides useful advice on what caused the error and how to solve it. Your end-users will be much more happy and productive.

Avoid errors by providing embedded assistance on more complex controls.

Deep within many of the systems we have evaluated lies a complex, and sometimes non-standard UI control feature that is critical to performing an important task. Clinical Information Reconciliations without a data standard are hard to work with.

When using a complex and/or non-standard UI it is very important to provide a small amount of embedded assistance along with the control.

A short sentence or phrase telling the user to “Select items from List A to add to List B” (on a "shuttle widget" or "Slush Bucket") goes a very long way to helping them understand what they need to so in order to solve the task at hand. Notice that we said a “small amount” of text.

Putting too much text will get in the way of the more experienced user of the application.

Disable submit functions until all required conditions have been met.

One of the most common errors is associated with a required field not being filled out. Why not disable the "Submit" button on a form until all of the required fields have been entered?

Remove invalid items from selection lists

In a recent project, the developers asked us to help them write an error message for when the end user selected an item from a drop-down list that would be not allowed given the current state of the system. We told them

The best error message is the one that you don't have to show

and instead remove the item from the possible selections. No error message required.

If you want to see some interesting error messages you should check out this "Error Message Hall of Shame", like this example of an unnecessary error message: