Note di rilascio di Axe DevTools Mobile 14 febbraio 2024
14 febbraio 2024
Versioni dei componenti
- Plugin Appium di axeDevToolsMobile v1.0
Novità?
Soluzione Appium migliorata
- Siamo entusiasti di annunciare una soluzione migliorata per l'uso di Appium per eseguire test di accessibilità sulle tue app mobili. In precedenza, Axe DevTools Mobile supportava i test Appium con app iOS o Android native e richiedeva l'incorporazione del codice Axe nella tua app. Ora offriamo un plugin Appium che ti permette di testare qualsiasi app — nativa o multipiattaforma. Puoi usare qualsiasi client Appium per i tuoi script di test e non è necessario incorporare alcun codice Deque nella tua app. È facile da installare e iniziare. Inizia con Appium
- Il rilascio iniziale del plugin copre cinque regole basate sugli standard WCAG. Amplieremo il nostro set di regole nei prossimi mesi. Regole Appium
- Se stai già usando le nostre capacità Appium originali per ottenere i test di accessibilità mobile di cui hai bisogno, puoi continuare a usarle per il momento. Passeremo al nuovo plugin Appium in futuro una volta completato il set di regole. Resta sintonizzato per ulteriori aggiornamenti.
Problemi noti
Se stai riscontrando uno dei problemi elencati di seguito, contattaci a helpdesk@deque.com o support.deque.com. Potremo così notificarti una volta risolto il problema o comunicarti una soluzione alternativa se non presente.
- 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 da web view o PDF renderizzati, ti consigliamo vivamente di eseguire i test utilizzando Axe DevTools per Web o Axe Monitor per i test di accessibilità più completi per il web.
Axe DevTools Mobile per iOS
Errore nel progetto Analyzer e test tramite Bundle ID nella versione 2.8.1
La funzionalità di testare un'applicazione tramite identificatore di bundle è stata interrotta nella versione 2.8.1, causando un errore intitolato "Percorso dell'applicazione di destinazione non specificato tramite configurazione del test: ...". Aggiornare alla versione 2.8.2 o alla versione più recente per risolvere l'errore. Aggiorna alla versione più recente all'interno del progetto iOS Analyzer.
Le viste fuori schermo possono mostrare risultati per app SwiftUI testate in iOS 17
Con la versione 2.8.0 (Visualizza note di rilascio), i risultati non vengono più riportati su viste non visibili, incluse quelle fuori schermo o nascoste da un'altra vista. Abbiamo scoperto che nelle applicazioni SwiftUI testate in iOS 17, alcuni risultati ancora compaiono. (#1383)
La regola di supporto al tipo dinamico non funziona con il simulatore iOS 15 Pro
C'è un problema che interessa il simulatore iPhone 15 Pro che impedisce l'esecuzione della regola di supporto al tipo dinamico. Se hai aderito alla regola di supporto al tipo dinamico, non potrai testarla usando un simulatore iPhone 15 Pro. È stato presentato un bug ad Apple.
Regole contro i controlli annidati
Mentre cercavamo un miglioramento per le nostre regole, abbiamo scoperto che in XCTest, i controlli annidati non vengono restituiti nell'albero di accessibilità. È stato presentato un bug ad Apple. (#1110)
Falso positivo: In Scroll View, ActiveControlName
Stiamo lavorando attivamente su correzioni per i seguenti falsi positivi e aggiorneremo questo elenco man mano che le correzioni vengono rilasciate.
In Scroll View
Potrebbero essere segnalati problemi per il testo all'interno di elementi comportanti come banner. Per rendere questi elementi disponibili a coloro che necessitano di un testo più grande, utilizza UILargeContentViewer. (#622)
ActiveControlName
Se una UIImageView ha un `accessibilityIdentifier` impostato ma non è focalizzabile tramite VoiceOver, e ha controlli focalizzabili annidati al suo interno, ActiveControlName potrebbe segnalare un falso positivo sulla UIImageView. Rimuovere l'`accessibilityIdentifier` risolve il problema. È stato presentato un bug ad Apple. (#1226)
Falso negativo: Nome visualizzazione immagine, Testo focalizzabile in iOS 13 fino a iOS 14.8.1
Stiamo lavorando attivamente su correzioni per i seguenti falsi negativi e aggiorneremo questo elenco man mano che le correzioni vengono rilasciate.
Image View Name
Se una UIImageView ha un `accessibilityIdentifier` impostato ma non è focalizzabile tramite VoiceOver, ImageViewName potrebbe segnalare un falso negativo sulla UIImageView. Rimuovere l'`accessibilityIdentifier` risolve il problema. È stato presentato un bug ad Apple. (#1226)
Focusable Text
Gli elementi contrassegnati come non accessibili possono segnalare risultati impropri a causa di un bug nel framework di Apple.
Axe DevTools Mobile per Android
Crash quando si utilizza Proguard
Se la tua build di debug o test utilizza Proguard, segui i passaggi per ignorare Deque nelle impostazioni di Proguard.
Crash quando `minifiedEnabled` è impostato su true
Se si riduce la build, vedrai un crash con un log di errore che riporta che un adattatore non è stato trovato quando si tenta di accedere alla libreria Axe DevTools. Disabilita la riduzione per le tue build di debug con Axe DevTools implementato. (#729)
Le build con r8 abilitato lanciano un errore
Una build con r8 abilitato potrebbe tentare di ridurre la libreria axeDevTools causando 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.** { *; }
Messaggio di errore simile a:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
Se incontri un errore del tipo `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)`, ti preghiamo di contattarci a helpdesk@deque.com o support.deque.com per assistenza. In determinate condizioni, potrebbero esserci due nodi root Compose esistenti nello stesso momento.
Dashboard di Axe DevTools Mobile
Screenshot Mancante
Se lo screenshot manca dalla pagina dei dettagli della scansione, l'app potrebbe impedire che gli screenshot vengano catturati. Spesso ciò accade per motivi di sicurezza nella tua applicazione di produzione. Considera 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 di default sono impostati sul titolo dello schermo appariranno come il nome completo della classe, incluso l'identificatore del bundle. In un rilascio futuro, questo 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 dalla dashboard o dai framework. (#1643)
Axe DevTools Mobile per Appium
Falso Positivo: Nome Vista Attiva
A causa delle limitazioni delle informazioni disponibili tramite la piattaforma Appium, abbiamo identificato un falso positivo per Nome Vista Attiva quando si utilizza la labeledBy proprietà per fornire un'etichetta per un elemento pulsante. Stiamo esplorando soluzioni e prevediamo una correzione in un rilascio futuro.
React Native: Etichetta Nel Nome ed Etichetta Davanti
A causa delle limitazioni delle informazioni disponibili tramite la piattaforma Appium, abbiamo identificato che le regole Etichetta Nel Nome ed Etichetta Davanti non possono essere eseguite per le app costruite con React Native. Stiamo esplorando soluzioni e prevediamo una correzione in un rilascio futuro.
React Native: Ispezione della Gerarchia delle Viste Mostra lo Schermo Precedente
A volte la proprietà sorgente della pagina di Appium necessita di più tempo per essere aggiornata tra una scansione e l'altra. Se ciò accade, vedrai la gerarchia delle viste di una schermata precedente quando utilizzi la funzione di ispezione sulla dashboard. Per correggere, aggiungi un piccolo timeout prima di chiamare l'API della sorgente della pagina per avviare la scansione dell'accessibilità. Esempio:
await driver.pause(1000);
const result = await driver.getPageSource();
