Note di rilascio di Axe DevTools Mobile 8 aprile 2026
8 aprile 2026
Versioni dei componenti
iOS
- SDK iOS (axeDevToolsXCUI v3.3.0)
Come aggiornare: SDK iOS
Android
- SDK Android (axe-devtools-android v8.3.0)
- Plugin Gradle per Android (axe-devtools-android-plugin v1.0.1)
Come aggiornare Plugin Gradle per Android
Cosa c'è di nuovo?
Inizia a usare la Scansione Automatica con gli SDK di Axe DevTools per dispositivi mobili - Espresso/UI Automator e XCUITest.
La Scansione Automatica è il modo più veloce per aggiungere controlli di accessibilità ai tuoi test UI esistenti.
- Esegui le scansioni automaticamente mentre interagisci con la tua app
- Configura una sola volta e la Scansione Automatica si adatterà a qualsiasi nuovo test aggiunto alla tua suite
- Quando i test finiscono, un riepilogo viene stampato direttamente nei tuoi log di test e un report HTML autonomo viene generato automaticamente
- La Scansione Automatica supporta sia ambienti online che offline e si integra perfettamente con i tuoi framework di test esistenti su iOS e Android
Se stai scrivendo test per applicazioni Android, tieni presente che la libreria axe-devtools-android non è più aggiunta come dipendenza diretta — al contrario, importando il plugin Gradle nel tuo progetto verrà aggiunta automaticamente. Trova tutti i dettagli nel nostro Istruzioni per la configurazione Android.
Al momento la Scansione Automatica è disponibile per gli SDK iOS e Android. Questa soluzione sarà presto disponibile per i nostri driver Appium.
Correzioni
iOS
- Miglioramenti nella precisione delle seguenti regole: Dimensione dell'obiettivo tattile, Nome del controllo attivo e Testo focalizzabile
Problemi Noti
Se riscontri uno dei problemi elencati di seguito, contattaci a helpdesk@deque.com o support.deque.com. Potremo quindi avvisarti una volta risolto o fornirti una soluzione alternativa identificata se non ne è indicata nessuna.
- I test automatici di Axe DevTools Mobile funzionano su applicazioni iOS native, Android native e React Native. Contatta il tuo rappresentante Deque per soluzioni di test di accessibilità sul tuo stack tecnologico.
- Mentre puoi ottenere alcuni risultati dai web views o dai PDF visualizzati, ti consigliamo vivamente di effettuare test utilizzando Axe DevTools per il Web o Axe Monitor per ottenere i test di accessibilità più completi per il web.
iOS
Falsi positivi per la regola di contrasto cromatico con sfondi sfumati su schermi piccoli
Quando esegui controlli di accessibilità su schermi di piccole dimensioni o con dimensioni di carattere ridotte, la regola di contrasto cromatico può segnalare falsi positivi per sfondi sfumati. In tali casi, potrebbe non essere in grado di determinare il colore di primo piano e quindi confrontare i colori di sfondo tra loro, risultando in un errore.
Per ovviare a questo problema, prova a eseguire controlli di accessibilità su dispositivi più grandi. In alternativa, puoi scegliere di ignorare la regola nei tuoi test e controllare manualmente il contrasto cromatico per queste visualizzazioni.
Inaccurato isVisible proprietà da XCTest
Le API di accessibilità di Apple possono riportare in modo errato il contenuto web all'interno di WKWebView come "isVisible", anche quando la web view è coperta da sovrapposizioni native (come modali, avvisi o altri elementi UI native). Questo accade perché il sistema di accessibilità controlla se il contenitore WKWebView stesso è visibile, piuttosto che se il suo contenuto web è effettivamente non ostruito e percepibile dall'utente.
Bug di accessibilità di iOS 26 con i stepper
iOS 26 contiene un bug di accessibilità in cui i pulsanti stepper predefiniti non annunciano "oscurato" dalla Tecnologia Assistiva per indicare che non sono abilitati. Di conseguenza, le regole iOS vedono anche questi pulsanti come abilitati anche se non lo sono. È stato segnalato un bug ad Apple, ma fino a quando non verrà risolto, le seguenti regole potrebbero riportare risultati su pulsanti stepper disabilitati: AssociatedText, InaccessibleAction, e ColorContrast.
Fino a quando Apple non risolverà questo bug, la soluzione sarà di [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.
Falso Positivo: LabelInName e LabelAtFront in SwiftUI e App Cross Platform
Alcuni schermi possono segnalare falsi positivi con LabelInName e LabelAtFront a causa di una proprietà associatedText errata trovata (#1622)
La regola Supports Dynamic Type non funziona con il simulatore iOS 15 Pro
C'è un problema che riguarda il simulatore iPhone 15 Pro che impedisce l'esecuzione della regola Supports Dynamic Type. Se hai aderito alla regola Supports Dynamic Type, non sarai in grado di testarla usando un simulatore iPhone 15 Pro. Un bug è stato segnalato ad Apple.
Regole contro i controlli nidificati
Durante la revisione per migliorare le nostre regole, abbiamo scoperto che in XCTest i controlli nidificati non vengono restituiti nell'albero dell'accessibilità. Un bug è stato segnalato ad Apple. (#1110)
La regola ImageView Name necessita di revisione per le app UIKit
Nelle app UIKit, un'immagine senza un `accessibilityLabel` non è focalizzabile con le tecnologie assistive di default.
Le proprietà che usiamo per verificare la focalizzabilità da Apple possono essere inaccurate quando un `accessibilityIdentifier` è impostato sull'immagine. A causa di questo comportamento inatteso, i risultati per i problemi di ImageView Name nelle app UIKit verranno segnalati come da rivedere. È stata segnalata una segnalazione di bug ad Apple. (#1633)
Falso positivo: in Scroll View, Label In Name, Label at Front, e Image View Name & ActiveControlName v2.11.0
Stiamo lavorando attivamente a correzioni per i seguenti falsi positivi e aggiorneremo questa lista non appena le correzioni verranno rilasciate.
In Scroll View
Il testo all'interno di elementi che si comportano come banner può essere contrassegnato con un messaggio "Da rivedere". Per rendere questi elementi disponibili a chi necessita di testo più grande, utilizza UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Se una UIImageView ha un `accessibilityIdentifier` impostato ma non è focalizzabile da VoiceOver, e ha controlli focalizzabili nidificati al suo interno, ActiveControlName può segnalare un falso positivo sulla UIImageView. Rimuovere l'`accessibilityIdentifier` risolve il problema. È stata segnalata una segnalazione di bug 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 determinare lo stato della regola. In alcune gerarchie di vista, può essere rilevato un testo vicino incorretto causando il fallimento di queste regole. (#1622)
Android
Falso positivo nel rilevamento del testo annunciato
In alcuni casi, le tecnologie assistive si affidano a AccessibilityEvent descrizioni dal sistema Android per annunciare informazioni all'utente quando non è disponibile nessun altro annuncio. Poiché AccessibilityEvents are triggered by user actions, we are unable to access the correct description if this information is not provided.
Per evitare questo problema, assicurati che tutte le viste rilevanti siano contrassegnate come importanti per l'accessibilità. Questo permetterà a Talkback di accedere alle informazioni dalla vista, che il nostro strumento può quindi rilevare.
La regola del contrasto del colore non viene eseguita quando i colori del testo e dello sfondo sono gli stessi
La nostra regola del contrasto del colore si basa sull'apprendimento automatico per rilevare il testo, il che assicura 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 apprendimento automatico non è in grado di rilevare se è presente del testo, quindi la regola del contrasto del colore non viene eseguita su questa vista.
EditTextName su Android 7 (SDK 24-25)
Le app scritte con XML che utilizzano la funzione hint text possono vedere falsi positivi con la EditTextName regola. Il testo di suggerimento non è stato introdotto fino a Android 8 (SDK 26). Usare questo elemento nella tua app XML assegnerà il testo di suggerimento 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 è di 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 della hintText funzione, poiché non è supportata ufficialmente.
Viste nascoste di Android che restituiscono risultati
Potresti vedere risultati per le viste che sono nascoste da altre viste sullo schermo. Queste viste nascoste non sono disponibili per le tecnologie assistive, 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 viste, puoi ignorare i corrispondenti problemi. Non richiedono una correzione 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, non avviene l'importazione automatica 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 file della tua applicazione build.gradle , aggiungi quanto segue sotto le dipendenze:
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 Implementazione
Spaziatura del target tocco e Jetpack Compose
La regola della Spaziatura del Target Tocco attualmente non viene eseguita su alcun componente slider che è stato scritto in Jetpack Compose. Non è possibile intraprendere alcuna azione al momento. Tuttavia, una correzione è in arrivo!
Errore quando si salvano i risultati localmente su API 30
Su Android API 30, una delle posizioni in cui tentiamo di salvare i risultati localmente presenta un errore di autorizzazioni. Il risultato verrà comunque salvato come file JSON nonostante venga visualizzato questo errore. 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 noti che questo codice dovrebbe essere commentato solo per API 30 in quanto causerà problemi quando si salvano localmente per altri livelli API.
Rilevamento dello scroll nelle app ibride e multipiattaforma
In alcune app ibride e multipiattaforma, potremmo restituire risultati inattesi quando gli elementi in una vista scorrevole sono parzialmente fuori schermo. Per testare l'accessibilità di un elemento, assicurati che sia completamente sullo schermo prima di effettuare la scansione.
Analyzer App: il pulsante di azione fluttuante scompare
Introdotta con l'API 31 (Android 12) è la capacità di nascondere sovrapposizioni non di sistema. Per poter utilizzare l'app Axe Analyzer, assicurati che questa impostazione non sia attivata. Se hai scelto di utilizzare questa funzione per i suoi miglioramenti alla sicurezza, ti consigliamo di lasciarla disattivata per le versioni di test interne dove puoi utilizzare tranquillamente i dati di test ed eliminare in questo modo le preoccupazioni relative alla 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 le eventuali chiamate al metodo setHideOverlayWindows(true) a setHideOverlayWindows(false) nelle finestre dell'attività interessate.
Screenshot mancanti (Riquadro nero) nel Dashboard
Per sbloccare la piena funzionalità di Axe DevTools per dispositivi mobili, 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 fittizi per evitare problemi di sicurezza. Consulta la nostra guida per abilitare gli screenshot nelle app Android.
Errore quando minifiedEnabled è impostato su true
Se si minimizza la build, verrà visualizzato un crash con un registro degli errori che segnala che un adattatore non è stato trovato durante il tentativo di accedere alla libreria Axe DevTools. Disabilitare la minimizzazione per le build di debug con Axe DevTools implementato. (#729)
Le build con r8 abilitato generano un errore
Una build con r8 abilitato potrebbe tentare 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.** { *; }
Messaggi di errore quando si usano le API Compose
Le API Compose sono deprecate, si prega di utilizzare le API agnostiche al 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()?`, si prega di fare riferimento alle API Compose setTestTag.
MAUI: Regola Nome Modifica Testo
A causa delle limitazioni dell'architettura dell'app MAUI nel rendering nell'ecosistema Android, la regola Nome Modifica Testo verrà mostrata come Richiede Revisione nel pannello di controllo quando si sospetta un fallimento per la versione SDK 5.5.0 e successive. Si prega di confermare manualmente il comportamento corretto per questo caso.
Android Nativo: Dialoghi/Modali Personalizzati
Quando si implementano dialoghi o modali personalizzati che non estendono i controlli nativi, è possibile ottenere risultati per le viste dietro il modale. In questo caso, si consiglia di non eseguire il nostro strumento contro questi modali o dialoghi personalizzati e invece verificarli manualmente per garantire che si comportino con la tecnologia assistiva come desiderato.
Dashboard Web
Screenshot Mancante
Se lo screenshot manca dalla pagina dei dettagli della scansione, l'app potrebbe impedire che vengano scattati screenshot. Spesso ciò avviene per motivi di sicurezza nella tua applicazione di produzione. Considera 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 sono non formattati
Alcuni nomi di scansione Android che sono predefiniti al titolo dello schermo appariranno come il nome completo della classe inclusivo dell'identificatore del pacchetto. In un futuro aggiornamento, 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 pannello di controllo o dai framework. (#1643)
