1. Consistency
certain aspects of an interface should behave in consistent ways at all times for all screens
terminology should be consistent between screens
icons should be consistent between screens
colors should be consistent between screens of similar function
2. Simplicity
break complex tasks into simpler tasks
break long sequences into separate steps
keep tasks easy by using icons, words etc.
use icons/objects that are familiar to the user
3. Human Memory Limitations (Cognitive Overload)
organize information into a small number of "chunks"
try to create short linear sequences of tasks
don't flash important information onto the screen for brief time periods
organize data fields to match user expectations, or to organize user input (e.g. autoformatting phone numbers)
provide cues/navigation aids for the user to know where they are in the software or at what stage they are in an operation
provide reminders, or warnings as appropriate
provide ongoing feedback on what is and/or just has happened (report of the state of the system)
let users recognize rather than recall information
minimize working memory loads by limiting the length of sequences and quantity of information
4. Cognitive Directness
minimize mental transformations of information (e.g. using 'control+shift+esc+8' to indent a paragraph)
use meaningful icons/letters
use appropriate visual cues, such as direction arrows
use 'real-world' metaphors whenever possible (e.g. desktop metaphor, folder metaphor, trash can metaphor etc.)
5. Feedback
provide informative feedback at the appropriate points
provide appropriate articulatory feedback - feedback that confirms the physical operation you just did (e.g. typed 'help' and 'help' appears on the screen). This includes all forms of feedback, such as auditory feedback (e.g. system beeps, mouse click, key clicks etc.)
provide appropriate semantic feedback - feedback that confirms the intention of an action (e.g. highlighting an item being chosen from a list)
provide appropriate status indicators to show the user the progress with a lengthy operation (e.g. the copy bar when copying files, an hour glass icon when a process is being executed, etc.)
6. System messages
provide user-centered wording in messages (e.g. "there was a problem in copying the file to your disk" rather than "execution error 159")
avoid ambiguous messages (e.g. hit 'any' key to continue - there is no 'any' key and there's no need to hit a key, reword to say 'press the return key to continue')
avoid using threatening or alarming messages (e.g. fatal error, run aborted, kill job, catastrophic error)
use specific, constructive words in error messages (e.g. avoid general messages such as 'invalid entry' and use specifics such as 'please enter your name')
make the system 'take the blame' for errors (e.g. "illegal command" versus "unrecognized command")
7. Modality
use modes cautiously - a mode is an interface state where what the user does has different actions than in other states (e.g. changing the shape of the cursor can indicate whether the user is in an editing mode or a browsing mode)
minimize preemptive modes, especially irreversible preemptive modes - a preemptive mode is one where the user must complete one task before proceeding to the next. In a preemptive mode other software functions are inaccessible (e.g. file save dialog boxes)
make user actions easily reversible - use 'undo' commands, but use these sparingly
allow escape routes from operations
8. Attention
use attention grabbing techniques cautiously (e.g. avoid overusing 'blinks' on web pages, flashing messages, bold colors etc.)
don't use more than 4 different font sizes per screen
use serif or sans serif fonts appropriately as the visual task situation demands
don't use all uppercase letters - use and uppercase/lowercase mix
don't overuse audio or video
use colors appropriately and make use of expectations (e.g. don't have an OK button colored red! use green for OK, yellow for 'caution, and red for 'danger' or 'stop')
don't use more than 4 different colors on a screen
don't use blue for text (hard to read), blue is a good background color
don't put red text on a blue background
use high contrast color combinations
use colors consistently
use only 2 levels of intensity on a single screen
Use underlining, bold, inverse video or other markers sparingly
on text screens don't use more than 3 fonts on a single screen
9. Display issues
maintain display inertia - make sure the screen changes little from one screen to the next within a functional task situation
organize screen complexity
eliminate unnecessary information
use concise, unambiguous wording for instructions and messages
use easy to recognize icons
use a balanced screen layout - don't put too much information at the top of the screen - try to balance information in each screen quadrant
use plenty of 'white space' around text blocks - use at least 50% white space for text screens
group information logically
structure the information rather than just presenting a narrative format (comprehension can be 40% faster for a structured format)
10. Individual differences
accommodate individual differences in user experience (from the novice to the computer literate)
accommodate user preferences by allowing some degree of customization of screen layout, appearance, icons, volume level, etc.
allow alternative forms for commands (e.g. key combinations through menu selections)