Prácticas recomendadas de accesibilidad para Android TV

En esta guía, se proporcionan prácticas recomendadas sobre accesibilidad en Android TV y se proporciona recomendaciones para las apps nativas y no nativas.

¿Por qué es importante la accesibilidad para mi app de TV?

La discapacidad visual no es poco común entre la población que mira TV. Se estima que 2,200 millones de personas en todo el mundo tienen una discapacidad visual, según ante la Organización Mundial de la Salud (OMS). En EE.UU., 32 millones de estadounidenses mayores de 18 años padecieron pérdida significativa de la visión, según la Encuesta Nacional de Entrevistas sobre Salud del 2018. En Europa, las estimaciones llegar a 30 millones personas ciegas y con visión parcial, de acuerdo con la Unión Europea de Ciegas (OB).

Lo más importante es que los usuarios con discapacidad visual disfrutan del contenido multimedia al igual que sus pares videntes. Una encuesta de 2017 encargada por Comcast mostró que el 96% de los usuarios ciegos o con visión reducida ven regularmente TV: el 81% mira más de una hora por día. Sin embargo, el 65% también informó problemas al buscar lo que aparece en la TV. Y en una encuesta de 2020 Reino Unido, El 80% de las personas con discapacidades dijeron que tenían problemas de accesibilidad con los videos. servicios de transmisión a pedido.

Si bien las tecnologías de asistencia pueden ayudar a los usuarios con visión reducida y sí lo hacen, es importante respaldar la accesibilidad en los recorridos de descubrimiento de contenido para apps para TV. Por ejemplo, presta especial atención a brindar una guía de navegación y etiquetar correctamente los elementos y garantizar que las apps para TV funcionen bien con la accesibilidad funciones como TalkBack. Estos pasos pueden mejorar significativamente la experiencia de usuarios con discapacidades visuales.

El primer paso para mejorar la accesibilidad es generar conciencia. Con esta guía, los ayudarán a ti y a tu equipo a descubrir problemas de accesibilidad relacionados con la app para TVs.

Recursos de accesibilidad de Android

Para obtener más información sobre la accesibilidad en Android, consulta nuestros recursos de desarrollo de accesibilidad.

Escalamiento de texto

Las apps para Android TV deben respetar la preferencia del usuario por el ajuste de texto mediante la compatibilidad con diferentes densidades de píxeles.

Presta especial atención a lo siguiente:

  • Usa wrap_content para las dimensiones de los componentes de la IU.
  • Asegúrate de que los diseños reordenen los componentes a medida que sus dimensiones cambien según la escala del texto.
  • Asegúrate de que los componentes aún se ajusten en la pantalla a escalas de texto más grandes.
  • No uses unidades de tamaño de texto sp para componentes que no son flexibles.
  • Verifica el valor de FONT_SCALE para el ajuste en las vistas personalizadas:

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

Puedes cambiar la escala de texto con el siguiente comando:

adb shell settings put system font_scale 1.2f

En Android 12 y versiones posteriores, los usuarios pueden modificar el ajuste de texto desde el dispositivo. configuración.

Diseños de teclado

En Android 13 (nivel de API 33) y versiones posteriores, puedes usar getKeyCodeForKeyLocation() a buscar los códigos de tecla de las ubicaciones clave esperadas. Esto puede ser necesario si el usuario volvió a asignar algunas ubicaciones clave o si usan un teclado que no tiene un diseño típico.

Audiodescripción

En Android 13 (nivel de API 33) y versiones posteriores, se creó una nueva preferencia de accesibilidad en todo el sistema Permite que los usuarios habiliten audiodescripciones en todas las apps. Las apps para Android TV pueden verificar la preferencia del usuario haciéndole una consulta 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
}

Las apps para Android TV pueden supervisar cuándo cambia la preferencia de un usuario agregar un objeto de escucha 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);
}