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

Hãy tìm cách làm cho ứng dụng Android của bạn trở nên dễ sử dụng hơn cho mọi người, bao gồm cả những người cần hỗ trợ tiếp cận.

Người dùng thiết bị Android bao gồm cả những 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 độ linh hoạt, khuyết tật trí tuệ và nhiều dạng khuyết tật khác. Bằng việc chú trọng khả năng hỗ trợ tiếp cận khi phát triển ứng dụng, bạn có thể cải thiện trải nghiệm người dùng cho nhóm đối tượng cần hỗ trợ tiếp cận.

Trang 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 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ận hơn, hãy xem bài viết Nguyên tắc để cải thiện khả năng hỗ trợ tiếp cận cho ứng dụng.

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

Đối với mỗi tậ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) nên nằm trên một ngưỡng cụ thể. Ngưỡng chính xác phụ thuộc vào cỡ 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 18 pt hoặc nếu văn bản được in đậm và nhỏ hơn 14 pt, hãy đặt tỷ lệ tương phản màu tối thiểu là 4,5:1.
  • Đối với tất cả các phần văn bản khác, hãy đặt tỷ lệ tương phản màu tối thiểu 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 thành phần điều khiển của ứng dụng dễ thấy và dễ nhấn. Mỗi thành phần trên giao diện người dùng tương tác nên có một khu vực có thể làm tâm điểm hoặc kích thước đích chạm ít nhất là 48dp x 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:

Nếu dùng giá trị khoảng đệm, kích thước hiển thị của một đối tượng có thể nhỏ hơn 48dp x 48dp mà vẫn đáp ứng kích thước đích chạm đề xuất.

Đoạn mã sau đây cho thấy một thành phần có kích thước đích chạm đề 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

Đối với mỗi thành phần trên giao diện người dùng trong ứng dụng, hãy thêm nội dung mô tả cho biết mục đích của thành phần đó. Trong hầu hết trường hợp, bạn đưa nội dung mô tả này vào thuộc tính contentDescription của phần tử, 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:

  • Không thêm loại thành phần trê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ả loại và nội dung mô tả của thành phần. Ví dụ: nếu thao tác chọn nút khiến hành động "gửi" xảy ra trong ứng dụng, thì nội dung mô tả của nút phải là "Submit", chứ không phải "Submit button".

  • Mỗi nội dung mô tả phải là duy nhất. Như vậy, khi người dùng trình đọc màn hình bắt gặp nội dung mô tả lặp lại của một thành phần, họ sẽ nhận ra chính xác rằng tiêu điểm đ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 khung hiển thị 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 riêng biệt 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 minSdkVersion của ứng dụng là 16 trở lên, bạn có thể đặt thuộc tính android:importantForAccessibility thành "no" cho các thành phần đồ hoạ chỉ dùng cho hiệu ứng trang trí.

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