axe DevTools Mobile Note sulla versione del 30 agosto 2023
30 Agosto 2023
Versioni dei componenti
- axeDevToolsXCUI v2.7.0
- axe-devtools-android v4.1.0
- axe DevTools Reporter CLI v4.7.0
Cosa c'è di nuovo?
WCAG 2.2 è attualmente nello stato di Raccomandazione proposta. I risultati della regola WCAG 2.2 "Touch Target Spacing" saranno contrassegnati come sperimentali finché WCAG 2.2 non raggiungerà lo stato di raccomandazione. Ciò significa che i risultati di questa regola appariranno ora nei conteggi dei risultati Falliti, Superati e Da Revisionare sotto la voce Sperimentale. (Questa regola in precedenza appariva nel conteggio Ignorati.) Se preferisci, puoi anche disattivare le regole sperimentali. Scopri di più sulle regole sperimentali.
Android
- Ora puoi ignorare le regole nei tuoi test UI automatizzati (Espresso o UI Automator) utilizzando il View ID Resource Name. Usalo per ignorare le regole quando passi nel Instrumentation Registry.
iOS
- La regola Azione inaccessibile ora fa parte del framework XCUI di axe DevTools.
Reporter CLI
- Ora è possibile salvare i report in formato CSV e JUnit XML oltre che in HTML. Scopri di più su axe DevTools Reporter CLI.
Correzioni di bug
iOS
- Maggiore precisione dei risultati quando i controlli sono disattivati.
- Aggiornata la regola "Contrasto colore" per garantire che non venga eseguita su viste oscurate dietro una finestra modale.
- Combinato l'aggiornamento dei nomi di scansione e dei tag in una singola richiesta di rete per migliorare le prestazioni.
Android
- I test di UI Automator ora attenderanno il completamento dell'aggiornamento della finestra prima di eseguire la scansione, per evitare di acquisire uno screenshot non aggiornato.
- Risolto un falso positivo nella regola "Modifica nome testo" per Compose. Questa regola non segnalerà più un errore quando un campo di testo Compose contiene un'etichetta.
- Corretta la regola "Modifica valore testo" per l'esecuzione su tutti gli elementi Compose TextField.
- Risolto un problema di calcolo con la regola "Touch Target Spacing".
Pannello di controllo
- Risolto un problema dell'ultima versione che causava la modifica dell'ordinamento dei problemi all'interno delle scansioni.
Aggiornamenti
Promemoria: a partire dal 16 agosto 2023, abbiamo smesso di rilasciare aggiornamenti al framework UIKit per i test automatizzati sulle app iOS. Continueremo a offrire questo framework nel prossimo futuro, ma non apporteremo più correzioni di bug o aggiornamenti. Ti invitiamo a passare al framework XCUI, che verrà aggiornato con nuove regole e miglioramenti in futuro. Se al momento utilizzi il framework UIKit per test unitari o di interfaccia utente automatizzati e desideri ricevere supporto per la transizione al framework XCUI, faccelo sapere. Invia una richiesta a support.deque.com o invia un'e-mail a helpdesk@deque.com.
Problemi noti
Se riscontri uno dei problemi elencati di seguito, contattaci all'indirizzo helpdesk@deque.com o support.deque.com. Saremo quindi in grado di informarti una volta risolto il problema o di una soluzione alternativa individuata, se non ne è elencata nessuna.
- I test automatizzati di axe DevTools Mobile vengono eseguiti su app native iOS, native Android e React Native. Contatta il tuo rappresentante Deque per soluzioni di test di accessibilità sul tuo stack tecnologico.
- Per aiutarti a ottenere risultati accurati e consigli di rimedio applicabili, le regole di funzionamento di axe DevTools Mobile non vengono eseguite nelle visualizzazioni Web o nei PDF renderizzati. Per testare il contenuto HTML, utilizzare axe DevTools per il Web. axe Monitor supporta la scansione di PDF per l'accessibilità.
axe DevTools Mobile per iOS
axeDevToolsUIKit.xcframework
Le viste create con SwiftUI non possono essere testate utilizzando questo framework per i test automatizzati.
Utilizza il framework axeDevToolsXCUI in UITesting per le viste SwiftUI.
Il supporto per le regole personalizzate è disponibile solo in Swift
L'API delle regole personalizzate non è aperto a Objective-C.
Falsi positivi: InScrollView, SupportsDynamicType, Viste in collisione
Stiamo lavorando attivamente per risolvere i seguenti falsi positivi e aggiorneremo questo elenco non appena saranno pubblicate le correzioni.
InScrollView
InScrollView potrebbe segnalare problemi relativi al testo all'interno di elementi che si comportano come banner. Per rendere questi elementi disponibili a coloro che necessitano di testo più grande, utilizzare UILargeContentViewer
.
SupportsDynamicType
Potresti riscontrare falsi positivi nei seguenti scenari:
- Se si utilizza la notifica
UIContentSizeCategoryDidChange
, il framework potrebbe segnalare erroneamente che il testo non risponde a Dynamic Type in UITests. - Se si utilizza
NotificationCenter.default.addObserver(forName:.., object:.., queue:.., using:..)
[manca oggetto] per rispondere allaUIContentSizeCategoryDidChange
notifica. -
traitCollectionDidChange
Se utilizzato sulla vista padre di un testo o sul controller di vista per rispondere al tipo dinamico.
Quando una sottovista scorrevole contiene testo e tale sottovista non si estende fino al bordo dei limiti dello schermo, si verificheranno fallimenti per il testo situato all'interno dei limiti della vista.
axeDevToolsXCUI.xcframework
Picker SwiftUI e Picker UIKit
Le viste di selezione in SwiftUI e UIKit potrebbero causare il blocco del framework su simulatori o dispositivi. (#636)
Regole contro i controlli nidificati
Esaminando un possibile miglioramento delle nostre regole, abbiamo scoperto che in XCTest i controlli nidificati non vengono restituiti nell'albero di accessibilità. È stato segnalato un bug ad Apple. (#1110)
Falso positivo: in Scroll View, ActiveControlName
Stiamo lavorando attivamente per risolvere i seguenti falsi positivi e aggiorneremo questo elenco non appena saranno pubblicate le correzioni.
Nella vista a scorrimento
Potrebbero essere segnalati problemi relativi al testo all'interno di elementi che si comportano come banner. Per rendere questi elementi disponibili a coloro che necessitano di testo più grande, utilizzare UILargeContentViewer
. (#622)
NomeControlloAttivo
Se un UIImageView ha un `accessibilityIdentifier` impostato ma non è attivabile da VoiceOver, e al suo interno contiene controlli attivabili, ActiveControlName potrebbe segnalare un falso positivo su UIImageView. Rimuovendo il `accessibilityIdentifier` il problema viene risolto. (#1178)
Falso negativo: nome della visualizzazione dell'immagine, testo selezionabile in iOS 13 tramite iOS 14.8.1
Stiamo lavorando attivamente per correggere i seguenti falsi negativi e aggiorneremo questo elenco non appena saranno pubblicate le correzioni.
Nome ImageView
Se un UIImageView ha un `accessibilityIdentifier` impostato ma non è attivabile tramite VoiceOver, NomeImageView potrebbe segnalare un falso negativo su UIImageView. Rimuovendo il `accessibilityIdentifier` il problema viene risolto. (#1188)
Testo selezionabile
Gli elementi contrassegnati come elementi non accessibili potrebbero segnalare risultati errati a causa di un bug nel framework di Apple.
axe DevTools Mobile per Android
Arresto anomalo durante l'utilizzo di Proguard
Se la build di debug o di test utilizza Proguard, seguire i passaggi per escludere Deque nelle impostazioni di Proguard.
Arresto anomalo quando `minifiedEnabled` è impostato su true
Se minimizzi la tua compilazione, vedrai un crash con un registro degli errori che segnala che non è stato possibile trovare un adattatore quando provi ad accedere alla libreria axe DevTools. Disabilita la minimizzazione per le compilazioni di debug con axe DevTools implementato. (#729)
Errori di compilazione con Java8 Project e axe DevTools Android 3.1.0
Prova le seguenti importazioni:
implementation 'androidx.core:core-ktx:1.9.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'Dopo aver importato la libreria sopra, se vedi errori relativi alla versione minSDK per la libreria core-ktx, prova quanto segue nel manifesto Android del tuo progetto:
<uses-sdk tools:overrideLibrary="androidx.core" />
Le build con r8 abilitato generano un errore
Una compilazione con r8 abilitato potrebbe tentare di minimizzare la libreria axeDevTools, generando 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)Per risolvere questo errore, aggiungi la seguente riga al tuo file ProGuard per mantenere le classi axeDevTools:
keep class com.deque.** { *; }
Messaggio di errore simile a:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
Se riscontri un errore del tipo `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)`, contattaci a helpdesk@deque.com o support.deque.com per assistenza. In determinate condizioni, potrebbero esistere contemporaneamente due nodi radice Compose.
Dashboard di axe DevTools Mobile
Alcuni nomi di scansione Android non sono formattati
Alcuni nomi di scansione Android che per impostazione predefinita compaiono nel titolo della schermata appariranno come nome completo della classe, incluso 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 alternativa, puoi impostare il nome della scansione dalla dashboard o dai framework. (#1643)