Match between system and the real world.
You can take advantage of the knowledge users already have of the world around them to convey the concepts
and features of your system. By using metaphors involving concrete and familiar ideas, and by making them simple
and straightforward, the user can apply their experience and set of expectations to your system. Follow real-world conventions, making information appear in a natural and logical order. The system should speak the users' language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Well-defined, intuitive terminology in error messages, tooltips, and documentation will facilitate a better understanding of the system. This is particularly important in GNOME, where an uncommon amount of developer jargon is visible in the UI and some commonly used terms are replaced with GNOME-specific terms, e.g, Wizards are referred to as "Druids".
Consistency and Standards
Consistency in the interface allows people to transfer their knowledge and experience from one application or
environment to another. Applications can have consistency in many ways. Consistency in the visual design of an application allows the user to learn the visual language of the system more quickly and more confidently. For example,
in a system where checkboxes are implemented consistently, a user who learns what a checkbox looks like and how it functions, will not have to relearn how to make a choice the next time they encounter a checkbox. Likewise, consistency in system behavior aids users in learning and working successfully within an application. A user can take knowledge from a previous interaction with the system and apply it with success throughout the rest of the system. Users will not have to wonder whether words, symbols, situation, or actions mean the same thing. Also, follow well-established platform conventions.
Feedback
The system should always keep the user informed about what is going on, through appropriate feedback presented in reasonable time. A user should never have to guess about the status of the system. When a user performs an action provide feedback to indicate that the system has received the input and is operating on it. Feedback can be visual, audio, or both. If the system will take a long time to process the request, provide as much feedback as possible about how lengthy the operation will be. Types of helpful feedback include but are not limited to: cursor changes, animated throbbers, progress indicators, audio feedback such as a beep, and error messages. Error messages should use simple language, clearly state the problem, and provide solutions or tell the user how to get out of the current situation if possible.
Aesthetic and minimalist design
Dialogs should not contain information which is irrelevant or rarely needed. Every extra unit of information in a window that is unnecessary or indecipherable competes with the critical information in the window, diminishing its visibility. Don't clutter the screen with too many windows, overload the user with icons, or put dozens of buttons in a dialog box. Keep gratuitous visual clutter to a minimum and ensure that the graphics that are presented are of top quality and legibility.
Accessibility
The system should always support multiple ways to accessing functionality. Ensure that all windows are keyboard accessible. Everything that is accessible with a mouse should be accessible through keyboard navigation. Items hidden
in a contextual menu should be represented somewhere else in the system that doesn't require the right mouse button.
Designing for universal access makes the system easier to use for all types of users.
Direct Manipulation
Make objects, action, and options readily visible to the user. Users should not have to remember information from one part of the dialog to another in order to complete a task. How to manipulate the system should be readily visible and intuitive at all times. The user should not have to guess what to do next.
Error Prevention
Good error messages that are information and helpful to the user are key to a usable system. But even better is a careful design that prevents the problem from occurring in the first place.
Send feedback to Sun-GNOME-HCI@sun.com