آزمایش دسترسیپذیری به شما این امکان را میدهد که برنامه خود را از دیدگاه کل پایگاه کاربری خود، از جمله کاربرانی که نیازهای دسترسیپذیری دارند، تجربه کنید. این نوع آزمایش میتواند فرصتهایی را برای قدرتمندتر و همهکارهتر کردن برنامه شما آشکار کند.
این صفحه نحوه افزودن بررسیهای دسترسی به آزمونهای Espresso موجود شما را شرح میدهد. برای اطلاعات بیشتر در مورد دسترسی، به راهنماهای دسترسی مراجعه کنید.
فعال کردن چکها
شما میتوانید تست دسترسیپذیری را با استفاده از کلاس AccessibilityChecks فعال و پیکربندی کنید:
کاتلین
import androidx.test.espresso.accessibility.AccessibilityChecks
@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
init {
AccessibilityChecks.enable()
}
}
جاوا
import androidx.test.espresso.accessibility.AccessibilityChecks;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
@BeforeClass
public void enableAccessibilityChecks() {
AccessibilityChecks.enable();
}
}
به طور پیشفرض، بررسیها هنگام انجام هر اقدام view تعریف شده در ViewActions اجرا میشوند. هر بررسی شامل view ای که عمل روی آن انجام میشود و همچنین تمام view های فرزند آن است. میتوانید کل سلسله مراتب view های یک صفحه را در طول هر بررسی با ارسال true به setRunChecksFromRootView() ارزیابی کنید، همانطور که در قطعه کد زیر نشان داده شده است:
کاتلین
AccessibilityChecks.enable().setRunChecksFromRootView(true)
جاوا
AccessibilityChecks.enable().setRunChecksFromRootView(true);
زیرمجموعههای نتایج را حذف کنید
پس از اینکه Espresso بررسیهای دسترسیپذیری را روی برنامه شما انجام داد، ممکن است فرصتهای متعددی برای بهبود دسترسیپذیری برنامه خود پیدا کنید که نمیتوانید فوراً به آنها رسیدگی کنید. برای جلوگیری از شکست مداوم تستهای Espresso به دلیل این نتایج، میتوانید آنها را موقتاً نادیده بگیرید. چارچوب تست دسترسیپذیری (ATF) این قابلیت را با استفاده از متد setSuppressingResultMatcher() ارائه میدهد، که به Espresso دستور میدهد تمام نتایجی را که عبارت تطبیقدهنده داده شده را برآورده میکنند، سرکوب کند.
وقتی در برنامه خود تغییراتی ایجاد میکنید که به یک جنبه از دسترسیپذیری میپردازد، برای Espresso مفید است که نتایج را برای هر چه بیشتر جنبههای دیگر دسترسیپذیری نشان دهد. به همین دلیل، بهتر است فقط فرصتهای شناختهشده خاص برای بهبود را سرکوب کنید.
وقتی یافتههای تست دسترسیپذیری را که قصد دارید بعداً به آنها رسیدگی کنید، موقتاً غیرفعال میکنید، مهم است که بهطور تصادفی یافتههای مشابه را غیرفعال نکنید. به همین دلیل، از تطبیقدهندههایی استفاده کنید که دامنهی محدودی دارند. برای انجام این کار، تطبیقدهندهای را انتخاب کنید تا Espresso فقط در صورتی نتیجهی مورد نظر را غیرفعال کند که هر یک از بررسیهای دسترسیپذیری زیر را برآورده کند:
- بررسیهای دسترسیپذیری از نوع خاص، مانند مواردی که اندازه هدف لمسی را بررسی میکنند.
- بررسیهای دسترسیپذیری که یک عنصر رابط کاربری خاص، مانند یک دکمه، را ارزیابی میکنند.
ATF چندین تطبیقدهنده تعریف میکند تا به شما در تعیین نتایجی که باید در تستهای Espresso خود نشان دهید، کمک کند. مثال زیر نتایج بررسیهایی را که مربوط به کنتراست رنگ یک عنصر TextView هستند، نادیده میگیرد. شناسه عنصر countTV است.
کاتلین
AccessibilityChecks.enable().apply {
setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck::class.java),
matchesViews(withId(R.id.countTV))
)
)
}
جاوا
AccessibilityValidator myChecksValidator =
AccessibilityChecks.enable()
.setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck.class),
matchesViews(withId(R.id.countTV))));