Axe DevTools Mobile Veröffentlichungsnotizen vom 18. Oktober 2023
18. Oktober 2023
Komponenten-Versionen
- axeDevToolsXCUI v2.8.0
- axe-devtools-android v4.2.0
Was ist neu?
Unterstützung für WCAG 2.2
WCAG 2.2 wurde offiziell am 5. Oktober veröffentlicht. Unsere „Touch-Target-Abstände“-Regel wurde aus dem experimentellen Status befördert. Diese Regel entspricht WCAG 2.2. 2.5.8 und stellt sicher, dass Ziele minimale Größen haben oder ausreichend Platz um sie herum bieten. Dies ist wichtig für Menschen mit körperlichen Beeinträchtigungen, die kleine, eng aneinanderliegende Tasten nicht anklicken können. Erfahren Sie mehr über die WCAG 2.2 Veröffentlichung. Sehen Sie die Dokumentation für die Regel für Touch-Target-Abstände für iOS und die Regel für Touch-Target-Abstände für Android an.
Wussten Sie schon? Die Touch-Target-Abstandsregel (WCAG 2.2, 2.5.8) erfüllt AA-Standards, während die Touch-Target-Größenregel (WCAG 2.1, 2.5.5) AAA-Standards erfüllt. Für wichtige Bedienelemente empfiehlt WCAG, auf die strengere Regel der Touch-Target-Größe abzuzielen, um AAA-Standards zu erreichen. Deque empfiehlt ebenfalls, auf dem Handy die strengere Regel anzuwenden, da sie die Einhaltung der Apple-Richtlinie von 44ptx44pt erzwingt und besser mit den Google-Richtlinien von 48dpx48dp übereinstimmt, um sicherzustellen, dass es keine Probleme bei der Einreichung Ihrer App in den App Stores gibt.
Wichtige Änderung - Nur sichtbare Ansichten scannen
Axe DevTools Mobile wird jetzt nur Ansichten scannen, die zum Zeitpunkt des Scans für den Benutzer sichtbar sind. Bisher war es standardmäßig so, dass alle Ansichten gescannt wurden, auch solche, die sich außerhalb des Bildschirms oder hinter anderen Ansichten verbargen.
Wie verbessert sich dadurch das Ergebnis?
- Indem nur das gescannt wird, was für den Benutzer sichtbar ist, spiegeln die Ergebnisse genauer die Benutzererfahrung einer Person mit einer Behinderung oder einer Person wider, die unterstützende Technologien verwendet. Alles, was sich hinter einem Dialog oder Modal befindet, das vom Benutzer oder von unterstützender Technologie nicht erreicht werden kann, wird nicht gescannt.
- Computer Vision-Regeln, wie Farbkontrast, werden nicht bei Ansichten angewendet, die sich außerhalb des Bildschirms befinden. Früher erhielten Ansichten außerhalb des Bildschirms nur Ergebnisse aus einem eingeschränkten Regelset. Durch das Scannen von Ansichten innerhalb der Bildschirmgrenzen können Sie sicher sein, dass gescannte Ansichten von dem vollständigen Regelset profitieren.
Was bedeutet das für Ihr Team?
Wenn Sie derzeit die Kästchen für „Fehlerfilterung“ im Dashboard deaktiviert haben, werden Sie keinen Unterschied in Ihren Dashboard-Ergebnissen bemerken. 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 upgraden:
- Ansichten, die sich hinter anderen Ansichten verbergen, wie Modale oder Popups, werden keine Barrierefreiheitsergebnisse haben.
- Ansichten, die sich außerhalb des Bildschirms befinden, wie solche über oder unter der aktuellen Scrollposition, werden keine Barrierefreiheitsergebnisse haben.
- Tipp: Machen Sie an jeder Scrollposition eines langen Bildschirms einen Scan, um sicherzustellen, dass Sie alle Barrierefreiheitsprobleme erfassen. Wenn der Startbildschirm Ihrer App beispielsweise 3 Bildschirme umfasst, würden Sie 3 Scans wie unten gezeigt machen:

- Für lange Bildschirme mit einem wiederholten Ansichten-Typ, wie eine Liste, sind mehrere Scans an jeder Scrollposition möglicherweise nicht erforderlich. Ein einziger Scan des ersten sichtbaren Bereichs wird wahrscheinlich die wiederkehrenden Probleme der Barrierefreiheit erfassen.
- Tipp: Machen Sie an jeder Scrollposition eines langen Bildschirms einen Scan, um sicherzustellen, dass Sie alle Barrierefreiheitsprobleme erfassen. Wenn der Startbildschirm Ihrer App beispielsweise 3 Bildschirme umfasst, würden Sie 3 Scans wie unten gezeigt machen:
iOS
- Die Regel für zugeordnete Texte wurde aus dem experimentellen Status befördert. Diese Regel stellt sicher, dass eine Steuerung ihren zugänglichen Namen von einem in der Nähe befindlichen Etikett erhält, das für unterstützende Technologien wie VoiceOver und Sprachsteuerung verfügbar ist.
- Die Regel für Farbkontrast wurde verbessert, um eine geschätzte Schriftgröße abzugreifen und die Genauigkeit der Ergebnisse weiter zu verbessern. Diese Änderung bedeutet, dass Ergebnisse für einige Szenarien jetzt den Status „Bestanden“ oder „Durchgefallen“ statt „Überprüfung erforderlich“ melden werden.
Android
- Breaking Change in benutzerdefinierten Regeln - Die Schnittstelle zum Ausführen benutzerdefinierter Regeln in Android wurde aktualisiert, um ein
RunRuleResult-Objekt anstelle einesString-Typs zurückzugeben. Sehen Sie sich ein vollständiges Beispiel der Änderung oder weitere Informationen zu benutzerdefinierte Regeln in Android an. - Nach sorgfältiger Überprüfung haben wir uns entschieden, die experimentellen Regeln für versteckte Ansichten aus unserer Bibliothek zu entfernen - Fokus auf versteckte aktive Ansichten und Fokus auf versteckte informative Ansichten. Diese experimentellen Regeln wurden in vielen Iterationen getestet, während wir über zwei Jahre Feedback sammelten. Wir haben festgestellt, dass die Automatisierung dieser Regeln das Potenzial hat, falsche positive Ergebnisse zu liefern, und daher haben wir beschlossen, sie aus unserem automatisierten Regelset zu entfernen, um unser Engagement für 0 falsche positive Ergebnisse zu unterstützen. Mit dieser Veröffentlichung haben wir die Regeln für versteckte Ansichten auf den „ignorierten“ Status gesetzt. Sie werden nicht mehr in Ihrer „fehlgeschlagen“ oder „bestanden“ Ergebnisanzahl erscheinen. In unserer nächsten Veröffentlichung (Datum noch festzulegen) werden sie vollständig aus der Bibliothek entfernt.
- Wir haben den Regeln mehr beschreibende Zusammenfassungen hinzugefügt, um besser zu beschreiben, warum sie als bestanden, durchgefallen oder überprüfungsbedürftig markiert sind.
- Die Compose-APIs akzeptieren jetzt
ComposeEmptyTestRule, um eine Aktivität mitActivityScenariozu starten. Dies kann einfacher sein als die Verwendung vonAndroidComposeTestRule, insbesondere wenn sowohl XML- als auch Compose-Ansichten zusammen verwendet werden. Erfahren Sie mehr über die Verwendung von Compose Empty Test Rule. - Mit dieser Veröffentlichung haben wir das Kotlin-Upgrade von 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 hat eine Rückwärtskompatibilität mit Kotlin 1.8 und höher. Wenn Ihre App auf eine Kotlin-Version kleiner als 1.8 angewiesen ist, verwenden Sie bitte weiterhin axe-devtools-android v4.1.0 oder niedriger.
- Wir haben das Upgrade von Moshi 1.12.0 auf 1.15.0 und Jetpack Compose von 1.4.3 auf 1.5.1 durchgeführt.
Fehlerbehebungen
iOS
- Touch-Target-Abstände wurden aktualisiert, um Randfälle von versteckten Steuerelementen und vollständig überlappenden Elementen zu behandeln.
- Verbesserungen bei der Erkennung von Barrierefreiheitselementen in Randfällen, die die Ergebnisgenauigkeit für verschiedene Regeltests von Steuerelementen verbessern werden.
- Die Regel „Unterstützt Dynamic Type“ wird nicht bei Steuerelementen ohne sichtbaren Text ausgeführt.
- Das Framework friert bei Picker-Elementen nicht länger ein. Es werden keine Änderungen an den Ergebnissen erwartet, da es derzeit keine Regeln gibt, die auf Picker-Elemente abzielen. Wir werden weiterhin nach Möglichkeiten suchen.
Android
- Wir haben lesbare Bildschirmausrichtungseigenschaften zu den analysierten Werten für die Bildschirm-Ausrichtungsregel hinzugefügt. Früher waren dies ganzzahlige Werte, die vom Ergebnissucher nicht leicht verstanden werden konnten.
- Sie können jetzt die Liste der benutzerdefinierten Regeln aktualisieren, wenn Sie einen Layout-unabhängigen Scan über das Instrumentation Registry verwenden.
Dashboard
- Verbesserungen der Barrierefreiheit im Baumansicht der „Inspektions“-Funktion. Sie können die Baumansicht jetzt erfolgreich mit einer Tastatur oder unterstützender Technologie navigieren.
Bekannte Probleme
Wenn Sie eines der unten aufgeführten Probleme erleben, kontaktieren Sie uns bitte unter helpdesk@deque.com oder support.deque.com. Wir werden Sie dann benachrichtigen, sobald es gelöst ist, oder über einen identifizierten Workaround, falls keiner aufgeführt ist.
- Axe DevTools Mobile automatisiertes Testen läuft auf nativen iOS-, nativen Android- und React Native-Anwendungen. Bitte kontaktieren Sie Ihren Deque-Ansprechpartner für Lösungen zum Barrierefreiheitstest auf Ihrem Technologie-Stack.
- Obwohl Sie möglicherweise einige Ergebnisse von Web-Views oder gerenderten PDFs erhalten, empfehlen wir, das Testen mit Axe DevTools for Web oder Axe Monitor für die umfassendsten Barrierefreiheitstests für das Web.
Axe DevTools Mobile für iOS
Supports Dynamic Type-Regel funktioniert nicht mit iOS 15 Pro-Simulator
Es gibt ein Problem, das den iPhone 15 Pro-Simulator betrifft und verhindert, dass die Supports Dynamic Type-Regel ausgeführt wird. Wenn Sie für die Supports Dynamic Type-Regel angemeldet sind, können Sie sie nicht mit einem iPhone 15 Pro-Simulator testen. Ein Fehlerbericht wurde bei Apple eingereicht.
Regeln gegen verschachtelte Steuerungen
Bei der Suche nach einer Verbesserung unserer Regeln haben wir festgestellt, dass in XCTest verschachtelte Steuerungen im Barrierefreiheitsbaum nicht zurückgegeben werden. Ein Fehlerbericht wurde bei Apple eingereicht. (#1110)
Falsch Positiv: In Scrollansicht, ActiveControlName
Wir arbeiten aktiv an Behebungen der folgenden falschen positiven Ergebnisse und werden diese Liste aktualisieren, sobald Korrekturen veröffentlicht werden.
In Scroll View
Kann Probleme für Text innerhalb bannerähnlich-behaviorer Elemente melden. Um diese Elemente für diejenigen verfügbar zu machen, die größere Text benötigen, verwenden Sie UILargeContentViewer. (#622)
ActiveControlName
Wenn ein UIImageView ein `accessibilityIdentifier` gesetzt hat, aber nicht von VoiceOver fokussierbar ist und es fokussierbare Steuerelemente darin eingebettet hat, kann ActiveControlName ein falsches Positiv auf dem UIImageView melden. Das Entfernen des `accessibilityIdentifier` behebt das Problem. Ein Fehlerbericht wurde bei Apple eingereicht. (#1226)
Falsch Negativ: Bildansicht Name, Fokussierbarer Text in iOS 13 bis iOS 14.8.1
Wir arbeiten aktiv an Behebungen der folgenden falschen negativen Ergebnisse und werden diese Liste aktualisieren, sobald Korrekturen veröffentlicht werden.
Image View Name
Wenn ein UIImageView ein `accessibilityIdentifier` gesetzt hat, aber nicht von VoiceOver fokussierbar ist, kann ImageViewName ein falsches Negativ auf dem UIImageView melden. Das Entfernen des `accessibilityIdentifier` behebt das Problem. Ein Fehlerbericht wurde bei Apple eingereicht. (#1226)
Focusable Text
Als nicht-barrierefreie Elemente markierte Elemente können aufgrund eines Fehlers im Apple-Framework falsche Ergebnisse melden.
Axe DevTools Mobile für Android
Absturz bei Verwendung von Proguard
Wenn Ihr Debug- oder Testbuild Proguard verwendet, folgen Sie den Schritten, um Deque in den Proguard-Einstellungen zu ignorieren.
Absturz, wenn `minifiedEnabled` auf true gesetzt ist
Wenn Sie Ihr Build minimieren, tritt ein Absturz mit einem Fehlerprotokoll auf, das meldet, dass ein Adapter nicht gefunden werden konnte, wenn versucht wird, sich in die Axe DevTools-Bibliothek anzumelden. Deaktivieren Sie die Minimierung 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'After importing the above library, if you see errors related to minSDK version for core-ktx library try the following in your project’s Android Manifest:
<uses-sdk tools:overrideLibrary="androidx.core" />
Builds mit aktiviertem r8 führen zu einem Fehler
Ein Build mit aktiviertem r8 kann versuchen, die axeDevTools-Bibliothek zu minimieren, was zu einem Fehler führt, der etwa folgendermaßen aussieht:
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.** { *; }
Fehlermeldung ähnlich wie:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
Wenn Sie auf einen Fehler wie "Erwartet genau '1' Knoten, aber '2' Knoten gefunden, die erfüllt: (isRoot)" stoßen, kontaktieren Sie uns bitte unter helpdesk@deque.com oder support.deque.com für Unterstützung. Unter bestimmten Bedingungen können zwei Compose-Wurzelknoten gleichzeitig existieren.
Axe DevTools Mobile-Dashboard
Einige Android-Scan-Namen sind unformatiert
Einige Android-Scan-Namen, die als Standard auf den Bildschirmtitel gesetzt sind, erscheinen als vollständiger Klassenname einschließlich des Bundle-Identifiers. 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 vom Dashboard oder den Frameworks aus festlegen. (#1643)
