Axe DevTools Mobile Release Notes vom 16. Januar 2025
16. Januar 2025
Komponenten-Versionen
- iOS SDK (axeDevToolsXCUI v2.13.0)
- iOS Analyzer (axe-devtools-mobile-analyzer v1.4.5)
- iOS Appium Driver (axe-appium-xcuitest-driver v1.1.0)
So aktualisieren Sie: iOS SDK, iOS Analyzer, iOS Appium Driver
Fehlerbehebungen
- Updates zur Verbesserung der Leistung und Genauigkeit der folgenden Regeln: Verbundener Text, Farbkontrast, Konfliktierende Merkmale, Unzugängliche Aktion, Im Scroll-View, Label im Namen, Label vorn, Verschachtelte Elemente Namen
- Mindestens unterstützte iOS-Version ist jetzt iOS 16
- Behobenes Problem mit der Ignore Rules-Funktion, speziell beim Ignorieren durch Zugänglichkeitsbezeichner mit SwiftUI
Bekannte Probleme
Wenn Sie eines der folgenden Probleme haben, kontaktieren Sie uns bitte unter helpdesk@deque.com oder support.deque.com. Wir können 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-Vertreter, um Lösungen für Barrierefreiheitstests auf Ihrem Tech-Stack zu erhalten.
- Obwohl Sie möglicherweise einige Ergebnisse von Web-Views oder gerenderten PDFs erhalten, empfehlen wir dringend, Axe DevTools für das Web oder Axe Monitor für die umfassendsten Barrierefreiheitstests im Web zu verwenden.
iOS
Fehler im Analyzer-Projekt & Testen nach Bundle-ID in 2.8.1
Die Funktionalität beim Testen einer Anwendung nach Bundle-ID war in Version 2.8.1 defekt, was zu einem Fehler führte mit dem Titel „Kein Zielanwendungspfad über Testkonfiguration angegeben: ...“. Aktualisieren Sie auf 2.8.2 oder die neueste Version, um den Fehler zu beheben. Aktualisieren Sie auf die neueste Version innerhalb des iOS Analyzer-Projekts.
Falsch positive Ergebnisse: LabelInName und LabelAtFront in SwiftUI & plattformübergreifenden Apps
Einige Bildschirme können aufgrund einer falschen associatedText-Eigenschaft, die gefunden wird (#1622), false positives mit LabelInName und LabelAtFront melden.
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 optiert haben, können Sie diese nicht mit einem iPhone 15 Pro-Simulator testen. Ein Fehler wurde bei Apple eingereicht.
Regeln gegen verschachtelte Steuerungen
Beim Sichten einer Verbesserung für unsere Regeln haben wir festgestellt, dass in XCTest verschachtelte Steuerungen nicht im Zugänglichkeitsbaum zurückgegeben werden. Ein Fehler wurde bei Apple eingereicht. (#1110)
ImageView Name Regel benötigt Überprüfungsergebnisse für UIKit-Apps
In UIKit-Apps ist ein Bild ohne `accessibilityLabel` standardmäßig nicht mit unterstützender Technologie fokussierbar.
Die Eigenschaften, die wir verwenden, um die Fokussierbarkeit von Apple zu überprüfen, können ungenau sein, wenn eine `accessibilityIdentifier` auf dem Bild gesetzt ist. Aufgrund dieses unerwarteten Verhaltens werden Ergebnisse für ImageView Name-Probleme in UIKit-Apps als Überprüfung erforderlich gemeldet. Ein Fehlerbericht wurde bei Apple eingereicht. (#1633)
Falsch positive Ergebnisse: In Scroll View, Label im Namen, Label vorn und v2.11.0 Image View Name & ActiveControlName
Wir arbeiten aktiv an der Behebung der folgenden false positives und werden diese Liste aktualisieren, sobald Korrekturen veröffentlicht werden.
In Scroll View
Möglicherweise werden Probleme für Text innerhalb von Banner-verhaltenden Elementen gemeldet. Um diese Elemente für Personen mit Bedarf an größerem Text zugänglich zu machen, verwenden Sie UILargeContentViewer. (#622)
v2.11.0 Image View Name & Active Control Name
Wenn ein UIImageView eine `accessibilityIdentifier` gesetzt hat, aber von VoiceOver nicht fokussierbar ist und innerhalb dessen fokussierbare Steuerungen verschachtelt sind, kann ActiveControlName ein false positive auf dem UIImageView melden. Das Entfernen der `accessibilityIdentifier` löst das Problem. Ein Fehler wurde bei Apple eingereicht. (#1633)
Label In Name and Label At Front
Diese beiden Regeln suchen nach dem sichtbaren Label einer Steuerung unter nahegelegenen Elementen, um den Regelstatus zu bestimmen. In einigen Ansichtshierarchien kann der falsche nahegelegene Text erkannt werden, wodurch diese Regeln fehlschlagen. (#1622)
Android
Fehler beim lokalen Speichern von Ergebnissen auf API 30
Auf Android API 30 tritt bei einem der Standorte, die wir versuchen, Ergebnisse lokal zu speichern, ein Berechtigungsfehler auf. Das Ergebnis wird dennoch als JSON-Datei gespeichert, obwohl dieser Fehler angezeigt wird. Der Fehler kann unterdrückt werden, indem der Code im folgenden Block auskommentiert wird:
def clearDirectoryTask = task('clearDirectoryTask', type: Exec, group: 'reporting') {
executable "${android.getAdbExecutable().toString()}"
args 'shell', 'rm', '-r', '/storage/emulated/0/Documents/AxeTestCases'
// finalizedBy {
// fetchAndroidFolderAxeReportsTask
// }
}
Please note that this code should only be commented out for API 30 as it will cause problems when saving locally for other API levels.
Scroll-Erkennung bei hybriden Apps und plattformübergreifenden Apps
In einigen hybriden und plattformübergreifenden Apps können wir unerwartete Ergebnisse zurückgeben, wenn sich Elemente in einem Scroll-View teilweise außerhalb des Bildschirms befinden. Um ein Element auf Zugänglichkeit zu testen, stellen Sie sicher, dass es vollständig auf dem Bildschirm ist, bevor Sie den Scan durchführen.
Analyzer App: Schwebender Aktionsknopf verschwindet
Mit API 31 (Android 12) wurde die Möglichkeit eingeführt, nicht-systemische Überlagerungen auszublenden. Um die Axe Analyzer App zu nutzen, stellen Sie bitte sicher, dass diese Einstellung nicht aktiviert ist. Wenn Sie sich entschieden haben, diese Funktion wegen ihrer Sicherheitsvorteile zu nutzen, empfehlen wir, sie bei internen Testbuilds, bei denen Sie sicher Testdaten verwenden können um Sicherheitsbedenken auszuschließen, deaktiviert zu lassen. Note: this setting does not affect Google's accessibility scanner app as it's considered a system overlay.
Um die Axe Accessibility Analyzer App zu nutzen, aktualisieren Sie alle Aufrufe der Methode setHideOverlayWindows(true) auf den betroffenen Aktivitätsfenstern. setHideOverlayWindows(false)
Fehlender Screenshot (schwarzes Kästchen) im Dashboard
Um die volle Funktionalität von Axe DevTools für Mobile freizuschalten, stellen Sie sicher, dass Screenshots aktiviert sind. Wir empfehlen, Screenshots in einer Debug- oder Testversion Ihrer App zu aktivieren, die mit Mock-Daten arbeitet, um Sicherheitsbedenken zu vermeiden. Siehe unser Leitfaden zum Aktivieren von Screenshots in Android-Apps.
Absturz, wenn `minifiedEnabled` auf true gesetzt ist
Wenn Sie Ihr Build minifizieren, kommt es zu einem Absturz mit einem Fehlerprotokoll, das meldet, dass ein Adapter nicht gefunden werden konnte, wenn versucht wird, sich in die Axe DevTools-Bibliothek einzuloggen. Deaktivieren Sie die Minifizierung für Ihre Debug-Builds mit implementierten Axe DevTools. (#729)
Builds mit aktiviertem r8 werfen einen Fehler
Ein Build mit aktiviertem r8 kann versuchen, die axeDevTools-Bibliothek zu minifizieren, was zu einem Fehler ähnlich dem folgenden führen kann:
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.** { *; }
Ähnliche Fehlermeldung zu:
Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)
oder: No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?
Die Compose-APIs sind veraltet, bitte verwenden Sie die layout-agnostischen APIs , um weiterhin Updates zu erhalten. Wenn Sie weiterhin die Compose-APIs verwenden und auf einen Fehler wie `Expected exactly '1' node but found '2' nodes that satisfy: (isRoot)` oder `No View initialized, did you call AxeDevToolsCompose.setComposeTestRule()?` stoßen, beziehen Sie sich bitte auf Compose setTestTag API.
Log-Meldung:MlKitContext has not been initialized
Wenn Sie diese Meldung erhalten, kann es sein, dass einige Regel-Ergebnisse nicht wie erwartet zurückgegeben werden, wenn diese Regel künstliche Intelligenz verwendet. Betroffene Regeln sind unter anderem Farbkontrast, fokussierbarer Text und verschachtelte Elementnamen. (#841)
MAUI: Regel für Edit Text Name
Aufgrund von Einschränkungen der MAUI-App-Architektur im Android-Ökosystem wird die Regel für Edit Text Name im Dashboard als benötigt Überprüfung angezeigt, wenn ein Fehler bei SDK-Version 5.5.0 und höher vermutet wird. Bitte bestätigen Sie das korrekte Verhalten manuell in diesem Fall.
Native Android: Benutzerdefinierte Dialoge / Modale
Wenn Sie benutzerdefinierte Dialoge oder Modale implementieren, die nicht die nativen Steuerelemente erweitern, können Sie Ergebnisse für Ansichten hinter dem Modal erhalten. In diesem Fall empfehlen wir, unser Tool nicht gegen diese benutzerdefinierten Modale oder Dialoge laufen zu lassen und stattdessen manuell zu überprüfen, ob sie mit unterstützender Technologie wie gewünscht funktionieren.
Web-Dashboard
Fehlender Screenshot
Wenn der Screenshot auf der Scan-Detailseite fehlt, verhindert Ihre App möglicherweise die Aufnahme von Screenshots. Oft geschieht dies aus Sicherheitsgründen in Ihrer Produktionsanwendung. Ziehen Sie in Betracht, diese Anforderung für Ihren Test-Build zu entfernen, um die volle Funktionalität im Axe DevTools Mobile Dashboard zu ermöglichen.
Einige Android-Scan-Namen sind nicht formatiert
Einige Android-Scan-Namen, die standardmäßig auf den Bildschirmtitel gesetzt sind, werden als vollständiger Klassenname einschließlich des Bundle-Identifiers angezeigt. In einer zukünftigen Veröffentlichung wird dies behoben, sodass der Bildschirmtitel in einen besser lesbaren Namen formatiert wird. Als Workaround können Sie den Scan-Namen vom Dashboard oder aus den Frameworks heraus festlegen. (#1643)
