Questa guida fornisce best practice per l'accessibilità su Android TV e consigli per le app sia native che non native.
Perché l'accessibilità è importante per la mia app TV?
I disturbi visivi non sono rari tra la popolazione che guarda la TV. Secondo l'Organizzazione Mondiale della Sanità (OMS), circa 2,2 miliardi di persone in tutto il mondo hanno una disabilità visiva. Negli Stati Uniti, 32 milioni di americani dai 18 anni in su hanno riscontrato una significativa perdita di vista, secondo il National Health Interview Survey 2018. In Europa, secondo le stime dell'Unione Europea dei Ciechi (EBU), ci sono 30 milioni di persone cieche e ipovedenti.
Soprattutto, gli utenti con disabilità visive possono usufruire dei contenuti multimediali tanto quanto i loro coetanei normodotati. Un sondaggio del 2017 commissionato da Comcast ha dimostrato che il 96% degli utenti ciechi o ipovedenti guarda regolarmente la TV e l'81% guarda più di un'ora al giorno. Tuttavia, il 65% ha anche riscontrato problemi con la ricerca dei programmi in TV. Inoltre, in un sondaggio del 2020 nel Regno Unito, l'80% delle persone disabili ha dichiarato di aver avuto problemi di accessibilità con i servizi di streaming video on demand.
Sebbene le tecnologie per la disabilità possano e aiutino gli utenti ipovedenti, è importante supportare l'accessibilità nei percorsi di scoperta dei contenuti per le app TV. Ad esempio, presta particolare attenzione alle indicazioni di navigazione e all'etichettatura corretta degli elementi, nonché assicurati che le app TV funzionino correttamente con funzioni di accessibilità come TalkBack. Questi passaggi possono migliorare notevolmente l'esperienza degli utenti con problemi di vista.
Il primo passo per migliorare l'accessibilità è la consapevolezza. Questa guida può aiutare te e il tuo team a scoprire problemi di accessibilità con la tua app TV.
Risorse per l'accessibilità Android
Per ulteriori informazioni sull'accessibilità su Android, consulta le nostre risorse per lo sviluppo dell'accessibilità.
Ridimensionamento testo
Le app per Android TV devono rispettare la preferenza dell'utente per il ridimensionamento del testo supportando densità di pixel diverse.
Presta particolare attenzione a:
- Utilizza
wrap_content
per le dimensioni nei componenti dell'interfaccia utente. - Assicurati che i layout riorganizzino i componenti man mano che le dimensioni cambiano in base alla scala del testo.
- Assicurati che i componenti rientrino ancora nello schermo con dimensioni di testo più grandi.
- Non utilizzare unità di dimensione del testo in sp per i componenti non flessibili.
Controlla il valore di
FONT_SCALE
per l'aggiustamento nelle viste personalizzate:// Checking font scale with Context val scale = resources.configuration.fontScale Log.d(TAG, "Text scale is: " + scale)
La scala del testo può essere modificata con il seguente comando:
adb shell settings put system font_scale 1.2f
Su Android 12 e versioni successive, gli utenti possono modificare il ridimensionamento del testo dalle impostazioni del dispositivo.
Layout tastiera
In Android 13 (livello API 33) e versioni successive, puoi utilizzare getKeyCodeForKeyLocation()
per cercare i codici chiave per le località delle chiavi previste.
Questa operazione potrebbe essere necessaria se l'utente ha rimappato alcune posizioni dei tasti o se utilizza una tastiera che non ha un layout tipico.
Descrizione audio
In Android 13 (livello API 33) e versioni successive, una nuova preferenza di accessibilità a livello di sistema consente agli utenti di attivare le descrizioni audio in tutte le app. Le app per Android TV possono
controllare la preferenza dell'utente inviando una query con
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 }
Le app per Android TV possono monitorare la modifica delle preferenze di un utente aggiungendo un ascoltatore a 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); }