تست کردن

یکی از روش‌های ضروری برای آزمایش دسترس‌پذیری، نوعی آزمایش دستی است: با روشن کردن خدمات دسترس‌پذیری، مانند TalkBack یا «دسترسی با کلید»، و بررسی اینکه آیا همه چیز طبق انتظار کار می‌کند یا خیر. این کار بینشی مستقیم درباره نحوه تجربه کاربران با نیازهای دسترس‌پذیری از برنامه شما ارائه می‌دهد.

همراه با درستی‌سنجی دستی، باید از آزمایش خودکارسازی‌شده نیز استفاده کنید تا هرگونه مشکل احتمالی که می‌تواند بر تجربه کاربر تأثیر بگذارد را هنگام ایجاد تغییرات مداوم در برنامه‌تان پرچم‌گذاری کنید.

میاناهای برنامه‌سازی کاربردی آزمون‌گیری Compose موجود به شما امکان می‌دهد آزمون‌های خودکاری بنویسید که با عناصر معنایی تعامل داشته باشند و دارایی‌های تعریف‌شده در میانای کاربرتان را تأیید کنند.

بررسی‌های دسترس‌پذیری

برای آزمایش خودکار دسترس‌پذیری، می‌توانید از چارچوب آزمایش دسترس‌پذیری—همان چارچوب زیربنایی که «اسکنر دسترس‌پذیری» و بررسی‌های دسترس‌پذیری در Espresso را پشتیبانی می‌کند—نیز استفاده کنید تا برخی‌از بررسی‌های مربوط به دسترس‌پذیری را به‌طور خودکار انجام دهید، که با Compose نسخه ۱.۸.۰ شروع می‌شود.

برای فعال کردن بررسی‌ها، ui-test-junit4-accessibility وابستگی را اضافه کنید، enableAccessibilityChecks() را در AndroidComposeTestRule فراخوانی کنید، و کنش یا 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()
}

این آزمایش خاص با استثنا و پیامی مبنی بر اینکه ممکن است مورد برچسبی نداشته باشد که سرویس‌های دسترس‌پذیری بتوانند آن را بخوانند، ناموفق است.

بررسی‌های دردسترس دیگر مشکلات دسترس‌پذیری را در کنتراست رنگ، اندازه کوچک هدف لمسی، یا ترتیب پیمایش عناصر جستجو می‌کنند.

اگر «بازدیدها» را با «نوشتن» ترکیب می‌کنید و ازقبل از 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» و «چارچوب آزمایش دسترس‌پذیری» در ترکیب با آزمایش دستی می‌تواند به شما کمک کند مشکلات احتمالی را در مراحل اولیه فرایند توسعه تشخیص دهید.