| 1 | Visibility of system status | No loading indicators, silent failures, no progress feedback | Trigger every action — does the user know what's happening? |
| 2 | Match between system and real world | Technical jargon in UI, unfamiliar icons, developer-facing error messages | Read all copy aloud — would a non-technical user understand? |
| 3 | User control and freedom | No undo, no cancel, no back button, trapped in modal flows | Try to exit every flow mid-way — can you? |
| 4 | Consistency and standards | Same action, different buttons; same icon, different meanings | Catalog all interactive patterns — are they consistent? |
| 5 | Error prevention | No validation until submit, easy mis-clicks, no confirmation for destructive actions | Try to make mistakes — does the system prevent them? |
| 6 | Recognition rather than recall | Hidden options, empty search, no recent items, no autocomplete | Can you complete tasks without remembering anything? |
| 7 | Flexibility and efficiency | No keyboard shortcuts, no bulk actions, no shortcuts for power users | Complete the same task 10 times — is there a faster way? |
| 8 | Aesthetic and minimalist design | Cluttered screens, competing CTAs, information overload | Cover each element — if removed, would users miss it? |
| 9 | Help users recognize and recover from errors | Generic "Error" messages, no recovery action, unclear next steps | Trigger every error — does the message explain what happened AND what to do? |
| 10 | Help and documentation | No tooltips, no onboarding, no contextual help | Can a new user complete key tasks without external help? |