Erişilebilirlik testinin önemli bir yöntemi, manuel test biçimidir. TalkBack veya Anahtar Erişimi gibi erişilebilirlik hizmetlerini etkinleştirip her şeyin beklendiği gibi çalışıp çalışmadığını kontrol edebilirsiniz. Bu sayede, erişilebilirlik ihtiyaçları olan kullanıcıların uygulamanızı nasıl deneyimleyebileceği hakkında doğrudan bilgi edinebilirsiniz.
Manuel doğrulamanın yanı sıra, uygulamanızda sürekli değişiklikler yaparken kullanıcı deneyimini etkileyebilecek olası sorunları işaretlemek için otomatik testleri de kullanmalısınız.
Mevcut Compose test API'leri, semantik öğelerle etkileşim kuran otomatik testler yazmanıza ve kullanıcı arayüzünüzde tanımlanan özellikleri onaylamanıza olanak tanır.
Erişilebilirlik kontrolleri
Otomatik erişilebilirlik testi için Erişilebilirlik Test Çerçevesi'ni de kullanabilirsiniz. Bu çerçeve, Espresso'da Erişilebilirlik Tarayıcısı'nı ve erişilebilirlik kontrollerini destekleyen temel çerçevedir. Compose 1.8.0'dan itibaren erişilebilirlikle ilgili bazı kontrolleri otomatik olarak gerçekleştirmek için bu çerçeveyi kullanabilirsiniz.
Kontrolleri etkinleştirmek için ui-test-junit4-accessibility bağımlılığını ekleyin,
AndroidComposeTestRule içinde enableAccessibilityChecks() yöntemini çağırın,
bir işlemi veya tryPerformAccessibilityChecks yöntemini tetikleyin:
@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() }
Bu test, bir istisna ve öğenin erişilebilirlik hizmetleri tarafından okunabilir bir etiketi olmayabileceğini belirten bir mesajla başarısız olur.
Diğer kontrollerde renk kontrastı, küçük dokunma hedefi boyutu veya öğelerin geçiş sırasıyla ilgili erişilebilirlik sorunları aranır.
Görünümleri Compose ile karıştırıyorsanız ve zaten bir AccessibilityValidator kullanıyorsanız veya bir tane yapılandırmanız gerekiyorsa bunu kuralda ayarlayabilirsiniz:
@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() }
Manuel testlerle birlikte hem Compose API'lerini hem de Erişilebilirlik Test Çerçevesi'ni kullanan otomatik testler, geliştirme sürecinin başlarında olası sorunları tespit etmenize yardımcı olabilir.
Sizin için önerilenler
- Not: JavaScript devre dışı bırakıldığında bağlantı metni gösterilir.
- Compose'da erişilebilirlik
- [Compose'da Materyal Tasarım 2][19]
- Compose düzeninizi test etme