Làm cho ứng dụng dễ tiếp cận hơn

Ứng dụng Android nên hướng đến tất cả mọi người, bao gồm cả những người có nhu cầu hỗ trợ tiếp cận.

Người mắc chứng suy giảm thị lực, mù màu, suy giảm thính lực, suy giảm độ khéo léo, khuyết tật trí tuệ và nhiều dạng khuyết tật khác sử dụng thiết bị Android để hoàn thành các công việc trong cuộc sống thường ngày của họ. Bằng việc phát triển ứng dụng có khả năng hỗ trợ tiếp cận, bạn có thể cải thiện trải nghiệm người dùng, đặc biệt là dành cho người dùng có các nhu cầu nói trên cũng như các nhu cầu hỗ trợ tiếp cận khác.

Tài liệu này trình bày nguyên tắc triển khai các yếu tố hỗ trợ tiếp cận chính để mọi người có thể dễ dàng sử dụng ứng dụng của bạn. Để biết thêm hướng dẫn chi tiết về cách làm cho ứng dụng dễ tiếp cập hơn, hãy truy cập trang nguyên tắc cải thiện khả năng hỗ trợ tiếp cận của ứng dụng.

Tăng khả năng hiển thị văn bản

Đối với mỗi tập hợp văn bản trong ứng dụng, độ tương phản màu (hay sự khác biệt về độ sáng nhìn thấy giữa màu văn bản và màu nền phía sau văn bản) phải nằm trên một ngưỡng cụ thể. Ngưỡng chính xác phụ thuộc vào kích thước phông chữ của văn bản cũng như việc văn bản có được in đậm hay không:

  • Nếu văn bản nhỏ hơn 18pt hoặc nếu văn bản in đậm và nhỏ hơn 14pt, thì tỷ lệ tương phản màu tối thiểu phải là 4,5:1.
  • Đối với mọi văn bản khác, tỷ lệ tương phản màu tối thiểu phải là 3:1.

Hình ảnh sau đây cho thấy hai ví dụ về độ tương phản giữa màu văn bản và màu nền:

Hình ảnh thể hiện văn bản
Hình 1. Độ tương phản màu thấp hơn mức đề xuất (bên trái) và độ tương phản vừa đủ (bên phải)

Để kiểm tra độ tương phản giữa màu văn bản so với màu nền trong ứng dụng, hãy sử dụng trình kiểm tra độ tương phản màu trực tuyến hoặc ứng dụng Trình quét hỗ trợ tiếp cận.

Dùng các thành phần điều khiển lớn và đơn giản

Giao diện người dùng của ứng dụng sẽ dễ sử dụng hơn nếu có các chế độ điều khiển dễ xem và nhấn. Mỗi thành phần giao diện người dùng tương tác nên có khu vực có thể làm tâm điểm hoặc kích thước đích nhấn ít nhất là 48dp ✕ 48dp. Nếu lớn hơn thì càng tốt.

Để một thành phần giao diện người dùng cụ thể có kích thước đích nhấn đủ lớn, cả hai điều kiện sau đều cần phải được đáp ứng:

Giá trị khoảng đệm cho phép kích thước hiển thị của một đối tượng nhỏ hơn 48dp ✕ 48dp trong khi vẫn đáp ứng kích thước đích nhấn đề xuất.

Đoạn mã sau đây cho thấy một thành phần có kích thước đích nhấn đề xuất:

<ImageButton ...
    android:paddingLeft="4dp"
    android:minWidth="40dp"
    android:paddingRight="4dp"

    android:paddingTop="8dp"
    android:minHeight="32dp"
    android:paddingBottom="8dp" />

Mô tả từng thành phần trên giao diện người dùng

Mỗi thành phần trên giao diện người dùng trong ứng dụng nên có một đoạn mô tả để mô tả mục đích của thành phần đó. Trong hầu hết trường hợp, bạn đưa thông tin mô tả này vào thuộc tính contentDescription của thành phần, như thể hiện trong đoạn mã sau:

<!-- Use string resources for easier localization. -->
<!-- The en-US value for the following string is "Inspect". -->
<ImageView
    ...
    android:contentDescription="@string/inspect" />

Khi thêm nội dung mô tả vào các thành phần trên giao diện người dùng của ứng dụng, hãy lưu ý các phương pháp hay nhất sau đây:

  • Đừng đưa loại thành phần giao diện người dùng vào phần mô tả nội dung. Trình đọc màn hình sẽ tự động thông báo cả phần mô tả và loại thành phần.

    Ví dụ: nếu thao tác chọn nút khiến hành động "gửi" xuất hiện trong ứng dụng, thì nội dung mô tả của nút này nên là "Submit" chứ không phải "Submit button".

  • Mỗi phần mô tả phải riêng biệt. Nhờ vậy, khi người dùng trình đọc màn hình bắt gặp phần mô tả lặp lại của một thành phần, họ nhận ra chính xác rằng tiêu điểm hiện đang nằm trên một thành phần đã có tiêu điểm trước đó.

    Cụ thể, mỗi mục trong một nhóm chế độ xem như RecyclerView sẽ phải có nội dung mô tả riêng. Mỗi nội dung mô tả phải phản ánh nội dung dành riêng cho một mục nhất định, chẳng hạn như tên của một thành phố trong danh sách địa điểm.

  • Nếu giao diện người dùng bao gồm các thành phần đồ hoạ chỉ dùng cho mục đích hiệu ứng trang trí, hãy đặt nội dung mô tả thành "@null". Nếu minSdkVersion của ứng dụng là 16 trở lên, bạn có thể đặt các thuộc tính android:importantForAccessibility của thành phần đồ hoạ này thành "no".

Tài nguyên khác

Để tìm hiểu thêm về cách giúp ứng dụng dễ tiếp cận hơn, hãy xem thêm các tài nguyên sau:

Lớp học lập trình

Bài đăng trên blog