In my previous post, The ribbon interface: sacrificing usability for discoverability, I explain that the ribbon interface makes it easier for beginners to wander through an application’s features to discover what tools are available but that it makes it harder for more experienced users to find the tools they need when they know what they want to do. A well-designed application arranges tools so they are easiest to use for the most common purposes. That’s why you don’t put your kitchen in the basement and the pots and pans in the attic.
An application should also not be cluttered with extraneous information that will seldom be used and that may distract the user. For example, consider the new customer form shown above. Practically every user should know what these fields mean. An extreme novice may not know what should go in the second address field (extra address information such as an apartment or box number) but otherwise they’re self-explanatory. You could add a lot of extra information to the form to spell out what the fields mean, but that would be unnecessary clutter for everyone except Homer Simpson.
A better solution is to add tooltips to the fields. A user who is really confused can hover the mouse over a field to make the tooltip appear and get extra information. Note that the tooltip must be meaningful and provide real information about field and should not simply restate the field’s name. The tooltip “The customer’s phone number” would be useless here. The tooltip “The phone number for contacting the customer with questions about orders or the customer’s account” would be much more useful. Someone who wants to see the tooltip information is already confused and restating the obvious is frustrating.
The tooltip information is normally hidden so it doesn’t take up space on the form. That means you can be a little verbose, particularly since only beginning users will ever use the tooltips. An experienced user won’t need so much verbosity but also won’t bother to display the tooltips.
The ErrorProvider control provides another great way to provide extra information when needed without cluttering up the form. When you set an error on a control, the ErrorProvider displays the red error icon to the right of the control. If you hover the mouse over the icon, a tooltip appears showing the error’s description. Again the information is available if needed but hidden when it is not. An advanced user may be able to see that 123456 is an invalid ZIP code format simply by noticing the error icon and looking in the field. A user who cannot see what the problem is can hover over the error icon to get the extra hint.
As is the case with a field tooltip, the error information must give the user extra information. Just saying “The ZIP code has an invalid format” is much less useful than telling the user exactly what the problem is or what format is required.
As a final note, keep in mind how experienced your users will be. If you’re writing a desktop application that someone will use many times, users will only be beginners for a little while and they will be experienced users most of the time. In contrast, if you’re building a web page where users will sign up for an account only once and will probably never sign up again, those users will almost always be beginners. In that case you may want to include a little extra information right on the form to help the user. For example, a prompt might say “Password (letters and numbers only)” instead of just “Password.”
In summary, give the user what they need to do their job and nothing more. Make extra information available in a non-obtrusive way to help beginners and for those times when even experienced users can’t remember what to do next.