Este guia fornece práticas recomendadas para acessibilidade no Android TV e recomendações para apps nativos e não nativos.
Por que a acessibilidade é importante para o meu app de TV?
Deficiências visuais não são incomuns entre a população que assiste à TV. Estima-se que 2,2 bilhões de pessoas no mundo todo têm algum problema de visão, de acordo com a Organização Mundial da Saúde (OMS). Nos EUA, 32 milhões de americanos com 18 anos ou mais tiveram perda significativa da visão, de acordo com a National Health Interview Survey de 2018 (em inglês). Na Europa, as estimativas apontam para 30 milhões de pessoas cegas e parcialmente cegas, de acordo com a União Europeia de cegos (EBU, na sigla em inglês).
O mais importante é que usuários com deficiências visuais gostam de conteúdo de mídia da mesma forma que os colegas deficientes visuais. Uma pesquisa de 2017 encomendada pela Comcast mostrou que 96% dos usuários cegos ou com baixa visão assistem TV com frequência, e 81% assistem mais de uma hora por dia. No entanto, 65% também relataram ter problemas ao procurar o que está na TV. Em uma pesquisa de 2020 realizada no Reino Unido, 80% das pessoas com deficiência disseram que tiveram problemas de acessibilidade com serviços de streaming de vídeo on demand.
Embora as tecnologias adaptativas possam ajudar usuários com baixa visão, é importante oferecer suporte à acessibilidade nas jornadas de descoberta de conteúdo de apps para TV. Por exemplo, preste ainda mais atenção em fornecer orientações de navegação e rotular elementos adequadamente, além de garantir que os apps para TV funcionem bem com recursos de acessibilidade como o TalkBack. Essas etapas podem melhorar significativamente a experiência de usuários com deficiência visual.
O primeiro passo para melhorar a acessibilidade é a conscientização. Este guia pode ajudar você e sua equipe a descobrir problemas de acessibilidade com seu app de TV.
Recursos de acessibilidade do Android
Para saber mais sobre a acessibilidade no Android, consulte nossos recursos de desenvolvimento de acessibilidade.
Tamanho do texto
Os apps para Android TV precisam respeitar a preferência do usuário para o dimensionamento de texto, oferecendo suporte a diferentes densidades de pixel.
Tome cuidado especial:
- Use
wrap_content
para dimensões em componentes da interface. - Garantir que os layouts reorganizem os componentes à medida que as dimensões mudam de acordo com a escala do texto.
- Verifique se os componentes ainda cabem na tela em escalas de texto maiores.
- Não use unidades de tamanho de texto sp para componentes que não são flexíveis.
Verifique o valor de
FONT_SCALE
para ajustes em visualizações personalizadas:// Checking font scale with Context val scale = resources.configuration.fontScale Log.d(TAG, "Text scale is: " + scale)
A escala do texto pode ser alterada com o seguinte comando:
adb shell settings put system font_scale 1.2f
No Android 12 e versões mais recentes, os usuários podem mudar o dimensionamento do texto nas configurações do dispositivo.
Layouts de teclado
No Android 13 (API de nível 33) e versões mais recentes, você pode usar
getKeyCodeForKeyLocation()
para
procurar códigos de tecla para
locais esperados para as chaves.
Isso pode ser necessário se o usuário tiver mapeado novamente alguns locais importantes ou
estiver usando um teclado que não tem um layout típico.
Audiodescrição
No Android 13 (nível 33 da API) e versões mais recentes, uma nova preferência de acessibilidade em todo o sistema
permite que os usuários ativem audiodescrições em todos os apps. Os apps do Android TV podem
verificar a preferência do usuário consultando-o com
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 }
Os apps para Android TV podem monitorar quando a preferência de um usuário muda
adicionando um listener 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); }