Praktik terbaik aksesibilitas untuk Android TV

Panduan ini menyediakan praktik terbaik untuk aksesibilitas di Android TV dan menyediakan rekomendasi untuk aplikasi native dan non-native.

Mengapa aksesibilitas penting untuk aplikasi TV saya?

Gangguan penglihatan sering terjadi di antara populasi yang menonton TV. Diperkirakan 2,2 miliar orang di seluruh dunia memiliki gangguan penglihatan, menurut kepada Organisasi Kesehatan Dunia (WHO). Di Amerika Serikat, 32 juta orang Amerika yang berusia 18 tahun ke atas mengalami kehilangan penglihatan yang signifikan, menurut Survei Wawancara Kesehatan Nasional 2018. Di Eropa, perkiraan poin ke 30 juta penyandang tunanetra dan gangguan penglihatan sebagian, menurut European Blind Union (EBU).

Yang paling penting, pengguna dengan gangguan penglihatan menikmati konten media sama seperti rekan-rekan mereka yang benar-benar terlihat. Survei 2017 yang dilakukan oleh Comcast menunjukkan bahwa 96% pengguna yang tunanetra atau memiliki gangguan penglihatan secara teratur menonton TV, dengan 81% menonton lebih dari satu jam per hari. Namun, 65% juga melaporkan mengalami masalah saat mencari apa yang ada di TV. Dan menurut survei tahun 2020 di Inggris Raya, 80% penyandang disabilitas mengatakan bahwa mereka mengalami masalah aksesibilitas dengan video layanan streaming on-demand.

Meskipun teknologi pendukung dapat membantu pengguna dengan gangguan penglihatan, penting untuk mendukung aksesibilitas dalam perjalanan penemuan konten untuk aplikasi TV. Misalnya, berikan perhatian ekstra pada penyediaan panduan navigasi dan melabeli elemen dengan benar, dan memastikan aplikasi TV berfungsi baik dengan aksesibilitas seperti TalkBack. Langkah-langkah ini dapat meningkatkan pengalaman secara signifikan untuk pengguna dengan gangguan penglihatan.

Langkah pertama untuk meningkatkan aksesibilitas adalah awareness. Panduan ini dapat membantu Anda dan tim menemukan masalah aksesibilitas dengan aplikasi TV.

Referensi aksesibilitas Android

Untuk mempelajari aksesibilitas di Android lebih lanjut, lihat referensi pengembangan aksesibilitas kami.

Penskalaan Teks

Aplikasi Android TV harus menghormati preferensi pengguna untuk penskalaan teks dengan mendukung kepadatan piksel yang berbeda.

Berikan perhatian khusus untuk:

  • Gunakan wrap_content untuk dimensi dalam komponen UI.
  • Pastikan tata letak mengatur ulang komponen saat dimensinya berubah tergantung pada skala teks.
  • Pastikan komponen masih pas di layar pada skala teks yang lebih besar.
  • Jangan gunakan unit ukuran teks sp untuk komponen yang tidak fleksibel.
  • Periksa nilai FONT_SCALE untuk penyesuaian pada tampilan kustom:

    // Checking font scale with Context
    val scale = resources.configuration.fontScale
    Log.d(TAG, "Text scale is: " + scale)
    

Skala teks dapat diubah dengan perintah berikut:

adb shell settings put system font_scale 1.2f

Di Android 12 dan yang lebih baru, pengguna dapat mengubah penskalaan teks dari perangkat setelan.

Tata letak keyboard

Di Android 13 (API level 33) dan yang lebih baru, Anda dapat menggunakan getKeyCodeForKeyLocation() dapat cari kode tombol untuk lokasi utama yang diharapkan. Hal ini mungkin diperlukan jika pengguna telah memetakan ulang beberapa lokasi utama atau jika mereka menggunakan {i>keyboard<i} yang tidak memiliki tata letak khusus.

Deskripsi audio

Di Android 13 (level API 33) dan yang lebih tinggi, preferensi aksesibilitas tingkat sistem yang baru memungkinkan pengguna mengaktifkan deskripsi audio di semua aplikasi. Aplikasi Android TV dapat memeriksa preferensi pengguna dengan melakukan kueri 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
}

Aplikasi Android TV dapat memantau saat preferensi pengguna berubah dengan menambahkan pemroses ke 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);
}