Notas de la versión de Axe DevTools Mobile del 30 de junio 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

30 de junio de 2026

Not for use with personal data

Versiones de los componentes

iOS

  • iOS SDK (axeDevToolsXCUI v4.0.1)

Cómo actualizar: iOS SDK

Android

  • Android SDK (axe-devtools-android v9.0.0)
  • Plugin de Gradle para Android (axe-devtools-android-plugin v1.1.0)
  • Analizador de Android (axe Accessibility Analyzer v3.0.0)

Cómo actualizar: Plugin de Gradle para Android, Analizador de Android

¿Qué hay de nuevo?

iOS Nueva regla: Texto recortado

Deque tiene un compromiso sostenido de ofrecer y optimizar reglas que detecten con precisión problemas reales de accesibilidad. Nuestra última regla para iOS ayuda a garantizar que el contenido permanezca visible para los usuarios, independientemente del tamaño de texto que prefieran. Obtén más información sobre esta regla: Texto recortado.

Nuevas APIs

Puede utilizar las siguientes APIs al realizar pruebas dirigidas tanto en iOS como en Android.

  • Llamar generateHtmlReportAndSummary una vez por prueba genera un informe HTML que se guarda localmente en su dispositivo.
  • startScanSession inicia una sesión de pruebas y se conecta con Axe Developer Hub, donde se publicarán los resultados. Tenga en cuenta que startSession ha sido desaprobado en favor de startScanSession.

Ruta de salida configurable para resultados

Ahora puede indicar la axeHtmlReportPath tanto para Auto Scan como para pruebas dirigidas en Android. Por defecto, los resultados se almacenan en build/reports/AxeDevToolsMobileResults. Al utilizar Auto Scan, los resultados se envían a esta ubicación automáticamente. Al realizar pruebas dirigidas, aquí se almacenarán los resultados al usar la generateHtmlReportAndSummary API para generar un informe manualmente.

De manera similar, iOS Auto Scan ahora admite un directorio de salida configurable por el usuario para el informe HTML y el resumen .txt. Anteriormente, la ubicación de salida estaba codificada a ~/AxeDevToolsMobileResults.

Correcciones

iOS

  • Se corrigió un problema con las capturas de pantalla en modo horizontal en dispositivos físicos
  • En SwiftUI, los análisis en pantalla completa ya no se marcan incorrectamente como parciales
  • Se mejoró el rendimiento de Auto Scan
  • Mejoras en la precisión de las reglas de Contraste de Color y En ScrollView

Actualizaciones

iOS

  • La salida JSON de Auto Scan ahora está consolidada bajo AxeDevToolsMobileResults/axe-test-data
  • axeProjectId ahora se requiere en axe_config.json para Auto Scan

Obsolescencias y Eliminaciones

iOS

  • El flujo de autenticación obsoleto login(withUsername:andPassword:toServer:) ha sido eliminado
  • El método para publicar resultados en Developer Hub con pruebas dirigidas ha sido desaprobado, y startSession(apiKey: String, projectId: String, serverUrl: String) ha sido configurado para ocupar su lugar startScanSession(apiKey: String, projectId: String, axeAccountUrl: String) La propiedad de configuración para Auto Scan ha sido desaprobada, y
  • ha sido configurada para ocupar su lugar axeServerUrl Android axeAccountUrl El flujo de autenticación desaprobado ha sido eliminado

El método para publicar resultados en Developer Hub con pruebas dirigidas ha sido desaprobado, y

  • ha sido configurado para ocupar su lugar loginWithUsername(username: String, password: String, serverConfig: String) La propiedad de configuración para Auto Scan ha sido desaprobada, y
  • ha sido configurada para ocupar su lugar startSession(apiKey: String, projectId: String, serverUrl: String) Problemas Conocidos startScanSession(apiKey: String, projectId: String, axeAccountUrl: String) Si experimenta alguno de los problemas siguientes, por favor contáctenos en
  • helpdesk@deque.com axeServerUrl o axeAccountUrl support.deque.com

. Entonces podremos notificarle una vez que esté resuelto o de una solución alternativa identificada si no hay ninguna listada.

Axe DevTools Mobile realiza pruebas automatizadas en aplicaciones nativas de iOS, Android nativa y React Native. Por favor, contacte con su representante de Deque para obtener soluciones de pruebas de accesibilidad en su stack tecnológico. Aunque puede obtener algunos resultados de vistas web o PDFs renderizados, recomendamos encarecidamente realizar pruebas utilizando axe DevTools for Web o axe Monitor para obtener las pruebas de accesibilidad más completas para la web. iOS El contraste de color puede ejecutarse en elementos solo de íconos debido a OCRLa regla de Contraste de Color utiliza el framework de Vision de Apple (Reconocimiento Óptico de Caracteres, u OCR) para leer texto dentro de los límites de un elemento. El OCR puede ocasionalmente identificar incorrectamente pequeños glifos similares a íconos - como cheurones de flechas 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 del OCR no es determinística a través de los análisis, el mismo elemento puede aparecer en los resultados de Contraste de Color en un análisis y ser reportado como "INAPLICABLE" en el siguiente. Esto es una característica conocida del OCR, no un error en la regla.

important
  • Para solucionar este problema, puede usar las APIs para suprimir los resultados de Contraste de Color para los elementos afectados.
  • // O ignora Contraste de Color globalmente axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())

Aprende más sobre

ignorar reglas

.

Falso positivo de Título de Pantalla en aplicaciones Flutter ignore Flutter no mapea



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

a la propiedad nativa del título de pantalla -

, 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 rastreada enflutter/flutter#185894

.

Falsos positivos para la regla de Contraste de Color con fondos degradados en pantallas pequeñas AppBar.title Al realizar comprobaciones de accesibilidad en tamaños de pantalla más pequeños 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 ser incapaz de determinar el color de primer plano y en su lugar comparar los colores de fondo entre sí, resultando en un fallo. UIViewController.titlePara solucionar este problema, intente realizar las comprobaciones 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.

Inexacta propiedad de XCTestLas API de accesibilidad de Apple pueden informar incorrectamente contenido web dentro de WKWebView como "

", incluso cuando la vista web está cubierta por superposiciones nativas (como vistas modales, alertas u otros elementos de UI nativos). Esto ocurre porque el sistema de accesibilidad verifica si el contenedor de WKWebView en sí mismo es visible, en lugar de si su contenido web está realmente desbloqueado y perceptible para el usuario.

Error de accesibilidad de iOS 26 con incrementadores

iOS 26 contiene un error de accesibilidad donde los botones predeterminados de los incrementadores no anuncian "atenueado" por la Tecnología de Asistencia para indicar que no están habilitados. Como resultado, las reglas de iOS también ven esos botones como habilitados incluso si no lo están. Se ha enviado un informe de error a Apple, pero hasta que esto se resuelva, las siguientes reglas pueden reportar resultados en botones de incrementadores deshabilitados:

, isVisible , y

Apple's accessibility APIs may incorrectly report web content inside WKWebView as "isVisible", even when the web view is covered by native overlays (such as modal views, alerts, or other native UI elements). This occurs because the accessibility system checks whether the WKWebView container itself is visible, rather than whether its web content is actually unobstructed and perceivable to the user.

iOS 26 accessibility bug with steppers

iOS 26 contains an accessibility bug where default stepper buttons do not announce "dimmed" by Assistive Technology to indicate that they are not enabled. As a result, the iOS rules also see these buttons as enabled even if they are not. A bug report has been filed with Apple, but until this is resolved, the following rules may report results on disabled stepper buttons: AssociatedText, InaccessibleAction, and ColorContrast.

Hasta que Apple solucione este error, la resolución será [ignorar las reglas](ios-ignore-rule). Los botones de ajuste predeterminados tienen los identificadores „Decrementar“ e „Incrementar“, y se pueden ignorar 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 aplicaciones SwiftUI y multiplataforma

Algunas pantallas pueden reportar falsos positivos con LabelInName y LabelAtFront debido a una propiedad de texto asociada incorrecta que se encuentra (#1622)

La regla de Soporte de Tipo Dinámico no funciona con el simulador de iOS 15 Pro

Hay un problema que afecta al simulador del iPhone 15 Pro que impide que se ejecute la regla de Soporte de Tipo Dinámico. Si está suscrito a la regla de Soporte de Tipo Dinámico, no podrá probarla usando un simulador del iPhone 15 Pro. Se ha presentado un informe de error a Apple.

Reglas contra controles anidados

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

La regla de Nombre ImageView necesita revisión de resultados para aplicaciones UIKit

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

Falso positivo: En la vista de desplazamiento, Label In Name, Label at Front, y v2.11.0 Image View Name & ActiveControlName

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

In Scroll View
El texto dentro de elementos que se comportan como banner puede ser marcado con un mensaje de „Necesita Revisión“. Para hacer estos elementos disponibles para quienes requieren texto más grande, use UILargeContentViewer. (#622)

v2.11.0 Image View Name & Active Control Name
Si un UIImageView tiene un `accessibilityIdentifier` establecido pero no es enfocable por VoiceOver, y tiene controles enfocables anidados, ActiveControlName puede reportar un falso positivo en el UIImageView. Eliminar el `accessibilityIdentifier` resuelve el problema. Se ha presentado un informe de 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, se puede detectar texto cercano incorrecto, causando que estas reglas fallen. (#1622)

Android

Posibles preocupaciones de accesibilidad para el 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 el 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 icono y generar las letras como parte de la imagen en lugar de como vistas de texto separadas. `FocusableText` no se ejecutará en esas vistas.

Falso positivo en el título de la pantalla en aplicaciones Flutter

Flutter no asigna AppBar.title a la propiedad de título de pantalla nativa - Activity.setTitle, causando que la regla del 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 de detección de texto anunciado

En algunos casos, la tecnología asistiva depende de AccessibilityEvent descripciones del sistema Android para anunciar información al usuario cuando no hay otro anuncio disponible. Dado que AccessibilityEvents son activadas 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á a Talkback acceder a la información desde la vista, que nuestra herramienta luego puede detectar.

La regla de contraste de color no se ejecuta cuando los colores del texto y del fondo son los mismos

Nuestra regla de contraste de color depende del aprendizaje automático para detectar texto, lo que garantiza que el texto escaneado sea visible para los usuarios de su aplicación. En los casos donde el texto contenido en una vista tiene el mismo color que el fondo, nuestro algoritmo de aprendizaje automático no puede detectar si hay texto presente, por lo tanto, 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 sugerencia pueden ver falsos positivos con la EditTextName regla. El texto de sugerencia no se introdujo hasta Android 8 (SDK 26). Usar este elemento en su aplicación XML asignará el texto de sugerencia al valor del campo de entrada de texto. Las versiones más recientes de Android están mejor equipadas para hacer esta experiencia accesible.

Para superar este problema, nuestra primera recomendación es ejecutar sus pruebas en versiones más recientes 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.

Resultados de vistas ocultas de Android

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 la tecnología asistiva, pero axe DevTools Mobile aún las reporta como problemas.

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

Error al ejecutar la detección de texto de ML Kit

La detección de texto de ML Kit es necesaria en muchas de las reglas de axe DevTools Mobile para asegurar la precisión de los resultados. La biblioteca de ML Kit debería ser importada automáticamente al hacer referencia a 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 while running mlKit Text Detection: MlKitContext has not been initialized.

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

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

Find a full working example of the ML Kit library being imported in the Android Mobile SDK Getting Started section, under Implementación

Espaciado de Objetivos Táctiles y Jetpack Compose

La regla de Espaciado de Objetivos Táctiles actualmente no se ejecuta en ningún componente de control deslizante que haya sido escrito en Jetpack Compose. No se puede tomar ninguna acción por el momento. ¡Sin embargo, una solución llegará pronto!

Error al guardar resultados localmente en API 30

En Android API 30, una de las ubicaciones en las que intentamos guardar resultados localmente tiene un error de permisos. El resultado seguirá siendo guardado 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 ser comentado para API 30 ya que causará problemas al guardar localmente en otros niveles de API.

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

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

App Analyzer: Botón de Acción Flotante Desaparece

Con la API 31 (Android 12) se introdujo la capacidad de ocultar superposiciones no del sistema. Para utilizar la app axe Analyzer, asegúrese de que esta configuración no esté activada. Si ha optado por utilizar esta función por sus mejoras de seguridad, le recomendamos dejarla desactivada para las versiones internas de pruebas donde puede usar datos de prueba de forma segura y eliminar las 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 app 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 (Caja Negra) 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 capturas de pantalla en una versión de prueba o depuración 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.

Error cuando minifiedEnabled está configurado en verdadero

Si minimiza su compilación, verá un error con un registro de error indicando que no se pudo encontrar un adaptador al intentar iniciar sesión en la biblioteca de 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 resultando 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)
    
To resolve this error add the following line to your ProGuard file to keep axeDevTools classes:
keep class com.deque.** { *; }

Mensajes de error al usar las APIs de Compose

Las APIs de Compose están obsoletas, por favor use las APIs agnósticas de diseño para continuar recibiendo actualizaciones. Si continúa utilizando las APIs de Compose y encuentra un error similar 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 Compose setTestTag.

MAUI: Regla del Nombre del Texto de Edición

Debido a limitaciones de la arquitectura de la aplicación MAUI en el ecosistema Android, la regla del Nombre del Texto de Edición aparecerá como Necesita Revisión en el tablero cuando se sospeche de un fallo para SDK versión 5.5.0 y superiores. Por favor, confirme el comportamiento correcto manualmente en este caso.

Android Nativo: Diálogos Personalizados / Modales

Cuando implemente diálogos o modales personalizados que no extiendan los controles nativos, puede obtener resultados para las 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 asegurar que se comportan con la tecnología asistiva como se desea.

Tablero Web

Captura de Pantalla Faltante

Si la captura de pantalla falta en la página de detalles del escaneo, su app puede estar impidiendo que se tomen capturas de pantalla. A menudo esto ocurre por razones de seguridad en su aplicación de producción. Considere eliminar este requisito para su compilación de pruebas para permitir la funcionalidad completa en el Tablero Móvil de axe DevTools.

Algunos nombres de escaneo de Android están sin formato

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