یک روش ضروری برای آزمایش دسترسپذیری، نوعی آزمایش دستی است: با روشن کردن سرویسهای دسترسپذیری، مانند 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 و همچنین چارچوب تست دسترسپذیری میتوانند به شما در تشخیص مشکلات احتمالی در مراحل اولیه توسعه کمک کنند.