Praktik terbaik aksesibilitas untuk Android TV

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

Mengapa aksesibilitas penting untuk aplikasi TV saya?

Gangguan penglihatan cukup umum di antara populasi yang menonton TV. Diperkirakan 2,2 miliar orang di seluruh dunia mengalami gangguan penglihatan, menurut Organisasi Kesehatan Dunia (WHO). Di Amerika Serikat, 32 juta orang Amerika berusia 18 tahun ke atas mengalami gangguan penglihatan yang signifikan, menurut National Health Interview Survey tahun 2018. Di Eropa, perkiraan menunjukkan 30 juta orang buta dan sebagian buta, menurut European Blind Union (EBU).

Yang terpenting, pengguna dengan gangguan penglihatan menikmati konten media sama seperti rekan mereka yang memiliki penglihatan normal. Survei tahun 2017 yang dilakukan oleh Comcast menunjukkan bahwa 96% pengguna yang buta atau memiliki penglihatan rendah secara rutin menonton TV, dengan 81% menonton lebih dari satu jam per hari. Namun, 65% juga melaporkan mengalami masalah saat mencari tahu acara TV. Dalam survei tahun 2020 di Inggris, 80% penyandang disabilitas mengatakan bahwa mereka mengalami masalah aksesibilitas dengan layanan streaming video on-demand.

Meskipun teknologi pendukung dapat dan membantu pengguna dengan penglihatan rendah, penting untuk mendukung aksesibilitas dalam perjalanan penemuan konten untuk aplikasi TV. Misalnya, berikan perhatian ekstra untuk memberikan panduan navigasi dan memberi label elemen dengan benar, serta pastikan aplikasi TV berfungsi dengan baik dengan fitur aksesibilitas seperti TalkBack. Langkah-langkah ini dapat meningkatkan pengalaman pengguna dengan gangguan penglihatan secara signifikan.

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

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:

  • Menggunakan wrap_content untuk dimensi dalam komponen UI.
  • Memastikan tata letak mengatur ulang komponen saat dimensinya berubah, bergantung pada skala teks.
  • Memastikan komponen tetap muat di layar pada skala teks yang lebih besar.
  • Tidak menggunakan unit ukuran teks sp untuk komponen yang tidak fleksibel.
  • Memeriksa nilai FONT_SCALE untuk penyesuaian dalam 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 setelan perangkat.

Tata letak keyboard

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

Deskripsi audio

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