Problemi Conosciuti
Se stai riscontrando uno dei problemi sotto elencati, ti preghiamo di contattarci a helpdesk@deque.com o support.deque.com. Saremo poi in grado di avvisarti una volta risolto o di un'eventuale soluzione alternativa se nessuna è elencata.
- I test automatici di Axe DevTools Mobile vengono eseguiti su applicazioni native iOS, Android e React Native. Contatta il tuo rappresentante Deque per soluzioni di test di accessibilità compatibili con il tuo stack tecnologico.
- Sebbene tu possa ottenere alcuni risultati da visualizzazioni web o PDF resi, ti consigliamo vivamente di testare usando Axe DevTools per Web o Axe Monitor per il test di accessibilità più completo per il web.
iOS
Il Contrasto del Colore potrebbe essere eseguito su elementi iconici a causa dell'OCR
La regola del Contrasto del Colore utilizza il framework Vision di Apple (Optical Character Recognition, o OCR) per leggere il testo all'interno dei confini di un elemento. L'OCR può occasionalmente identificare erroneamente piccoli glifi simili a icone - come frecce a forma di < per ritornare indietro, punti elenco, simboli decorativi - come testo. Quando ciò accade, la regola del Contrasto del Colore si applica a un elemento che non contiene testo leggibile, il che può produrre un risultato per un pulsante solo icona. Poiché l'output dell'OCR non è deterministico attraverso le scansioni, lo stesso elemento può apparire nei risultati del Contrasto del Colore in una scansione e essere segnalato come "NON APPLICABILE" nella successiva. Questa è una caratteristica nota dell'OCR, non un bug nella regola.
Per risolvere questo problema, puoi utilizzare le ignore API per sopprimere i risultati del Contrasto del Colore per gli elementi interessati.
// Ignore Color Contrast for a specific element by accessibility identifier
axeDevTools?.configuration.ignore(rulesFor: [
"backButton": [AxeRuleId.ColorContrast.toString()]
])
// Or ignore Color Contrast globally
axeDevTools?.configuration.ignore(rule: AxeRuleId.ColorContrast.toString())Scopri di più su ignorare le regole.
Falso positivo del titolo dello schermo nelle app Flutter
Flutter non mappa AppBar.title alla proprietà nativa del titolo dello schermo - UIViewController.title, causando il fallimento della regola del titolo dello schermo su tutti gli schermi Flutter indipendentemente dalla presenza di un titolo descrittivo.
Questo è un limite noto della piattaforma Flutter tracciato in flutter/flutter#185894.
Falsi positivi della regola del Contrasto del Colore con sfondi a gradiente su schermi piccoli
Quando si eseguono controlli di accessibilità su schermi di piccole dimensioni o con caratteri di dimensioni ridotte, la regola del Contrasto del Colore potrebbe segnalare falsi positivi per gli sfondi a gradiente. In tali casi, potrebbe non essere in grado di determinare il colore in primo piano e invece confrontare i colori di sfondo tra loro, risultando in un errore.
Per risolvere questo problema, prova a eseguire controlli di accessibilità su dispositivi più grandi. In alternativa, puoi scegliere di ignorare la regola nei tuoi test e verificare manualmente il Contrasto del Colore per queste viste.
Proprietà inaccurata isVisible da XCTest
Le API di accessibilità di Apple possono riportare erroneamente il contenuto web all'interno di WKWebView come "isVisible", anche quando la web view è coperta da sovrapposizioni native (come viste modali, avvisi o altri elementi dell'interfaccia utente nativa). Ciò accade perché il sistema di accessibilità verifica se il contenitore WKWebView stesso è visibile, piuttosto che controllare se il contenuto web è effettivamente non ostruito e percepibile dall'utente.
Bug di accessibilità di iOS 26 con gli stepper
iOS 26 contiene un bug di accessibilità in cui i pulsanti stepper predefiniti non annunciano "attutito" dalla Tecnologia Assistiva per indicare che non sono abilitati. Di conseguenza, anche le regole di iOS considerano questi pulsanti come abilitati anche se non lo sono. È stata presentata una segnalazione di bug ad Apple, ma fino a quando non sarà risolto, le seguenti regole potrebbero riportare risultati su pulsanti stepper disabilitati: AssociatedText, InaccessibleAction, e ColorContrast.
Fino a quando Apple non risolverà questo bug, la soluzione sarà [ignorare le regole](ios-ignore-rule). I pulsanti stepper predefiniti hanno gli identificatori "Decrementa" e "Incrementa", e possono essere ignorati tramite identificatore se necessario.
Color Contrast rule does not run when text and background colors are the same
Our Color Contrast rule depends on Machine Learning to detect text, which ensures that the text being scanned is visible to users of your application. In cases where the text contained in a view is the same color as the background, our Machine Learning algorithm is unable to detect if any text is present, so the Color Contrast rule does not run on this view.
Falso Positivo: LabelInName e LabelAtFront in SwiftUI & App Multipiattaforma
Alcune schermate possono segnalare falsi positivi con LabelInName e LabelAtFront a causa di una proprietà associatedText trovata erroneamente (#1622)
La regola Supports Dynamic Type non funziona con il simulatore iOS 15 Pro
C'è un problema che interessa il simulatore iPhone 15 Pro che impedisce l'esecuzione della regola Supports Dynamic Type. Se hai scelto di aderire alla regola Supports Dynamic Type, non sarai in grado di testarla utilizzando un simulatore iPhone 15 Pro. È stato presentato un bug ad Apple.
Regole contro Controlli Annidati
Durante il miglioramento delle nostre regole, abbiamo scoperto che in XCTest, i controlli annidati non vengono restituiti nell'albero di accessibilità. È stato segnalato un bug ad Apple. (#1110)
La Regola del Nome ImageView ha bisogno di Revisione dei Risultati per le App UIKit
Nelle app UIKit, un'immagine senza un `accessibilityLabel` non è focalizzabile con tecnologia assistiva per impostazione predefinita.
Le proprietà che utilizziamo per controllare la focalizzabilità da Apple possono essere inaccurate quando un `accessibilityIdentifier` è impostato sull'immagine. A causa di questo comportamento inatteso, i risultati per i problemi del Nome ImageView nelle app UIKit verranno segnalati come Bisogno di Revisione. È stata presentata una segnalazione di bug ad Apple. (#1633)
Falso Positivo: In Scorrimento, Label In Name, Label at Front, e v2.11.0 Image View Name & ActiveControlName
Stiamo lavorando attivamente a correzioni per i seguenti falsi positivi e aggiorneremo questo elenco man mano che verranno rilasciate correzioni.
In Scroll View
Il testo all'interno di elementi comportamentali come banner, intestazioni/piè di pagina fissi, pulsanti di azione fluttuanti e viste a schede personalizzate potrebbe essere contrassegnato con un messaggio di "Revisione Necessaria" o "Errore". Per rendere questi elementi disponibili a coloro che necessitano di testo più grande, utilizzare UILargeContentViewer. (#622, #2077)
v2.11.0 Image View Name & Active Control Name
Se un UIImageView ha un accessibilityIdentifier impostato ma non è focalizzabile da VoiceOver, e ha controlli focalizzabili annidati al suo interno, il Nome Controllo Attivo potrebbe riportare un falso positivo sull'UIImageView. Rimuovere il accessibilityIdentifier risolve il problema. È stato segnalato un bug ad Apple. (#1633)
Label In Name and Label At Front
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 errato nelle vicinanze causando il fallimento di queste regole. (#1622)
Android
Falsi positivi per l'etichetta frontale con testo visibile oscurato
La regola dell'etichetta frontale verifica che l'etichetta visibile di un elemento si trovi all'inizio del testo annunciato. Un errore di regola può verificarsi quando il testo visibile di un elemento interattivo contiene un'abbreviazione (ad es. "GB", "km") o un identificatore oscurato/troncato, e l'annuncio per l'accessibilità è costituito dalle parole rappresentate (ad es. "gigabyte", "chilometri"), anche se questo è il modello raccomandato per rendere il contenuto abbreviato o troncato accessibile agli screen reader.
Se la prima parte dell'etichetta visibile di un elemento interattivo corrisponde all'inizio dell'annuncio dello screen reader e solo la parte abbreviata/oscurata differisce, il risultato segnalato può essere tranquillamente ignorato. Verifica con uno screen reader che l'annuncio completo sia letto come previsto.
Potenziali problemi di accessibilità per il testo focalizzabile
Quando si usa testo decorativo in viste come "Icone di contatto", è possibile introdurre un problema di accessibilità. Se usi una vista di testo per visualizzare lettere invece di generare immagini con le lettere desiderate come vettori, e dichiari poi che quella vista di testo non è importante per l'accessibilità, non saremo in grado di determinare in modo affidabile se hai introdotto una violazione dell'accessibilità.
Se modifichi il testo focalizzabile per ignorare due o meno caratteri, potresti involontariamente ignorare molti pulsanti di una parola in varie lingue (ad esempio "OK", "No", "Sí"). Per evitare questi problemi, dovresti prendere le lettere desiderate dalla parola che vuoi rappresentare nell'icona e generare le lettere come parte dell'immagine anziché come viste di testo separate. `FocusableText` quindi non verrà eseguito su quelle viste.
Falso positivo del titolo dello schermo nelle app Flutter
Flutter non mappa AppBar.title alla proprietà nativa del titolo dello schermo - Activity.setTitle, causando il fallimento della regola del titolo dello schermo su tutti gli schermi Flutter indipendentemente dalla presenza di un titolo descrittivo.
Questo è un limite noto della piattaforma Flutter tracciato in flutter/flutter#185894.
Falso positivo nel rilevamento del testo annunciato
In alcuni casi, la tecnologia assistiva si affida a AccessibilityEvent descrizioni dal sistema Android per annunciare informazioni all'utente quando non ci sono altri annunci disponibili. Poiché AccessibilityEventvengono attivati da azioni dell'utente, non siamo in grado di accedere alla descrizione corretta se queste informazioni non sono fornite.
Per evitare questo problema, assicurati che tutte le viste pertinenti siano contrassegnate come importanti per l'accessibilità. Questo permetterà a Talkback di accedere alle informazioni dalla vista, che il nostro strumento potrà quindi rilevare.
La regola del contrasto dei colori non viene eseguita quando i colori del testo e dello sfondo sono uguali
La nostra regola del contrasto dei colori dipende dal Machine Learning per rilevare il testo, il che garantisce che il testo analizzato sia visibile agli utenti della tua applicazione. Nei casi in cui il testo contenuto in una vista è dello stesso colore dello sfondo, il nostro algoritmo di Machine Learning non è in grado di rilevare se il testo è presente, quindi la regola del contrasto dei colori non viene eseguita su questa vista.
EditTextName su Android 7 (SDK 24-25)
Le app scritte con XML che utilizzano la funzione di testo suggerito potrebbero vedere falsi positivi con la EditTextName regola. Il testo suggerito non è stato introdotto fino ad Android 8 (SDK 26). Usare questo elemento nella tua app XML assegnerà il testo suggerito al valore del campo di input del testo. Le versioni più recenti di Android sono meglio attrezzate per rendere questa esperienza accessibile.
Per superare questo problema, la nostra prima raccomandazione è di eseguire i tuoi test su versioni più recenti di Android. Se è importante che l'app sia accessibile su versioni precedenti di Android, tuttavia, potresti considerare di evitare l'uso della hintText funzione, poiché non è ufficialmente supportata.
Visualizzazioni nascoste di Android che restituiscono risultati
Potresti vedere risultati per visualizzazioni che sono nascoste dietro altre visualizzazioni sullo schermo. Queste visualizzazioni nascoste non sono disponibili per la tecnologia assistiva, ma Axe DevTools Mobile le segnala comunque come problemi.
Stiamo lavorando a una soluzione per questo problema complesso. Nel frattempo, se TalkBack non riesce a raggiungere queste visualizzazioni, puoi ignorare i relativi problemi. Non richiedono una soluzione per garantire l'accessibilità.
Errore durante l'esecuzione del rilevamento del testo di ML Kit
Il rilevamento del testo di ML Kit è richiesto in molte delle regole di Axe DevTools Mobile per garantire l'accuratezza dei risultati. La libreria ML Kit dovrebbe essere importata automaticamente quando fai riferimento a Axe DevTools Mobile nei tuoi test automatizzati Espresso o UIAutomator. In alcuni casi, tuttavia, l'importazione automatica non avviene e vedrai il seguente errore nel logcat:
Axe DevTools Android: Errore durante l'esecuzione di mlKit Text Detection: MlKitContext non è stato inizializzato.
Per risolvere questo problema, dovresti importare manualmente la libreria ML Kit nel tuo progetto. Nel file della tua applicazione build.gradle , aggiungi quanto segue sotto le dipendenze:
debugImplementation 'com.google.mlkit:text-recognition:16.0.1'Trova un esempio completo del funzionamento della libreria ML Kit importata nella sezione Iniziare con l'SDK Mobile Android, sotto Implementazione
Spaziatura del target di tocco e Jetpack Compose
La regola della spaziatura del target di tocco attualmente non viene eseguita su alcun componente slider scritto in Jetpack Compose. Al momento non è possibile intraprendere alcuna azione. Tuttavia, una soluzione è in arrivo!
Errore durante il salvataggio dei risultati localmente su API 30
Su Android API 30, una delle posizioni in cui tentiamo di salvare i risultati localmente presenta un errore di permessi. Il risultato verrà comunque salvato come file JSON nonostante venga visualizzato questo errore. L'errore può essere soppresso commentando il codice nel seguente blocco:
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
// finalizedBy {
// fetchAndroidFolderAxeReportsTask
// }
}Si prega di notare che questo codice dovrebbe essere commentato solo per l'API 30 poiché provocherà problemi quando si salva localmente per altri livelli API.
Rilevamento dello scorrimento su app ibride e app cross-platform
In alcune app ibride e cross-platform, potremmo restituire risultati inaspettati quando gli elementi in una vista a scorrimento sono parzialmente fuori dallo schermo. Per testare un elemento per l'accessibilità, assicurati che sia completamente visibile sullo schermo prima di eseguire la scansione.
Analyzer App: Il pulsante di azione flottante scompare
Introdotta con API 31 (Android 12) è la possibilità di nascondere sovrapposizioni non di sistema. Per utilizzare l'app Axe Analyzer, assicurati che questa impostazione non sia attivata. Se hai scelto di utilizzare questa funzione per i suoi miglioramenti di sicurezza, ti consigliamo di tenerla disattivata per le build di test interne dove puoi utilizzare dati di test in sicurezza ed eliminare le preoccupazioni di sicurezza in questo modo. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
Per utilizzare l'app Axe Accessibility Analyzer, aggiorna qualsiasi chiamata al metodo setHideOverlayWindows(true) a setHideOverlayWindows(false) sulle finestre delle attività interessate.
Screenshot mancanti (Scatola Nera) nella Dashboard
Per sbloccare la piena funzionalità di Axe DevTools per Mobile, assicurati che gli screenshot siano abilitati. Ti consigliamo di abilitare gli screenshot su una versione di debug o test della tua app che utilizza dati simulati per evitare problemi di sicurezza. Consulta la nostra guida per abilitare gli screenshot nelle app Android.
Crash quando minifiedEnabled è impostato su vero
Se riduci a icona la tua 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 a icona per i tuoi build di debug con Axe DevTools implementati. (#729)
Le build con r8 abilitato generano un errore
Una build con r8 abilitato può tentare di minimizzare la libreria axeDevTools risultando in 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 di axeDevTools:
keep class com.deque.** { *; }Messaggi di errore quando si usano le API Compose
Le API Compose sono deprecate, si prega di usare le API indipendenti dal layout per continuare a ricevere aggiornamenti. Se si continua a usare le API Compose e si riscontra un errore del tipo `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)` o `No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?`, si prega di fare riferimento a Compose setTestTag API.
MAUI: Regola Nome Edit Text
A causa delle limitazioni dell'architettura dell'app MAUI nel sistema Android, la regola Nome Edit Text verrà mostrata come Necessita Revisione nel dashboard quando si sospetta un errore per la versione SDK 5.5.0 e successive. Si prega di confermare manualmente il comportamento corretto per questo caso.
Android Nativo: Dialoghi/Modali Personalizzati
Quando si implementano dialoghi o modali personalizzati che non estendono i controlli nativi, è possibile ottenere risultati per le visualizzazioni dietro il modale. In questo caso, consigliamo di non eseguire il nostro strumento contro questi modali o dialoghi personalizzati e invece verificarli manualmente per assicurarci che funzionino con la tecnologia assistiva come desiderato.
Dashboard Web
Screenshot Mancante
Se lo screenshot manca dalla pagina dei dettagli della scansione, la tua app potrebbe impedire che vengano scattati screenshot. Spesso questo avviene per motivi di sicurezza nella tua applicazione di produzione. Considera la possibilità di rimuovere questo requisito per il tuo build di test per consentire la piena funzionalità nel Dashboard di Axe DevTools Mobile.
Alcuni nomi di scansione Android non sono formattati
Alcuni nomi di scansione Android che predefiniti al titolo dello schermo appariranno come il nome completo della classe, incluso l'identificatore del pacchetto. In una versione futura, 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 dal dashboard o dai framework. (#1643)
