Tôi sẽ không xem đây đơn thuần là “25 checklist”, mà nên xem nó như 6 lớp kiểm định UX.
A. Navigation & Information Architecture
Đây là lớp kiểm tra logic của sản phẩm.
1. Clear Menu Labels
Tên menu phải phù hợp với mental model của người dùng. Ví dụ:
Không tốt: Solution / Explore / Discover / Ecosystem
Nếu website B2B chỉ có:: Services / Products / About / Contact thì người dùng hiểu ngay. Câu hỏi audit:
“Nếu bỏ toàn bộ visual design, chỉ nhìn tên menu, người dùng có đoán đúng nội dung bên trong không?”
2. Breadcrumbs
Ví dụ: Home → Products → CRM → Customer Management
Đặc biệt hữu ích với: Website nhiều tầng, E-commerce, Knowledge base, SaaS, Enterprise system. Nhưng không phải sản phẩm nào cũng cần breadcrumb. Một landing page đơn giản mà cố nhét breadcrumb vào sẽ tạo noise.
Breadcrumb giúp người dùng biết: Tôi đang ở đâu?
3. Working Search
Search không chỉ là “có ô tìm kiếm”. Một search tốt cần:
– Autocomplete
– Tolerance với typo
– Suggestion
– Relevant ranking
– Empty state
– No-result recovery
– Search history nếu cần
Ví dụ người dùng gõ: microsft team, hệ thống vẫn nên hiểu: Microsoft Teams
Đây là một tiêu chí rất quan trọng với: SaaS, E-commerce, Knowledge system, Enterprise portal, Documentation
4. Logical Grouping
Các nội dung phải được nhóm theo logic của người dùng, không phải logic nội bộ của doanh nghiệp. Đây là điểm rất quan trọng. Ví dụ công ty có: Sales, Marketing, Finance, HR, IT
Nhưng người dùng có thể cần: Manage Customers, Manage Orders, Manage Employees, Manage Finance
Đó là lý do hình nhắc đến: Card Sorting + Tree Testing Đây là hai phương pháp kiểm chứng IA khá mạnh.
→ Tầng A trả lời:
“Tôi có biết mình đang ở đâu và phải đi đâu không?”
B. Visual Design & Hierarchy
Sau khi IA đúng, lớp B kiểm tra khả năng nhìn và hiểu.
5. Consistent Styling
Color, Typography, Spacing, Border radius, Icon, Button, Component
Mọi thứ phải sử dụng một hệ thống nhất quán: Đây chính là nơi Design System phát huy tác dụng.
Ví dụ: Primary button = màu xanh + 48px height + 8px radius thì không nên xuất hiện một màn khác: Primary button = màu đỏ + 40px height + 16px radius
6. Clear Hierarchy
Mắt người dùng phải biết: Cái gì quan trọng nhất?
Ví dụ:
H1
→ Supporting text
→ Primary CTA
→ Secondary information
Hierarchy được tạo bằng: Size, Weight, Contrast, Position, Spacing, Color
Một lỗi UX phổ biến là: Mọi thứ đều được thiết kế “quan trọng”.
Kết quả:
Không có gì quan trọng.
7. Non-text Contrast
Các thành phần UI không phải text cũng phải có contrast đủ tốt.
Ví dụ: Input border, Icon, Button outline, Chart, Focus indicator, Form control
Hình sử dụng mốc 3:1, phù hợp với WCAG 1.4.11 cho non-text contrast.
8. Aligned Elements
Hình đề xuất 8px grid. Đây là design-system convention rất phổ biến: 8 / 16 / 24 / 32 / 40 / 48 / 64...
Nó giúp: Layout có rhythm, Component nhất quán, Dễ scale, Dễ handoff, Dễ maintain
Nhưng cần lưu ý: 8px grid là design convention, không phải một yêu cầu UX/WCAG bắt buộc.
→ Tầng B trả lời:
“Tôi nhìn vào màn hình có biết cái gì quan trọng không?”
C. Content & Readability
Đây là phần nhiều designer bỏ qua. UX không chỉ là UI. Content cũng là interface.
9. Readable Body Text
Hình đưa ra: 16px base và khả năng zoom đến 200%.
Điểm cần chỉnh: WCAG 1.4.4 là yêu cầu về Resize Text, không quy định rằng body text bắt buộc phải 16px. 16px nên được xem là practical design baseline, không phải “WCAG bắt buộc”.
10. Plain Language
Nội dung phải dễ hiểu. Ví dụ: Thay vì: “Authentication credentials failed to validate.” Có thể viết: “Email hoặc mật khẩu không đúng.” Đặc biệt quan trọng với: Government, Healthcare, Finance, Enterprise software, AI products
11. Descriptive Headings
Heading phải giúp người dùng scan nội dung.
Ví dụ tốt: How to create a new project thay vì: Information
Và cấu trúc nên hợp lý: H1 → H2 → H3. Không nên: H1 → H4 → H2
12. Scannable Copy
Người dùng web thường scan trước, đọc sau.
Vì vậy: Paragraph ngắn, Bullet, Heading, Bold keyword, Information upfront, tốt hơn những block text dài.
→ Tầng C trả lời:
“Tôi có hiểu nội dung này nhanh không?”
D. Forms & Interactions
Đây là nơi UX bắt đầu ảnh hưởng trực tiếp đến conversion và task completion.
13. Persistent Labels
Không nên dùng placeholder thay cho label.
Không tốt: [ Enter email... ]. Sau khi người dùng nhập: [ abc@gmail.com ]. Họ có thể quên field này là gì.
Tốt: Email address [ abc@gmail.com ]. Placeholder chỉ nên dùng để cung cấp example/hint.
14. Inline Validation
Đừng đợi người dùng bấm Submit mới nói: “Email không hợp lệ.”
Nên báo ngay khi có thể: Email address [abc@] – ⚠ Please enter a valid email address. Điều này giảm cognitive load và giảm frustration.
15. Actionable Errors
Error message phải trả lời: Có vấn đề gì? Tôi phải làm gì?
Không tốt: Error 403
Tốt: You don’t have permission to access this project. Contact your administrator.
16. Clear Feedback
Mọi action nên có feedback: Loading → Success / Error / Disabled
Ví dụ người dùng click: Save. Không nên để màn hình đứng im.
Nên: Saving… → Saved. Đây là một nguyên tắc rất quan trọng trong SaaS.
→ Tầng D trả lời:
“Tôi có biết hệ thống đang làm gì và phải xử lý thế nào không?”
E. Accessibility
Đây là lớp biến UX từ: “Dễ dùng” thành: “Có thể sử dụng bởi nhiều nhóm người dùng nhất có thể.”
17. Text Contrast
Hình sử dụng: 4.5:1 cho normal text, 3:1 cho large text phù hợp với WCAG AA trong trường hợp thông thường.
18. Meaningful Alt Text
Không phải ảnh nào cũng cần alt text giống nhau.
Ví dụ: Ảnh có ý nghĩa: alt="Dashboard showing monthly revenue". Ảnh decorative: alt=""
Mục tiêu là truyền tải meaning, không phải mô tả mọi pixel.
19. Full Keyboard Access
Người dùng phải có thể sử dụng interface mà không cần mouse. Kiểm tra: Tab → Shift + Tab → Enter → Space → Arrow keys → Esc
Đặc biệt quan trọng với: Modal, Dropdown, Date picker, Menu, Form, Data table
20. Visible Focus
Khi dùng keyboard, người dùng phải biết: “Tôi đang focus vào element nào?”
Ví dụ: Button, Input, Menu item
focus state phải rõ ràng.
→ Tầng E trả lời:
“Người có khả năng và phương thức tương tác khác nhau có dùng được sản phẩm không?”
F. Performance & Responsive
Đây là phần mở rộng UX ra ngoài UI.
21. Core Web Vitals
Hình sử dụng các ngưỡng: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1. Đây là các ngưỡng “Good” phổ biến của Core Web Vitals. UX tốt nhưng website load 5–7 giây thì vẫn là UX tệ.
22. Fluid Layout
Không chỉ: Desktop → Mobile mà cần thích nghi xuyên suốt: 320px → 375 → 768 → 1024 → 1440 → 1920
Đây là tư duy responsive system, không phải thiết kế hai phiên bản desktop/mobile riêng biệt.
23. Touch Targets
Hình nhắc:
24×24px minimum theo WCAG 2.5.8
và 44×44px là một target thực hành phổ biến để tăng usability trên touch device. Cần phân biệt: 24×24px = WCAG minimum trong điều kiện áp dụng với: 44×44px = practical recommendation thường dùng cho mobile/touch UX.
24. Optimized Media
Image nên: WebP/AVIF, Responsive image, Lazy loading khi phù hợp, Compression, Proper dimensions
Không nên đưa một ảnh: 4000 × 3000 vào một container: 400 × 300 rồi bắt browser tự xử lý.
25. Reflow / No Horizontal Scroll
Đặc biệt ở: 320px nội dung vẫn phải sử dụng được mà không xuất hiện horizontal scrolling không cần thiết. Đây là một trong những test responsive rất tốt.
→ Tầng F trả lời:
“Sản phẩm có hoạt động nhanh, ổn định và tốt trên thiết bị thực tế không?”
Điều tôi đánh giá cao nhất ở framework này
Nó tạo ra một chuỗi logic khá đẹp:
A — Find
Tôi có tìm được không?
↓
B — See
Tôi có nhìn và hiểu được không?
↓
C — Read
Tôi có đọc và hiểu nội dung không?
↓
D — Act
Tôi có thực hiện task được không?
↓
E — Access
Tôi có thể sử dụng nó không?
↓
F — Perform
Nó có chạy tốt trong thực tế không?
Đây gần như có thể trở thành UX Audit Funnel.
Nhưng nếu dùng để audit chuyên nghiệp, tôi sẽ nâng cấp framework này
25 checklist hiện tại rất tốt để screening, nhưng chưa đủ để trở thành một UX Audit Framework hoàn chỉnh. Tôi sẽ thêm 3 lớp:
Layer 0 — Business & User Context
Trước A:
Business Goal
→ Conversion?
→ Retention?
→ Revenue?
→ Task completion?
User Goal
→ User đang muốn làm gì?
User Context
→ Who?
→ Device?
→ Situation?
→ Frequency?
Nếu không có lớp này, designer rất dễ audit theo kiểu: “Cái này đẹp/chưa đẹp.” Thay vì: “Cái này có đang giúp user đạt goal và business đạt outcome không?”