Erişilebilirliği test etmek, uygulamanızı erişilebilirlik gereksinimleri olan kullanıcılar da dahil olmak üzere tüm kullanıcı tabanınız açısından değerlendirmenizi 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 kılavuzlarına bakın.
Kontrolleri etkinleştir
AccessibilityChecks
sınıfını kullanarak erişilebilirlik testini 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(); } }
Kontroller varsayılan olarak, ViewActions
içinde tanımlanan herhangi bir görüntüleme işlemi gerçekleştirildiğinde çalıştırılır. Her kontrol, işlemin gerçekleştirildiği görünümün yanı sıra tüm alt görünümleri içerir. Aşağıdaki kod snippet'inde gösterildiği gibi, true
öğesini setRunChecksFromRootView()
öğesine geçirerek her kontrol sırasında ekranın tüm görünüm hiyerarşisini değerlendirebilirsiniz:
Kotlin
AccessibilityChecks.enable().setRunChecksFromRootView(true)
Java
AccessibilityChecks.enable().setRunChecksFromRootView(true);
Sonuç alt kümelerini gizle
Espresso, uygulamanızda erişilebilirlik kontrolleri çalıştırdıktan sonra, uygulamanızın erişilebilirliğini iyileştirmek için hemen ele yapamayacağınız çeşitli fırsatlar bulabilirsiniz. Espresso testlerinin bu sonuçlar nedeniyle sürekli başarısız olmasını engellemek için testleri geçici olarak göz ardı edebilirsiniz. Erişilebilirlik Testi Çerçevesi (ATF), bu işlevi Espresso'ya belirtilen eşleştirici ifadesini karşılayan tüm sonuçları engellemesi talimatını veren setSuppressingResultMatcher()
yöntemini kullanarak sağlar.
Uygulamanızda erişilebilirliğin belirli bir yönünü ele alan değişiklikler yaptığınızda, Espresso'nun erişilebilirlikle ilgili mümkün olduğunca fazla farklı açıdan sonuç göstermesi faydalı olur. Bu nedenle, yalnızca bilinen iyileştirme fırsatlarını elemek en iyisidir.
Daha sonra ele almayı planladığınız erişilebilirlik testi bulgularını geçici olarak gizlediğinizde, benzer bulguları yanlışlıkla gizlememeniz önemlidir. Bu nedenle, dar kapsamlı olan eşleştiriciler kullanın. Espresso'nun belirli bir sonucu yalnızca aşağıdaki erişilebilirlik kontrollerinin her birini karşıladığında engellemesi için bir eşleştirici seçin:
- Dokunma hedefi boyutunu kontrol edenler gibi belirli bir türdeki erişilebilirlik kontrolleri.
- 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 örnekte, tek bir TextView
öğesinin renk kontrastıyla ilgili kontrollerin sonuçları sınırlandırılmıştı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))));