Один из основных способов проверки доступности – ручное тестирование. Для этого нужно включить сервисы специальных возможностей, например TalkBack или Switch Access, и проверить, все ли работает правильно. Это позволяет понять, как пользователи с особыми потребностями могут взаимодействовать с вашим приложением.
В дополнение к проверке вручную следует использовать автоматическое тестирование, чтобы выявлять потенциальные проблемы, которые могут повлиять на удобство использования приложения, по мере того как вы вносите в него изменения.
Существующие API тестирования Compose позволяют писать автоматические тесты, которые взаимодействуют с семантическими элементами и проверяют свойства, определенные в вашем интерфейсе.
Проверки специальных возможностей
Для автоматического тестирования доступности можно также использовать Accessibility Test Framework – тот же фреймворк, на котором основаны сканер доступности и проверки доступности в Espresso. С его помощью можно автоматически выполнять некоторые проверки доступности, начиная с Compose 1.8.0.
Чтобы включить проверки, добавьте зависимость ui-test-junit4-accessibility, вызовите enableAccessibilityChecks() в AndroidComposeTestRule и активируйте действие или 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() }
Этот тест завершается с исключением и сообщением о том, что у объекта может не быть ярлыка, который можно прочитать с помощью сервисов специальных возможностей.
Другие доступные проверки выявляют проблемы с доступностью, связанные с цветовым контрастом, небольшим размером области прикосновения или порядком перехода между элементами.
Если вы используете представления вместе с функцией создания писем и уже применяете AccessibilityValidator или вам нужно его настроить, вы можете сделать это в правиле:
@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() }
В сочетании с ручным тестированием автоматические тесты с использованием как Compose API, так и Accessibility Test Framework помогут вам выявить возможные проблемы на ранних этапах разработки.
Рекомендуем
- Примечание. Текст ссылки показывается, когда JavaScript отключен.
- Специальные возможности в Compose
- [Material Design 2 в Compose][19]
- Как протестировать макет письма