Summary:
Application usability is enhanced when users know how to operate the UI and it guides them through the workflow. Violating common guidelines prevents both.
- Conduct field studies and task analysis before deciding what your app should do.
- Paper prototype your initial ideas before doing any detailed design — and definitely before wasting resources implementing something you'd have to change as soon as you get user feedback.
- Design iteratively, conducting many rounds of quick user testing as you refine your features.
1. Non-Standard GUI Controls
Basic GUI widgets — command links and buttons, radio buttons and checkboxes, scrollbars, close boxes, and so on — are the lexical units that form dialog design's vocabulary. If you change the appearance or behavior of these units, it's like suddenly injecting foreign words into a natural-language communication. Det vil gøre læserne forvirrede (or, to revert to English: Doing so will confuse readers).1.a. Looking Like a GUI Control Without Being One
The opposite problem — having something that looks like a GUI control when it isn't one — can reduce usability even more. We often see text and headlines that look like links (by being colored or underlined, for example) but aren't clickable. When users click these look-alikes and nothing happens, they think the site is broken. (So please comply with guidelines for visualizing links.)2. Inconsistency
Non-standard GUI controls are a special case of the general problem of inconsistent design.3. No Perceived Affordance
"Affordance" means what you can do to an object. For example, a checkbox affords turning on and off, and a slider affords moving up or down. "Perceived affordances" are actions you understand just by looking at the object, before you start using it (or feeling it, if it's a physical device rather than an on-screen UI element). All of this is discussed in Don Norman's book The Design of Everyday Things.- Users say, "What do I do here?"
- Users don't go near a feature that would help them.
- A profusion of screen text tries to overcome these two problems. (Even worse are verbose, multi-stage instructions that disappear after you perform the first of several actions.)
3.a. Tiny Click Targets
An associated problem here is click targets that are so small that users miss and click outside the active area. Even if they originally perceived the associated affordance correctly, users often change their mind and start believing that something isn't actionable because they think they clicked it and nothing happened.4. No Feedback
One of the most basic guidelines for improving a dialog's usability is to provide feedback:- Show users the system's current state.
- Tell users how their commands have been interpreted.
- Tell users what's happening.
4.a. Out to Lunch Without a Progress Indicator
A variant on lack of feedback is when a system fails to notify users that it's taking a long time to complete an action. Users often think that the application is broken, or they start clicking on new actions.- If a command takes more than 1 second, show the "busy" cursor. This tells users to hold their horses and not click on anything else until the normal cursor returns.
- If a command takes more than 10 seconds, put up an explicit progress bar, preferably as a percent-done indicator (unless you truly can't predict how much work is left until the operation is done).
5. Bad Error Messages
Error messages are a special form of feedback: they tell users that something has gone wrong. We've known the guidelines for error messages for almost 30 years, and yet many applications still violate them.6. Asking for the Same Info Twice
Users shouldn't have to enter the same information more than once. After all, computers are pretty good at remembering data. The only reason users have to repeat themselves is because programmers get lazy and don't transfer the answers from one part of the app to another.7. No Default Values
Defaults help users in many ways. Most importantly, defaults can:- speed up the interaction by freeing users from having to specify a value if the default is acceptable;
- teach, by example, the type of answer that is appropriate for the question; and
- direct novice users toward a safe or common outcome, by letting them accept the default if they don't know what else to do.
Dialog to specify your shirt's collar on [url]www.listerouge-paris.com[/url] (3 of 15 styles shown).
8. Dumping Users into the App
Most Web-based applications are ephemeral applications that users encounter as a by-product of their surfing. Even if users deliberately seek out a new app, they often approach it without a conceptual model of how it works. People don't know the workflow or the steps, they don't know the expected outcome, and they don't know the basic concepts that they'll be manipulating.9. Not Indicating How Info Will Be Used
The worst instance of forcing users through a workflow without making the outcome clear is worth singling out as a separate mistake: Asking users to enter information without telling them what you'll use it for.10. System-Centric Features
Too many applications expose their dirty laundry, offering features that reflect the system's internal view of the data rather than users' understanding of the problem space.- Our test user didn't have this distinction between new and old money; she simply wanted her retirement savings allocated according to her revised investment strategy.
- Even users who understand the distinction between new and old money might prefer to treat their retirement savings as a single unit rather than make separate decisions (and issue separate commands) for the new and old money.