تست کردن

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

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

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

بررسی های دسترسی

برای تست دسترس‌پذیری خودکار، می‌توانید از چارچوب تست دسترس‌پذیری - همان چارچوب زیربنایی که اسکنر دسترس‌پذیری و بررسی‌های دسترس‌پذیری را در اسپرسو قدرت می‌دهد- استفاده کنید تا برخی از بررسی‌های مرتبط با دسترسی را به‌طور خودکار انجام دهید، که با Compose 1.8.0 شروع می‌شود.

برای فعال کردن بررسی‌ها، ui-test-junit4-accessibility dependency اضافه کنید، 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()
}

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

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

اگر Views را با Compose مخلوط می‌کنید و از 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 API و همچنین چارچوب تست دسترس‌پذیری می‌توانند به شما در تشخیص مشکلات احتمالی در مراحل اولیه توسعه کمک کنند.