axe DevTools Mobile Note sulla versione del 16 agosto 2023

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

16 Agosto 2023

Not for use with personal data

Versioni dei componenti

  • axeDevToolsXCUI v2.6.0
  • axe-devtools-android v4.0.0

Cosa c'è di nuovo?

Presentazione di axe DevTools Mobile Analyzer

Utilizza il nuovo axe DevTools Mobile Analyzer per testare app iOS o Android create con qualsiasi tecnologia, senza accesso al codice sorgente. Testa sia le app native che quelle multipiattaforma, come SwiftUI e UIKit in iOS, Jetpack Compose e XML in Android, React Native, Flutter, Xamarin e Ionic. axe DevTools Mobile Analyzer sostituisce il Pulsante di Azione Fluttuante incorporato per i test di accessibilità avviati dall'utente (manuali). Per effettuare il passaggio, rimuovi il codice incorporato per il Floating Action Button dalla tua app e segui la documentazione per iniziare a usare il nuovo axe DevTools Mobile Analyzer.

iOS

  • Le viste create con SwiftUI e le app multipiattaforma possono ora essere testate tramite test avviati dall'utente (manuali) utilizzando il nuovo axe DevTools Mobile Analyzer per iOS.
  • La regola Supporta il Tipo Dinamico è ora disponibile nel framework XCUI. Questa regola ridimensiona il testo più volte e rivaluta lo schermo dopo ogni ridimensionamento per individuare eventuali problemi. L'esecuzione richiede alcuni secondi. Per questo motivo, lo abbiamo rilasciato come opzione attivabile. Per partecipare, imposta optInToSDT come vero dall'API di configurazione axe. axeDevTools.configuration.optInToSDT = true.
  • La versione minima di iOS supportata è ora iOS 14 (in precedenza iOS 13).

Android

  • Le app multipiattaforma possono ora essere testate tramite test avviati dall'utente (manuali) utilizzando il nuovo axe DevTools Mobile Analyzer per Android.
  • Le app che utilizzano le viste di Jetpack Compose ora eseguiranno l'intero set di regole tramite test avviati dall'utente (manuali) o automatizzati. (In precedenza le app Android che utilizzavano Jetpack Compose avevano un set di regole più ridotto.)
  • Ora supportiamo il framework di test UI Automator per i test automatizzati.
  • L'Android SDK aggiornato consente la scansione automatizzata dell'accessibilità tramite Espresso e UI Automator utilizzando l'Instrumentation Registry, che non richiede di specificare alcuna vista o attività.
  • Breaking change: la classe DashboardService è stata sostituita con la classe ResultsDashboard .

Pannello di controllo

  • Migliorato il tempo di caricamento per il conteggio dei problemi e il riepilogo dalla schermata principale della Dashboard.
  • Migliorato l'aspetto della View Hierarchy quando visualizzata nel browser Safari.

Correzioni di bug

axe DevTools Mobile per iOS

  • Regola di contrasto colore: non applicheremo più le regole di contrasto colore sui pulsanti disabilitati perché le regole di contrasto colore non sono applicabili agli elementi disabilitati.
  • Regola sui controlli in collisione: qualsiasi controllo che non sia contrassegnato come accessibile o che non sia un elemento di accessibilità non verrà più preso in considerazione quando si esaminano i controlli in collisione.
  • Risultati salvati localmente: il nome della scansione viene ora aggiunto correttamente al file JSON quando viene salvato localmente o scaricato dalla Dashboard. In questo modo viene corretto il titolo "scansione senza nome" che in precedenza veniva visualizzato nei report HTML generati dalla Reporter CLI.

Dashboard di axe DevTools Mobile

  • Correzioni di accessibilità: aggiunto il ruolo aria mancante="button", migliorato l'intestazione della finestra modale di annuncio, rimosso il tooltip nella gerarchia di visualizzazione e aggiunti migliori annunci dello screen reader per la paginazione.
  • Corretto il nome della scansione nello screenshot che in precedenza si sovrapponeva al pulsante "Ispeziona".
  • Risolto un problema per cui gli utenti della prova gratuita visualizzavano un indicatore di caricamento infinito.

Aggiornamenti

Questa versione segna l'ultimo dei nostri 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.

important
  • 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 alla UIContentSizeCategoryDidChange notifica.
  • traitCollectionDidChange Se utilizzato sulla vista padre di un testo o sul controller di vista per rispondere al tipo dinamico.
Viste in sovrapposizione
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)