Usability problems is a common issue that UI designers, developers, users have to face and a bad design affects to the end user satisfaction directly. So, to overcome that, UI evaluators should follow an inspection method before designing phase or after development phase. Heuristic evaluation is one of those inspection methods. In here evaluators check whether the user interfaces covers the required usability principles and some of the beneficiary facts of this method is that it can conducts at the very beginning of the designing phase and user testing is not required. If there are many heuristics introduced in usability inspection, Jakob Nielsen’s one is the mostly used collection. According to the book “Usability Engineering” published by Jakob Nielsen, he has identified 10 heuristics as below.
- Visibility of system status
- Match between system and the real world
- User control and freedom
- Consistency and standards
- Error prevention
- Recognition rather than recall
- Flexibility and efficiency of use
- Aesthetic and minimalist design
- Help users recognize, diagnose, and recover from errors
- Help and documentation
Let’s consider each of them separately.
Visibility of system status
The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
Otherwise users may not know what’s going on or whether they have done the task correctly or how much of time that they have to wait in order to proceed. Or else users may confuse without knowing the process going on inside the system. It’s not necessary to display the remaining time duration for all the tasks but if it takes more than few seconds it’s better to state the waiting time. Some of the common techniques designers use to display system status are loading spinners, progress bars.
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.
Normally, people quickly recognizes things which are familiar with day to day objects. If we put a folder icon to represent a document, users get the hint that what we are presenting is a document. If we put a dustbin to represent deleted items then users will know that refers to send trash or unwanted stuff. Likewise we can use command phrases that are similar to real world. We can use ‘Open’ to enter into a new view and we can use ‘Exit’ to get out of that view.
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.
Making mistakes is a common characteristic of human nature. So, a good design should always has a functionality to roll back the changes to prevent getting things worst. Below image shows the message which gives by the Gmail when the user delete a received email. That email won’t be deleted permanently until 30 days and Gmail also allows to undo the deleting process.
Consistency and standards
Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions.
It’s easy to understand if all the interfaces follows a standard format. If an interface follows a totally different format rather than the other interfaces then users have to put an extra effort to understand that interface. But also interfaces should emphasize differences while maintaining consistency. Most of the times people do things as a habit. If we put a button in a particular interface and put the very same button with a totally contrast functionality like first one is for Save and second one is for Exit, most probably users hit Exit button by mistakenly even though they need to save the stuff. To avoid those unintentional mistakes, the designers should maintain a proper format keeping standards.
Microsoft Office Package maintains a unique interface structure, so the users can easily get familiar with the tasks with less effort.
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.
‘Parking at your own risk’ is a common signing board that we have all seen in front of most of the supermarkets. Like that a good error message should advice the users about the impact or the result of their action and request the confirmation.
Below image is a good example which supports the above fact.
Below is the message which gives by Microsoft Excel when a user try to close the window without saving changes.
Login or Signup interface is the initial and relatively easiest step of a process. If the users cannot login to the system, then there’s nothing to talk about the rest of the system. Of that login stage, username and the password is the most important facts. So, the interface should enriched with a proper guidance to the users. According to the below example, when a user try to type the password a message displays the criteria of a valid password and line by line it shows the validity and invalidity, preventing occurring an error.
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.
For an example it’s better to display a suggestion list while typing a term in order to easily approach and avoid typing long phrases.
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.
For regular, experienced users we can allow short cut keys to proceed tasks without going to a full ride again and again. And also there’s no need to display all the advanced features to novice users until they are thorough with given few features. And give the opportunity to frequent users to experience more features as their desire.
Below image is an example to a design which allows shortcut keys.
Below image shows that we can display frequently or most commonly used actions in an easily accessible place. So, the users can use those features with less time.
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.
In our language, a design should be Short and Sweet. The more and more we try to push things into the interface, it’s getting more and more complicated. As much as it is simple, users can easily grab the idea. Long phrases takes times to read and users are getting bored and misses the important facts.
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.
We cannot expect that all the users are subject experts or technical experts. There might be a knowledge gap between users and designers. So, a good design should be able to reach to different users with different knowledge capacities. So, error messages should not contains high technical terms or complicated instructions. It should simply state the problem and a possible solution.
Below one is an example to a good design. It simply state the requirements.
Below images shows a bad design. User has to go through lots of complicated terms in order to find out the error.
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.
Below images displays that the Cloud9 allows various types of help options for their users.
Below one is the help option provided by the google.