Remediación del escáner de accesibilidad
¿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.
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.