Note di rilascio di Axe DevTools Mobile del 22 aprile 2026
22 aprile 2026
Versioni dei Componenti
iOS
- Driver iOS Appium 2 (axe-appium2-xcuitest-driver v2.4.0)
- (Derivato da XCUITest v9.10.4)
- Driver iOS Appium 3 (axe-appium3-xcuitest-driver v_1.3.0)
- (Derivato da XCUITest v10.33.0)
Come aggiornare: Driver iOS Appium
Android
- Driver Android Appium 2 (axe-appium2-uiautomator2-driver v2.4.0)
- (Derivato da UiAutomator2 v4.2.8)
- Driver Android Appium 3 (axe-appium3-uiautomator2-driver v1.3.0)
- (Derivato da UiAutomator2 v7.1.0)
Come aggiornare Driver Android Appium
Novità?
Inizia a utilizzare Auto Scan con i driver Axe DevTools per Mobile Appium.
Auto Scan è il modo più rapido per aggiungere controlli di accessibilità ai tuoi test UI esistenti.
- Esegui scansioni automaticamente mentre interagisci con la tua app
- Configura una sola volta e Auto Scan si adatterà per accogliere nuovi test aggiunti alla tua suite
- Quando i test finiscono di essere eseguiti, un riepilogo viene stampato direttamente nei registri dei test e un report HTML autonomo viene generato automaticamente
- Auto Scan supporta sia ambienti online che offline e si integra perfettamente con la tua suite di test
Problemi Conosciuti
Se riscontri uno dei problemi elencati, contattaci a helpdesk@deque.com o support.deque.com. Saremo quindi in grado di notificarti una volta risolto o di un eventuale workaround identificato, se non elencato.
- I test automatizzati di Axe DevTools Mobile vengono eseguiti su applicazioni native iOS, Android e React Native. Contatta il tuo rappresentante Deque per soluzioni di test di accessibilità sul tuo stack tecnologico.
- Anche se potresti ottenere alcuni risultati dai web view o dai PDF renderizzati, raccomandiamo vivamente di testare utilizzando Axe DevTools per Web o Axe Monitor per il test di accessibilità più completo sul web.
iOS
Falsi positivi per la regola dei contrasti di colore con sfondi sfumati su schermi piccoli
Quando si eseguono controlli di accessibilità su schermi di piccole dimensioni o con dimensioni dei caratteri ridotte, la regola del contrasto di colore può segnalare falsi positivi per gli sfondi sfumati. In tali casi, potrebbe non essere in grado di determinare il colore di primo piano e confrontare invece i colori di sfondo tra loro, risultando in un fallimento.
Per risolvere questo problema, prova a eseguire i controlli di accessibilità su dispositivi più grandi. In alternativa, puoi scegliere di ignorare la regola nei tuoi test e controllare manualmente il contrasto di colore per queste visualizzazioni.
Inaccurato isVisible proprietà da XCTest
Le API di accessibilità di Apple possono segnalare erroneamente il contenuto web all'interno di WKWebView come "isVisible", anche quando il web view è coperto da sovrapposizioni native (come viste modali, avvisi o altri elementi UI nativi). Ciò si verifica perché il sistema di accessibilità verifica se il contenitore WKWebView stesso è visibile, piuttosto che se il suo contenuto web è effettivamente non ostruito e percepibile all'utente.
Bug di accessibilità iOS 26 con stepper
iOS 26 presenta un bug di accessibilità in cui i pulsanti predefiniti dello stepper non annunciano "dimmed" dalla tecnologia assistiva per indicare che non sono abilitati. Di conseguenza, anche le regole iOS vedono questi pulsanti come abilitati anche se non lo sono. È stato presentato un rapporto di bug ad Apple, ma fino a quando questo non sarà risolto, le seguenti regole potrebbero segnalare risultati su pulsanti stepper disabilitati: AssociatedText, InaccessibleAction, e ColorContrast.
Finché 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.
Falso positivo: LabelInName e LabelAtFront in SwiftUI & App Cross Platform
Alcuni schermi possono segnalare falsi positivi con LabelInName e LabelAtFront a causa di una proprietà associatedText errata trovata (#1622)
Regola Supporta Dynamic Type non funzionante con simulatore iOS 15 Pro
Esiste un problema che riguarda il simulatore iPhone 15 Pro che impedisce l'esecuzione della regola Supporta Dynamic Type. Se sei iscritto alla regola Supporta Dynamic Type, non sarai in grado di testarla utilizzando un simulatore iPhone 15 Pro. È stato presentato un bug ad Apple.
Regole contro i controlli nidificati
Analizzando un miglioramento per le nostre regole, abbiamo scoperto che in XCTest, i controlli nidificati non vengono restituiti nell'albero dell'accessibilità. È stato registrato un bug presso Apple. (#1110)
Regola sul nome di ImageView: Necessità di revisione dei risultati per le app di UIKit
Nelle app UIKit, un'immagine senza un `accessibilityLabel` non è focalizzabile con le tecnologie assistive per impostazione predefinita.
Le proprietà che utilizziamo per verificare la possibilità di mettere a fuoco da Apple potrebbero risultare inaccurate quando viene impostato un `accessibilityIdentifier` sull'immagine. A causa di questo comportamento inatteso, i risultati per i problemi sul nome di ImageView nelle app di UIKit verranno segnalati come Necessità di revisione. È stato registrato un bug presso Apple. (#1633)
Falso positivo: In Scroll View, Label In Name, Label all'inizio, e nome dell'immagine di v2.11.0 & NomeControlloAttivo
Stiamo lavorando attivamente per risolvere i seguenti falsi positivi e aggiorneremo questa lista man mano che le correzioni verranno rilasciate.
In Scroll View
Il testo all'interno di elementi che si comportano come banner potrebbero essere contrassegnati con un messaggio "Necessità di revisione". Per rendere questi elementi disponibili a chi ha bisogno di testo più grande, utilizza UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Se un UIImageView ha impostato un `accessibilityIdentifier` ma non è focalizzabile da VoiceOver e ha controlli focalizzabili nidificati al suo interno, NomeControlloAttivo potrebbe segnalare un falso positivo sull'UIImageView. Rimuovere l' `accessibilityIdentifier` risolve il problema. È stato registrato 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 visualizzazione, potrebbe essere rilevato il testo vicino errato, causando il fallimento di queste regole. (#1622)
Android
Falso positivo di rilevamento del testo annunciato
In alcuni casi, la tecnologia assistiva si affida a AccessibilityEvent descrizioni del sistema Android per annunciare informazioni all'utente quando non sono disponibili altri annunci. 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 potrà quindi rilevare.
La regola sul contrasto dei colori non viene eseguita quando i colori di testo e sfondo sono gli stessi
La nostra regola sul contrasto dei colori dipende dal Machine Learning per rilevare il testo, il che garantisce che il testo esaminato 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 la presenza di testo, quindi la regola sul contrasto dei colori non viene eseguita su questa vista.
EditTextName su Android 7 (SDK 24-25)
Le app scritte con XML che utilizzano la funzione del testo suggerito potrebbero vedere falsi positivi con la EditTextName regola. Il testo suggerito non è stato introdotto fino ad Android 8 (SDK 26). Utilizzare questo elemento nella tua app XML assegnerà il testo suggerito al valore del campo di input testuale. Le versioni più recenti di Android sono meglio equipaggiate per rendere questa esperienza accessibile.
Per superare questo problema, la nostra prima raccomandazione è di 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'uso della hintText funzione, poiché non è ufficialmente supportata.
Viste nascoste di Android che restituiscono risultati
Potresti vedere risultati per viste che sono nascoste dietro altre viste sullo schermo. Queste viste nascoste non sono disponibili per le tecnologie assistive, ma Axe DevTools Mobile le riporta comunque come problemi.
Stiamo lavorando a una soluzione per questo problema complesso. Nel frattempo, se TalkBack non può raggiungere queste viste, puoi ignorare i problemi corrispondenti. 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, 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 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
Spazio di destinazione del tocco e Jetpack Compose
La regola sullo Spazio di Destinazione del Tocco attualmente non viene eseguita su alcun componente slider scritto in Jetpack Compose. Al momento non è possibile intraprendere azioni. Tuttavia, una soluzione sta per arrivare!
Errore nel salvataggio dei risultati in locale su API 30
Su Android API 30, una delle posizioni in cui tentiamo di salvare i risultati in locale presenta un errore di permessi. Il risultato verrà comunque salvato come file JSON nonostante questo errore venga visualizzato. L'errore può essere eliminato 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 poiché causerà problemi durante il salvataggio in locale per altri livelli API.
Rilevamento dello scorrimento su App Ibride e App Multi-piattaforma
In alcune app ibride e multi-piattaforma, potremmo restituire risultati inattesi quando elementi in una vista a scorrimento sono parzialmente fuori schermo. Per testare un elemento per l'accessibilità, assicurati che sia completamente visibile sullo schermo prima di eseguire la scansione.
App Analyzer: Scomparsa del pulsante di azione flottante
Introdotta con l'API 31 (Android 12) è la capacità di nascondere le overlay non di sistema. Per utilizzare l'app Axe Analyzer, assicurati che questa impostazione non sia attivata. Se hai scelto di utilizzare questa funzione per i suoi miglioramenti di sicurezza, ti consigliamo di tenerla disattivata per le build di test interni dove puoi utilizzare in sicurezza i dati di test ed 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 tutte le chiamate al metodo setHideOverlayWindows(true) a setHideOverlayWindows(false) sulle finestre delle attività interessate.
Screenshot mancanti (scatola nera) nella Dashboard
Per sbloccare la piena funzionalità di Axe DevTools per Mobile, assicurati che gli screenshot siano abilitati. Raccomandiamo di abilitare gli screenshot 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.
Arresto anomalo quando minifiedEnabled è impostato su true
Se minimizzi la tua build, vedrai un arresto anomalo con un log di errore che riporta che un adattatore non può essere trovato quando si cerca di accedere alla libreria Axe DevTools. Disabilita la minimizzazione 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 tentare di minificare 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 utilizzano le API Compose
Le API Compose sono deprecate, si prega 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()?`, si prega di fare riferimento a API Compose setTestTag.
MAUI: Regola Nome Edit Text
A causa delle limitazioni dell'architettura delle app MAUI nel rendering nell'ecosistema Android, la regola Nome Edit Text verrà visualizzata come Necessita Revisione nel 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 si implementano dialoghi o modali personalizzati che non estendono i controlli nativi, è possibile ottenere risultati per le viste dietro il modale. In questo caso, consigliamo di non eseguire il nostro strumento su questi modali o dialoghi personalizzati, ma di controllarli manualmente per assicurarsi che si comportino con la tecnologia assistiva come desiderato.
Dashboard Web
Screenshot Mancante
Se manca lo screenshot dalla pagina dei dettagli della scansione, la tua app potrebbe impedire la cattura degli screenshot. Spesso questo accade per motivi di sicurezza nella tua applicazione di produzione. Considera di rimuovere questo requisito per la tua build di test per consentire il pieno funzionamento nel Dashboard Mobile di Axe DevTools.
Alcuni nomi di scansione Android sono non formattati
Alcuni nomi di scansione Android che sono predefiniti con il titolo dello schermo verranno visualizzati come nome completo della classe includendo l'identificativo del bundle. In una versione futura, questo verrà 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)
