Podstawową metodą testowania ułatwień dostępu jest ręczne testowanie polegające na włączeniu usług ułatwień dostępu, takich jak TalkBack czy Switch Access, i sprawdzeniu, czy wszystko działa zgodnie z oczekiwaniami. Dzięki temu możesz bezpośrednio sprawdzić, jak Twoja aplikacja działa u użytkowników z potrzebami w zakresie ułatwień dostępu.
Oprócz weryfikacji ręcznej należy też stosować testy automatyczne, aby zgłaszać ewentualne problemy, które mogą mieć wpływ na wrażenia użytkowników podczas ciągłego ulepszania aplikacji.
Istniejące interfejsy API do testowania Compose umożliwiają tworzenie testów automatycznych, które współdziałają z elementami semantycznymi i sprawdzają właściwości zdefiniowane w interfejsie użytkownika.
Sprawdzanie ułatwień dostępu
Do automatycznego testowania ułatwień dostępu możesz też użyć ramy testów ułatwień dostępu (tej samej, która obsługuje Accessibility Scanner i sprawdzanie ułatwień dostępu w Espresso). Począwszy od wersji Compose 1.8.0 możesz automatycznie wykonywać niektóre kontrole związane z ułatwieniami dostępu.
Aby włączyć te weryfikacje, dodaj element ui-test-junit4-accessibility dependency
, wywołaj element enableAccessibilityChecks()
w elemencie AndroidComposeTestRule
i uruchom działanie lub element tryPerformAccessibilityChecks
:
@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() }
Ten konkretny test kończy się niepowodzeniem z wyjątkiem i komunikatem, że element może nie mieć etykiety czytelnej dla usług ułatwień dostępu.
Inne dostępne kontrole sprawdzają, czy nie występują problemy z ułatwieniami dostępu związane z kontrastem kolorów, małym rozmiarem docelowego elementu dotykowego lub kolejnością elementów.
Jeśli używasz widoków i Compose, a do tego korzystasz już z elementu AccessibilityValidator
lub musisz go skonfigurować, możesz go ustawić w regułach:
@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() }
W połączeniu z testami ręcznymi testy automatyczne korzystające z interfejsów API Compose oraz z ramy konstrukcyjnej testów ułatwień dostępu mogą pomóc w wykrywaniu możliwych problemów na wczesnym etapie procesu tworzenia aplikacji.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy obsługa JavaScript jest wyłączona
- Ułatwienia dostępu w sekcji „Tworzenie wiadomości”
- [Material Design 2 w Compose][19]
- Testowanie układu okna tworzenia wiadomości