접근성을 테스트하는 데 필수적인 방법은 수동 테스트의 한 형태로, TalkBack 또는 스위치 액세스와 같은 접근성 서비스를 사용 설정하고 모든 것이 예상대로 작동하는지 확인하는 것입니다. 이를 통해 접근성 기능이 필요한 사용자가 애플리케이션을 어떻게 경험할 수 있는지 직접적인 통계를 얻을 수 있습니다.
수동 확인과 함께 자동 테스트를 사용하여 앱을 지속적으로 변경할 때 사용자 환경에 영향을 줄 수 있는 잠재적 문제를 신고해야 합니다.
기존 Compose 테스트 API를 사용하면 시맨틱 요소와 상호작용하고 UI에 정의된 속성을 어설션하는 자동 테스트를 작성할 수 있습니다.
접근성 검사
자동 접근성 테스트의 경우 Compose 1.8.0부터 Espresso의 접근성 스캐너 및 접근성 검사를 지원하는 동일한 기본 프레임워크인 접근성 테스트 프레임워크를 사용하여 일부 접근성 관련 검사를 자동으로 실행할 수도 있습니다.
검사를 사용 설정하려면 ui-test-junit4-accessibility dependency
를 추가하고 AndroidComposeTestRule
에서 enableAccessibilityChecks()
를 호출한 후 작업 또는 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() }
이 특정 테스트는 예외와 함께 실패하며 항목에 접근성 서비스에서 읽을 수 있는 라벨이 없을 수 있다는 메시지가 표시됩니다.
사용 가능한 다른 검사는 색상 대비, 작은 터치 영역 크기 또는 요소의 순회 순서와 관련된 접근성 문제를 찾습니다.
뷰와 Compose를 혼합하고 이미 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와 접근성 테스트 프레임워크를 모두 사용하는 자동화 테스트를 수동 테스트와 함께 사용하면 개발 프로세스 초기에 발생할 수 있는 문제를 감지하는 데 도움이 됩니다.
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- Compose의 접근성
- [Compose의 Material Design 2][19]
- Compose 레이아웃 테스트