axe DevTools Mobile Note sulla versione del 26 giugno 2024
26 Giugno 2024
Versioni dei componenti
- Plugin Appium (v2.2.0)
- SDK iOS & Analyzer (axeDevToolsXCUI v2.12.0)
- SDK Android (axe-devtools-android v5.5.1)
- Analizzatore Android (axe Accessibility Analyzer v1.8.1)
Come aggiornare: iOS SDK, iOS Analyzer, Android SDK, Android Analyzer
Cosa c'è di nuovo?
Appium
- Nuove regole: abbiamo aggiunto il supporto WCAG 2.2 con la regola Touch Target Spacing per iOS e Android. Abbiamo anche aggiunto la regola Modifica valore testo per Android.
- Maggiore supporto per i tipi di controllo nelle regole su iOS: ora supportiamo controlli che vanno oltre i semplici pulsanti per tutte le regole.
- Servizio di utilizzo: se il tuo team utilizza il servizio di utilizzo per monitorare l'utilizzo dello strumento axe DevTools Mobile, ora saranno inclusi i dati di Appium.
iOS
- La versione minima di iOS supportata è stata aumentata a iOS 15.
- Dopo le precedenti notifiche di deprecazione, la regola sui controlli in collisione non verrà più applicata a favore della regola sulla spaziatura del bersaglio di tocco, che riguarda sia i controlli in collisione sia le dimensioni del bersaglio.
Correzioni
Android
- Miglioramenti e migliorie per aumentare la precisione e ridurre i falsi positivi nelle seguenti regole: Nome visualizzazione attiva, Dimensione target touch, Etichetta nel nome ed Etichetta in primo piano.
- Miglioramento dei risultati di identificazione e delle regole per le visualizzazioni fuori dallo schermo o parzialmente fuori dallo schermo.
iOS
- Migliorata la regola Nome controllo attivo per garantire una migliore esperienza di accessibilità per gli utenti finali quando utilizzano il controllo stepper.
- Miglioramenti e migliorie per aumentare la precisione e ridurre i falsi positivi e negativi nelle seguenti regole: Nome controllo attivo, Nome visualizzazione immagine ed Etichetta in primo piano.
Appium
- La regola Touch Target Size su Android ora verrà applicata a qualsiasi elemento cliccabile, indipendentemente dalla sua capacità di ricevere il focus.
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)
La regola del nome ImageView deve essere rivista per le app UIKit
Nelle app UIKit, per impostazione predefinita, un'immagine senza `accessibilityLabel` non può essere messa a fuoco con la tecnologia assistiva.
Le proprietà che utilizziamo per verificare la messa a fuoco da Apple potrebbero essere imprecise quando viene impostato un `accessibilityIdentifier` sull'immagine. A causa di questo comportamento imprevisto, i risultati relativi ai problemi del nome ImageView nelle app UIKit verranno segnalati come "Necessita di esame". È stato segnalato un bug ad Apple. (#1633)
Falso positivo: In Scroll View, Label In Name, Label at Front, e Image View Name & ActiveControlName v2.11.0
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)
v2.11.0 Nome ImageView & 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. (#1633)
Etichetta nel nome ed etichetta all'inizio
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 del testo adiacente non corretto, causando il fallimento di queste regole. (#1622)
axe DevTools Mobile per Android
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
Falsi positivi: nome della vista attiva, spaziatura del target touch
Stiamo lavorando attivamente per risolvere i seguenti falsi positivi e aggiorneremo questo elenco non appena saranno pubblicate le correzioni.
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.
Spaziatura del target touch sulla piattaforma iOS per app SwiftUI e React Native
I controlli più grandi potrebbero non superare la spaziatura del target touch quando sono maggiori del requisito minimo di 24 pt x 24 pt. (#411)
Falso negativo: azione inaccessibile su Android React Native
Durante la scansione delle app React Native sulla piattaforma Android, potresti vedere risultati contraddittori per questa nuova regola. Alcune visualizzazioni presentano un elemento pulsante nidificato, che determina un errore per il pulsante padre, ma un successo per il pulsante figlio. (#407)
React Native: Etichetta nel nome ed etichetta nella parte anteriore
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 e .NET MAUI: Ispezione della gerarchia delle viste 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();
Limitazione: Image View Name per le immagini decorative in Android
A causa delle limitazioni nelle informazioni disponibili tramite la piattaforma Appium, abbiamo identificato che la regola Image View Name non è in grado di testare accuratamente i criteri di successo delle immagini decorative in Android. I risultati per le immagini senza un nome accessibile verranno visualizzati nella dashboard come "Necessita di revisione" per ulteriori analisi.