Note di rilascio Axe DevTools Mobile del 2 luglio 2025
2 luglio 2025
Versioni dei componenti
iOS
- iOS SDK (axeDevToolsXCUI v2.16.0)
- iOS Analyzer (axe-devtools-mobile-analyzer v1.4.12)
- iOS Appium Driver (axe-appium-xcuitest-driver v1.5.0)
- (Derivato da XCUITest v9.2.3)
Come aggiornare: iOS SDK, iOS Analyzer, iOS Appium Driver
Android
- Android SDK (axe-devtools-android v7.0.0)
- Android Analyzer (Axe Accessibility Analyzer v2.0.0)
- Android Appium Driver (axe-appium-uiautomator2-driver v1.4.2)
- (Derivato da UiAutomator2 v4.2.4)
Come aggiornare: Android SDK, Android Analyzer, Android Appium Driver
Novità
URL del Gruppo di Scansioni
Ora puoi creare un URL per un gruppo di massimo 20 risultati di scansione, con i nostri SDK Android e iOS. Costruisci un URL per una singola scansione o un gruppo di scansioni con i nostri driver Appium.
Visita le seguenti pagine per i dettagli sull'implementazione di questa funzione:
- iOS - Caricare i risultati sulla Dashboard Mobile
- Android - Caricare i risultati sulla Dashboard Mobile
- Appium - Creare un URL di Scansione per i risultati
Correzioni
iOS
- Snellimento delle richieste di rete per l'invio delle scansioni con un nome di scansione e/o tag
- Miglioramenti alla precisione delle seguenti regole: Testo Associato, Contrasto di Colori, Etichetta nel Nome, Etichetta in Fronte
Modifiche di rottura
API Android XML e Compose rimosse
Abbiamo adottato un'implementazione snella di Axe DevTools per Android, che ha portato alla deprecazione delle API XML e Compose. Avevamo indicato che questo cambiamento sarebbe avvenuto nelle note di rilascio di ottobre 2024. Se non l'hai già fatto, il tuo team dovrebbe passare alle API agnostiche alla disposizione per continuare a ricevere supporto e accesso agli aggiornamenti più recenti.
Supporto per il livello API di Android
Abbiamo aggiunto il supporto per il livello API 36 di Android per l'SDK. Il livello minimo di API Android supportato ora è 26 sia per l'SDK che per l'app Mobile Analyzer.
Per domande o dubbi su queste modifiche di rottura, contatta support.deque.com.
Problemi noti
Se stai riscontrando uno dei problemi elencati di seguito, contattaci a helpdesk@deque.com o support.deque.com. Saremo in grado di informarti una volta risolto o di un workaround identificato se non ne è stato elencato alcuno.
- Axe DevTools Mobile esegue test automatizzati su applicazioni native iOS, Android native e applicazioni React Native. Contatta il tuo rappresentante Deque per soluzioni di test di accessibilità sul tuo stack tecnologico.
- Sebbene tu possa ottenere alcuni risultati da web view o PDF renderizzati, ti consigliamo vivamente di effettuare test utilizzando Axe DevTools for Web o Axe Monitor per i test di accessibilità più completi per il web.
iOS
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 configurazione nell'iOS Analyzer 1.4.7 impedisce l'esecuzione delle scansioni, restituendo il messaggio "Test fallito". Per eseguire le scansioni su un dispositivo fisico, aggiorna al progetto iOS Analyzer più recente.
Errore nel progetto Analyzer & Testing per ID bundle in 2.8.1
La funzionalità di testare un'applicazione tramite identificatore di bundle era interrotta nella versione 2.8.1, il che ha causato un errore intitolato "Nessun percorso applicazione target specificato tramite configurazione di test: ...". Aggiorna alla 2.8.2 o alla versione più recente per risolvere l'errore. Aggiorna al più recente all'interno del progetto iOS Analyzer.
Errore "Impossibile serializzare AxeResult" nel progetto Analyzer v1.2.0 & SDK v2.12.3
La scansione di alcune applicazioni con questa versione dell'analyzer e SDK risulterebbe in un errore "Impossibile serializzare AxeResult". Aggiorna alla versione più recente per risolvere l'errore. Aggiorna al progetto iOS Analyzer più recente.Aggiorna all'SDK iOS più recente.
Falso positivo: LabelInName e LabelAtFront in SwiftUI & app multipiattaforma
Alcuni schermi potrebbero riportare falsi positivi con LabelInName e LabelAtFront a causa di una proprietà associatedText errata (#1622)
La regola Supports Dynamic Type non funziona con il simulatore iOS 15 Pro
Ci sono problemi che riguardano il simulatore iPhone 15 Pro che impediscono l'esecuzione della regola Supports Dynamic Type. Se hai aderito alla regola Supports Dynamic Type, non potrai testarla utilizzando un simulatore iPhone 15 Pro. È stato aperto un bug presso Apple.
Regole contro controlli nidificati
Durante l'esame di un miglioramento per le nostre regole, abbiamo scoperto che in XCTest i controlli nidificati non sono restituiti nell'albero di accessibilità. È stato aperto un bug presso Apple. (#1110)
Regola Nome ImageView: i risultati devono essere rivisti per app UIKit
Nelle app UIKit, un'immagine senza un `accessibilityLabel` non è focalizzabile con tecnologia assistiva di default.
Le proprietà che utilizziamo per controllare la focalizzabilità da Apple potrebbero essere imprecise quando viene impostato un `accessibilityIdentifier` sull'immagine. A causa di questo comportamento inatteso, i risultati per i problemi Nome ImageView nelle app UIKit saranno segnalati come Da Rivedere. È stato aperto un rapporto di bug presso Apple. (#1633)
Falso positivo: in vista a scorrimento, Label In Name, Label at Front e Nome Visualizzazione Immagine v2.11.0 & NomeControlloAttivo
Siamo attivamente al lavoro su correzioni per i seguenti falsi positivi e aggiorneremo questa lista non appena le correzioni verranno rilasciate.
In Scroll View
Potrebbe segnalare problemi per il testo all'interno di elementi che si comportano come banner. Per rendere questi elementi disponibili a chi necessita di testo più grande, usa 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 al suo interno, NomeControlloAttivo potrebbe segnalare un falso positivo sull'UIImageView. Rimuovendo l'`accessibilityIdentifier` si risolve il problema. È stato aperto un bug presso 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 potrebbe essere rilevato causando il fallimento di queste regole. (#1622)
Android
La regola del contrasto cromatico non viene eseguita quando i colori del testo e dello sfondo sono gli stessi
La nostra regola del contrasto cromatico dipende dal Machine Learning per rilevare il testo, che garantisce la visibilità del testo scansionato agli utenti della tua applicazione. Nei casi in cui il testo contenuto in una vista sia dello stesso colore dello sfondo, il nostro algoritmo di Machine Learning non riesce a rilevare se è presente del testo, quindi la regola del contrasto cromatico non viene eseguita su questa vista.
EditTextName su Android 7 (SDK 24-25)
Le app scritte con XML che utilizzano la funzione hint text potrebbero vedere falsi positivi con il EditTextName regola. Il testo di suggerimento non è stato introdotto fino ad Android 8 (SDK 26). Utilizzando questo elemento nella tua app XML assegnerà il testo di suggerimento al valore del campo di input testo. Le versioni più recenti di Android sono meglio equipaggiate per rendere questa esperienza accessibile.
Per superare questo problema, la nostra prima raccomandazione è eseguire i tuoi test su versioni più recenti di Android. Se è importante che l'app sia accessibile su versioni precedenti di Android, tuttavia, potresti considerare di evitare l'utilizzo della hintText funzione, poiché non è ufficialmente supportata.
Viste Android nascoste che restituiscono risultati
Potresti vedere risultati per viste che sono nascoste dietro altre viste sullo schermo. Queste viste nascoste non sono disponibili per la tecnologia assistiva, ma Axe DevTools Mobile le riporta comunque come problemi.
Stiamo lavorando a una soluzione per questo problema complesso. Nel frattempo, se TalkBack non riesce a raggiungere queste viste, puoi ignorare i relativi problemi. Non richiedono una risoluzione per garantire l'accessibilità.
Errore durante l'esecuzione del rilevamento del testo di ML Kit
Il rilevamento del 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 importata automaticamente quando si fa riferimento a Axe DevTools Mobile nei tuoi test automatizzati Espresso o UIAutomator. In alcuni casi, tuttavia, l'importazione automatica non avviene e vedrai il seguente errore in 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 file build.gradle della tua applicazione, aggiungi il seguente sotto dependencies:
implementation 'com.google.mlkit:text-recognition:16.0.1'
Spaziatura target touch e Jetpack Compose
La regola Spaziatura target touch attualmente non è eseguita su alcun componente slider scritto in Jetpack Compose. Al momento non è possibile intraprendere azioni. Tuttavia, una correzione arriverà presto!
Errore nel 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 autorizzazione. Il risultato verrà 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
// }
}
Please note that this code should only be commented out for API 30 as it will cause problems when saving locally for other API levels.
Rilevamento dello scorrimento su app ibride e multipiattaforma
In alcune app ibride e multipiattaforma, potremmo restituire risultati non previsti quando elementi in una vista a scorrimento sono parzialmente fuori dallo schermo. Per testare un elemento per l'accessibilità, assicurarsi che sia completamente a schermo prima di eseguire la scansione.
App Analyzer: il pulsante di azione fluttuante scompare
Introdotta con l'API 31 (Android 12) è la possibilità di nascondere overlay non di sistema. Per utilizzare l'app Axe Analyzer, assicurati che questa impostazione non sia attivata. Se hai deciso di utilizzare questa funzione per i suoi miglioramenti di sicurezza, ti consigliamo di lasciarla disattivata per le versioni di testing interne dove puoi utilizzare in sicurezza dati di test ed eliminare preoccupazioni di sicurezza in questo modo. 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 (Riquadro nero) nella Dashboard
Per sbloccare tutte le funzionalità di Axe DevTools per Mobile, assicurati che gli screenshot siano abilitati. Consigliamo di abilitare gli screenshot su una versione di debug o di 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 a true
Se minimizzi la tua build, si verificherà un crash con un log di errore che riporta che un adattatore non è stato trovato quando si tenta di accedere alla libreria Axe DevTools. Disattiva la minificazione per le tue build di debug con Axe DevTools implementato. (#729)
Le build con r8 abilitato generano un errore
Una build con r8 abilitato potrebbe cercare di minimizzare la libreria axeDevTools risultando in un errore simile 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.** { *; }
Messaggio di errore simile a:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
oppure: No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
Le API Compose sono deprecate, ti preghiamo di utilizzare le API indipendenti dal layout per continuare a ricevere aggiornamenti. Se continui a utilizzare le API 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()?`, ti preghiamo di fare riferimento a Compose setTestTag API.
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 Colore, Testo Focalizzabile e Nome Elemento Annidato. (#841)
MAUI: Regola Nome Modifica Testo
A causa delle limitazioni nell'architettura dell'app MAUI nel sistema Android, la regola Nome Modifica Testo verrà visualizzata come Necessita Revisione nella dashboard quando si sospetta un errore per la versione SDK 5.5.0 e successive. Si prega di confermare manualmente il comportamento corretto in questo caso.
Android Nativo: Dialoghi / Modali Personalizzati
Quando implementi dialoghi o modali personalizzati che non estendono i controlli nativi, potresti ottenere risultati per le visualizzazioni dietro il modal. In questo caso, consigliamo di non utilizzare il nostro strumento su questi modali o dialoghi personalizzati e invece di controllarli manualmente per assicurarti che si comportino correttamente con la tecnologia assistiva desiderata.
Dashboard Web
Screenshot Mancante
Se lo screenshot manca dalla pagina dei dettagli della scansione, la tua app potrebbe impedire la cattura degli screenshot. Questo spesso avviene per ragioni di sicurezza nella tua applicazione in produzione. Considera di rimuovere questo requisito dalla tua build di test per consentire la piena funzionalità nella Dashboard Mobile di Axe DevTools.
Alcuni nomi di scansione Android sono non formattati
Alcuni nomi di scansione Android che sono di default nel titolo dello schermo appariranno come il nome completo della classe incluso l'identificatore del pacchetto. In un futuro rilascio, ciò sarà risolto in modo che il titolo dello schermo sia formattato in un nome più leggibile. Come soluzione alternativa, puoi impostare il nome della scansione dalla dashboard o dai framework. (#1643)
