axe DevTools Mobile Note sulla versione di aprile 2023
19 aprile 2023
Versioni dei componenti
- axeDevToolsUIKit v3.4.0
- axeDevToolsXCUI v2.4.0
- axe-devtools-android v3.2.0
Cosa c'è di nuovo?
Test e linting automatizzati di React Native
Siamo lieti di annunciare che, a partire da questa versione, axe DevTools Mobile può essere utilizzato per eseguire test di accessibilità in XCUI ed Espresso per le app create con React Native! Ma non è tutto, abbiamo anche aggiunto le regole di React Native all'estensione gratuita axe Accessibility Linter VSCode e axe DevTools Linter (precedentemente nota come axe Linter Server)! Questi due strumenti vanno di pari passo, così il tuo team può individuare i bug di accessibilità il più presto possibile nel processo di sviluppo delle app React Native. [17298]
Paginazione
Per migliorare i tempi di caricamento della dashboard mobile di axe DevTools, abbiamo aggiunto la paginazione alla tabella delle scansioni. Ogni pagina contiene 50 scansioni e sotto la tabella è presente un controllo per navigare tra le pagine. Il banner riepilogativo continuerà a segnalare il punteggio di accessibilità e il numero totale di problemi rimanenti per tutte le scansioni. Il filtraggio e l'ordinamento incideranno sull'insieme complessivo delle scansioni. La selezione in batch delle scansioni è legata a ciascuna pagina, quindi la casella di controllo Seleziona tutto selezionerà solo le 50 scansioni nella pagina corrente. Inoltre, abbiamo rimosso la possibilità di ridimensionare la tabella, ma abbiamo apportato miglioramenti per garantire che i dati per ogni scansione siano disponibili alla larghezza fissa. [17142]
Regole di spaziatura del bersaglio di tocco WCAG 2.2
Qui in Deque ci impegniamo a fornire i test di accessibilità mobile nativi più preziosi, che comprendono la copertura dei criteri di successo WCAG applicabili. Con WCAG 2.2 all'orizzonte, abbiamo implementato delle regole sia su iOS che su Android per testare il criterio di successo di livello AA 2.5.8 Dimensione target (minima) proposta. Queste nuove regole sono chiamate "Touch Target Spacing" per distinguerle dalle nostre attuali regole "Touch Target Size" che si basano sul criterio di successo di livello AAA 2.5.5 Target Size. Si prega di notare che queste nuove regole prevedono requisiti più permissivi rispetto alle regole esistenti, che sono più in linea con le raccomandazioni di Apple e Google. Poiché WCAG 2.2 è ancora nella fase di raccomandazione dei candidati, queste regole riporteranno tutti i risultati con lo stato IGNORED. Una volta finalizzate le WCAG 2.2, queste regole verranno reintegrate in una versione futura. Per ulteriori informazioni sui requisiti sottoposti a test dalle regole di spaziatura dei bersagli tattili, consultare le guide di correzione per iOS e Android.
axe DevTools Mobile per iOS
Supporto iPadOS
axeDevToolsUIKit v3.4.0 e axeDevTools v2.4.0 supportano ufficialmente il test delle applicazioni in esecuzione su iPadOS tramite un simulatore o un dispositivo fisico. Nella dashboard, queste scansioni mostreranno l'icona Apple nella tabella e nella pagina di riepilogo della scansione, mentre i singoli problemi indicheranno iPadOS. [18244]
Build di automazione ottimizzato per XCUI Framework
Nella versione di novembre 2022 abbiamo introdotto una build di automazione ottimizzata di axeDevToolsUIKit che ha consentito test unitari senza autenticazione o altre richieste di rete. Con questa versione offriamo anche una build di automazione ottimizzata di axeDevToolsXCUI, così puoi eseguire test dell'interfaccia utente che non interagiscono con reti esterne. Questa build è disponibile solo tramite Deque Artifactory, quindi segui questa guida per scaricare il framework.
Nuove regole per il framework XCUI
Lavoriamo costantemente per migliorare e ampliare il nostro set di regole, quindi siamo entusiasti di annunciare che sono state aggiunte due nuove regole al framework XCUI per iOS. In precedenza, il contrasto del colore e l'orientamento dello schermo erano inclusi solo in axeDevToolsUIKit, ma ora sono disponibili anche in axeDevToolsXCUI.
Miglioramento della visione per viste in collisione
Dopo aver integrato il framework Vision di Apple nella regola Contrasto colore nell'ultima versione, abbiamo colto l'opportunità di utilizzarlo anche nella nostra regola Viste in collisione. La regola aggiornata ora utilizza l'OCR per determinare se il testo proveniente da viste sovrapposte entra in collisione o meno, riducendo così i falsi positivi.
Caratteristiche aggiuntive
- Aggiunta la possibilità di impostare un nome di scansione durante il salvataggio in locale
- Aggiornata l'API della schermata di accesso per potersi connettere a un'istanza privata
- L'URL della scansione viene ora registrato nei log al momento del caricamento per un facile accesso
axe DevTools Mobile per Android
Miglioramento dell'apprendimento automatico del contrasto di colore
Nella versione di febbraio 2023, abbiamo annunciato di aver incorporato il framework Vision di Apple nella nostra regola del contrasto di colore iOS per aumentarne l'accuratezza e la portata. Allo stesso modo, ora stiamo sfruttando MLKit di Google nella nostra regola del contrasto di colore Android. Ciò ci consente di rilevare il colore del testo in modo più preciso e di testare il contrasto cromatico nelle immagini di testo. Grazie a questi miglioramenti, potrebbero essere segnalati nuovi problemi di contrasto dei colori che in precedenza non eravamo in grado di rilevare.
Regola del nome del pulsante Componi
In axe-devtools-android v3.2.0, abbiamo combinato Compose Icon Button Name e Compose Text Button Name in un'unica regola chiamata Compose Button Name. Le scansioni esistenti manterranno tutti i risultati delle due regole deprecate e possono ancora essere filtrate utilizzando la funzionalità Custom Rulesets nelle impostazioni della dashboard di axe DevTools Mobile.
Caratteristiche aggiuntive
- Aggiunta la possibilità di aggiungere regole personalizzate e analizzare finestre di dialogo utilizzando la build di automazione ottimizzata
- Capacità Ignore Rules ora disponibile per Compose
- Nuova API disponibile per reimpostare le regole ignorate sia per XML che per Compose
Correzioni di bug
axe DevTools Mobile per iOS
LoginViewController
è stato rinominato aDequeLoginViewController
per evitare problemi quando le app hanno un controller con lo stesso nome [23412]- Screen Title rule ora segnala un errore invece di incompleto quando non c'è un titolo programmatico e non c'è nulla di disponibile nella barra di navigazione
- La schermata di accesso ora include le descrizioni dei campi disabilitati
- Risolto un bug con la proprietà
isVisibleToUser
degli avvisi - Risolto un problema nella regola Contrasto colore relativo ai risultati duplicati per più righe di testo
- Aggiornata la formattazione del nome del prodotto nel servizio di utilizzo per essere coerente con altri prodotti Deque
- Ridotti i falsi positivi in diverse regole relative ai selettori
axe DevTools Mobile per Android
- La regola Compose TextField Name ora verrà superata se il TextField include un'icona con una descrizione del contenuto
- Risolto un problema con Proguard che impediva agli utenti di risolvere le collisioni di dipendenza
- Il titolo dello schermo verrà ora formattato in un titolo facilmente leggibile anziché nel nome della classe
- Aggiornata la formattazione del nome del prodotto nel servizio di utilizzo per essere coerente con altri prodotti Deque
Dashboard di axe DevTools Mobile
- La regola Android Hidden Informative View Focus e Hidden Active View Focus vengono ora visualizzate correttamente come sperimentali
- Risolto un problema con la funzione di copia del collegamento al problema che impediva ai nuovi utenti in sola lettura di visualizzare i problemi
- Risolti diversi bug relativi alla finestra modale per la modifica dei tag su una scansione nella tabella
- Migliorato il layout della tabella per ridurre la necessità di scorrimento orizzontale
- La pagina di accesso negato ora è responsiva per varie dimensioni di viewport
- Creati caricatori separati per la tabella e i dati nel banner di riepilogo
- Migliorata la gestione degli errori durante il recupero degli annunci
- Aggiunto testo alternativo per l'icona di chiusura sulla sovrapposizione che appare quando le scansioni vengono selezionate nella tabella
- Miglioramenti allo screen reader e alla navigazione tramite tastiera della tabella
- Aggiunto un collegamento di salto per andare direttamente alla tabella
- Risolto un problema per cui la pagina di accesso negato non veniva visualizzata correttamente in alcuni casi
- Il punto esclamativo che appariva accanto al numero di scansioni è stato rimosso per ridurre la confusione
- Alcuni stili di carattere sono stati aggiornati
Problemi noti
- 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.
- Le regole non verranno eseguite nelle visualizzazioni Web o nei PDF renderizzati. Per testare il contenuto HTML, utilizzare axe DevTools per 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
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.
Il filtro "Visibile all'utente" potrebbe non funzionare correttamente nei menu laterali e negli avvisi.
Stiamo lavorando attivamente per trovare una soluzione e la prevediamo nella prossima versione.
Falsi positivi: InScrollView, SupportsDynamicType
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.
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.
Il filtro "Visibile all'utente" potrebbe non funzionare correttamente nei menu laterali e negli avvisi.
Stiamo lavorando attivamente per trovare una soluzione e la prevediamo nella prossima versione.
L'orientamento orizzontale non è formalmente supportato al momento
Questo aspetto verrà affrontato in una versione successiva.
Falsi Allarmi: A11yElementFocusBox, InScrollView
Stiamo lavorando attivamente per risolvere i seguenti falsi positivi e aggiorneremo questo elenco non appena saranno pubblicate le correzioni.
A11yElementFocusBox
Per le visualizzazioni fuori dallo schermo, questa regola potrebbe segnalare erroneamente che la casella di messa a fuoco di VoiceOver non incapsula la visualizzazione.
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
.
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.
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
La tabella non può essere ordinata in base al numero di problemi
A partire dalla versione di aprile 2023, l'ordinamento in base al numero di problemi per scansione è stato disabilitato. Questo problema verrà risolto in una prossima versione.
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