axe DevTools Mobile April 2023 Versionshinweise
19. April 2023
Komponentenversionen
- axeDevToolsUIKit v3.4.0
- axeDevToolsXCUI v2.4.0
- axe-devtools-android v3.2.0
Was ist neu?
Automatisiertes Testen und Lintieren von React Native
Wir freuen uns, Ihnen mitteilen zu können, dass ab dieser Version mit axe DevTools Mobile Barrierefreiheitstests in XCUI und Espresso für mit React Native erstellte Apps ausgeführt werden können! Aber das ist noch nicht alles, wir haben auch Regeln für React Native zur kostenlosen axe Accessibility Linter VSCode-Erweiterung und zum axe DevTools Linter (früher bekannt als axe Linter Server) hinzugefügt! Diese beiden Tools gehen Hand in Hand, sodass Ihr Team Barrierefreiheitsfehler möglichst früh im Entwicklungsprozess von React Native-Apps erkennen kann. [17298]
Seitennummerierung
Um die Ladezeiten des axe DevTools Mobile Dashboards zu verbessern, haben wir der Scan-Tabelle eine Paginierung hinzugefügt. Jede Seite enthält 50 Scans und unter der Tabelle gibt es ein Steuerelement zum Navigieren zwischen den Seiten. Das Übersichtsbanner zeigt weiterhin den Barrierefreiheits-Score und die Gesamtzahl der verbleibenden Probleme für alle Scans an. Das Filtern und Sortieren wirkt sich auf den gesamten Scansatz aus. Die Sammelauswahl der Scans ist an jede Seite gebunden, sodass das Kontrollkästchen „Alle auswählen“ nur die 50 Scans auf der aktuellen Seite auswählt. Darüber hinaus haben wir die Möglichkeit zur Größenänderung der Tabelle entfernt, jedoch Verbesserungen vorgenommen, um sicherzustellen, dass die Daten für jeden Scan in der festen Breite verfügbar sind. [17142]
WCAG 2.2 Regeln zum Abstand von Touch-Zielen
Hier bei Deque setzen wir uns dafür ein, die wertvollsten nativen Tests zur Barrierefreiheit auf mobilen Geräten bereitzustellen, die auch die geltenden WCAG-Erfolgskriterien abdecken. Da WCAG 2.2 vor der Tür steht, haben wir sowohl auf iOS als auch auf Android Regeln implementiert, um das vorgeschlagene [Erfolgskriterium Stufe AA 2.5.8 Zielgröße (Minimum)] zu testen(https://www.w3.org/TR/WCAG22/#target-size-minimum). Diese neuen Regeln werden als „Abstand zwischen Berührungszielen“ bezeichnet, um sie von unseren vorhandenen Regeln zur Touch Target Size zu unterscheiden, die auf dem [Erfolgskriterium der Stufe AAA 2.5.5 „Zielgröße“ basieren(https://www.w3.org/WAI/WCAG21/Understanding/target-size.html). Bitte beachten Sie, dass die Anforderungen für diese neuen Regeln im Vergleich zu den bestehenden Regeln weniger streng sind und sich stärker an den Empfehlungen von Apple und Google orientieren. Da sich WCAG 2.2 noch in der Phase der Kandidaten-Empfehlung befindet, werden nach diesen Regeln alle Ergebnisse mit dem Status IGNORIERT gemeldet. Sobald WCAG 2.2 fertiggestellt ist, werden diese Regeln in einer nächsten Version wieder eingeführt. Weitere Informationen zu den Anforderungen, die von den Regeln für den Touch-Zielabstand geprüft werden, finden Sie in den Anleitungen zur Behebung des Problems für iOS und Android.
axe DevTools Mobile für iOS
iPadOS-Unterstützung
axeDevToolsUIKit v3.4.0 und axeDevTools v2.4.0 unterstützen offiziell das Testen von Anwendungen, die auf iPadOS laufen, entweder über einen Simulator oder ein physisches Gerät. Im Dashboard werden diese Scans in der Tabelle und auf der Scan-Zusammenfassungsseite mit dem Apple-Symbol angezeigt und die einzelnen Probleme weisen auf iPadOS hin. [18244]
Optimierter Automatisierungsaufbau für das XCUI-Framework
In der Version vom November 2022 haben wir einen optimierten Automatisierungsbuild von axeDevToolsUIKit eingeführt, der Unit-Tests ohne Authentifizierung oder andere Netzwerkanfragen ermöglicht. Mit dieser Version bieten wir auch einen optimierten Automatisierungsbuild von axeDevToolsXCUI an, sodass Sie auch UI-Tests durchführen können, die nicht mit externen Netzwerken interagieren. Dieser Build ist nur über Deque's Artifactory verfügbar, folgen Sie daher bitte dieser Anleitung zum Herunterladen des Frameworks.
Neue Regeln für das XCUI-Framework
Wir arbeiten ständig an der Verbesserung und Erweiterung unseres Regelsatzes und freuen uns daher, mitteilen zu können, dass dem XCUI-Framework für iOS zwei neue Regeln hinzugefügt wurden. Farbkontrast und Bildschirmausrichtung waren bisher nur in axeDevToolsUIKit enthalten, sind jetzt aber auch in axeDevToolsXCUI verfügbar.
Kollidierende Ansichten - Sehverbesserung
Nachdem wir Apples Vision Framework in die Regel „Farbkontrast“ der letzten Version integriert hatten, sahen wir die Möglichkeit, es auch in unserer Regel für „überlappende Ansichten“ zu verwenden. Die aktualisierte Regel verwendet jetzt OCR, um zu ermitteln, ob der Text aus überlappenden Ansichten kollidiert oder nicht, wodurch Fehlalarme reduziert werden.
Zusätzliche Funktionen
- Möglichkeit hinzugefügt, beim lokalen Speichern einen Scan-Namen festzulegen
- Die API des Anmeldebildschirms wurde aktualisiert, um eine Verbindung zu einer privaten Instanz herstellen zu können.
- Die Scan-URL wird jetzt beim Hochladen in die Logdateien ausgegeben, um einen einfachen Zugriff zu ermöglichen
axe DevTools Mobile für Android
Verbesserung des Farbkontrasts durch maschinelles Lernen
In der Version vom Februar 2023 haben wir angekündigt, dass wir das Vision-Framework von Apple in unsere iOS-Farbkontrastregel integriert haben, um die Genauigkeit und den Umfang der Regel zu erhöhen. In ähnlicher Weise nutzen wir jetzt Googles MLKit in unserer Android-Farbkontrastregel. Dadurch können wir die Farbe eines Textes präziser erkennen und den Farbkontrast auf Textbildern testen. Aufgrund dieser Verbesserungen werden Ihnen möglicherweise neue Probleme mit dem Farbkontrast gemeldet, die wir zuvor nicht erkennen konnten.
Regel für den Namen der Schaltfläche „Verfassen“
In axe-devtools-android v3.2.0 haben wir den Name der Schaltfläche 'Compose Icon' und den Name der Schaltfläche 'Compose Text' in einer einzigen Regel namens "Name der Schaltfläche 'Compose'" zusammengefasst. Vorhandene Scans behalten alle Ergebnisse der beiden veralteten Regeln bei und können weiterhin mithilfe der Funktion „Benutzerdefinierte Regelsätze“ in den Einstellungen des mobilen Dashboards von axe DevTools herausgefiltert werden.
Zusätzliche Funktionen
- Möglichkeit zum Hinzufügen benutzerdefinierter Regeln und Scannen von Dialogen mithilfe des Optimized Automation Build hinzugefügt
- Funktion Regeln ignorieren jetzt für Compose verfügbar
- Neue API zum Zurücksetzen ignorierter Regeln sowohl für XML als auch für Compose verfügbar
Fehlerbehebungen
axe DevTools Mobile für iOS
LoginViewController
[Name] wurde umbenannt inDequeLoginViewController
[Neuer Name], um Probleme zu vermeiden, wenn Apps einen Controller mit demselben Namen haben [23412]- Die Bildschirmtitelregel meldet jetzt ein Problem statt als unvollständig, wenn kein programmatischer Titel vorhanden ist und nichts in der Navigationsleiste verfügbar ist
- Der Anmeldebildschirm enthält jetzt Beschreibungen deaktivierter Felder
- Ein Fehler mit der
isVisibleToUser
Eigenschaft für Warnungen wurde behoben - Behebung eines Problems in der Farbkontrastregel im Zusammenhang mit duplizierten Ergebnissen bei mehreren Textzeilen
- Die Formatierung des Produktnamens im Verwendungsdienst wurde aktualisiert, um mit anderen Deque-Produkten konsistent zu sein.
- Reduziert von Fehlalarmen in mehreren Regeln im Zusammenhang mit Pickern
axe DevTools Mobile für Android
- Die Compose TextField Name-Regel funktioniert jetzt, wenn das Textfeld ein Symbol mit einer Inhaltsbeschreibung enthält
- Ein Problem mit Proguard wurde behoben, das dazu führte, dass Benutzer Abhängigkeitskollisionen nicht lösen konnten
- Der Bildschirmtitel wird nun als menschenlesbarer Titel statt als Klassenname formatiert
- Die Formatierung des Produktnamens im Verwendungsdienst wurde aktualisiert, um mit anderen Deque-Produkten konsistent zu sein.
axe DevTools Mobile Dashboard
- Die Regeln „Versteckter informativer Ansichtsfokus“ und „Versteckter aktiver Ansichtsfokus“ von Android werden jetzt ordnungsgemäß als experimentell angezeigt
- Ein Problem mit der Funktion „Link zum Problem kopieren“ wurde behoben, das neue Benutzer mit nur-Lesezugriff daran hinderte, Probleme anzuzeigen.
- Mehrere Fehler im Zusammenhang mit dem Modal zum Bearbeiten von Tags bei einem Scan in der Tabelle behoben
- Das Layout der Tabelle wurde verbessert, um die Notwendigkeit des horizontalen Scrollens zu reduzieren
- Die Seite „Zugriff verweigert“ ist jetzt anpassungsfähig für verschiedene Ansichtsfenstergrößen.
- Separate Lader für die Tabelle und die Daten im Summary-Banner erstellt
- Verbesserte Fehlerbehandlung beim Abrufen von Ankündigungen
- Alternativtext für das Schließen-Icon im Overlay hinzugefügt, das angezeigt wird, wenn Scans in der Tabelle ausgewählt werden
- Verbesserungen am Screenreader und der Tastaturnavigation der Tabelle vorgenommen
- Ein Sprunglink wurde hinzugefügt, um direkt zur Tabelle zu gelangen
- Ein Problem wurde behoben, bei dem die Seite „Zugriff verweigert“ in einigen Fällen nicht richtig angezeigt wurde
- Das Ausrufezeichen, das neben der Anzahl der Scans erscheinen würde, wurde entfernt, um Verwirrung zu vermeiden
- Einige Schriftstile wurden aktualisiert
Bekannte Probleme
- Automatisierte Tests von axe DevTools Mobile laufen auf nativen iOS-, nativen Android- und React Native-Anwendungen. Bitte wenden Sie sich für Lösungen zum Testen der Barrierefreiheit für Ihren Tech-Stack an Ihren Deque-Vertreter.
– Regeln werden nicht in Webansichten oder gerenderten PDFs ausgeführt. Um HTML-Inhalte zu testen, verwenden Sie bitte axe DevTools for Web. axe Monitor unterstützt das Scannen von PDFs auf Barrierefreiheit.
axe DevTools Mobile für iOS
axeDevToolsUIKit.xcframework
Mit SwiftUI erstellte Ansichten können mit diesem Framework nicht getestet werden
Verwenden Sie das axeDevToolsXCUI-Framework in UITesting für SwiftUI-Ansichten.
Die Unterstützung benutzerdefinierter Regeln ist nur in Swift verfügbar
Die benutzerdefinierte Regel-API steht Objective-C nicht zur Verfügung.
Der Filter „Für Benutzer sichtbar“ funktioniert bei Seitenmenüs und Warnungen möglicherweise nicht richtig.
Wir arbeiten aktiv an einer Lösung und erwarten diese in der nächsten Version.
Falsche Positive: InScrollView, SupportsDynamicType
Wir arbeiten aktiv an der Behebung der folgenden Fehlalarme und aktualisieren diese Liste, sobald Korrekturen veröffentlicht werden.
InScrollView
InScrollView meldet möglicherweise Probleme mit Text innerhalb von Banner-ähnlichen Elementen. Um diese Elemente für Nutzer mit Bedarf an größerem Text verfügbar zu machen, verwenden Sie UILargeContentViewer
.
SupportsDynamicType
In den folgenden Szenarien werden möglicherweise falsche Positivergebnisse angezeigt:
- Bei Verwendung der
UIContentSizeCategoryDidChange
Benachrichtigung meldet das Framework möglicherweise fälschlicherweise, dass der Text in UITests nicht auf den dynamischen Typ reagiert. - Wenn Sie
NotificationCenter.default.addObserver(forName:.., object:.., queue:.., using:..)
verwenden, um auf dieUIContentSizeCategoryDidChange
Benachrichtigung zu antworten. - Bei Verwendung von
traitCollectionDidChange
in der übergeordneten Ansicht oder im Ansichtscontroller eines Textes, um auf den dynamischen Typ zu reagieren.
axeDevToolsXCUI.xcframework
SwiftUI Picker und UIKit Picker
Picker-Ansichten in SwiftUI und UIKit können dazu führen, dass das Framework auf Simulatoren oder Geräten hängen bleibt.
Der Filter „Für Benutzer sichtbar“ funktioniert bei Seitenmenüs und Warnungen möglicherweise nicht richtig.
Wir arbeiten aktiv an einer Lösung und erwarten diese in der nächsten Version.
Die Querformatausrichtung wird derzeit nicht offiziell unterstützt.
Dies wird in einer späteren Version behandelt.
Falsch Positive: A11yElementFocusBox, InScrollView
Wir arbeiten aktiv an der Behebung der folgenden Fehlalarme und aktualisieren diese Liste, sobald Korrekturen veröffentlicht werden.
A11yElementFocusBox
Bei Ansichten außerhalb des Bildschirms kann diese Regel fälschlicherweise melden, dass der VoiceOver-Fokusrahmen die Ansicht nicht einschließt.
InScrollView
InScrollView meldet möglicherweise Probleme mit Text innerhalb von Banner-ähnlichen Elementen. Um diese Elemente für diejenigen verfügbar zu machen, die größeren Text benötigen, verwenden Sie UILargeContentViewer
.
axe DevTools Mobile für Android
Absturz bei Verwendung von Proguard
Wenn Ihr Debug- oder Testbuild Proguard verwendet, befolgen Sie die Schritte, um Deque in Ihren Proguard-Einstellungen zu ignorieren.
Fehler beim Kompilieren mit Java8-Projekt und axe DevTools Android 3.1.0
Versuchen Sie die folgenden Importe:
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'Wenn nach dem Importieren der obigen Bibliothek Fehler im Zusammenhang mit der minSDK-Version für die Core-KTX-Bibliothek auftreten, versuchen Sie Folgendes im Android-Manifest Ihres Projekts:
<uses-sdk tools:overrideLibrary="androidx.core" />
Builds mit aktiviertem R8 werfen einen Fehler
Ein Build mit aktiviertem R8 versucht möglicherweise, die Bibliothek axeDevTools zu minimieren, was zu einem Fehler ähnlich dem folgenden führt:
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)Um diesen Fehler zu beheben, fügen Sie Ihrer ProGuard-Datei die folgende Zeile hinzu, um die axeDevTools-Klassen beizubehalten:
keep class com.deque.** { *; }
Fehlermeldung ähnlich wie: Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
Wenn ein Fehler wie `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)` auftritt, kontaktieren Sie uns bitte unter helpdesk@deque.com oder support.deque.com , um Hilfe zu erhalten. Unter bestimmten Bedingungen können zwei Compose-Stammknoten gleichzeitig vorhanden sein.
axe DevTools Mobile Dashboard
Die Tabelle kann nicht nach Anzahl der Probleme sortiert werden
Ab der Version vom April 2023 ist die Sortierung nach Anzahl der Probleme pro Scan deaktiviert. Dies wird in einer kommenden Version behoben.
Einige Android-Prüfnamen sind unformatiert
Bei einigen Android-Prüfnamen, die standardmäßig als Bildschirmtitel angezeigt werden, wird der vollständige Klassenname einschließlich der Bundle-ID angezeigt. In einer zukünftigen Version wird dies behoben, sodass der Bildschirmtitel in einen besser lesbaren Namen formatiert wird. Als Workaround können Sie den Scan-Namen über das Dashboard oder Frameworks festlegen.