Hướng dẫn này đưa ra các phương pháp hay nhất về tính năng hỗ trợ tiếp cận trên Android TV, đồng thời đưa ra đề xuất cho cả ứng dụng gốc và ứng dụng không phải ứng dụng gốc.
Tại sao khả năng hỗ trợ tiếp cận lại quan trọng đối với ứng dụng dành cho TV?
Tình trạng suy giảm thị lực không phải là điều hiếm gặp trong những người xem TV. Theo Tổ chức Y tế Thế giới (WHO), ước tính có 2,2 tỷ người trên toàn cầu bị suy giảm thị lực. Tại Hoa Kỳ, 32 triệu người Mỹ từ 18 tuổi trở lên bị suy giảm thị lực đáng kể, theo Khảo sát phỏng vấn sức khoẻ quốc gia năm 2018. Ở Châu Âu, theo Liên minh người mù Châu Âu (EBU), ước tính của chúng tôi là 30 triệu người khiếm thị và người khiếm thị một phần.
Điều quan trọng nhất là người dùng bị suy giảm thị lực được tận hưởng nội dung đa phương tiện nhiều như những người dùng có thị lực bình thường. Một khảo sát năm 2017 do Comcast uỷ quyền cho thấy 96% người dùng bị khiếm thị hoặc có thị lực kém thường xuyên xem TV, trong đó 81% xem hơn một giờ mỗi ngày. Tuy nhiên, 65% cũng cho biết họ gặp vấn đề khi tra cứu nội dung trên TV. Và trong một khảo sát năm 2020 tại Vương quốc Anh, 80% người khuyết tật cho biết họ gặp phải các vấn đề về khả năng tiếp cận khi dùng dịch vụ xem video trực tuyến theo yêu cầu.
Mặc dù các công nghệ hỗ trợ có thể và hỗ trợ người dùng có thị lực kém, nhưng việc hỗ trợ khả năng tiếp cận trong hành trình khám phá nội dung của các ứng dụng dành cho TV đóng vai trò quan trọng. Ví dụ: chú ý hơn đến việc cung cấp hướng dẫn di chuyển và gắn nhãn đúng cách các thành phần, đồng thời đảm bảo rằng ứng dụng TV hoạt động tốt với các tính năng hỗ trợ tiếp cận như TalkBack. Các bước này có thể cải thiện đáng kể trải nghiệm của người dùng bị suy giảm thị lực.
Bước đầu tiên để cải thiện khả năng tiếp cận là mức độ nhận biết. Hướng dẫn này có thể giúp bạn và nhóm của bạn khám phá các vấn đề về hỗ trợ tiếp cận với ứng dụng TV.
Tài nguyên hỗ trợ tiếp cận của Android
Để tìm hiểu thêm về tính năng hỗ trợ tiếp cận trên Android, hãy xem tài nguyên về việc phát triển tính năng hỗ trợ tiếp cận của chúng tôi.
Tăng cỡ chữ
Các ứng dụng Android TV phải tôn trọng lựa chọn ưu tiên của người dùng về việc chuyển tỷ lệ văn bản bằng cách hỗ trợ nhiều mật độ pixel.
Hãy đặc biệt chú ý:
- Sử dụng
wrap_content
cho các kích thước trong thành phần giao diện người dùng. - Đảm bảo bố cục sắp xếp lại các thành phần khi kích thước thay đổi tuỳ thuộc vào tỷ lệ văn bản.
- Đảm bảo các thành phần vẫn vừa trên màn hình ở cỡ chữ lớn.
- Đừng sử dụng đơn vị kích thước văn bản sp cho các thành phần không linh hoạt.
Kiểm tra giá trị của
FONT_SCALE
cho mức điều chỉnh trong chế độ xem tuỳ chỉnh:// Checking font scale with Context val scale = resources.configuration.fontScale Log.d(TAG, "Text scale is: " + scale)
Bạn có thể thay đổi tỷ lệ văn bản bằng lệnh sau đây:
adb shell settings put system font_scale 1.2f
Trên Android 12 trở lên, người dùng có thể thay đổi tỷ lệ văn bản trong phần cài đặt thiết bị.
Bố cục bàn phím
Trong Android 13 (API cấp 33) trở lên, bạn có thể dùng getKeyCodeForKeyLocation()
để tra cứu mã phím cho các vị trí chính dự kiến.
Điều này có thể cần thiết nếu người dùng đã ánh xạ lại một số vị trí chính hoặc nếu họ đang sử dụng bàn phím không có bố cục thông thường.
Mô tả bằng âm thanh
Trong Android 13 (API cấp 33) trở lên, một lựa chọn ưu tiên mới về hỗ trợ tiếp cận trên toàn hệ thống cho phép người dùng bật tính năng mô tả bằng âm thanh trên tất cả ứng dụng. Ứng dụng Android TV có thể kiểm tra lựa chọn ưu tiên của người dùng bằng cách truy vấn lựa chọn đó bằng isAudioDescriptionRequested()
.
Kotlin
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (am.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
Java
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
Các ứng dụng Android TV có thể theo dõi thời điểm lựa chọn ưu tiên của người dùng thay đổi bằng cách thêm trình nghe vào AccessibilityManager
:
Kotlin
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
Java
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }