Remediación del escáner de accesibilidad

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

¿Su equipo utiliza el escáner de accesibilidad de Android de Google?

Esta sección proporcionará consejos de remediación para las reglas que el escáner verifica. Obtenga más información sobre cómo aprovechar Accessibility Scanner y axe DevTools Mobile.

Visite las Pautas del escáner de accesibilidad de Google para obtener la lista completa de verificaciones, descripciones y actualizaciones actuales.

Etiquetado de contenido

Falta etiqueta del elemento

Es posible que al contenido dentro de la vista le falte información contextual.

Para cualquier vista que proporcione información al usuario, proporcione una de las siguientes opciones para resolver este problema de accesibilidad:

  • android:contentDescription: En la mayoría de los casos, todo lo que se necesita es agregar una descripción del contenido.
  • android:hint: Se pueden agregar sugerencias para describir el tipo de datos que el usuario debe ingresar para las vistas de texto editables.
  • android:labelFor: Esta etiqueta le permitirá asignar una vista como etiqueta para otra vista.
note

Dentro de Compose, la descripción del contenido y la sugerencia se encuentran como parámetros al definir la vista o a través de la interfaz Modificador.

Imágenes decorativas

Las imágenes decorativas que no proporcionan información importante se pueden marcar como no importantes para la accesibilidad.

Para XML: android:importantForAccessibility="no"

O para componer:

Image(
      imageVector = Icons.Filled.AccountCircle,
      contentDescription = null // decorative
    )

Artículo etiquetado con tipo o estado

Es posible que una de sus vistas tenga un estado redundante. Android proporciona vistas predeterminadas con estados como activado, desactivado, marcado o desmarcado. Agregar un estado a la lectura en voz alta puede generar una experiencia confusa.

Para resolver este problema de accesibilidad, asegúrese de lo siguiente:

  • Las casillas de verificación tienen una etiqueta asociada para el contexto
  • Las descripciones de estado no se agregan a la descripción de la vista.
<TextView
      android:id="@+id/edit_text_label"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:labelFor="@+id/example"
      android:text="Check Label" />

<androidx.appcompat.widget.AppCompatCheckBox
      android:id="@+id/example"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/with_text"/>

Descripciones de artículos duplicados

Se encontró que varias vistas dentro de la jerarquía tenían descripciones idénticas.

Esto no es una falla de WCAG y puede haber casos en los que esto sea un requisito. Si las descripciones de contenido están duplicadas, asegúrese de que cada una proporcione suficiente contexto para permitir que el usuario sepa cuál sería el resultado de interactuar con la vista.

Propósito del enlace poco claro

Cualquier enlace debe contener suficiente texto para transmitir su propósito. Al utilizar descripciones como "Haga clic aquí", debe asegurarse de que el texto circundante contenga suficiente información para descifrar el propósito del enlace.

Implementación - Elementos en los que se puede hacer clic

Enlaces en los que se puede hacer clic

Los enlaces deben mostrarse claramente y ser fácilmente accesibles desde el menú contextual local. Google sugiere usar URLSpan o la clase de conveniencia Linkify para mostrar hipervínculos en la interfaz de usuario de una aplicación para aumentar la probabilidad de que estos enlaces se detecten y se activen.

Vistas duplicadas en las que se puede hacer clic

Uno de los elementos en los que se puede hacer clic en la vista se superpone con otro elemento en el que se puede hacer clic. Puede resolver este problema de accesibilidad de una de las siguientes maneras:

  • Mover los elementos en los que se puede hacer clic para que no colisionen ni se superpongan.
  • Si las vistas no se pueden mover, asegúrese de que ambas vistas tengan un área táctil de tamaño adecuado y que cualquiera pueda interactuar con los elementos sin problemas.

Etiqueta de elemento editable

Los campos editables deben tener una etiqueta que describa el propósito del campo.

Un ejemplo con EditText:

<TextView
      android:id="@+id/edit_text_label"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:labelFor="@+id/edit_text"
      android:text="Enter your username" />

<EditText
      android:id="@+id/edit_text"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:hint="Hint" />

Un ejemplo con CheckBox:

Utilice a TextView y asócielo con el elemento CheckBox:

val checkBox: CheckBox = ....... // Role: CheckBox
val label: TextView = ....... // Role: Label
label.setLabelFor(checkBox.getId()) // Associate the Checkbox with its Name

Tipo de elemento no compatible

Parece que se puede tener una vista personalizada. Edite el AccessibilityNodeInfo para proporcionar al className un propósito apropiado para la vista.

val frameLayout = findViewById<FrameLayout>(R.id.custom_view)
frameLayout.setAccessibilityDelegate(object : View.AccessibilityDelegate() {
      override fun onInitializeAccessibilityNodeInfo(
          host: View,
          info: AccessibilityNodeInfo
      ) {
            info.className = "ClassName"
            info.contentDescription = "ContentDescription"
            super.onInitializeAccessibilityNodeInfo(host, info)           
      }
})

Orden de recorrido

Si puede navegar por sus vistas usando TalkBack de una manera que tenga sentido contextual, esto puede ser un falso positivo y no es necesario abordarlo.

Si TalkBack no proporciona la misma información que leer la aplicación sin tecnología de asistencia, puede considerar editar el orden de las vistas. Dado que puede ser complicado hacerlo correctamente y también puede incluir agregar accidentalmente un bucle infinito, recomendamos no editar el orden de recorrido. Para alterar el orden de recorrido, utilice android:accessibilityTraversalBefore y android:accessibilityTraversalAfter.

Escala de texto

Cualquier elemento de texto debe utilizar píxeles escalables (sp) en lugar de píxeles independientes de la densidad (dp) para permitir que el texto se escale con la configuración de accesibilidad del tamaño de fuente del dispositivo.

Tamaño del área de toque

Para obtener recomendaciones y consejos de solución para las áreas visuales y táctiles de los controles activos, consulte la Regla de tamaño del objetivo táctil para nuestra biblioteca de Android.

Contraste bajo

El contraste de color entre el texto y su fondo debe cumplir con los umbrales de relación mínima WCAG 2 AA. Obtenga información sobre esta relación y encuentre consejos de remediación para Contraste Bajo en la Regla de contraste de color para nuestra biblioteca de Android.