axe DevTools Mobile 16 August 2023 Versionshinweise
16. August 2023
Komponentenversionen
- axeDevToolsXCUI v2.6.0
- axe-devtools-android v4.0.0
Was ist neu?
Einführung des axe DevTools Mobile Analyzer
Verwenden Sie den neuen axe DevTools Mobile Analyzer, um mit beliebiger Technologie erstellte iOS- oder Android-Apps ohne Zugriff auf den Quellcode zu testen. Testen Sie sowohl native als auch plattformübergreifende Apps wie SwiftUI und UIKit in iOS, Jetpack Compose und XML in Android, React Native, Flutter, Xamarin und Ionic. Der axe DevTools Mobile Analyzer ersetzt den eingebetteten Floating Action Button für benutzerinitiierte (manuelle) Barrierefreiheitstests. Um die Umstellung vorzunehmen, entfernen Sie den eingebetteten Code für den Floating Action Button aus Ihrer App und folgen Sie den Anweisungen in der Dokumentation, um mit dem neuen axe DevTools Mobile Analyzer zu beginnen.
iOS
– Mit SwiftUI erstellte Ansichten und plattformübergreifende Apps können jetzt mit dem neuen [axe DevTools Mobile Analyzer für iOS] über benutzergesteuerte (manuelle) Tests getestet werden(https://docs.deque.com/devtools-mobile-analyzer/).
– Die Regel Supports Dynamic Type ist jetzt im XCUI-Framework verfügbar. Diese Regel ändert die Textgröße mehrmals und wertet den Bildschirm nach jeder Größenänderung erneut aus, um nach Problemen zu suchen. Die Ausführung dieses Vorgangs dauert einige Sekunden. Aus diesem Grund haben wir dies als optional freigegeben. Um teilzunehmen, stellen Sie optInToSDT
in der Axe-Konfigurations-API auf 'true' ein. axeDevTools.configuration.optInToSDT = true
.
– Die minimal unterstützte iOS-Version ist jetzt iOS 14 (vorher iOS 13).
Android
- Plattformübergreifende Apps können jetzt mit dem neuen [axe DevTools Mobile Analyzer für Android] über benutzerinitiierte (manuelle) Tests getestet werden(https://docs.deque.com/devtools-mobile-analyzer/).
- Apps, die Ansichten mit Jetpack Compose verwenden, führen jetzt den vollständigen Regelsatz entweder über benutzerinitiierte (manuelle) oder automatisierte Tests aus. (Bisher hatten Android-Apps, die Jetpack Compose verwendeten, einen kleineren Regelsatz.)
– Wir unterstützen jetzt das UI Automator-Testframework für automatisierte Tests.
- Das aktualisierte Android SDK ermöglicht die automatische Überprüfung der Barrierefreiheit durch Espresso und UI Automator unter Verwendung der Instrumentation Registry, ohne dass Sie eine Ansicht oder Aktivität angeben müssen.
– Inkompatible Änderung: Die DashboardService
Klasse wurde durch die ResultsDashboard
Klasse ersetzt.
Übersicht
- Verbesserte Ladezeit für die Anzahl der Probleme und -zusammenfassung vom Dashboard-Hauptbildschirm.
- Verbesserte Darstellung der Ansichtshierarchie bei Anzeige im Safari-Browser.
Fehlerbehebungen
axe DevTools Mobile für iOS
- Regel für Farbkontrast – Wir werden auf deaktivierte Schaltflächen keine Regeln für Farbkontrast mehr ausführen, da Regeln für Farbkontrast auf deaktivierte Elemente nicht anwendbar sind.
- Regel für kollidierende Steuerelemente: Alle Steuerelemente, die nicht als fokussierbar hinsichtlich der Barrierefreiheit gekennzeichnet sind oder kein Barrierefreiheitselement darstellen, werden bei der Betrachtung kollidierender Steuerelemente nicht mehr berücksichtigt.
- Lokal gespeicherte Ergebnisse – Der Scanname wird jetzt ordnungsgemäß zur JSON-Datei hinzugefügt, wenn er lokal gespeichert oder vom Dashboard heruntergeladen wird. Dies behebt den Titel „Unbenannter Scan“, der zuvor in HTML-Berichten angezeigt wurde, die von der Reporter-CLI generiert wurden.
axe DevTools Mobile Dashboard
- Barrierefreiheitskorrekturen: Fehlende ARIA-Rolle „Button“ hinzugefügt, die modale Überschrift der Ankündigung verbessert, den Tooltip in der Ansichtshierarchie entfernt und bessere Ankündigungen für den Bildschirmleser zur Seitennummerierung hinzugefügt.
– Der Scan-Name im Screenshot wurde korrigiert, der zuvor die Schaltfläche „Untersuchen“ überlappte. – Ein Problem wurde behoben, bei dem Benutzer der kostenlosen Testversion einen endlosen Ladekreis sahen.
Aktualisierungen
Diese Version markiert das letzte unserer Updates des UIKit-Frameworks für automatisierte Tests von iOS-Apps. Wir werden dieses Framework auf absehbare Zeit weiterhin anbieten, jedoch keine Bugfixes oder Updates mehr durchführen. Wir empfehlen Ihnen, auf das XCUI-Framework umzusteigen, das künftig mit neuen Regeln und Verbesserungen aktualisiert wird. Wenn Sie derzeit das UIKit-Framework für automatisierte Unit- oder UI-Tests verwenden und Unterstützung beim Übergang zum XCUI-Framework wünschen, lassen Sie es uns bitte wissen. Senden Sie eine Anfrage an support.deque.com oder senden Sie eine E-Mail an helpdesk@deque.com.
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-Apps. Bitte wenden Sie sich für Lösungen zum Testen der Barrierefreiheit für Ihren Tech-Stack an Ihren Deque-Vertreter.
- Um Sie dabei zu unterstützen, genaue Ergebnisse und anwendbare Sanierungsempfehlungen zu erhalten, werden die Funktionen von Axe DevTools Mobile 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 für automatisierte Tests 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.
Falschpositive: InScrollView, SupportsDynamicType, kollidierende Ansichten
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.
Wenn eine scrollbare Teilansicht Text enthält und diese Teilansicht nicht bis zum Rand der Bildschirmränder reicht, werden Fehler für Text angezeigt, der sich innerhalb der Grenzen der Ansicht befindet.
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. (#636)
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. (#1178)
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. (#1188)
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)