Eine wichtige Methode zum Testen der Barrierefreiheit ist eine Form des manuellen Tests: Sie aktivieren Bedienungshilfen wie TalkBack oder den Schalterzugriff und prüfen, ob alles wie erwartet funktioniert. So erhalten Sie einen direkten Einblick in die Nutzung Ihrer Anwendung durch Nutzer mit Beeinträchtigungen.
Neben der manuellen Überprüfung sollten Sie auch automatisierte Tests verwenden, um potenzielle Probleme zu melden, die sich auf die Nutzerfreundlichkeit auswirken könnten, wenn Sie kontinuierlich Änderungen an Ihrer App vornehmen.
Mit vorhandenen Compose-Test-APIs können Sie automatisierte Tests schreiben, die mit semantischen Elementen interagieren und die in Ihrer Benutzeroberfläche definierten Eigenschaften prüfen.
Prüfungen der Barrierefreiheit
Für automatisierte Bedienungshilfentests können Sie auch das Accessibility Test Framework verwenden. Dieses Framework ist auch die Grundlage für den Bedienungshilfen-Scanner und die Bedienungshilfentests in Espresso. Ab Compose 1.8.0 können Sie damit einige Bedienungshilfentests automatisch ausführen.
Wenn Sie die Prüfungen aktivieren möchten, fügen Sie die ui-test-junit4-accessibility dependency
hinzu, rufen Sie enableAccessibilityChecks()
in der AndroidComposeTestRule
auf und lösen Sie eine Aktion oder tryPerformAccessibilityChecks
aus:
@Rule @JvmField val composeTestRule = createAndroidComposeRule<ComponentActivity>() @Test fun noAccessibilityLabel() { composeTestRule.setContent { Box( modifier = Modifier .size(50.dp, 50.dp) .background(color = Color.Gray) .clickable { } .semantics { contentDescription = "" } ) } composeTestRule.enableAccessibilityChecks() // Any action (such as performClick) will perform accessibility checks too: composeTestRule.onRoot().tryPerformAccessibilityChecks() }
Dieser Test schlägt mit einer Ausnahme und der Meldung fehl, dass das Element möglicherweise kein Label hat, das von Bedienungshilfen gelesen werden kann.
Andere verfügbare Prüfungen suchen nach Problemen mit der Barrierefreiheit in Bezug auf Farbkontrast, kleine Berührungszielbereiche oder die Durchlaufreihenfolge von Elementen.
Wenn Sie Ansichten mit Compose kombinieren und bereits eine AccessibilityValidator
verwenden oder eine konfigurieren müssen, können Sie sie in der Regel festlegen:
@Test fun lowContrastScreen() { composeTestRule.setContent { Box( modifier = Modifier .fillMaxSize() .background(color = Color(0xFFFAFBFC)), contentAlignment = Alignment.Center ) { Text(text = "Hello", color = Color(0xFFB0B1B2)) } } // Optionally, set AccessibilityValidator manually val accessibilityValidator = AccessibilityValidator() .setThrowExceptionFor( AccessibilityCheckResult.AccessibilityCheckResultType.WARNING ) composeTestRule.enableAccessibilityChecks(accessibilityValidator) composeTestRule.onRoot().tryPerformAccessibilityChecks() }
In Kombination mit manuellen Tests können automatisierte Tests mit Compose APIs und dem Accessibility Test Framework dazu beitragen, mögliche Probleme schon früh im Entwicklungsprozess zu erkennen.
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Bedienungshilfen in Compose
- [Material Design 2 in der Eingabeleiste][19]
- Compose-Layout testen