Guidelines for Effective Alerts
This article expands on the Macintosh Human Interface Guidelines for making attractive, helpful alerts (and dialogs) with a standard appearance and behavior. Standardization is important, because the more familiar an alert looks to users, the more easily they can concentrate on the message. Using the Finder as a source of good alerts, we provide examples of different alert types
and discuss how to make alerts user-friendly.
Alerts are an in-your-face way of getting the user's attention. It's hard for a user to ignore alerts because they block all other input to the application until the user dismisses them. These little windows are powerful stuff. When used correctly, alerts are a helpful way to inform the user of a serious condition that requires immediate attention. When used incorrectly or capriciously, alerts are annoying and disruptive; since they must constantly be swatted out of the way, their content is often ignored.
This article discusses when to use alerts, describes the different types of alerts, and gives tips for designing alert boxes. It elaborates and expands on alert guidelines in the Macintosh Human Interface Guidelines. At the end of the article, you're encouraged to try your hand at evaluating some real-life alerts.
Though not implemented as such in the system, alert boxes are essentially a type of modal dialog box. This article focuses on alerts, but the guidelines can be applied to other dialog boxes as well. We specifically cover status dialogs here because there are guidelines that are unique to that type of dialog.
For information on implementing alerts and dialogs in your application, see
Inside Macintosh: Macintosh Toolbox Essentials.*
ALERTS IN GENERAL
Alerts provide information about error conditions and warn users about potentially hazardous situations. They should be used only when the user's participation is essential; in all other cases, try using another mechanism to get your point across. For example, consider an error or output log if the
messages are something that the user may want to save.
The Macintosh Human Interface Guidelines haven't caught up yet with the main recommendation in this article: that alerts be movable and application modal. The current interface guidelines and system software don't allow alerts to be movable, but this may change in future versions of the Mac OS. Until then, you can implement your alerts as movable modal dialogs.
Making alerts movable is helpful in case an alert is covering information on the screen that the user would like to see before responding to the alert. Another advantage to movable alerts is that they have a title, which gives the user a context for the error.
Application modal means the alert is modal in the current application only: the user can't interact with this application while the alert is on the screen, but can switch to another application. This is especially useful when the user needs to get information from another application in order to respond to the alert. (System modal, on the other hand, means the user can't interact with the system at all except within the alert box.)
TYPES OF ALERTS
Alerts come in three varieties, each of which is geared to a different situation. This section provides a few examples of each type, and also takes a look at status dialogs.
NOW HEAR THIS: NOTE ALERTS
A note alert simply conveys information, informing the user about a situation that has no drastic effects and requires no further action. For example, if a user selects a word and executes a spell check, an alert saying that the word is spelled correctly would be a note alert. Rather than provide a smorgasbord
of options, a note alert contains a single button to dismiss the alert.
Don't use an alert to signify completion of a task; use alerts only for situations that require the user to acknowledge what has occurred. For example, the following note alerts are inappropriate and get in the user's way:
- The Trash has finished emptying.
- The 3,432 files you selected have been copied.
WATCH OUT! CAUTION ALERTS
Caution alerts warn users of potentially dangerous or unexpected situations. You should use them, for example, to be sure the user wants to proceed with a task that might have undesirable results. In this case the alert normally contains only two buttons -- one that cancels the operation and one that confirms it. Here are two caution alert messages:
- An item named "READ ME" already exists in this location. Do you want to replace it with the one you're moving?
- The Trash contains 1 item. It uses 102K of disk space. Are you sure you want to permanently remove it?
Don't use alerts to confirm operations that
would cause only a minor inconvenience if performed by mistake. Here are two examples of unnecessary caution alerts:
- Do you really want to eject the disk "Installer"?
- Do you really want to duplicate the selected item?
are also used when an unexpected situation occurs and the user needs to decide what to do next. The following examples contain only two buttons, for canceling or confirming the operation, but such an alert may present several choices if appropriate.
- The document "Calendar" is locked, so you will not be able to save any changes. Do you want to open it anyway?
- The item "Calendar" could not be deleted, because it contains items that are in use. Do you want to continue?
Before deciding to use this type
of alert, double-check to see if it's really needed; superfluous alerts are a bad idea because users will get in the habit of dismissing alerts and possibly let an important one go by. It's better to have a user make choices with commands instead of alerts. For example, the Finder has separate Shut Down and Restart commands (in its Special menu) instead of having only a Shut Down command with an alert asking "Restart after shutting down?"
HOLD IT: STOP ALERTS
Use a stop alert when calling attention to a serious problem that prevents an action from being completed. They typically have only one button, to dismiss the alert. Here are two good examples of stop alerts:
- You cannot copy "Calendar" onto the shared disk "Zippy" because the disk is locked.
- The alias "Calendar" could not be opened, because the original item could not be found.
It's especially important in stop alerts to give enough
detail about the problem to help the user prevent it in the future. The following alert message doesn't convey much useful information:
- You cannot rename the item "Zowie".
This alternative is more helpful:
- The name "Zowie" is already taken. Please use a different name.
Similarly, if the chosen name is too long, it's more helpful for the
message to state the maximum number of characters a filename can have.
EVERYTHING IS OK: STATUS DIALOGS
Status dialogs inform the user when an application is busy and the user cannot continue working in the application until the operation finishes. In the Finder, these operations include copying, moving, and deleting files. Status dialogs should be displayed whenever the application is busy for more than about five seconds (unless posting and updating the dialog would take most of that time). During this time the application should also change the pointer to
the standard wristwatch.A status dialog differs from an alert in that the
user doesn't need to explicitly dismiss the dialog; it goes away on its own once the task has completed. The dialog should contain a message that describes the status of the operation and a progress indicator to show how much of the job has been completed. A status dialog may change messages depending on the stage of operation. Figure 1 shows a status dialog at two stages of a copy
Figure 1. Status dialog during a copy operation
A sense of completion is important, so the application should be sure not to remove the status dialog until the progress indicator shows that the operation is done (such as by completely filling up the status bar in the example in Figure 1).
ICONS IN ALERT BOXES
Alert boxes always contain an icon that identifies the type of alert, as shown in Figure 2. (Status dialogs contain no icon.) If you implement your alerts as movable modal dialogs, there's no Toolbox infrastructure set up for getting the
correct icon automatically, so you'll need to remember which one to use.
Figure 2. Icons for specific alert types
A note on OpenDoc and alert icons: OpenDoc part editors aren't as visible to
the user as today's applications, but at times it may be important for users to
make the connection between a running editor and its stored representation on
disk. One such time is when the editor is reporting an error about itself, such
as an incompatible version; for these errors, the alert should contain the icon
of the editor instead of a note, caution, or stop icon.
WRITING ALERT MESSAGES
The alert message is the most important component of an alert. You want users to read and respond to your alerts easily and then continue smoothly with their work. This section gives tips on structure, content, tone, and other important factors in writing effective alert messages.
SITUATION, REASON, SOLUTION
Every alert message should start by describing the situation that led to the alert, letting the user know what's wrong. This is usually followed by the reason the problem occurred and a proposed solution to the problem. When describing the situation that caused an alert, be as specific as possible,
to help the user understand the problem.
Giving the reason the alert occurred is especially helpful when the application can't do something because it's dependent on some other operation that it can't control. For example, compare these messages:
- The alias "Warne" could not be opened.
- The alias "Warne" could not be opened because the shared disk "Beatrix" could not be found on the network.
The first message doesn't give the user
any information about why the problem occurred. Is the application that created the document missing? Is the file corrupted? The second message is much better
because it tells the user why the operation could not be completed.
Whenever possible, alerts should indicate a solution for the user. Users become extremely frustrated when an alert says something is wrong but doesn't offer a remedy to the problem. Even worse is an alert that tells the user something is wrong when the application could have fixed the problem itself. The following would be a bad message because the Finder is capable of quitting all the applications on its own:
- You must quit all running applications before shutting down your Macintosh.
In cases where the application can perform the action itself,
consider whether doing so may surprise the user; if so, presenting a caution alert may be more appropriate. For example, if the user attempts to shut down a Macintosh while other users have it mounted as a server, the Finder could just disconnect the other users automatically; however, in this case it's more helpful to present an alert confirming the shutdown.
Be sure your alert messages are consistent in tone, content, and structure with each other as well as with other messages your software presents to the user. Are your application's alerts consistent with its status messages, for example? Do all your alerts refer to the application in a consistent manner? Users pick up on small inconsistencies, and even subtle differences can cause confusion.
Alert messages should be brief and to the point, to keep the user's attention. If you need to give a lot of information, consider writing it to an error log or providing a brief message in the alert along with a button to get to the
application's help system.
If you absolutely have to put a long message in an alert, keep in mind that many people have PowerBook computers or "classic" Macintosh computers with small screens. A good rule of thumb is that an alert message must consist of no more than 150 characters to fit on a small screen. Also note that translation from English to other languages tends to expand the length of the message. Even translations into languages that use Roman characters can cause the message length to double or triple in size.
Use a positive and constructive tone. After encountering a problem and being presented with an alert, the last thing the user wants is an overly negative response from the application. Avoid assigning blame or offending users. Don't accuse them of doing something wrong or stupid. Instead, give the reason an action cannot be performed, or offer to perform the action. Which message would you rather see?
- You forgot to save your changes!
- Save changes to access privileges for "Zippy"?
PHRASING AND TERMINOLOGY
Don't use double negatives, such as "No items are not used." They're difficult for users to understand and just bad English. Double negatives can be especially confusing when combined with a Cancel button; the user rarely gets
the expected outcome.
Keep the situation and action in the present. This is clearer and usually requires fewer words. For example, compare these two messages:
- An item named "READ ME" already existed in this location. Did you want to replace it with the one you moved?
- An item named "READ ME" already exists in this location. Do you want to replace it with the one you're moving?
If there's an implied subject of a
message, it should be the application. For example, if the user tries to open a document that the application can't open (as when it runs out of memory), the alert message might begin "Cannot open document." Messages in which the user or some other noun could be the implied subject are more likely to be confusing --
for example, "Have exceeded allotted network time. Try again later."
Use terms that are familiar to the user. This often means avoiding computer jargon at all costs. Remember, terms that seem common to you may be unfamiliar to many Macintosh users. It depends on what type of user will be working with your application. For example, the expression establishing a connection may be clearer than handshaking to many users.
Use invalid instead of illegal. The user hasn't broken the law, but has simply given the application some information that it can't handle.
PUNCTUATION AND CAPITALIZATION
Alert messages should always be complete sentences, beginning with a capital letter and ending with a period or question mark. The closing punctuation gives a sense of completion and lets the user know that the message hasn't been
Don't use colons when requesting that the user supply information; instead, use a period. This makes your alerts consistent with other dialogs and user interface elements in the system software.
Use an apostrophe ('), typed with Option-Shift-], rather than a single straight quotation mark ('), and use curly (" ") rather than straight (") double quotation marks -- that is, Option-[ and Option-Shift-[, rather than Shift-'.
Use double quotation marks around any names in the message that are variable, such as names of documents, folders, and search strings. This lets the user know exactly what part of the message is the name. Remember that Macintosh filenames can contain spaces, which can make things really confusing without the quotes. Commas, periods, and other punctuation characters should be placed outside the quotation marks:
- You cannot duplicate the shared disk "Warne", because the disk is locked.
Never use an exclamation point or all uppercase letters. It makes
users feel as if they're being shouted at, as in this example:
- Revert to the saved version of "Map"? WARNING! All changes will be lost!
In status dialogs, use an ellipsis (Option-semicolon, a character that looks like three periods) to indicate that an intermediate process is under way:
- Preparing to copy...
- Scanning "My Document"...
For describing the status of a task, the
terms canceled, failed, in progress, and complete are good choices. Avoid computer jargon such as aborted, killed, died, or ack'ed.
Every movable alert should have an informative title, to provide a context for the alert. Users may be working on several tasks at the same time and may not remember what action generated the alert. A well-chosen title helps the user figure out not only which application caused the alert to appear, but also
The title of the alert should be the same as, or closely related to, the command or action that generated the alert. (If the command has an ellipsis in it, don't include the ellipsis in the alert title.) For example, when a user copies or duplicates an item in the Finder, the associated status dialog has the title "Copy"; when the user chooses Empty Trash, the title of the Finder's status dialog is "Trash."
Like menu commands, alert titles are capitalized like book titles. Capitalize every word except articles (a, an, the), coordinating conjunctions (for example, and, or), and prepositions of three or fewer characters (except when the preposition is part of a verb phrase, as in "Turn Off").
Alerts contain buttons that dismiss the alert or allow the user to make choices
regarding how to proceed. The standard button height is 20 pixels.
Try to limit the number of buttons that appear in an alert. The more buttons, the more difficult it is for the user to decide which is the "right" option. In addition, screen size often limits the number of buttons. As a general rule, about three buttons of ten or fewer characters will fit on a small screen. Button names should be simple, concise, and unambiguous.
Capitalize button names like book titles (for example, Connect to Server). Never capitalize all letters in the name (except for the OK button, which should always be named OK and never ok, Ok, Okay, okay, OKAY, or any other strange variation).
On the Macintosh, ellipses are used after command names when the user needs to provide additional information to complete the command. An ellipsis after a button name indicates that the button leads to other dialogs, a rare but occasional occurrence.
THE ACTION BUTTON
Alert boxes that provide the user with a choice should be worded as a short question to which there is an unambiguous, affirmative response. The button for
this affirmative response is called the action button.
Whenever possible, label the action button with the action that it performs. Button names such as Save, Quit, or Erase Disk allow experienced users to click the correct button without reading the text of a familiar dialog. These labels are often clearer than words like OK or Yes. Phrase the question to match the action that the user is trying to perform.
If the action can't be condensed conveniently into a word or two, use OK. Also use OK when the alert is simply giving the user information without providing any choices.
THE CANCEL BUTTON
Whenever possible, caution alerts should provide a button that allows the user to back out of the operation that caused the alert. This button should be labeled "Cancel" so that users can easily identify the safe escape hatch. Cancel means "dismiss this operation with no side effects"; it doesn't mean "done with the alert," "stop no matter what," or anything else. Pressing Command-period or the Escape key should have the same effect as clicking the
Don't label the button Cancel when it's impossible to return to the state that existed before an operation began; instead, use Stop. Stop halts the operation before its normal completion, accepting the possible side effects. Stop may leave the results of partially completed tasks around, but Cancel never does. For example, a Cancel button would be inappropriate for a copy operation in which some of the items may have already been copied. Figure 1 (earlier in this article) illustrates using Stop in a status dialog for a copy operation.
THE DEFAULT BUTTON
The default button represents the action performed when the user presses the Return or Enter key. This button should perform the most likely action (if that can be determined). In most cases, this means completing the action that the user started, so the default button is usually the same as the action button.
The default button's distinctive bold outline appears automatically around the
default button in alerts, but remember that in dialog boxes you need to outline
the button yourself.*
If the most likely action is dangerous (for example, it erases the hard disk), the default should be a safe button, typically the Cancel button. If none of the choices are dangerous and there isn't a likely choice, there should be no default button; by requiring users to select a button explicitly, you protect them from accidentally damaging their work by pressing the Return or Enter key out of habit.
Now, for a bit of fun. I've been collecting some alerts that need improvement (Figures 3, 4, and 5). Based on the information in this article, can you find the flaws in each, and suggest improvements? The main problems with the alert in Figure 3 are as follows:
- Its title isn't descriptive (and is overly alarming).
- The implied subject of the message is the user instead of the application.
- The word "caution" is in all uppercase letters, and the punctuation includes an exclamation point.
Figure 3. Poorly designed "danger alert"
Also, the buttons are slightly shorter than the standard height. Since the audience in this case is programmers, the words kernel and runtime are acceptable, though the use of runtime in this context is colloquial and can be more clearly stated with a simpler word. To improve this alert, you could change the title to "Download" and the message to "The code you are downloading redefines one or more kernel definitions. Continuing the download may make the application unusable." Also, the buttons should be made 20 pixels high.
The alert in Figure 4 isn't movable, so it has no title and can't be repositioned. The message, with its "If . . ." clause, isn't direct and clear enough. Also, it's not clear which button provides a safe escape mechanism. Finally, the "Work offline" button title has incorrect capitalization. To improve the alert, you could make it movable and give it the title "Connect to Server." The message should be "The public calendar server selected in the Chooser is different from the one you used last. Connecting to the new server will cause all public event information in your document to be lost." You could add a Quit button as an escape mechanism, giving the alert three buttons -- Quit, Connect, and Work Offline (the default).
Figure 4. Poorly designed "server alert"
The alert in Figure 5 doesn't contain any title, icon, or buttons. Because there are no buttons, it's not clear how to get rid of the message without reading to the end of it. Also, its message should be stated in the present (for example, is named). But the biggest problem is that this is a nuisance alert: the success of the capture could have been confirmed in an earlier step, when the user was asked to pick the filename. The solution is to get rid of the alert altogether.
Figure 5. Poorly designed "finished alert"
Spending some time thinking about the design of your application's alerts makes sense because it results in a better product. If you follow the simple guidelines presented in this article, your alerts should be in really good shape. Your users will have an easier time recovering from errors, adding to
their positive experience with your software.
- Electronic Guide to Human Interface Design (Addison-Wesley, 1994). This CD (available from Apple Developer Catalog) combines the Macintosh Human Interface Guidelines and its companion CD, Making It Macintosh.
- Macintosh Human Interface Guidelines, (Addison-Wesley, 1993). Available separately from Apple Developer Catalog in book form.
- Inside Macintosh: Macintosh Toolbox Essentials (Addison-Wesley, 1992), Chapter 6, "Dialog Manager."