Notas de la versión de axe DevTools Mobile del 18 de octubre de 2023
18 de octubre de 2023
Versiones de componentes
- axeDevToolsXCUI v2.8.0
- axe-devtools-android v4.2.0
¿Qué hay de nuevo?
Compatibilidad con WCAG 2.2
WCAG 2.2 se lanzó oficialmente el 5 de octubre. Nuestra regla "Espaciado de Objetivo Táctil" ha dejado de estar en estado experimental. Esta regla se ajusta a WCAG 2.2. 2.5.8 y garantiza que los objetivos cumplan con un tamaño mínimo o tengan suficiente espacio alrededor de ellos. Esto es importante para las personas con discapacidades físicas que no pueden hacer clic en botones pequeños que están muy juntos. Obtenga más información sobre la versión WCAG 2.2. Consulte la documentación de la Regla de espaciado de objetivos táctiles para iOS y la Regla de espaciado de objetivos táctiles para Android.
¿Sabía usted? La regla de espaciado del objetivo táctil (WCAG 2.2, 2.5.8) cumple con los estándares AA, mientras que la regla de tamaño del objetivo táctil (WCAG 2.1, 2.5.5) cumple con los estándares AAA. Para controles importantes, WCAG recomienda apuntar a la regla más estricta de tamaño de objetivo táctil para cumplir con los estándares AAA. Deque también recomienda aplicar una regla más estricta en dispositivos móviles porque exige el cumplimiento de la directriz 44ptx44pt de Apple y se alinea más con la directriz 48dpx48dp de Google para garantizar que no haya problemas al enviar su aplicación a las tiendas de aplicaciones.
Cambio importante: escanear solo vistas visibles
axe DevTools Mobile ahora solo escaneará las vistas que sean visibles para el usuario en el momento del escaneo. Anteriormente, el valor predeterminado era escanear todas las vistas, incluso aquellas que estaban fuera de la pantalla o ocultas por otras vistas.
¿Cómo mejora esto los resultados?
- Al escanear únicamente lo que es visible para el usuario, los resultados reflejan con mayor precisión la experiencia de un usuario con una discapacidad o alguien que utiliza tecnología de asistencia. No se escaneará nada que esté detrás de un diálogo o modal y al que el usuario o la tecnología de asistencia no puedan acceder.
- Las reglas de visión por computadora, como el contraste de color, no se ejecutan en vistas que están fuera de la pantalla, por lo que anteriormente, las vistas fuera de la pantalla solo recibían resultados de un conjunto de reglas limitado. Al escanear únicamente las vistas dentro de los límites de la pantalla, puede estar seguro de que todas las vistas escaneadas se benefician del conjunto de reglas completo.
¿Qué significa esto para tu equipo?
Si actualmente tiene las casillas para "Filtrado de problemas" en el Tablero desmarcadas, no notará ninguna diferencia en los resultados del Tablero. Las vistas que no son visibles para el usuario ya están excluidas de los resultados.
De lo contrario, una vez que actualice a axeDevToolsXCUI v2.8.0 y axe-devtools-android v4.2.0:
- Las vistas que están ocultas detrás de otras vistas, como modales o ventanas emergentes, no tendrán resultados de accesibilidad.
- Las vistas que están fuera de la pantalla, como aquellas encima o debajo de la posición de desplazamiento actual, no tendrán resultados de accesibilidad.
- Consejo: realice un escaneo en cada posición de desplazamiento de una pantalla larga para asegurarse de capturar todos los problemas de accesibilidad. Por ejemplo, si la pantalla de inicio de tu aplicación ocupa 3 pantallas, deberás realizar 3 escaneos como se muestra a continuación:
- Para pantallas largas con un tipo de vista repetido, como una lista, puede que no sean necesarios múltiples escaneos en cada posición de desplazamiento. Un solo escaneo de la primera área visible probablemente capturará los problemas de accesibilidad recurrentes.
- Consejo: realice un escaneo en cada posición de desplazamiento de una pantalla larga para asegurarse de capturar todos los problemas de accesibilidad. Por ejemplo, si la pantalla de inicio de tu aplicación ocupa 3 pantallas, deberás realizar 3 escaneos como se muestra a continuación:
iOS
- La [regla de texto asociado] (ios-associated-text) ha sido promovida fuera del estado experimental. Esta regla garantiza que un control obtenga su nombre accesible de una etiqueta cercana disponible para tecnologías de asistencia como VoiceOver y Voice Control.
- La regla de Contraste de color recibió una mejora para capturar un tamaño de fuente estimado y mejorar aún más la precisión de los resultados. Este cambio significa que los resultados de algunos escenarios ahora informarán el estado "Pasó" o "Falló" en lugar de "Necesita revisión".
Android
- Cambio importante en las reglas personalizadas: la interfaz para ejecutar reglas personalizadas en Android recibió una actualización para devolver un
RunRuleResult
objeto en lugar de unString
tipo. Vea un ejemplo completo del cambio o más información en reglas personalizadas en Android. - Después de una revisión cuidadosa, hemos decidido eliminar las reglas experimentales de vista oculta de nuestra biblioteca: Enfoque de vista activa oculta y Enfoque de vista informativa oculta. Estas reglas experimentales han pasado por muchas iteraciones a medida que hemos recopilado comentarios durante dos años. Descubrimos que automatizar estas reglas tiene el potencial de devolver falsos positivos y, por lo tanto, decidimos eliminarlas de nuestro conjunto de reglas automatizadas para respaldar nuestro compromiso de 0 falsos positivos. Con esta versión, hemos movido las reglas de vista oculta al estado "ignoradas". Ya no aparecerán en tu recuento de resultados "reprobados" o "aprobados". En nuestro próximo lanzamiento (fecha por determinar) se eliminarán por completo de la biblioteca.
- Hemos agregado resúmenes más descriptivos a las reglas para describir mejor por qué están marcadas como Pasadas, Fallidas o Necesitan revisión.
- Las API de Compose ahora aceptan
ComposeEmptyTestRule
lanzar una actividad usandoActivityScenario
. Esto puede ser más fácil que usarAndroidComposeTestRule
, especialmente cuando se utilizan vistas XML y Compose juntas. Obtenga más información sobre el uso de Regla de Prueba Vacía Compose. - Con este lanzamiento, actualizamos de la versión 1.7 de Kotlin a Kotlin 1.9 para garantizar que nuestras bibliotecas sigan siendo compatibles con las últimas versiones de Jetpack Compose. La versión 1.9 de Kotlin tiene compatibilidad con versiones anteriores de Kotlin 1.8 y superiores. Si su aplicación se basa en una versión de Kotlin inferior a 1.8, continúe usando axe-devtools-android v4.1.0 o anterior.
- Actualizamos de Moshi 1.12.0 a 1.15.0 y de Jetpack Compose 1.4.3 a 1.5.1.
Correcciones de errores
iOS
- Tough Target Spacing recibió algunas actualizaciones para manejar casos extremos de controles ocultos y elementos completamente superpuestos.
- Mejoras en la detección de elementos de accesibilidad en casos extremos que mejorarán la precisión de los resultados para diversas reglas que prueban los controles.
- La regla de tipo dinámico no se ejecutará en controles sin texto visible.
- El framework ya no se congela en los elementos Picker. No se esperan cambios en los resultados ya que no hay reglas actuales dirigidas a los elementos Picker. Buscaremos oportunidades en el futuro.
Android
- Hemos agregado propiedades de orientación de pantalla legibles por humanos a los valores analizados para la regla de Orientación de pantalla. Anteriormente, estos eran valores enteros que no podían ser fácilmente comprendidos por la persona que revisaba los resultados.
- Ahora puede actualizar la lista de reglas personalizadas cuando utilice el escaneo agnóstico de la disposición a través del Registro de instrumentación.
Panel de control
- Mejoras de accesibilidad a la vista de árbol en la función "Inspeccionar". Ahora puede navegar por la vista de árbol con éxito utilizando un teclado o tecnología de asistencia.
Problemas Conocidos
Si experimenta alguno de los problemas que se indican a continuación, comuníquese con nosotros a helpdesk@deque.com o support.deque.com. Luego podremos notificarle una vez resuelto o de una solución alternativa identificada si no hay ninguna en la lista.
- Las pruebas automatizadas de axe DevTools Mobile se ejecutan en aplicaciones nativas de iOS, Android y React Native. Comuníquese con su representante de Deque para obtener soluciones de pruebas de accesibilidad en su pila tecnológica.
- Si bien puede obtener algunos resultados de las vistas web o los PDF renderizados, le recomendamos encarecidamente realizar pruebas con axe DevTools for Web o axe Monitor para obtener las pruebas de accesibilidad más completas para la web.
axe DevTools Mobile para iOS
La regla Supports Dynamic Type no funciona con el simulador de iOS 15 Pro
Hay un problema que afecta al simulador de iPhone 15 Pro que impide que se ejecute la regla Supports Dynamic Type. Si ha optado por la regla Supports Dynamic Type, no podrá probarla usando un simulador de iPhone 15 Pro. Se ha informado de un error a Apple.
Reglas contra los controles anidados
Mientras buscábamos una mejora para nuestras reglas, descubrimos que en XCTest, los controles anidados no se devuelven en el árbol de accesibilidad. Se ha informado de un error a Apple. (#1110)
Falso positivo: en la vista de desplazamiento, ActiveControlName
Estamos trabajando activamente para corregir los siguientes falsos positivos y actualizaremos esta lista a medida que se publiquen las correcciones.
En Scroll View
Puede informar problemas de texto dentro de elementos que funcionan como banners. Para que estos elementos estén disponibles para aquellos que requieren un texto más grande, utilice UILargeContentViewer
. (#622)
Nombre de control activo
Si UIImageView tiene un `accessibilityIdentifier` establecido pero VoiceOver no puede enfocarlo y tiene controles enfocables anidados dentro de él, ActiveControlName puede informar un falso positivo en UIImageView. Quitar el `accessibilityIdentifier` resuelve el problema. Se ha informado de un error a Apple. (#1226)
Falso negativo: Image View Name, texto enfocable en iOS 13 a través de iOS 14.8.1
Estamos trabajando activamente para corregir los siguientes falsos negativos y actualizaremos esta lista a medida que se publiquen las correcciones.
Nombre de la vista de la imagen
Si un UIImageView tiene un `accessibilityIdentifier` establecido pero VoiceOver no puede enfocarlo, ImageViewName puede informar un falso negativo en UIImageView. Quitar el `accessibilityIdentifier` resuelve el problema. Se ha informado de un error a Apple. (#1226)
Texto enfocable
Los elementos marcados como elementos no accesibles pueden arrojar resultados incorrectos debido a un error en el marco de Apple.
axe DevTools Mobile para Android
Fallo al usar Proguard
Si su compilación de depuración o prueba utiliza Proguard, siga los pasos para excluir Deque en su configuración de Proguard.
Se bloquea cuando `minifiedEnabled` se establece como verdadero
Si minimiza su construcción, verá un cierre inesperado con un registro de error que informa que no se pudo encontrar un adaptador al intentar iniciar sesión en la biblioteca DevTools de axe. Deshabilite la minimización para sus construcciones de depuración con axe DevTools implementado. (#729)
Errores al compilar con el proyecto Java8 y axe DevTools Android 3.1.0
Pruebe las siguientes importaciones:
implementation 'androidx.core:core-ktx:1.9.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'Después de importar la biblioteca anterior, si ve errores relacionados con la versión minSDK para la biblioteca core-ktx, intente lo siguiente en su Android Manifest:
<uses-sdk tools:overrideLibrary="androidx.core" />
Las compilaciones con r8 habilitado arrojan un error
Una construcción con r8 habilitado puede intentar minimizar la biblioteca axeDevTools, lo que genera un error similar al siguiente:
Caused by: java.lang.NullPointerException: throw with null exception at g.b.b.a$a.a(Unknown Source:1) at g.b.b.a$a.a(Unknown Source:0) at g.b.b.a.a(AccessToken.java:190)Para resolver este error, agregue la siguiente línea a su archivo ProGuard para mantener las clases axeDevTools:
keep class com.deque.** { *; }
Mensaje de error similar a:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
Si encuentra un error como el siguiente `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)`, comuníquese con nosotros a helpdesk@deque.com o support.deque.com para obtener ayuda. En determinadas condiciones, es posible que existan dos nodos raíz de Compose al mismo tiempo.
Panel de control de axe DevTools Mobile
Algunos nombres de escaneo de Android no tienen formato
Algunos nombres de escaneo de Android que están predeterminados en el título de la pantalla aparecerán como el nombre de clase completo, incluido el identificador del paquete. En una versión futura, se resolverá este problema para que el título de la pantalla tenga un formato más legible. Como solución alternativa, puede configurar el nombre del análisis desde el panel de control o los frameworks. (#1643)