I am supposed to evaluate a few websites to find out whether they comply with Jacob's Nielsen Heuristics... But I am having trouble understanding the heuristics. Can somebody please explain?
These are ten general principles for user interface design. They are called "heuristics" because they are more in the nature of rules of thumb than specific usability guidelines.
- Visibility of system status The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
- Match between system and the real world The system should speak the users' language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order.
- User control and freedom Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.
- Consistency and standards Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions.
- Error prevention Even better than good error messages is a careful design which prevents a problem from occurring in the first place. Either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action.
- Recognition rather than recall Minimize the user's memory load by making objects, actions, and options visible. The user should not have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate.
- Flexibility and efficiency of use Accelerators -- unseen by the novice user -- may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to tailor frequent actions.
- Aesthetic and minimalist design Dialogues should not contain information which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.
- Help users recognize, diagnose, and recover from errors Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution.
- Help and documentation Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation. Any such information should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large.
Answer
- Visibility of system status - The user should always understand what is happening right now. Where is she in the system (e.g highlight the right tab in the navigation menu)? What is the system doing (e.g loading animation when a page loads)? If there's an error - what's wrong (e.g "wrong password" message under the password field, if the user entered a wrong password)?
- Match between system and the real world - The site should use labels and terms that the target users understand (e.g on a mass-market e-commerce site, call the cameras section "Cameras" instead of "Optical photo devices").
- User control and freedom - The user should be able to easily fix mistakes or change actions. In other words, everything the user does should be reversible (e.g "undo" button in office suite apps), unless there's a very good reason not to.
- Consistency and standards - The system should use the same words for the same things (e.g don't call the user's account "profile" on some places and "user file" on others). Also, if there's a specific term everybody's using to describe an object, the system should use it as well (e.g use the term "web" instead of "net" to describe the world wide web).
- Error prevention - The system should prevent mistakes the user is prone to make (e.g on Gmail, if you wrote the word "attached" in your e-mail without attaching a file, a message pops, asking you if you meant to attach a file).
- Recognition rather than recall - The system should show the user all the info she needs to complete an action, instead of making her rely on her memory (e.g on a customer service form, if you want the user to enter a transaction ID, show her a list of her recent transactions with their IDs).
- Flexibility and efficiency of use - The system should allow expert users to perform actions more quickly (e.g shortcuts, hot-keys and macro commands).
- Aesthetic and minimalist design - The system should only use the minimum possible amount of text and other design elements to convey its message. And everything should be visually appealing as well. Apple's website is considered a good example for this.
- Help users recognize, diagnose, and recover from errors - Error messages should be easily read and understood by the users, and should tell them what to do to fix this (e.g don't write "Error 1052" and let the users search the solution themselves, but instead write "We couldn't locate you. Please turn on your phone's GPS under Settings").
- Help and documentation - Any system should be accompanied with a simple, searchable "manual" written for the user (i.e focused on what the user needs and not how the engineers developed it). I think Microsoft's support center does a good job at this.
Don't worry! I also started my UX carrear with a heuristic evaluation. You can do it!
No comments:
Post a Comment