Etiquetas de contenido

Los usuarios de los servicios de accesibilidad (como lectores de pantalla) dependen de las etiquetas de contenido para comprender el significado de los elementos de una interfaz.

En algunos casos, como cuando la información se comunica en forma gráfica en un elemento, las etiquetas de contenido pueden incluir una descripción de texto del significado o la acción asociados con el elemento.

Si los elementos de una interfaz de usuario no incluyen etiquetas de contenido, algunos usuarios pueden tener dificultades para comprender la información que reciben o para llevar a cabo acciones en la interfaz.

Implementación

Ver

Cuando se usan ciertos tipos de Views en una interfaz, deben incluir etiquetas de contenido que describan el propósito o la acción asociados con esa View.

Cómo incluir etiquetas de contenido

android:contentDescription

Cuando usas una ImageView, un ImageButton, una CheckBox o cualquier otra View que comunique la información de forma gráfica, usa un atributo android:contentDescription para ofrecer una etiqueta de contenido para esa View.

En ocasiones, una etiqueta de contenido depende de información que solo está disponible durante el tiempo de ejecución. A su vez, el significado de una View puede cambiar con el tiempo. Por ejemplo, un botón de reproducción puede transformarse en uno de pausa mientras se reproduce música. En estos casos, usa View#setContentDescription(CharSequence contentDescription) para actualizar la etiqueta de contenido en el momento adecuado.

Por lo general, cuando un servicio de accesibilidad describe un ViewGroup, combina etiquetas de contenido de sus Views secundarias. Para anular este comportamiento y señalar que quieres incluir tu propia descripción para ese elemento y sus Views secundarias no enfocables, configura una contentDescription en el ViewGroup. Es posible que debas incluir etiquetas de contenido de Views secundarias en un contentDescription cuando se establecen en un ViewGroup.

android:hint

Para EditTexts o TextViews editables, usa un atributo android:hint para indicar el propósito del campo de texto. No se debe usar una android:contentDescription como una etiqueta de contenido para Views editables.

android:labelFor

Usa un atributo android:labelFor para indicar que una View debe servir como una etiqueta de contenido de otra View.

Casos en los que no se requieren etiquetas de contenido

En los siguientes casos, no es necesario incluir etiquetas de contenido específicamente:

  • El texto que aparece en TextView (o sus subclases) se incluye automáticamente para los servicios de accesibilidad. Por lo general, no se necesitan etiquetas de contenido adicionales.
  • Las imágenes decorativas o que no transmiten información significativa de manera gráfica no requieren etiquetas de contenido. En estos casos, establece un atributo android:contentDescription de "@null" o uno android:importantForAccessibility de "no".

Para obtener más información, descubre cómo implementar etiquetas de contenido en la Capacitación para desarrolladores de Android y las Guías de las APIs.

Compose

Cuando se usan algunos tipos de funciones de componibilidad en una interfaz, deben incluir etiquetas de contenido que describan el propósito o la acción asociados a esa función.

Cómo incluir etiquetas de contenido

Descripciones de contenido

Para ofrecer una etiqueta de contenido para una función de componibilidad de Image, Icon o cualquier otra función de componibilidad de nivel inferior que comunique información de forma gráfica, establece la descripción del contenido.

  • Una etiqueta de contenido puede depender de la información del entorno de ejecución y el significado de la función de componibilidad puede cambiar. Por ejemplo, un botón de reproducción puede transformarse en uno de pausa mientras se reproduce música.
  • En algunos casos, se recomienda que fusiones los elementos en uno solo que sea enfocable y en el que se combinen las etiquetas de contenido de sus elementos subordinados. Descubre cómo combinar elementos.

Parámetro de etiqueta

Algunas funciones de componibilidad, como TextField, admiten un parámetro label opcional. Cuando la etiqueta se establece, el elemento muestra la función de componibilidad que se pasó a label. Los servicios de accesibilidad se pueden usar para describir la función de componibilidad.

Casos en los que no se requieren etiquetas de contenido

En algunos casos, como los siguientes, no es necesario agregar etiquetas de contenido:

  • El texto que aparece en Text, o en otras funciones de componibilidad Text, se incluye automáticamente en los servicios de accesibilidad
  • Las imágenes decorativas o que no comunican información significativa de manera gráfica
    • En estos casos, establece el parámetro contentDescription o la propiedad Modifier.semantics#contentDescription en null, o llama a Modifier#clearAndSetSemantics.

Diseño

Cuando diseñes una interfaz de usuario, ten en cuenta cómo se debe etiquetar el contenido representado de manera gráfica para los usuarios de servicios de accesibilidad. Las etiquetas de contenido deben seguir estos principios:

  • Ser breves y describir con claridad el significado o la acción asociados con un elemento
  • No incluir el tipo o estado de un elemento en su etiqueta de contenido
  • Si el elemento está asociado con una acción, describir la acción, pero no la representación gráfica
  • No indicarle al usuario cómo interactuar específicamente con el elemento

Para obtener más información, lee los Lineamientos de redacción de accesibilidad de Material Design.

Prueba

Para verificar manualmente que no falten etiquetas de contenido en la interfaz de usuario de una app, haz lo siguiente:

  1. Activa TalkBack.
  2. Abre la app.
  3. Usa los gestos de navegación lineal para mover el foco de accesibilidad a cada elemento de la pantalla.
  4. Si TalkBack mueve el enfoque a algún elemento, pero no enuncia una representación significativa de ese elemento o enuncia un mensaje “no etiquetado”, es posible que falte una etiqueta de contenido en ese elemento.

Las herramientas de pruebas automatizadas de Android pueden detectar las etiquetas de contenido que faltan. Te recomendamos usar la Prueba de accesibilidad para Android si quieres realizar una prueba manual de la app en tu dispositivo. Si quieres realizar pruebas automatizadas, activa la verificación de accesibilidad de Espresso y Robolectric.

Búsqueda
Borrar búsqueda
Cerrar la búsqueda
Menú principal
11316201481943308353
true
Buscar en el Centro de asistencia
true
true
true
true
true
717068
false
false