Note di rilascio di Axe DevTools Mobile del 17 giugno 2026
17 giugno 2026
Versioni dei Componenti
iOS
- App Desktop iOS Analyzer (axe-devtools-mobile-desktop-app v1.3.0)
Come aggiornare: iOS Analyzer
Novità?
La configurazione guidata dell'Axe DevTools Mobile Analyzer individua i problemi prima della scansione. Al lancio, l'app verifica che tu sia pronto per il test e ti invita ad aggiungere ciò che manca. Se non è effettuato l'accesso con un ID Apple o se Xcode non è installato correttamente, non è concesso in licenza, o non ha un account sviluppatore configurato, l'app fornisce spiegazioni chiare e ti permette di risolvere qualsiasi problema prima di procedere.
Seleziona il tuo team sviluppatore Apple all'interno dell'app per firmare automaticamente il progetto Xcode, senza bisogno di aprire Xcode. Quando il tuo team è salvato, l'app gestisce automaticamente la firma ogni volta che esegui una scansione.
Quando si testa su un dispositivo fisico che non ha la Modalità Sviluppatore abilitata, l'app ti guida nell'attivazione e poi continua automaticamente una volta abilitata.
Quando ti connetti a un server backend personalizzato, gli URL ora vengono convalidati in anticipo.
Correzioni
- Risolto un problema in cui i dispositivi iOS fisici collegati via USB non venivano talvolta rilevati. L'app ora stabilisce automaticamente il tunnel di connessione, quindi non è più necessario aprire Xcode prima di collegare un dispositivo.
- Migliorata l'affidabilità delle richieste di rete ritentando automaticamente le connessioni non riuscite.
Problemi Noti
Se stai riscontrando uno dei seguenti problemi, contattaci a helpdesk@deque.com o support.deque.com. In tal modo, saremo in grado di informarti una volta risolto o di un workaround identificato se nessuno è elencato.
- I test automatizzati di Axe DevTools Mobile funzionano su applicazioni native iOS, native Android e React Native. Contatta il tuo rappresentante Deque per soluzioni di test di accessibilità sulla tua piattaforma tecnologica.
- Sebbene puoi ottenere alcuni risultati da viste web o PDF renderizzati, ti consigliamo vivamente di testare utilizzando axe DevTools per Web o axe Monitor per disporre di test di accessibilità più completi per il web.
iOS
Il contrasto del colore potrebbe funzionare su elementi con solo icone dovuto a OCR
La regola del Contrasto del Colore utilizza il framework Vision di Apple (riconoscimento ottico dei caratteri, o OCR) per leggere il testo all'interno dei limiti di un elemento. L'OCR può occasionalmente identificare erroneamente piccoli glifi iconici - come frecce, punti elenco, simboli decorativi - come testo. Quando ciò accade, la regola del Contrasto del Colore si applica a un elemento che non contiene testo leggibile, il che può produrre un risultato per un pulsante composto solo da icone. Poiché l'output di OCR non è deterministico tra le scansioni, lo stesso elemento può apparire nei risultati del Contrasto del Colore in una scansione e essere segnalato come „INAPPLICABILE“ nella successiva. Questa è una caratteristica nota dell'OCR, non un bug nella regola.
Per risolvere questo problema, puoi usare le ignore API per sopprimere i risultati del Contrasto del Colore per gli elementi interessati.
// Ignore Color Contrast for a specific element by accessibility identifier
axeDevTools?.configuration.ignore(rulesFor: [
"backButton": [AxeRuleId.ColorContrast.toString()]
])// Oppure ignora globalmente il Contrasto del Colore axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())
Scopri di più su come ignorare le regole.
Falso positivo del Titolo della Schermata in app Flutter
Flutter non mappa AppBar.title alla proprietà del titolo della schermata nativa - UIViewController.title, causando il fallimento della regola del Titolo della Schermata su tutte le schermate Flutter indipendentemente dal fatto che sia presente un titolo descrittivo.
Questa è una limitazione nota della piattaforma Flutter tracciata in flutter/flutter#185894.
Falsi positivi per la regola del Contrasto del Colore con sfondi a gradiente su schermi piccoli
Quando si eseguono controlli di accessibilità su dimensioni dello schermo più ridotte o con dimensioni di carattere più piccole, la regola del Contrasto del Colore può riportare falsi positivi per gli sfondi a gradiente. In tali casi, potrebbe non riuscire a determinare il colore di primo piano e invece confrontare 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 verificare manualmente il Contrasto del Colore per queste viste.
Inaccurata isVisible proprietà da XCTest
Le API di accessibilità di Apple possono riportare erroneamente i contenuti web all'interno di WKWebView come „isVisible“, anche quando la vista web è coperta da overlay nativi (come viste modali, avvisi o altri elementi UI nativi). Ciò 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 per l'utente.
Bug di accessibilità di iOS 26 con gli 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, anche le regole di iOS vedono questi pulsanti come abilitati anche se non lo sono. È stato presentato un rapporto sui bug ad Apple, ma fino a quando ciò non sarà risolto, le seguenti regole potrebbero riportare risultati sui 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 riportare falsi positivi con LabelInName e LabelAtFront a causa di una proprietà associatedText errata trovata (#1622)
La regola Supporta il Tipo Dinamico non funziona con il simulatore iOS 15 Pro
Esiste un problema che interessa il simulatore iPhone 15 Pro che impedisce l'esecuzione della regola Supporta il Tipo Dinamico. Se hai aderito alla regola Supporta il Tipo Dinamico, non potrai testarla utilizzando un simulatore iPhone 15 Pro. È stato aperto un bug report con Apple.
Regole contro i Controlli Annidati
Mentre esaminavamo un miglioramento delle nostre regole, abbiamo scoperto che in XCTest, i controlli annidati non vengono restituiti nell'albero dell'accessibilità. È stato aperto un bug report con Apple. (#1110)
La Regola Nome ImageView richiede revisioni nei risultati per le app UIKit
Nelle app UIKit, un'immagine senza un `accessibilityLabel` non è focalizzabile con tecnologia assistiva 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 inaspettato, i risultati per le problematiche riguardanti il Nome ImageView nelle app UIKit verranno riportati come Necessitano Revisione. È stato aperto un bug report con Apple. (#1633)
Falso Positivo: Nella Vista di Scorrimento, Nome Nella Etichetta, Etichetta sul Davanti, Nome Immagine v2.11.0 & NomeControlloAttivo
Stiamo lavorando attivamente per risolvere i seguenti falsi positivi e aggiorneremo questa lista man mano che le correzioni saranno rilasciate.
In Scroll View
Il testo all'interno di elementi che si comportano come banner potrebbe essere contrassegnato con un messaggio „Necessita Revisione“. Per rendere disponibili questi elementi 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 con VoiceOver, e ha controlli focalizzabili annidati al suo interno, NomeControlloAttivo potrebbe segnalare un falso positivo sull'UIImageView. Rimuovendo l'`accessibilityIdentifier` si risolve il problema. È stato aperto un bug report con Apple. (#1633)
Label In Name and Label At Front
Queste due regole cercano l'etichetta visibile di un controllo tra elementi vicini per aiutare a determinare lo stato della regola. In alcune gerarchie di viste, potrebbe essere rilevato il testo sbagliato nei dintorni causando il fallimento di queste regole. (#1622)
Android
Potenziali problemi di accessibilità per il Testo Focalizzabile
Quando si utilizzano testi decorativi in viste come „Icone Contatto“, è possibile introdurre un problema di accessibilità. Se si utilizza una vista di testo per visualizzare lettere invece di generare immagini con le lettere desiderate come vettori, e poi si dichiara che la vista di testo non è importante per l'accessibilità, non saremo in grado di determinare in modo affidabile se hai introdotto una violazione dell'accessibilità.
Se modifichi il testo focalizzabile per ignorare due o meno caratteri, potresti involontariamente ignorare molti pulsanti di una parola in varie lingue (ad es. „OK“, „No“, „Sí“). Per evitare questi problemi, dovresti prendere le lettere desiderate dalla parola che intendi rappresentare nell'icona e generarle come parte dell'immagine invece che come viste di testo separate. `FocusableText` allora non verrà eseguito su tali viste.
Falso positivo del Titolo della Schermata in app Flutter
Flutter non mappa AppBar.title alla proprietà del titolo della schermata nativa - Activity.setTitle, causando il fallimento della regola del Titolo della Schermata su tutte le schermate Flutter indipendentemente dal fatto che sia presente un titolo descrittivo.
Questa è una limitazione nota della piattaforma Flutter tracciata in flutter/flutter#185894.
Falso positivo nella rilevazione del testo annunciato
In alcuni casi, la tecnologia assistiva si basa su AccessibilityEvent descrizioni dal sistema Android per annunciare informazioni all'utente quando non è disponibile nient'altro. Poiché AccessibilityEventsono attivati da azioni degli utenti, non siamo in grado di accedere alla descrizione corretta se queste informazioni non sono fornite.
Per evitare questo problema, assicurati che tutte le viste rilevanti siano contrassegnate come importanti per l'accessibilità. Ciò permetterà a Talkback di accedere alle informazioni dalla vista, che il nostro strumento potrà poi rilevare.
La regola del Contrasto di Colore non viene eseguita 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, assicurando così che il testo scansionato sia visibile agli utenti della tua applicazione. Nei casi in cui il testo contenuto in una vista ha lo stesso colore dello sfondo, il nostro algoritmo di Machine Learning non è in grado di rilevare la presenza di testo, quindi la regola del Contrasto di Colore non viene eseguita su questa vista.
EditTextName su Android 7 (SDK 24-25)
Le app scritte in XML che utilizzano la funzione di testo suggerito potrebbero vedere falsi positivi con la EditTextName regola. Il testo suggerito non è stato introdotto fino ad Android 8 (SDK 26). Utilizzando questo elemento nella tua app XML, si assegnerà il testo suggerito al valore del campo di input. 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 Android precedenti, tuttavia, potresti considerare di evitare l'uso della hintText funzione, poiché non è supportata ufficialmente.
Visualizzazioni Android nascoste che restituiscono risultati
Potresti vedere risultati per le viste che sono nascoste dietro altre viste sullo schermo. Queste viste nascoste non sono accessibili alla 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 può raggiungere queste viste, puoi ignorare i problemi corrispondenti. Non richiedono correzioni per garantire l'accessibilità.
Errore durante l'esecuzione della Rilevazione Testo con ML Kit
La rilevazione del testo con ML Kit è necessaria 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 con 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 il seguente sotto 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 dei target touch e Jetpack Compose
La regola di spaziatura dei target touch attualmente non è applicata a nessun componente slider scritto in Jetpack Compose. Al momento non possono essere intraprese azioni. Tuttavia, una soluzione arriverà presto!
Errore durante il 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 autorizzazione. 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
// }
}
Nota 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 Cross-Platform
In alcune app ibride e cross-platform, potremmo ottenere risultati inaspettati quando gli elementi in una vista di scorrimento sono parzialmente fuori schermo. Per testare un elemento per l'accessibilità, assicurarsi che sia completamente sullo schermo prima di eseguire la scansione.
Analyzer App: il pulsante di azione flottante scompare
Introdotta con API 31 (Android 12) è la capacità di nascondere i sovrapposizioni non di sistema. Per utilizzare l'app axe Analyzer, assicurarsi che questa impostazione non sia attivata. Se hai deciso di utilizzare questa funzione per i suoi miglioramenti di sicurezza, consigliamo di lasciarla disattivata per le build di test interne, dove puoi utilizzare in sicurezza i dati di test ed eliminare così 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 qualsiasi chiamata al metodo setHideOverlayWindows(true) a setHideOverlayWindows(false) sulle finestre dell'attività interessate.
Screenshot mancanti (rappresentato da un box nero) nel dashboard
Per sbloccare la funzionalità completa di axe DevTools for Mobile, assicurarsi che gli screenshot siano abilitati. Consigliamo di abilitare gli screenshot in una versione di debug o test della tua app che utilizza dati fittizi per evitare preoccupazioni di sicurezza. Consulta la nostra guida per abilitare gli screenshot nelle app Android.
Crash quando minifiedEnabled è impostato su true
Se minimizzi la tua build, si verificherà un crash con un registro degli errori che riporta che un adattatore non è stato trovato quando si tenta di accedere alla libreria axe DevTools. Disattiva il minimizzatore per le tue build di debug con axe DevTools implementato. (#729)
Le build con r8 abilitato generano un errore
Una build con r8 abilitato può 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 utilizzano le API di Compose
Le API di Compose sono deprecate, si prega di utilizzare le API agnostiche al layout per continuare a ricevere aggiornamenti. Se continui a usare 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 alle API Compose setTestTag.
MAUI: regola del nome del testo di modifica
A causa delle limitazioni dell'architettura delle app MAUI nel rendere nell'ecosistema Android, la regola del Nome del Testo di Modifica verrà visualizzata come Needs Review nel dashboard quando è sospettato un errore 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, si possono ottenere risultati per viste dietro il modale. In questo caso, si consiglia di non eseguire il nostro strumento contro questi modali personalizzati, ma di controllarli manualmente per assicurarsi che si comportino come desiderato con la tecnologia assistiva.
Dashboard Web
Screenshot mancanti
Se lo screenshot manca nella pagina dei dettagli della scansione, la tua app potrebbe impedire la cattura di screenshot. Spesso questo avviene per ragioni 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 di axe DevTools Mobile.
Alcuni nomi di scansioni Android non sono formattati
Alcuni nomi di scansioni Android che sono predefiniti al titolo dello schermo appariranno come nome completo della classe, incluso l'identificatore del bundle. In un prossimo aggiornamento, questo problema 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 direttamente dal dashboard o dai framework. (#1643)
