Podstawowym sposobem testowania ułatwień dostępu jest testowanie ręczne: włącz usługi ułatwień dostępu, takie jak TalkBack czy Switch Access, i sprawdź, czy wszystko działa zgodnie z oczekiwaniami. Dzięki temu możesz bezpośrednio sprawdzić, jak użytkownicy z potrzebami związanymi z ułatwieniami dostępu mogą korzystać z Twojej aplikacji.
Oprócz ręcznej weryfikacji należy też używać testów automatycznych, aby oznaczać potencjalne problemy, które mogą wpływać na wrażenia użytkowników podczas wprowadzania ciągłych zmian w aplikacji.
Istniejące interfejsy API do testowania Compose umożliwiają pisanie testów automatycznych, które wchodzą w interakcję z elementami semantycznymi, oraz potwierdzanie właściwości zdefiniowanych w interfejsie.
Sprawdzanie ułatwień dostępu
W przypadku automatycznego testowania ułatwień dostępu możesz też użyć Accessibility Test Framework – tej samej platformy, która obsługuje Accessibility Scanner i kontrole ułatwień dostępu w Espresso – aby automatycznie przeprowadzać niektóre kontrole związane z ułatwieniami dostępu, zaczynając od Compose 1.8.0.
Aby włączyć testy, dodaj zależność ui-test-junit4-accessibility, wywołaj enableAccessibilityChecks() w AndroidComposeTestRule i wywołaj działanie lub 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 test kończy się niepowodzeniem z powodu wyjątku i komunikatu, że element może nie mieć etykiety, którą mogą odczytać usługi ułatwień dostępu.
Inne dostępne testy sprawdzają, czy nie występują problemy z dostępnością związane z kontrastem kolorów, małym rozmiarem docelowego elementu dotykowego lub kolejnością przechodzenia między elementami.
Jeśli łączysz widoki z Compose i używasz już AccessibilityValidator lub musisz go skonfigurować, możesz go ustawić w regule:
@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 testowaniem ręcznym testy automatyczne wykorzystujące zarówno interfejsy Compose API, jak i platformę Accessibility Test Framework mogą pomóc w wykryciu potencjalnych problemów na wczesnym etapie procesu programowania.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Ułatwienia dostępu w Compose
- [Material Design 2 w Compose][19]
- Testowanie układu Compose