Erişilebilirlik testi, uygulamanızı erişilebilirlik ihtiyaçları olan kullanıcılar da dahil olmak üzere tüm kullanıcı tabanınızın bakış açısıyla deneyimlemenizi sağlar. Bu test biçimi, uygulamanızı daha güçlü ve çok yönlü hale getirme fırsatlarını ortaya çıkarabilir.
Bu sayfada, mevcut Espresso testlerinize erişilebilirlik kontrollerini nasıl ekleyeceğiniz açıklanmaktadır. Erişilebilirlik hakkında daha fazla bilgi için Erişilebilirlik rehberleri'ne bakın.
Kontrolleri etkinleştirme
Erişilebilirlik testini AccessibilityChecks sınıfını kullanarak etkinleştirebilir ve yapılandırabilirsiniz:
Kotlin
import androidx.test.espresso.accessibility.AccessibilityChecks
@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
init {
AccessibilityChecks.enable()
}
}
Java
import androidx.test.espresso.accessibility.AccessibilityChecks;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
@BeforeClass
public void enableAccessibilityChecks() {
AccessibilityChecks.enable();
}
}
Varsayılan olarak, kontroller ViewActions içinde tanımlanan herhangi bir görüntüleme işlemini gerçekleştirdiğinizde çalışır. Her bir kontrol, işlemin yapıldığı görünümün yanı sıra tüm alt görünümleri de içerir. Aşağıdaki kod snippet'inde gösterildiği gibi true öğesini setRunChecksFromRootView() içine ileterek her kontrol sırasında bir ekranın görünüm hiyerarşisinin tamamını değerlendirebilirsiniz:
Kotlin
AccessibilityChecks.enable().setRunChecksFromRootView(true)
Java
AccessibilityChecks.enable().setRunChecksFromRootView(true);
Sonuçların alt kümelerini gizleme
Espresso, uygulamanızda erişilebilirlik kontrolleri yaptıktan sonra uygulamanızın erişilebilirliğini iyileştirmek için hemen ele alamayacağınız çeşitli fırsatlar bulabilirsiniz. Espresso testlerinin bu sonuçlar nedeniyle sürekli olarak başarısız olmasını önlemek için bu sonuçları geçici olarak yoksayabilirsiniz. Erişilebilirlik Testi Çerçevesi (ATF), Espresso'ya verilen eşleştirici ifadesini karşılayan tüm sonuçları bastırmasını söyleyen setSuppressingResultMatcher() yöntemini kullanarak bu işlevi sağlar.
Uygulamanızda erişilebilirliğin bir yönünü ele alan değişiklikler yaptığınızda Espresso'nun, erişilebilirliğin mümkün olduğunca çok yönüyle ilgili sonuçlar göstermesi faydalıdır. Bu nedenle, yalnızca bilinen belirli iyileştirme fırsatlarını bastırmak en iyisidir.
Daha sonra ele almayı planladığınız erişilebilirlik testi bulgularını geçici olarak bastırdığınızda benzer bulguları yanlışlıkla bastırmadığınızdan emin olmanız önemlidir. Bu nedenle, kapsamı dar olan eşleştiriciler kullanın. Bunu yapmak için bir eşleştirici seçin. Böylece Espresso, yalnızca aşağıdaki erişilebilirlik kontrollerinin her birini karşılıyorsa belirli bir sonucu bastırır:
- Belirli bir türdeki erişilebilirlik kontrolleri (ör. dokunma hedefi boyutunu kontrol edenler).
- Bir düğme gibi belirli bir kullanıcı arayüzü öğesini değerlendiren erişilebilirlik kontrolleri.
ATF, Espresso testlerinizde hangi sonuçların gösterileceğini tanımlamanıza yardımcı olmak için çeşitli eşleştiriciler tanımlar. Aşağıdaki örnek, tek bir TextView öğesinin renk kontrastıyla ilgili kontrollerin sonuçlarını bastırır. Öğenin kimliği countTV.
Kotlin
AccessibilityChecks.enable().apply {
setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck::class.java),
matchesViews(withId(R.id.countTV))
)
)
}
Java
AccessibilityValidator myChecksValidator =
AccessibilityChecks.enable()
.setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck.class),
matchesViews(withId(R.id.countTV))));