Notas de la versión de Axe DevTools Mobile del 16 de septiembre de 2026

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

16 de septiembre de 2026

Not for use with personal data

Versiones de componentes

Appium

iOS

  • Driver de iOS Appium 2 (axe-appium2-xcuitest-driver v2.7.0)
    • (Derivado de XCUITest v9.10.4)
  • Driver de iOS Appium 3 (axe-appium3-xcuitest-driver v1.6.0 )
  • (Derivado de XCUITest v12.11.0)

Cómo actualizar: Driver de iOS Appium

Android

  • Driver de Android Appium 2 (axe-appium2-uiautomator2-driver v2.7.0)
    • (Derivado de UiAutomator2 v4.2.8)
  • Driver de Android Appium 3 (axe-appium3-uiautomator2-driver v1.6.0 )
    • (Derivado de UiAutomator2 v8.6.1)

Cómo actualizar: Driver de Android Appium

Maestro

  • Axe DevTools Mobile para Maestro (axe-devtools-mobile-maestro v1.2.0)
    • (Derivado de Maestro v2.10.0)

¿Qué hay de nuevo?

Appium

Cuando inicias una sesión de prueba, mobile: axeStartSession acepta una nueva opción axeUploadResults. El valor predeterminado es true y tus resultados de accesibilidad se enviarán a Axe Developer Hub. Puedes configurar axeUploadResults a false para autenticarte con tu clave API y mantener los resultados de los escaneos locales. Cuando este valor es false, un projectId es opcional.

Maestro

Genera un informe HTML agregado y un resumen de escaneos con axeGenerateHtmlReportAndSummary. Usa esto después de uno o más comandos axeScan para generar un informe de todos los escaneos anteriores a esta llamada de API. Encuentra más detalles en Comenzando con Maestro.

Soluciones

Hemos realizado mejoras de seguridad en ambos drivers, y las credenciales de las cuentas están completamente enmascaradas en el registro de salida.

Actualizaciones

Ahora recomendamos pasar las credenciales y la configuración una vez a mobile: axeStartSession, luego llamar a mobile: axeScan sin argumentos. Define parámetros de configuración como la Clave API de Deque, el ID del Proyecto de Axe Developer Hub, una URL de cuenta para carga o una clave de licencia sin conexión, y pasa estos a la llamada axeStartSession. Ya no necesitas pasar estos en cada llamada de escaneo en tu suite de pruebas.

Deprecaciones y eliminaciones

Appium

Ahora todos los parámetros en mobile: axeScan están en desuso. Aunque actualmente todos funcionan y se comportan de la misma manera, cada uno ahora escribe una advertencia de deprecación en el registro del servidor de Appium la primera vez que se utiliza en una sesión. No se requiere acción hoy, pero la siguiente información te permitirá comenzar a hacer cambios si lo deseas.

A medida que nos alejamos del panel móvil, ten en cuenta que axeServiceUrl es reemplazado por axeAccountUrl y uploadToDashboard es reemplazado por axeUploadResults. Ambos se usan en mobile:axeStartSession.

  • axeServiceUrl — autentica una vez con axeAccountURL en mobile: axeStartSession en su lugar
  • uploadToDashboard — usa axeUploadResults en mobile: axeStartSession en su lugar

Los siguientes parámetros en mobile: axeScan ahora están en desuso. Pasa los parámetros de configuración para autenticación y elección de carga en mobile: axeStartSession solo una vez cuando configures tu suite de pruebas automatizada.

  • apiKey — autentica una vez con mobile: axeStartSession en su lugar
  • licenseKey — autentica una vez con mobile: axeStartSession en su lugar
  • axeAccountURL — proporciónalo a mobile: axeStartSession en su lugar
  • projectId — proporciónalo a mobile: axeStartSession en su lugar

Los siguientes parámetros seguirán funcionando con mobile: axeScan, aunque puedes eliminar scanName y tags en tus pruebas. Estos solo etiquetan las cargas del panel móvil y no tienen efecto en los resultados locales.

  • ignoreRules - continua usándolo con mobile: axeScan hasta nuevo aviso
  • ignoreExperimental - continua usándolo con mobile: axeScan hasta nuevo aviso
  • scanName - usado con mobile: axeScan, elimínalo de tus pruebas
  • tags - usado con mobile: axeScan, elimínalo de tus pruebas

Problemas conocidos

Si estás experimentando alguno de los problemas a continuación, por favor contáctanos en helpdesk@deque.com o support.deque.com. Entonces podremos notificarte una vez que se resuelva o de una solución identificada si no hay ninguna listada.

important
  • Las pruebas automatizadas de Axe DevTools Mobile se ejecutan en aplicaciones nativas para iOS, Android nativo y React Native. Por favor, contacta a tu representante de Deque para obtener soluciones de pruebas de accesibilidad en tu stack tecnológico.
  • Si bien puedes obtener algunos resultados de vistas web o PDFs renderizados, recomendamos altamente realizar pruebas utilizando Axe DevTools for Web o Axe Monitor para las pruebas de accesibilidad más completas para la web.

iOS

Fallo al iniciar el simulador de Desktop Analyzer

Si estás en Xcode 27 y ejecutas una aplicación Desktop Analyzer Mobile más antigua que la versión 2.0.0, la aplicación no puede abrir el simulador de iOS. Falla cuando intenta iniciar /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app No puedes comenzar un escaneo en base a simulador hasta que esto se resuelva.

Para realizar escaneos usando un simulador en Xcode 27, actualiza Desktop Analyzer a la versión 2.0.0+. Con esta actualización, ten en cuenta que los resultados de accesibilidad ahora se encuentran en Axe Developer Hub.

La indeterminación en Vision OCR en iPad afecta las reglas basadas en Vision

El SDK de Axe DevTools utiliza el marco Vision de Apple para leer texto de la pantalla en varias reglas de accesibilidad (por ejemplo, Contraste de Color, Vistas Colisionando, cualquier regla que dependa del texto detectado por Vision).

Vision no siempre devuelve el mismo texto detectado entre ejecuciones de la misma pantalla. Cuando Vision no detecta el texto en un control, las reglas que dependen de ese texto no se ejecutarán para ese elemento en ese escaneo. Los resultados pueden ser inconsistentes entre dos escaneos de la misma pantalla: un problema que falla en un escaneo puede estar ausente en el siguiente.

Cuando una regla basada en Vision informa un fallo, el fallo en sí es preciso. La inconsistencia radica en si la regla se ejecuta o no. Para superar este problema, intente lo siguiente:

  • Vuelva a ejecutar el escaneo. Si una regla basada en Vision se omitió para un control, otro escaneo de la misma pantalla a menudo lo detecta.
  • Considere cualquier fallo de una regla basada en Vision como válido: si el Contraste de Color marca un control, el problema de contraste es real y debe solucionarse.
  • Para verificación manual, utilice la referencia de Deque University para el criterio de éxito WCAG relevante. (Los enlaces se pueden encontrar en la parte inferior de cada página de reglas.)
Resultados incompletos para la regla Soporte de Tipo Dinámico en pantallas con signos de porcentaje en texto

En iOS 26 y superior, si una pantalla contiene texto con un signo de porcentaje (por ejemplo, una etiqueta de texto que diga "50% de descuento"), la regla Soporte de Tipo Dinámico puede aparecer como Incompleta en lugar de aprobar o fallar. Esta regla depende de una auditoría de accesibilidad proporcionada por Apple, y dicha auditoría detiene la ejecución de la prueba cuando encuentra signos de porcentaje. Para mantener sus pruebas en funcionamiento, nuestra regla omite la verificación para esa pantalla y reporta incompleto para cada elemento que contenga un signo de porcentaje. Todas las demás reglas se ejecutan normalmente en la pantalla, y otras pantallas no se ven afectadas.

No se requiere ninguna acción, ya que su escaneo aún se completará. Para verificar el soporte de Tipo Dinámico en estas pantallas, aumente el tamaño del texto en su dispositivo en **Configuración** > **Accesibilidad** > **Pantalla y tamaño de texto** > **Texto grande**, y confirme que el texto en la pantalla se escala adecuadamente. Este problema se ha reportado a Apple. (#2985)

La regla de Contraste de Color puede ejecutarse en elementos solo de íconos debido a OCR

La regla de Contraste de Color utiliza el marco Vision de Apple (Reconocimiento Óptico de Caracteres, u OCR) para leer texto dentro de los límites de un elemento. OCR puede ocasionalmente malinterpretar glifos similares a íconos pequeños, como chevrones de flecha hacia atrás (<), viñetas, símbolos decorativos, como texto. Cuando esto ocurre, la regla de Contraste de Color se ejecuta en un elemento que no contiene texto legible, lo que puede producir un resultado para un botón solo de íconos. Debido a que la salida de OCR no es determinista entre escaneos, el mismo elemento puede aparecer en los resultados de Contraste de Color en un escaneo y ser reportado como "NO APLICABLE" en el siguiente. Esta es una característica conocida de OCR, no un error en la regla.

Para solucionar este problema, puede usar las ignore APIs para suprimir los resultados de Contraste de Color para los elementos afectados.



// Ignore Color Contrast for a specific element by accessibility identifier
axeDevTools?.configuration.ignore(rulesFor: [
    "backButton": [AxeRuleId.ColorContrast.toString()]
])

// Or ignore Color Contrast globally
axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())

Obtenga más información sobre ignorar reglas.

Falsos positivos de título de pantalla en aplicaciones Flutter

Flutter no asigna AppBar.title a la propiedad de título de pantalla nativa - UIViewController.title, causando que la regla de Título de Pantalla falle en todas las pantallas de Flutter, independientemente de si hay un título descriptivo presente.

Esta es una limitación conocida de la plataforma Flutter registrada en flutter/flutter#185894.

Falsos positivos para la regla de Contraste de Color con fondos degradados en pantallas pequeñas

Al ejecutar verificaciones de accesibilidad en pantallas de tamaño más pequeño o con tamaños de fuente más pequeños, la regla de Contraste de Color puede reportar falsos positivos para fondos degradados. En tales casos, puede no ser capaz de determinar el color del primer plano y, en su lugar, comparar los colores de fondo entre sí, resultando en un fallo.

Para solucionar este problema, intente ejecutar verificaciones de accesibilidad en dispositivos más grandes. Alternativamente, puede optar por ignorar la regla en sus pruebas y verificar manualmente el Contraste de Color para estas vistas.

Inexacto isVisible propiedad desde XCTest

Las APIs de accesibilidad de Apple pueden informar incorrectamente contenido web dentro de WKWebView como "isVisible", incluso cuando la vista web está cubierta por superposiciones nativas (como vistas modales, alertas u otros elementos de la interfaz de usuario nativa). Esto ocurre porque el sistema de accesibilidad verifica si el contenedor de WKWebView en sí es visible, en lugar de si su contenido web está realmente despejado y puede ser percibido por el usuario.

Bug de accesibilidad en iOS 26 con los stepper

iOS 26 contiene un error de accesibilidad donde los botones estándar de stepper no anuncian "atenudado" mediante Tecnología Asistiva para indicar que no están habilitados. Como resultado, las reglas de iOS también ven estos botones como habilitados, incluso si no lo están. Se ha presentado un informe de error a Apple, pero hasta que esto se solucione, las siguientes reglas pueden informar resultados en botones de stepper deshabilitados: AssociatedText, InaccessibleAction, y ColorContrast.

Hasta que Apple solucione este error, la resolución será [ignorar las reglas](ios-ignore-rule). Los botones de stepper predeterminados tienen los identificadores "Decrementar" e "Incrementar", y pueden ser ignorados por identificador si es necesario.

Color Contrast rule does not run when text and background colors are the same

Our Color Contrast rule depends on Machine Learning to detect text, which ensures that the text being scanned is visible to users of your application. In cases where the text contained in a view is the same color as the background, our Machine Learning algorithm is unable to detect if any text is present, so the Color Contrast rule does not run on this view.

Falso Positivo: LabelInName y LabelAtFront en SwiftUI y Apps Multiplataforma

Algunas pantallas pueden reportar falsos positivos con LabelInName y LabelAtFront debido a una propiedad associatedText incorrecta encontrada (#1622)

Reglas contra controles anidados

Al considerar una mejora para nuestras reglas, encontramos que en XCTest, los controles anidados no se retornan en el árbol de accesibilidad. Se ha presentado un informe de error a Apple. (#1110)

La regla del Nombre de ImageView necesita revisar resultados para las aplicaciones de UIKit

En aplicaciones de UIKit, una imagen sin una `accessibilityLabel` no es enfocada por la tecnología asistiva por defecto.
Las propiedades que usamos para verificar la posibilidad de enfoque desde Apple pueden ser inexactas cuando se establece un `accessibilityIdentifier` en la imagen. Debido a este comportamiento inesperado, los resultados de problemas de Nombre de ImageView en aplicaciones de UIKit se reportarán como Necesitan Revisión. Se ha presentado un informe de error a Apple. (#1633)

Falso Positivo: En Vista de Desplazamiento, Label In Name, Label at Front, y v2.11.0 Nombre de Vista de Imagen y Nombre de Control Activo

Estamos trabajando activamente en soluciones para los siguientes falsos positivos y actualizaremos esta lista a medida que se lancen las correcciones.

In Scroll View
El texto dentro de elementos con comportamiento de banner, cabeceras/pies de página fijos, botones de acción flotantes y vistas de pestañas personalizadas pueden ser marcados con un mensaje de "Necesita Revisión" o "Fallo". Para hacer que estos elementos estén disponibles para aquellos que requieran texto más grande, utilice UILargeContentViewer. (#622, #2077)

v2.11.0 Image View Name & Active Control Name
Si un UIImageView tiene un accessibilityIdentifier establecido pero no es enfocada por VoiceOver, y tiene controles enfocables anidados dentro de ella, Nombre de Control Activo puede informar un falso positivo en el UIImageView. Eliminando el accessibilityIdentifier resuelve el problema. Se ha reportado un error a Apple. (#1633)

Label In Name and Label At Front
Estas dos reglas buscan la etiqueta visible de un control entre elementos cercanos para ayudar a determinar el estado de la regla. En algunas jerarquías de vista, el texto cercano incorrecto puede ser detectado, causando que estas reglas fallen. (#1622)

Android

Falsos positivos de etiquetas al frente con texto visible oculto

La regla Etiqueta al Frente verifica que la etiqueta visible de un elemento aparezca al inicio de su texto anunciado. Una falla en la regla puede ocurrir cuando el texto visible de un elemento interactivo contiene una abreviatura (por ejemplo, "GB", "km") o un identificador oculto/truncado, y el anuncio de accesibilidad consta de las palabras representadas (por ejemplo, "gigabytes", "kilómetros"), aunque este sea el patrón recomendado para hacer el contenido abreviado o truncado accesible para lectores de pantalla.

Si la primera parte de la etiqueta visible de un elemento interactivo coincide con el inicio del anuncio del lector de pantalla y solo la parte abreviada / oculta difiere, el resultado marcado puede ser ignorado de manera segura. Verifique con un lector de pantalla que el anuncio completo se lea como se esperaba.

Preocupaciones potenciales de accesibilidad para Texto Enfocable

Al usar texto decorativo en vistas como "Iconos de Contacto", es posible introducir un problema de accesibilidad. Si está utilizando una vista de texto para mostrar letras en lugar de generar imágenes con las letras deseadas como vectores, y luego declara que la vista de texto no es importante para la accesibilidad, no podremos determinar de manera confiable si ha introducido una violación de accesibilidad.

Si edita texto enfocable para ignorar dos o menos caracteres, puede inadvertidamente ignorar muchos botones de una sola palabra en varios idiomas (por ejemplo, "OK", "No", "Sí"). Para evitar estos problemas, debe tomar las letras deseadas de la palabra que desea representar en el ícono y generar las letras como parte de la imagen en lugar de como vistas de texto separadas. `FocusableText` entonces no se ejecutará sobre esas vistas.

Falsos positivos de título de pantalla en aplicaciones Flutter

Flutter no asigna AppBar.title a la propiedad de título de pantalla nativa - Activity.setTitle, causando que la regla de Título de Pantalla falle en todas las pantallas de Flutter, independientemente de si hay un título descriptivo presente.

Esta es una limitación conocida de la plataforma Flutter registrada en flutter/flutter#185894.

Falso positivo en la detección de texto anunciado

En algunos casos, las tecnologías de asistencia dependen de AccessibilityEvent descripciones del sistema Android para anunciar información al usuario cuando no hay otro anuncio disponible. Dado que AccessibilityEventse activan por acciones del usuario, no podemos acceder a la descripción correcta si esta información no se proporciona.

Para evitar este problema, asegúrese de que todas las vistas relevantes estén marcadas como importantes para la accesibilidad. Esto permitirá que Talkback acceda a la información de la vista, que nuestra herramienta entonces pueda detectar.

La regla de Contraste de Color no se ejecuta cuando los colores de texto y fondo son iguales

Nuestra regla de Contraste de Color depende del Aprendizaje Automático para detectar texto, lo que asegura que el texto que se escanea sea visible para los usuarios de su aplicación. En casos donde el texto contenido en una vista es del mismo color que el fondo, nuestro algoritmo de Aprendizaje Automático no puede detectar si hay texto presente, por lo que la regla de Contraste de Color no se ejecuta en esta vista.

EditTextName en Android 7 (SDK 24-25)

Las aplicaciones escritas con XML que utilizan la función de texto de ayuda pueden ver falsos positivos con la EditTextName regla. El texto de ayuda no se introdujo hasta Android 8 (SDK 26). Usar este elemento en su aplicación XML asignará el texto de ayuda al valor del campo de entrada de texto. Las versiones más recientes de Android están mejor equipadas para hacer que esta experiencia sea accesible.

Para superar este problema, nuestra primera recomendación es ejecutar sus pruebas en versiones más nuevas de Android. Sin embargo, si es importante que la aplicación sea accesible en versiones anteriores de Android, podría considerar evitar el uso de la hintText función, ya que no es oficialmente compatible.

Vistas ocultas de Android que retornan resultados

Puede ver resultados para vistas que están ocultas detrás de otras vistas en la pantalla. Estas vistas ocultas no están disponibles para las tecnologías de asistencia, pero Axe DevTools Mobile todavía las reporta como problemas.

Estamos trabajando en una solución para este problema complejo. Mientras tanto, si TalkBack no puede acceder a estas vistas, puede ignorar los problemas correspondientes. No requieren una solución para garantizar la accesibilidad.

Error al ejecutar ML Kit Text Detection

La detección de texto de ML Kit es requerida en muchas de las reglas de Axe DevTools Mobile para asegurar la precisión de los resultados. La biblioteca de ML Kit debería importarse automáticamente al referenciar Axe DevTools Mobile en sus pruebas automatizadas de Espresso o UIAutomator. Sin embargo, en algunos casos, la importación automática no ocurre y verá el siguiente error en el logcat:


Axe DevTools Android: Error al ejecutar mlKit Text Detection: MlKitContext no ha sido inicializado.

Para superar este problema, debe importar la biblioteca ML Kit manualmente en su proyecto. En el archivo de su aplicación build.gradle , añada lo siguiente bajo dependencias:

debugImplementation 'com.google.mlkit:text-recognition:16.0.1'

Encuentre un ejemplo completo de la importación de la biblioteca ML Kit en la sección Comenzando de Android Mobile SDK, bajo Implementación

Espaciado de Objetivo de Toque y Jetpack Compose

La regla de Espaciado de Objetivo de Toque actualmente no se ejecuta en ningún componente de control deslizante que fue escrito en Jetpack Compose. No se puede tomar ninguna acción en este momento. ¡Sin embargo, una solución está por venir!

Error al guardar resultados localmente en API 30

En Android API 30, uno de los lugares donde intentamos guardar resultados localmente tiene un error de permisos. El resultado aún se guardará como un archivo JSON a pesar de que se muestre este error. El error puede ser suprimido comentando el código en el siguiente bloque:

def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
	executable "${android.getAdbExecutable().toString()}"
	args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'

//    finalizedBy {
//        fetchAndroidFolderAxeReportsTask
//    }
}

Por favor, tenga en cuenta que este código solo debe comentarse para API 30 ya que causará problemas al guardar localmente para otros niveles de API.

Detección de desplazamiento en Aplicaciones Híbridas y Aplicaciones Multiplataforma

En algunas aplicaciones híbridas y multiplataforma, podemos devolver resultados inesperados cuando los elementos en una vista de desplazamiento están parcialmente fuera de la pantalla. Para probar un elemento de accesibilidad, asegúrese de que esté completamente en pantalla antes de realizar el escaneo.

App Analyzer: El botón de acción flotante desaparece

Introducida con API 31 (Android 12) está la capacidad de ocultar superposiciones que no sean del sistema. Para utilizar la aplicación Axe Analyzer, asegúrese de que esta configuración no esté activada. Si ha optado por utilizar esta función para sus mejoras de seguridad, recomendamos dejarla desactivada para las versiones de prueba internas donde pueda utilizar datos de prueba de manera segura y eliminar preocupaciones de seguridad de esa manera. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.

Para utilizar la aplicación Axe Accessibility Analyzer, actualice cualquier llamada al método setHideOverlayWindows(true) a setHideOverlayWindows(false) en las ventanas de actividad afectadas.

Falta de Captura de Pantalla (Cuadro Negro) en el Tablero

Para desbloquear la funcionalidad completa de Axe DevTools para Móviles, asegúrese de que las capturas de pantalla estén habilitadas. Recomendamos habilitar las capturas de pantalla en una versión de depuración o prueba de su aplicación que utilice datos simulados para evitar preocupaciones de seguridad. Consulte nuestra guía para habilitar capturas de pantalla en aplicaciones Android.

Bloqueo cuando minifiedEnabled está configurado como verdadero

Si minimiza su compilación, verá un bloqueo con un registro de error que informa que no se pudo encontrar un adaptador al intentar iniciar sesión en la biblioteca Axe DevTools. Desactive la minimización para sus compilaciones de depuración con Axe DevTools implementado. (#729)

Las compilaciones con r8 habilitado lanzan un error

Una compilación con r8 habilitado puede intentar minimizar la biblioteca axeDevTools, lo que resulta en un error similar a:


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, añada la siguiente línea a su archivo ProGuard para mantener las clases de axeDevTools:

keep class com.deque.** { *; }
Mensajes de error al usar APIs de Compose

Las API de Compose están obsoletas, por favor utilice las API independientes del diseño para seguir recibiendo actualizaciones. Si continúa usando las API de Compose y encuentra un error parecido a `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)` o `No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?`, por favor consulte la API de Compose setTestTag.

MAUI: regla Edit Text Name

Debido a las limitaciones de la arquitectura de aplicaciones MAUI que se renderiza en el ecosistema de Android, la regla Edit Text Name aparecerá como Necesita revisión en el panel cuando se sospeche de un fallo para la versión 5.5.0 del SDK en adelante. Por favor confirme manualmente el comportamiento correcto en este caso.

Android Nativo: Diálogos/Modales Personalizados

Cuando implemente diálogos o modales personalizados que no extienden los controles nativos, puede obtener resultados para vistas detrás del modal. En este caso, recomendamos no ejecutar nuestra herramienta contra estos modales o diálogos personalizados y, en su lugar, verificarlos manualmente para garantizar que funcionen con tecnología asistiva según lo requerido.

Panel Web

Captura de Pantalla Faltante

Si falta la captura de pantalla en la página de detalles del escaneo, es posible que su aplicación esté impidiendo que se tomen capturas de pantalla. A menudo esto se hace por razones de seguridad en su aplicación de producción. Considere eliminar este requisito para su compilación de prueba para permitir la plena funcionalidad en el Panel de Axe DevTools Mobile.

Algunos nombres de escaneo de Android no están formateados

Algunos nombres de escaneo de Android que se asignan por defecto al título de la pantalla aparecerán como el nombre completo de la clase, incluido el identificador del paquete. En una futura versión, esto se resolverá para que el título de la pantalla se formatee en un nombre más legible. Como solución temporal, puede establecer el nombre del escaneo desde el panel o los frameworks. (#1643)