Note di rilascio di Axe DevTools Mobile 24 settembre 2025
24 settembre 2025
Versioni dei componenti
iOS
- SDK iOS (axeDevToolsXCUI v3.0.0)
- Analizzatore iOS (axe-devtools-mobile-analyzer v1.6.0)
- Driver iOS Appium (axe-appium-xcuitest-driver v2.0.0)
- (Fork da XCUITest v10.1.0)
Come aggiornare: SDK iOS, Analizzatore iOS, Driver iOS Appium
Android
- SDK Android (axe-devtools-android v8.0.1)
- Analizzatore Android (Axe Accessibility Analyzer v2.1.2)
- Driver Android Appium (axe-appium-uiautomator2-driver v2.0.1)
- (Fork da UiAutomator2 v5.0.1)
Come aggiornare SDK Android, Analizzatore Android, Driver Android Appium
Reporter CLI
- Axe DevTools Reporter CLI v4.11.1
Novità?
Nuova regola Android: Elemento focalizzabile annidato
Deque ha un impegno costante nel fornire e ottimizzare regole che rilevino accuratamente i veri problemi di accessibilità. La nostra nuova regola per Android aiuta a garantire che gli utenti della tecnologia assistiva ricevano tutte le informazioni necessarie per interagire con l'interfaccia utente. Scopri di più sulla nostra regola Elemento focalizzabile annidato.
Driver Appium offline
Ora abbiamo driver Appium offline disponibili per l'uso con una chiave di licenza fornita da Deque. Questo può essere utile quando si lavora con provider cloud o per ottimizzare le prestazioni nel flusso di lavoro CI/CD riducendo le richieste di rete.
Supporto Appium 3
Dall'ultimo rilascio, Appium ha rilasciato nuove versioni principali dei suoi driver per supportare il server Appium 3. Abbiamo aggiornato nostri versioni principali per allinearci con il repo pubblico e stiamo lavorando per garantire che non ci sia alcun impatto sulla funzionalità di Axe. Questi driver supportano completamente Appium 3. Ci aspettavamo di avere compatibilità con Appium 2, ma abbiamo scoperto un bug che stiamo lavorando per risolvere il prima possibile.
Correzioni
iOS
- Registrazione più descrittiva quando
debugStatementssono attivate - Miglioramenti nella precisione delle seguenti regole: Dimensione bersaglio touch e Spaziatura bersaglio touch
Android
- Miglioramenti nella precisione delle seguenti regole: Valore di testo da modificare e Nome visualizzazione immagine
Axe DevTools Reporter CLI
- Risolto un bug nei report HTML per il filtro delle problematiche in base alla gravità nel caso di regole mobili che possono segnalare gravità multiple
- Risolto un problema per cui i report HTML non riuscivano a generarsi per nomi di scansione che includevano barre
Aggiornamenti
iOS e Xcode 26
Il nostro team ha testato diligentemente in preparazione per l'ultimo rilascio di iOS e Xcode 26. Questo aggiornamento garantisce che il framework XCUI e il driver Appium possano essere eseguiti su iOS 26, utilizzando Xcode 26. Abbiamo identificato alcune modifiche con questo rilascio che hanno influenzato il funzionamento delle nostre regole, quindi abbiamo aggiornato Problemi conosciuti di conseguenza e continueremo a farlo man mano che apprendiamo di più.
Chiavi offline
Le automazioni offline sono disponibili sia per i nostri SDK che per i driver Appium, e tutti richiederanno una chiave di licenza offline per scopi di autenticazione. Si prega di contattare il proprio rappresentante Deque o contatta il supporto per coordinare la consegna della chiave di licenza. Si prega di fare riferimento a le FAQ per ulteriori informazioni sull'uso degli SDK offline per prestazioni ottimizzate senza richieste di rete.
Problemi conosciuti
Se stai riscontrando uno dei seguenti problemi, ti preghiamo di contattarci a helpdesk@deque.com o support.deque.com. Saremo in grado di notificarti una volta risolto o di un'alternativa identificata se non elencata.
- Axe DevTools Mobile esegue test automatizzati su applicazioni native iOS, native Android e React Native. Contatta il tuo referente Deque per soluzioni di test di accessibilità sulla tua tecnologia.
- Sebbene tu possa ottenere alcuni risultati da viste web o PDF renderizzati, raccomandiamo vivamente di testare usando Axe DevTools per il Web o Axe Monitor per il test di accessibilità più completo per il web.
iOS
Bug di accessibilità di iOS 26 con gli stepper
iOS 26 contiene un bug di accessibilità in cui i pulsanti stepper predefiniti non annunciano "offuscato" tramite la tecnologia assistiva per indicare che non sono abilitati. Di conseguenza, anche le regole iOS vedono questi pulsanti come abilitati, anche se non lo sono. Un rapporto di bug è stato inviato ad Apple, ma fino a quando questo non viene risolto, le seguenti regole possono riportare risultati sui pulsanti stepper disabilitati: AssociatedText, InaccessibleAction, e ColorContrast.
Fino a quando Apple non risolve questo bug, la soluzione sarà [ignorare le regole](ios-ignore-rule). I pulsanti stepper predefiniti hanno gli identificatori "Decrement" e "Increment", e possono essere ignorati per identificatore se necessario.
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.
Impossibile eseguire scansioni su dispositivi fisici con iOS Analyzer 1.4.7
Una impostazione di configurazione in iOS Analyzer 1.4.7 impedisce l'esecuzione delle scansioni, restituendo il messaggio "Test Failed". Per eseguire scansioni su un dispositivo fisico, aggiorna al progetto iOS Analyzer più recente.
Errore nel Progetto Analyzer e Test per Bundle ID in 2.8.1
La funzionalità di testare un'applicazione tramite identificatore di bundle è stata interrotta nella versione 2.8.1, causando un errore intitolato "No target application path specified via test configuration: ...". Aggiorna alla versione 2.8.2 o alla versione più recente per risolvere l'errore. Aggiorna all'ultima versione all'interno del progetto iOS Analyzer.
Errore "Impossibile Serializzare AxeResult" nel Progetto Analyzer v1.2.0 e SDK v2.12.3
Scansionare alcune applicazioni con questa versione dell'analyzer e SDK comporterebbe un "Could not Serialize AxeResult" errore. Aggiorna alla versione più recente per risolvere l'errore. Aggiorna al progetto iOS Analyzer più recente.Aggiorna all'ultimo SDK iOS.
Falso Positivo: LabelInName e LabelAtFront in SwiftUI & App Cross Platform
Alcune schermate possono riportare falsi positivi con LabelInName e LabelAtFront a causa di una proprietà associatedText errata trovata (#1622)
La regola Supporta Dimensioni Dinamiche non funziona con il simulatore iOS 15 Pro
C'è un problema che colpisce il simulatore di iPhone 15 Pro che impedisce l'esecuzione della regola Supporta Dimensioni Dinamiche. Se sei iscritto alla regola Supporta Dimensioni Dinamiche, non sarai in grado di testarla usando un simulatore di iPhone 15 Pro. Un bug è stato segnalato ad Apple.
Regole contro i Controlli Nidificati
Mentre esaminavamo un miglioramento per le nostre regole, abbiamo scoperto che in XCTest, i controlli nidificati non vengono restituiti nell'albero di accessibilità. Un bug è stato segnalato ad Apple. (#1110)
La regola Nome Immagine da Rivedere Risultati per App UIKit
Nelle app UIKit, un'immagine senza un accessibilityLabel non è focalizzabile con la tecnologia assistiva di default.
Le proprietà che utilizziamo per controllare la capacità di focalizzazione da Apple potrebbero essere imprecise quando un accessibilityIdentifier è impostato sull'immagine. A causa di questo comportamento imprevisto, i risultati per i problemi di Nome Immagine in app UIKit saranno riportati come Da Rivedere. Un bug è stato segnalato ad Apple. (#1633)
Falso Positivo: In Scroll View, Label In Name, Label at Front, e Nome Immagine & Nome Controllo Attivo v2.11.0
Stiamo lavorando attivamente su soluzioni per i seguenti falsi positivi e aggiorneremo questa lista man mano che verranno rilasciate le correzioni.
In Scroll View
Può segnalare problemi per testo all'interno di elementi con comportamento a banner. Per rendere questi elementi disponibili a coloro che richiedono testo più grande, utilizza UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Se un UIImageView ha un accessibilityIdentifier impostato ma non è focalizzabile da VoiceOver, e ha controlli focalizzabili nidificati all'interno, ActiveControlName potrebbe segnalare un falso positivo sul UIImageView. Rimuovendo il accessibilityIdentifier si risolve il problema. Un bug è stato segnalato ad Apple. (#1633)
Label In Name and Label At Front
Queste due regole cercano l'etichetta visibile di un controllo tra gli elementi vicini per aiutare a determinare lo stato della regola. In alcune gerarchie di vista, il testo vicino errato può essere rilevato causando il fallimento di queste regole. (#1622)
Android
La regola del Contrasto di Colore non si esegue quando i colori del testo e dello sfondo sono uguali
La nostra regola del Contrasto di Colore dipende dal Machine Learning per rilevare il testo, garantendo che il testo scansionato sia visibile agli utenti della tua applicazione. Nei casi in cui il testo contenuto in una vista è dello stesso colore dello sfondo, il nostro algoritmo di Machine Learning non è in grado di rilevare se è presente del testo, quindi la regola del Contrasto di Colore non si esegue su questa vista.
EditTextName su Android 7 (SDK 24-25)
Le app scritte con XML che utilizzano la funzione di testo di suggerimento possono vedere falsi positivi con il EditTextName regola. Il testo suggerito non è stato introdotto fino ad Android 8 (SDK 26). Usare questo elemento nel tuo XML dell'app assegnerà il testo suggerito al valore del campo di input del testo. Le versioni più recenti di Android sono meglio attrezzate per rendere questa esperienza accessibile.
Per superare questo problema, la nostra prima raccomandazione è eseguire i tuoi test su versioni più recenti di Android. Tuttavia, se è importante che l'app sia accessibile su versioni precedenti di Android, potresti considerare di evitare l'uso del hintText feature, poiché non è ufficialmente supportata.
Visualizzazioni nascoste di Android che restituiscono risultati
Potresti vedere risultati per visualizzazioni che sono nascoste dietro altre visualizzazioni sullo schermo. Queste visualizzazioni nascoste non sono disponibili per la tecnologia assistiva, ma Axe DevTools Mobile le segnala comunque come problemi.
Stiamo lavorando a una soluzione per questo problema complesso. Nel frattempo, se TalkBack non riesce a raggiungere queste visualizzazioni, puoi ignorare i problemi corrispondenti. Non necessitano di una correzione per garantire l'accessibilità.
Errore durante l'esecuzione del Rilevamento Testo di ML Kit
Il rilevamento testo di ML Kit è richiesto in molte delle regole di Axe DevTools Mobile per garantire l'accuratezza dei risultati. La libreria ML Kit dovrebbe essere automaticamente importata quando si fa riferimento ad Axe DevTools Mobile nei tuoi test automatizzati Espresso o UIAutomator. In alcuni casi, tuttavia, l'importazione automatica non avviene e vedrai il seguente errore nel logcat:
Axe DevTools Android: Error while running mlKit Text Detection: MlKitContext has not been initialized.
Per superare questo problema, dovresti importare manualmente la libreria ML Kit nel tuo progetto. Nel tuo build.gradle file dell'applicazione, aggiungi quanto segue sotto le dipendenze:
implementation 'com.google.mlkit:text-recognition:16.0.1'
Spaziatura del Target di Tocca e Jetpack Compose
La regola di Spaziatura del Target di Tocca non è attualmente in esecuzione su alcun componente slider scritto in Jetpack Compose. Non è possibile intraprendere alcuna azione al momento. Tuttavia, è in arrivo una soluzione!
Errore durante il salvataggio dei risultati localmente su API 30
Su Android API 30, una delle posizioni in cui tentiamo di salvare i risultati localmente ha un errore di permessi. Il risultato sarà comunque salvato come file JSON nonostante questo errore venga visualizzato. L'errore può essere soppresso commentando il codice nel seguente blocco:
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
// finalizedBy {
// fetchAndroidFolderAxeReportsTask
// }
}
Si prega di notare che questo codice dovrebbe essere commentato solo per API 30 poiché causerà problemi durante il salvataggio locale per altri livelli API.
Rilevazione dello Scroll in App Ibride e App Cross-Platform
In alcune app ibride e cross-platform, potremmo restituire risultati inaspettati quando gli oggetti in una vista a scorrimento sono parzialmente fuori schermo. Per testare un elemento per l'accessibilità, assicurati che sia completamente visibile prima di eseguire la scansione.
Analyzer App: Il pulsante azione fluttuante scompare
Introdotta con API 31 (Android 12) c'è la possibilità di nascondere sovrapposizioni non di sistema. Per utilizzare l'app Axe Analyzer, assicurati che questa impostazione non sia attivata. Se hai optato per utilizzare questa funzione per i suoi miglioramenti di sicurezza, consigliamo di lasciarla disattivata per build di test interne dove puoi utilizzare in sicurezza i dati di test e eliminare così le preoccupazioni di sicurezza. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
Per utilizzare l'app Axe Accessibility Analyzer, aggiorna eventuali chiamate al metodo setHideOverlayWindows(true) a setHideOverlayWindows(false) sulle finestre delle attività interessate.
Screenshot Mancante (Scatola Nera) nel Dashboard
Per sbloccare la piena funzionalità di Axe DevTools per Mobile, assicurati che gli screenshot siano abilitati. Raccomandiamo di abilitarli su una versione di debug o test della tua app che utilizza dati simulati per evitare preoccupazioni di sicurezza. Consulta la nostra guida per abilitare gli screenshot nelle app Android.
Crash quando `minifiedEnabled` è impostato su true
Se riduci le dimensioni del tuo build, vedrai un crash con un log di errore che riporta che un adattatore non è stato trovato quando si tenta di accedere alla libreria Axe DevTools. Disabilitare il minify per i tuoi build di debug con Axe DevTools implementato. (#729)
I build con r8 abilitato generano un errore
Un build con r8 abilitato potrebbe tentare di ridurre le dimensioni della libreria axeDevTools causando un errore simile a:
Caused by: java.lang.NullPointerException: throw with null exception
Per risolvere questo errore, aggiungi la seguente linea al tuo file ProGuard per mantenere le classi axeDevTools:
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)
keep class com.deque.** { *; }
Messaggio di errore simile a:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
o: No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
Le API di Compose sono deprecate, ti invitiamo a utilizzare le API agnostiche al layout per continuare a ricevere aggiornamenti. Se continui a utilizzare le API di Compose e incontri un errore del tipo `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)` o `No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?`, si prega di fare riferimento a API Compose setTestTag.
Messaggio di log:MlKitContext has not been initialized
Se incontri questo messaggio, alcuni risultati delle regole potrebbero non restituire come previsto quando quella regola utilizza l'intelligenza artificiale. Le regole interessate includono Contrasto di Colore, Testo Focalizzabile e Nome Elemento Annidato. (#841)
MAUI: Regola Nome Testo Modificabile
A causa delle limitazioni dell'architettura delle app MAUI nel contesto Android, la regola Nome Testo Modificabile verrà indicata come Da Rivedere nel dashboard quando si sospetta un problema per la versione SDK 5.5.0 e superiori. Si prega di confermare manualmente il comportamento corretto per questo caso.
Android Nativo: Dialoghi/Modali Personalizzati
Quando implementi dialoghi o modali personalizzati che non estendono i controlli nativi, potresti ottenere risultati per visualizzazioni dietro il modale. In questo caso, consigliamo di non eseguire il nostro strumento contro questi modali o dialoghi personalizzati e invece di controllarli manualmente per garantire che funzionino come desiderato con la tecnologia assistiva.
Dashboard Web
Screenshot Mancante
Se lo screenshot è mancante dalla pagina dei dettagli della scansione, la tua app potrebbe impedire che vengano acquisiti screenshot. Spesso questo avviene per motivi di sicurezza nella tua applicazione di produzione. Considera la possibilità di rimuovere questo requisito per la tua build di test per consentire la piena funzionalità nel Dashboard Mobile di Axe DevTools.
Alcuni nomi di scansione Android non sono formattati
Alcuni nomi di scansione Android che predefiniti al titolo dello schermo appariranno come l'intero nome della classe incluso l'identificatore del pacchetto. In una versione futura, questo sarà risolto in modo che il titolo dello schermo sia formattato in un nome più leggibile. Come soluzione temporanea, puoi impostare il nome della scansione dal dashboard o dai framework. (#1643)
