الاختبار

من الطرق الأساسية لاختبار أدوات تسهيل الاستخدام هي الاختبار اليدوي، وذلك من خلال تفعيل خدمات تسهيل الاستخدام، مثل TalkBack أو "الوصول عبر مفتاح التحويل"، والتحقّق من أنّ كل شيء يعمل على النحو المتوقّع. يوفر هذا نظرة ثاقبة مباشرة حول كيفية تجربة المستخدمين الذين لديهم احتياجات إمكانية الوصول لتطبيقك.

إلى جانب التحقّق اليدوي، يجب أيضًا استخدام الاختبار الآلي للإبلاغ عن أي مشاكل محتملة قد تؤثر في تجربة المستخدم أثناء إجراء تغييرات مستمرة على تطبيقك.

تتيح لك واجهات برمجة التطبيقات الحالية لاختبار Compose كتابة اختبارات مبرمَجة تتفاعل مع العناصر الدلالية وتتحقّق من السمات المحدّدة في واجهة المستخدم.

عمليات التحقّق من تسهيل الاستخدام

لإجراء اختبارات مبرمَجة لأدوات تسهيل الاستخدام، يمكنك أيضًا استخدام إطار عمل اختبار أدوات تسهيل الاستخدام، وهو إطار العمل الأساسي نفسه الذي يشغّل تطبيق Accessibility Scanner وعمليات فحص أدوات تسهيل الاستخدام في Espresso، لإجراء بعض عمليات الفحص المتعلّقة بأدوات تسهيل الاستخدام تلقائيًا، بدءًا من الإصدار 1.8.0 من 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()
}

يفشل هذا الاختبار المحدد مع استثناء ورسالة تفيد بأن العنصر قد لا يحتوي على تصنيف يمكن قراءته بواسطة خدمات تسهيل الاستخدام.

تبحث عمليات التحقّق الأخرى المتاحة عن مشاكل تسهيل الاستخدام في تباين الألوان أو صغر حجم مساحة اللمس أو ترتيب التمرير للعناصر.

إذا كنت تدمج 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 وإطار عمل اختبار تسهيل الاستخدام في رصد المشاكل المحتملة في مرحلة مبكرة من عملية التطوير.