axe DevTools Mobile 18. Oktober 2023 Versionshinweise
18. Oktober 2023
Komponentenversionen
- axeDevToolsXCUI v2.8.0
- axe-devtools-android v4.2.0
Was ist neu?
Unterstützung für WCAG 2.2
WCAG 2.2 wurde am 5. Oktober offiziell veröffentlicht. Unsere Regel „Touch Target Spacing“ wurde aus dem experimentellen Status herausgehoben. Diese Regel entspricht WCAG 2.2. 2.5.8 und stellt sicher, dass die Ziele eine Mindestgröße aufweisen oder ausreichend Platz um sie herum vorhanden ist. Dies ist wichtig für Menschen mit körperlichen Beeinträchtigungen, die kleine, nahe beieinander liegende Schaltflächen nicht anklicken können. Erfahren Sie mehr über die WCAG 2.2.-Veröffentlichung. Sehen Sie sich die Dokumentation zur Regel „Touch Target Spacing“ für iOS und zur [Regel „Touch Target Spacing“ für Android] an(/android-touch-target-spacing).
Wussten Sie das? Die Regel „Touch Target Spacing“ (WCAG 2.2, 2.5.8) entspricht den AA-Standards, während die Regel „Touch Target Size“ (WCAG 2.1, 2.5.5) den AAA-Standards entspricht. Für wichtige Steuerelemente empfiehlt WCAG, die strengere Regel „Touch-Zielgröße“ anzustreben, um die AAA-Standards zu erfüllen. Deque empfiehlt außerdem, auf Mobilgeräten die strengere Regel anzustreben, da diese die Einhaltung der 44ptx44pt-Richtlinie von Apple erzwingt und sich stärker an der 48dpx48dp-Richtlinie von Google orientiert, um sicherzustellen, dass beim Einreichen Ihrer App bei den App Stores keine Probleme auftreten.
Wichtige Änderung - Nur sichtbare Ansichten scannen
Axe DevTools Mobile scannt jetzt nur Ansichten, die zum Zeitpunkt des Scans für den Benutzer sichtbar sind. Bisher bestand die Standardeinstellung darin, alle Ansichten zu scannen, auch diejenigen, die außerhalb des Bildschirms lagen oder durch andere Ansichten verdeckt waren.
Wie werden dadurch die Ergebnisse verbessert?
- Indem nur das gescannt wird, was für den Benutzer sichtbar ist, spiegeln die Ergebnisse die Benutzererfahrung von Personen mit einer Behinderung oder von Personen, die assistive Technologien verwenden, genauer wider. Alles hinter einem Dialog oder Modal, das vom Benutzer oder der assistive Technologie nicht erreicht werden kann, wird nicht gescannt.
- Computer Vision-Regeln wie Farbkontrast werden bei offscreen Ansichten nicht ausgeführt. Daher erhielten offscreen Ansichten bisher nur Ergebnisse aus einem begrenzten Regelsatz. Indem Sie nur Ansichten innerhalb der Bildschirmgrenzen scannen, können Sie sicher sein, dass alle gescannten Ansichten vom vollständigen Regelsatz profitieren.
Was bedeutet das für Ihr Team?
Wenn Sie derzeit die Kontrollkästchen für „Problemfilterung“ auf dem Dashboard nicht angekreuzt haben, werden Sie keinen Unterschied in Ihren Dashboard-Ergebnissen feststellen. Ansichten, die für den Benutzer nicht sichtbar sind, sind bereits von Ihren Ergebnissen ausgeschlossen.
Andernfalls, sobald Sie auf axeDevToolsXCUI v2.8.0 und axe-devtools-android v4.2.0 aktualisieren: – Ansichten, die hinter anderen Ansichten verborgen sind, wie etwa Modale oder Popups, weisen keine Barrierefreiheitsergebnisse auf.
- Für Ansichten außerhalb des Bildschirms, z. B. über oder unter der aktuellen Bildlaufposition, werden keine Barrierefreiheitsergebnisse angezeigt.
- Tipp: Führen Sie an jeder Scrollposition eines langen Bildschirms einen Scan durch, um sicherzustellen, dass Sie alle Zugänglichkeitsprobleme erfassen. Wenn sich der Startbildschirm Ihrer App beispielsweise über drei Bildschirme erstreckt, würden Sie drei Scans wie unten gezeigt durchführen:
- Bei langen Bildschirmen mit einem wiederholten Ansichtstyp, z. B. einer Liste, sind mehrere Scans an jeder Bildlaufposition möglicherweise nicht erforderlich. Ein einzelner Scan des ersten sichtbaren Bereichs erfasst wahrscheinlich die wiederkehrenden Zugänglichkeitsprobleme.
- Tipp: Führen Sie an jeder Scrollposition eines langen Bildschirms einen Scan durch, um sicherzustellen, dass Sie alle Zugänglichkeitsprobleme erfassen. Wenn sich der Startbildschirm Ihrer App beispielsweise über drei Bildschirme erstreckt, würden Sie drei Scans wie unten gezeigt durchführen:
iOS
– Die Regel für zugehörigen Text wurde aus dem experimentellen Status herausgehoben. Diese Regel stellt sicher, dass ein Steuerelement seinen barrierefreien Namen von einer nahegelegenen Bezeichnung erhält, die für unterstützende Technologien wie VoiceOver und Sprachsteuerung verfügbar ist. – Die Farbkontrastregel wurde verbessert, um eine geschätzte Schriftgröße zu erfassen und die Genauigkeit der Ergebnisse weiter zu verbessern. Diese Änderung bedeutet, dass die Ergebnisse für einige Szenarien jetzt den Status „Bestanden“ oder „Nicht bestanden“ statt „Muss überprüft werden“ melden.
Android
– Inkompatible Änderung bei benutzerdefinierten Regeln – Die Schnittstelle zum Ausführen benutzerdefinierten Regeln in Android wurde aktualisiert, um einem RunRuleResult
Objekt statt einen String
Typs zurückzugeben. Sehen Sie sich ein vollständiges Beispiel der Änderung an oder weitere Informationen zu benutzerdefinierten Regeln in Android.
– Nach sorgfältiger Prüfung haben wir beschlossen, die experimentellen Hidden View Rules aus unserer Bibliothek zu entfernen – Hidden Active View Focus und Hidden Informative View Focus. Diese experimentellen Regeln haben viele Iterationen durchlaufen, während wir über zwei Jahre Feedback gesammelt haben. Wir haben festgestellt, dass die Automatisierung dieser Regeln möglicherweise zu false positives führt. Daher haben wir uns entschieden, sie aus unserem automatisierten Regelsatz zu entfernen, um unser Ziel von 0 false positives zu erreichen. Mit dieser Version haben wir die Hidden View Rules in den Status „ignoriert“ verschoben. Sie erscheinen nicht mehr in der Anzahl Ihrer „Nicht bestanden“- oder „Bestanden“-Ergebnisse. In unserer nächsten Version (Datum wird noch bekannt gegeben) werden sie vollständig aus der Bibliothek entfernt.
– Wir haben den Regeln aussagekräftigere Zusammenfassungen hinzugefügt, um besser zu erläutern, warum sie als „Bestanden“, „Nicht bestanden“ oder „Muss überprüft werden“ markiert sind.
– Die Compose-APIs akzeptieren jetzt ComposeEmptyTestRule
zum Starten einer Aktivität mit ActivityScenario
. Dies kann einfacher sein als die Verwendung von AndroidComposeTestRule
, insbesondere wenn XML- und Compose-Ansichten zusammen verwendet werden. Erfahren Sie mehr über die Verwendung von ComposeEmptyTestRule.
– Mit dieser Version haben wir ein Upgrade von Kotlin Version 1.7 auf Kotlin 1.9 durchgeführt, um sicherzustellen, dass unsere Bibliotheken mit den neuesten Versionen von Jetpack Compose kompatibel bleiben. Kotlin Version 1.9 ist abwärtskompatibel mit Kotlin 1.8 und höher. Wenn Ihre App auf einer Kotlin-Version niedriger als 1.8 basiert, verwenden Sie weiterhin axe-devtools-android v4.1.0 oder niedriger.
– Wir haben von Moshi 1.12.0 auf 1.15.0 und von Jetpack Compose 1.4.3 auf 1.5.1 aktualisiert.
Fehlerbehebungen
iOS
- Tough Target Spacing wurde aktualisiert, um Randfälle von versteckten Steuerelementen und vollständig überlappenden Elementen zu behandeln.
- Verbesserungen beim Erkennen von Zugänglichkeitselementen in Randfällen, die die Ergebnisgenauigkeit für verschiedene Regeln, die Steuerelemente testen, verbessern.
- Die Regel „Unterstützt dynamischen Typ“ wird nicht auf Steuerelementen ohne sichtbaren Text ausgeführt.
- Das Framework friert bei Picker-Elementen nicht mehr ein. Es werden keine Änderungen der Ergebnisse erwartet, da es derzeit keine Regeln für Picker-Elemente gibt. Wir werden in der Zukunft nach Möglichkeiten suchen.
Android
– Wir haben den analysierten Werten für die Regel für die Bildschirmausrichtung leicht verständliche Eigenschaften der Bildschirmausrichtung hinzugefügt. Bisher handelte es sich hierbei um ganzzahlige Werte, die für die Person, die die Ergebnisse überprüfte, nicht leicht zu verstehen waren. – Sie können jetzt die Liste der benutzerdefinierten Regeln aktualisieren, wenn Sie layout-unabhängiges Scannen über das Instrumentierungsregister verwenden.
Übersicht
- Verbesserungen der Zugänglichkeit der Baumansicht in der Funktion „Untersuchen“. Sie können jetzt mithilfe einer Tastatur oder unterstützender Technologie erfolgreich in der Baumansicht navigieren.
Bekannte Probleme
Wenn bei Ihnen eines der folgenden Probleme auftritt, kontaktieren Sie uns bitte unter helpdesk@deque.com oder support.deque.com. Wir können Sie dann benachrichtigen, sobald das Problem behoben ist, oder Ihnen einen Workaround empfehlen, falls keiner aufgeführt ist.
- 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.
- Obwohl Sie möglicherweise einige Ergebnisse aus Webansichten oder gerenderten PDFs erhalten, empfehlen wir dringend, die Tests mit axe DevTools for Web oder axe Monitor für umfassendste Zugänglichkeitstests im Web durchzuführen.
axe DevTools Mobile für iOS
Regel für dynamische Typunterstützung funktioniert nicht mit dem iOS 15 Pro-Simulator
Es gibt ein Problem beim iPhone 15 Pro-Simulator, das die Ausführung der Regel „Unterstützt dynamischen Typ“ verhindert. Wenn Sie die Regel „Unterstützt dynamischen Typ“ aktiviert haben, können Sie sie nicht mit einem iPhone 15 Pro-Simulator testen. Ein Fehler wurde bei Apple gemeldet.
Regeln gegen verschachtelte Steuerelemente
Bei der Suche nach einer Verbesserung unserer Regeln haben wir festgestellt, dass in XCTest verschachtelte Steuerelemente nicht im Zugänglichkeitsbaum zurückgegeben werden. Ein Fehler wurde bei Apple gemeldet. (#1110)
Falsch-Positiv: In der ScrollView, ActiveControlName
Wir arbeiten aktiv an der Behebung der folgenden Fehlalarme und aktualisieren diese Liste, sobald Korrekturen veröffentlicht werden.
In der Scroll-Ansicht
Kann Probleme mit Text in Elementen mit Bannerverhalten melden. Um diese Elemente für diejenigen verfügbar zu machen, die größeren Text benötigen, verwenden Sie UILargeContentViewer
. (#622)
ActiveControlName
Wenn für eine UIImageView ein `accessibilityIdentifier` gesetzt ist, diese jedoch nicht von VoiceOver fokussiert werden kann, und darin fokussierbare Steuerelemente verschachtelt sind, meldet ActiveControlName möglicherweise einen Falsch Positiv für die UIImageView. Durch das Entfernen von `accessibilityIdentifier` wird das Problem behoben. Ein Fehler wurde bei Apple gemeldet. (#1226)
False Negative: Bildansichtsname, fokussierbarer Text in iOS 13 bis iOS 14.8.1
Wir arbeiten aktiv an der Behebung der folgenden Falsch-Negativen und aktualisieren diese Liste, sobald Korrekturen veröffentlicht werden.
Name der Bildansicht
Wenn für ein UIImageView ein `accessibilityIdentifier` -Set vorhanden ist, es jedoch nicht von VoiceOver fokussiert werden kann, meldet ImageViewName möglicherweise ein falsches Negativ für das UIImageView. Durch das Entfernen von `accessibilityIdentifier` wird das Problem behoben. Ein Fehler wurde bei Apple gemeldet. (#1226)
Fokussierbarer Text
Elemente, die als nicht barrierefreie Elemente gekennzeichnet sind, können aufgrund eines Fehlers im Framework von Apple falsche Ergebnisse melden.
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.
Absturz, wenn `minifiedEnabled` auf „true“ gesetzt ist
Wenn Sie Ihren Build minimieren, wird ein Absturz mit einem Fehlerprotokoll angezeigt, das meldet, dass beim Versuch, sich bei der axe DevTools-Bibliothek anzumelden, ein Adapter nicht gefunden werden konnte. Deaktivieren Sie Minify für Ihre Debug-Builds mit implementierten axe DevTools. (#729)
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
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 Prüfname über das Dashboard oder Frameworks festlegen. (#1643)