Note di rilascio di axe DevTools Mobile del 15 maggio 2024
15 Maggio, 2024
Versioni dei componenti
- axeDevToolsMobile Appium Plugin v2.1.0
Come aggiornare: Plugin Appium
Cosa c'è di nuovo?
Appium
- Abbiamo aggiunto quattro nuove regole al plugin Appium: Testo focalizzabile, Azione inaccessibile, Nome accessibile significativo e In ScrollView. Regole Appium
- Abbiamo aggiunto l'opzione per impostare nome e tag della scansione prima di avviare una scansione di accessibilità. Configurazione di Appium Esempi di automazione di Appium
- Su Android, le regole verranno ora eseguite su tutte le viste cliccabili, non solo sui pulsanti, e abbiamo introdotto il supporto per testare le app create con Jetpack Compose.
Correzioni
Appium
- Risolti i falsi positivi durante la scansione delle app React Native per le regole Etichetta nel nome ed Etichetta nella parte anteriore.
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 applicazioni native iOS, native 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 dalle visualizzazioni web o dai PDF renderizzati, ti consigliamo vivamente di effettuare dei test utilizzando axe DevTools for Web o axe Monitor per i test di accessibilità per il web più completi.
axe DevTools Mobile per iOS
Errore nel progetto Analyzer e Test tramite ID del bundle in 2.8.1
Nella versione 2.8.1, la funzionalità di test di un'applicazione tramite identificatore bundle non funzionava, provocando un errore denominato "Nessun percorso dell'applicazione di destinazione specificato tramite la configurazione del test: ...". Per risolvere l'errore, esegui l'aggiornamento alla versione 2.8.2 o all'ultima versione. Aggiorna alla versione più recente del progetto iOS Analyzer.
Le Viste fuori dallo schermo potrebbero mostrare risultati per le app SwiftUI testate in iOS 17
Con la versione 2.8.0 (Visualizza note di rilascio), i risultati non vengono più segnalati nelle viste non visibili, comprese quelle fuori dallo schermo o nascoste da un'altra vista. Abbiamo scoperto che nelle applicazioni SwiftUI testate in iOS 17 alcuni risultati sono ancora visibili. (#1383)
La regola Supporta il tipo dinamico non funziona con il simulatore iOS 15 Pro
Si è verificato un problema nel simulatore dell'iPhone Pro con iOS 15 che impedisce l'esecuzione della regola Supporta i tipi dinamici. Se hai scelto la regola Supporta il tipo dinamico, non potrai testarlo utilizzando un simulatore di iPhone Pro con iOS 15. È stato segnalato un bug ad Apple.
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. È stato segnalato un bug ad Apple. (#1226)
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. È stato segnalato un bug ad Apple. (#1226)
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)
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)
o : No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
Se riscontri un errore del tipo `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)` o `No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?`, fai riferimento a Compose setTestTag API.
Dashboard di axe DevTools Mobile
Screenshot mancante
Se lo screenshot non è presente nella pagina dei dettagli della scansione, è possibile che l'app impedisca l'acquisizione degli screenshot. Spesso ciò avviene per motivi di sicurezza nell'applicazione di produzione. Considera di rimuovere questo requisito dalla build di test per consentire la piena funzionalità nella dashboard mobile di axe DevTools.
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)
axe DevTools Mobile per Appium
Falso positivo: Nome visualizzazione attiva
A causa delle limitazioni nelle informazioni disponibili tramite la piattaforma Appium, abbiamo identificato un falso positivo per Nome della vista attiva quando si utilizza la proprietà labeledBy
per fornire un'etichetta per un elemento pulsante. Stiamo valutando soluzioni e prevediamo una correzione in una versione futura.
React Native e .NET MAUI: etichetta nel nome ed etichetta all'inizio
A causa delle limitazioni nelle informazioni disponibili tramite la piattaforma Appium, abbiamo identificato che le regole 'Label In Name' e 'Label At Front' non possono essere eseguite per le app create con React Native. Stiamo valutando soluzioni e prevediamo una correzione in una versione futura.
React Native: 'Inspect View Hierarchy' che mostra la schermata precedente
A volte la proprietà sorgente della pagina Appium necessita di più tempo per essere aggiornata tra una scansione e l'altra. In tal caso, quando si utilizza la funzione di ispezione sulla dashboard verrà visualizzata la gerarchia di visualizzazione della schermata precedente. Per risolvere il problema, aggiungi un piccolo timeout prima di chiamare l'API della sorgente della pagina per richiedere la scansione di accessibilità. Esempio:
await driver.pause(1000); const result = await driver.getPageSource();