Match between system and real world

Consistency and standards

Visibility of system status

User control and freedom

Error prevention

Help users recognize, diagnose and recover from errors

Recognition rather than recall

Flexibility and efficiency of use

Aesthetic and minimalist design

Help and documentation