Usability heuristics
Heuristics of Understanding
Consistency
- A system is easier to learn if similar concepts are expressed in the same way
- consistency makes it easy to transfer prior knowledge to the current situation
- Types of consistency
- aesthetic / functional
- internal external
Familiar language and metaphors
- Speak the language of users
- user words, phrases and concepts familiar to the user, rather than system-oriented terms
- adapt the language to the target groups: children, elderly people, different cultures
What is a metaphor in UI design?
- a word or phrase designating an object used in place of another to suggest a resemblance
- the use in an interface of familiar concepts to present more abstract system concepts
Simple, aesthetic and functional design
- signal to noise ratio:
- not too crowded
- good use of color themes.
- remember that "fonts have moods"
- call the laws of Gestalt for help!
Heuristics of Action
Freedom and Control
- favor exploration before commitment
- on an e-commerce site, for example, be able to explore without having to enter a lot of information
- allow undoing different actions
- the user must feel in control
Flexibility and efficiency of use
- adaptability to domain and/or software expertise
- shortcuts for experts, but complete menus for novices
- several ways to go somewhere
- multiple entry points for multiple users
- adaptability to frequency of operations
- if something is rarely done by an non-experienced users (like setting up a printer), a linear process is more logical
- if something is frequent, make sure the access is easy and efficient
- proactiveness
- correct mistakes
- simple example of "do you mean X?"
- recommendation system
- those who bought X also bought Y
- making suggestions
- correct mistakes
Recognition over Recall
- limit the cognitive load
- WIMP interaction mode
- avoid codes, and abbreviations
- do not assume that people will remember options(recall), make sure that the functions and options are clear (recognition) on the screen
- remember short-term memory limits
Heuristics of Guidance
Clear status
- system status: space, process, time
Space
- in recent years, space limitations are less in effect
- sometimes free portion / paying portion (should mention limits during sign up)
- its good to provide status when the user approaches a limit (or problem), not when its too late
Process
- completed setup
- example: Thank you, you did X
- action/next step
- what is the next step?
- provide the clear options
- completion
- show the user that he/she has finished
- for example, a completed order at checkout
Time
What is response time?
- time required between users initiating an activity and when the computer presents the results
What is think time?
the time it takes for the user to think before performing the next action (a.k.a user response time)
over time, users become more and more demanding of computers
users are looking for quick response systems
users wat to feel in control
- slow response time gives control to the computer
maintain low variability of the response time
- users become more frustrated if the system sometimes runs slowly
- explain clearly the variability of the response time
calculate the expected duration of the delay and provide a dynamic feedback
Guide for the UI according to response time:
- <1 second: show results
- 1-3 seconds
- a status indicator like the "spinning circle"
- progress bar
- countdown indication
- 3-5 seconds
- display everything you can, as soon as you can
- e.g. when starting an application, immediately open a window with a title
- display everything you can, as soon as you can
- >5 seconds:
- announce the delay:
- before the user selects the action(if possible), warn of the consequence
- during the execution, indicate how long it would take
- announce the delay:
Error Prevention
- What will happen?
- use feedback messages to warn users of the potential consequences of their actions
- Oh.. I do not want to go on... how can I get out here?
- provide an exit
- How can I enter this information?
- add input constraints, or manage an unconstrained field
- Have I lost everything?
- use a state backup
Help
- help at different levels
- global help (global process)
- contextual help (on the buttons)
- provide tutorials, unless "walk-up-and-use" application that should be clear without additional documentation
- make access easy for beginners
Error Recovery
- Human sounding
- make sure your error message sounds like it was written by a human for a human
- visibility
- make sure your error message can be easily seen
- clear explanation
- make sure your error message clearly explains what happened, that it is not encrypted or too vague
- recuperation
- make sure your error message allows the user to recover and resolve the problem
- humility
- make sure your error message is humble and does not blame the user
- humor
- if appropriate, humor could help reduce frustration