Jakob Nielsen's Principles for Interaction Design
Jakob Nielsen is considered by most the Godfather of Interaction Design and Usability. I learned about Nielsen’s principles when first starting out designing websites for interactive media like Adobe Flash. The interaction design guidelines helped me create more user friendly interfaces as well as improve search engine visibility.
Developed by usability consultant Jakob Nielsen in collaboration with Rolf Molich in 1990, this methodology has the main goal of identifying any problems associated with the design of user interfaces quickly.
They are called heuristics because they are broad rules of thumb and not specific usability guidelines.
Here are the Jakob Nielsen’s 10 general principles for interaction design:
Visibility of system status
This means that you need to make sure that the interface always tells the user what is going on, that is, all actions need instant feedback to guide you copy.
Relation between the system interface and the real world
Do not use system words, which do not make sense to the user. All system communication needs to be contextualized to the user, and be consistent with the so-called user mental model.
Freedom and control of the user
Facilitate emergency exits to the user, allowing undo or redo actions on the system to return to the previous point, for when the user is lost or in unexpected situations.
Speak the same language all the time, and never identify the same action with different icons or words. Treat similar things in the same way, making it easier to identify for the user.
Prevention of errors
In the free translation of Nielsen’s own words, Even better than a good error message is a careful design that can prevent such errors. For example, definitive actions such as deletions or requests can be accompanied by a checkbox or a confirmation message.
Recognition instead of remembrance
Avoid triggering user memory all the time, causing each action to be reviewed mentally before it is executed. Allow the interface to provide context-sensitive help, and information that can guide user actions-that is, the system dialogues with the user.
Flexibility and efficiency of use
The system needs to be easy for lay users, yet flexible enough to become agile for power users. This flexibility can be achieved with the permission of shortcut keys, for example. In the case of websites, use of masks and tabbed browsing in forms are other examples.
Aesthetics and minimalist design
Avoid texts and design talk that are more than the user needs to know. The dialogues of the system need to be simple, direct, and natural, only present at the times when they are needed.
Help users recognize, diagnose, and fix errors
The system error messages should have a clear and simple wording that, instead of intimidating the user with the error, indicate a constructive output or possible solution.
Help and documentation
Good design should avoid the need for help in using the system as much as possible. Still, a good set of documentation and help should be used to guide the user in case of doubt. It should be visible, easily accessed, and a search tool should be offered in the help.