Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Khả năng tiếp cận và nhất quán — làm một lần ở tầng nguyên tử

Đã đọc 0/7 mục · còn khoảng 5 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Một lỗi ở nguyên tử là một lỗi ở mọi trang

Khả năng tiếp cận (accessibility) thường được làm như một đợt kiểm tra cuối dự án: thuê người kiểm, nhận danh sách hai trăm lỗi, sửa từng màn hình. Cách đó tốn kém và không bền, vì màn hình mới làm tháng sau lại mắc đúng những lỗi cũ.

Design system đổi bài toán này. Phần lớn lỗi tiếp cận nằm ở những thứ nhỏ: độ tương phản của một màu, kích thước vùng chạm của một nút, ô nhập không có nhãn, trạng thái được chọn bằng bàn phím không nhìn thấy. Tất cả những thứ đó là nguyên tử và token. Sửa một lần ở đó, mọi trang dùng thư viện đều được sửa theo. Ngược lại, một nguyên tử sai sẽ lặp lỗi ở mọi nơi nó xuất hiện.

Ví dụ ở Giỏ Xanh: màu thương hiệu không đủ tương phản

Khi kiểm tra token màu, đội nền tảng giao diện tính độ tương phản theo chuẩn WCAG 2.1 mức AA. Chuẩn này yêu cầu chữ thường có tỉ lệ tương phản tối thiểu 4.5:1 với nền, chữ lớn và các thành phần giao diện như viền ô nhập tối thiểu 3:1.

MàuDùng choTương phản trên nền trắngKết quả
#4CC37A (xanh nhạt cũ)Nút chính trên 9 màn hình2.24:1Không đạt, kể cả cho chữ lớn
#1F8A4C (xanh thương hiệu)Nút, liên kết4.38:1Đạt cho chữ lớn và viền, không đạt cho chữ thường
#15703D (xanh đậm)Đề xuất cho hành động chính6.15:1Đạt
#9AA3AE (xám chữ gợi ý)Chữ gợi ý trong ô nhập2.55:1Không đạt
#6B7480 (xám đề xuất)Chữ phụ, chữ gợi ý4.74:1Đạt
Phát hiện này giải thích vì sao bài 3 đặt color-action-primary trỏ vào green-700 (#15703D) thay vì màu thương hiệu green-600. Màu thương hiệu vẫn dùng cho mảng lớn, minh hoạ, chữ cỡ lớn. Nhưng nút và liên kết, nơi có chữ cỡ thường, dùng sắc đậm hơn. Vì token là ngữ nghĩa, quyết định này được thực hiện bằng một dòng, và 9 màn hình dùng xanh nhạt cũ được sửa khi chúng chuyển sang component Button.

Danh sách việc làm một lần ở tầng nguyên tử

Nguyên tửĐiều cần đảm bảo trong componentNếu để từng màn hình tự lo
Token màuMọi cặp chữ và nền đạt 4.5:1, thành phần giao diện đạt 3:1Mỗi designer tự chọn, kiểm từng màn
NútVùng chạm tối thiểu khoảng 44 đến 48 điểm, có tên đọc được, có trạng thái được chọn bằng bàn phím nhìn rõNút biểu tượng không có tên, trình đọc màn hình đọc "nút"
Ô nhậpLuôn có nhãn, lỗi được nói bằng chữ chứ không chỉ bằng màu đỏ, lỗi gắn với ôNhãn biến mất khi gõ, người mù màu không thấy lỗi
Biểu tượngBiểu tượng trang trí bị ẩn khỏi trình đọc màn hình, biểu tượng có nghĩa có tênTrình đọc màn hình đọc tên file ảnh
ChữCỡ chữ tính theo đơn vị co giãn, chịu được người dùng phóng to chữChữ tràn, cắt mất khi phóng 200%
Hộp thoạiGiữ tiêu điểm trong hộp, phím Esc đóng, trả tiêu điểm về chỗ cũNgười dùng bàn phím bị kẹt
Chú ý dòng ô nhập. Ở Giỏ Xanh, 7 kiểu ô nhập cũ báo lỗi theo 4 cách, 3 trong số đó chỉ đổi viền sang đỏ. Khoảng 1 trong 12 nam giới có một dạng khiếm khuyết nhìn màu, và với họ viền đỏ hay viền xanh trông gần như nhau. Component ô nhập mới luôn hiện một dòng chữ nêu lỗi, kèm biểu tượng, và chỉ cần làm một lần.

Nhất quán cũng là một dạng tiếp cận

Khả năng tiếp cận không chỉ dành cho người khuyết tật. Khi cùng một hành động luôn trông giống nhau và nằm ở chỗ quen, mọi người dùng đều học nhanh hơn, nhất là người lớn tuổi hay người ít dùng app, một nhóm khách quan trọng của một app đi chợ. Ở Giỏ Xanh, nút "Thanh toán" xanh ở web và cam ở app (bài 1) không vi phạm chuẩn nào, nhưng khiến người dùng chuyển nền tảng phải tìm lại.

Một vài quy tắc nhất quán Giỏ Xanh đưa vào tài liệu thư viện:

  • Mỗi màn hình tối đa một nút chính.
  • Hành động phá huỷ (xoá, huỷ đơn) luôn dùng biến thể nguy hiểm và luôn hỏi xác nhận.
  • Thông báo thành công, cảnh báo, lỗi luôn dùng cùng một bộ màu, biểu tượng và vị trí.
  • Cùng một khái niệm dùng cùng một từ: "giỏ hàng", không lúc "giỏ" lúc "túi".

Kiểm tra vẫn cần, nhưng ở chỗ khác

Làm ở tầng nguyên tử không có nghĩa là không cần kiểm tra trang. Nguyên tử đúng có thể bị ghép sai: hai nút chính trên một màn, thứ tự đọc của trình đọc màn hình lộn xộn vì bố cục, hình ảnh sản phẩm thiếu mô tả. Nhưng danh sách kiểm tra cho mỗi màn hình mới ngắn đi nhiều, vì những thứ cơ bản đã được thư viện đảm bảo. QA của Giỏ Xanh giờ kiểm tiếp cận ở hai chỗ: một lần kỹ cho mỗi component khi phát hành, và một lần nhẹ cho thứ tự, nội dung và cách ghép ở mỗi màn hình.

PM nên đòi hỏi gì

  • Mỗi component trong thư viện có mục "khả năng tiếp cận" ghi rõ những gì đã đảm bảo.
  • Token màu có bảng tương phản, và không token chữ nào dưới 4.5:1 trên nền dự kiến.
  • Một yêu cầu "làm màu nhạt hơn cho sang" phải đi qua kiểm tra tương phản trước khi vào thư viện.

Làm ngay

Lấy ba màu chữ và ba màu nút phổ biến nhất trong sản phẩm của bạn. Dùng một công cụ kiểm tra độ tương phản miễn phí để đo từng cặp chữ và nền, ghi tỉ lệ và đạt hay không theo mức AA. Sau đó thử dùng sản phẩm chỉ bằng bàn phím trong năm phút: bạn có luôn thấy mình đang ở đâu không? Ghi các lỗi tìm được và đánh dấu lỗi nào nằm ở nguyên tử, sửa một lần là xong.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi