Eine wichtige Methode zum Testen der Barrierefreiheit ist eine Form des manuellen Tests: Aktivieren Sie Bedienungshilfen wie TalkBack oder den Schalterzugriff und prüfen Sie, ob alles wie erwartet funktioniert. So erhalten Sie einen direkten Einblick, wie Nutzer mit Anforderungen an die Barrierefreiheit im Internet Ihre Anwendung erleben.
Zusätzlich zur manuellen Überprüfung sollten Sie auch automatisierte Tests verwenden, um potenzielle Probleme zu erkennen, 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 UI definierten Eigenschaften prüfen.
Prüfungen der Barrierefreiheit im Internet
Für automatisierte Bedienungshilfetests können Sie auch das Accessibility Test Framework verwenden. Das ist dasselbe zugrunde liegende Framework, das auch für den Accessibility Scanner und die Bedienungshilfeprüfungen in Espresso verwendet wird. Damit können Sie ab Compose 1.8.0 einige Bedienungshilfeprüfungen automatisch durchführen.
Wenn Sie die Prüfungen aktivieren möchten, fügen Sie die Abhängigkeit ui-test-junit4-accessibility 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 einer 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, z. B. Farbkontrast, kleine Berührungszielbereiche oder die Durchlaufreihenfolge der Elemente.
Wenn Sie Ansichten mit Compose kombinieren und bereits einen AccessibilityValidator verwenden oder einen konfigurieren müssen, können Sie ihn 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 frühzeitig im Entwicklungsprozess zu erkennen.
Empfehlungen für Sie
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Barrierefreiheit in Compose
- [Material Design 2 in Compose][19]
- Compose-Layout testen