टेस्ट करना

सुलभता की जांच करने का एक ज़रूरी तरीका, मैन्युअल टेस्टिंग है. इसके लिए, TalkBack या बटन से ऐक्सेस करने की सुविधा जैसी सुलभता सेवाएं चालू करें और देखें कि सब कुछ उम्मीद के मुताबिक काम कर रहा है या नहीं. इससे आपको सीधे तौर पर यह अहम जानकारी मिलती है कि सुलभता सुविधाओं की ज़रूरत वाले उपयोगकर्ता, आपके ऐप्लिकेशन का इस्तेमाल कैसे कर सकते हैं.

मैन्युअल तरीके से पुष्टि करने के साथ-साथ, आपको ऑटोमेटेड टेस्टिंग का भी इस्तेमाल करना चाहिए. इससे उन संभावित समस्याओं को फ़्लैग किया जा सकता है जो आपके ऐप्लिकेशन में लगातार बदलाव करने पर, उपयोगकर्ता अनुभव पर असर डाल सकती हैं.

Compose टेस्टिंग के लिए मौजूदा एपीआई की मदद से, ऑटोमेटेड टेस्ट लिखे जा सकते हैं. ये टेस्ट, सिमैंटिक एलिमेंट के साथ इंटरैक्ट करते हैं और आपके यूज़र इंटरफ़ेस (यूआई) में तय की गई प्रॉपर्टी की पुष्टि करते हैं.

सुलभता की जांच

सुलभता से जुड़ी सुविधाओं की अपने-आप होने वाली जांच के लिए, Accessibility Test Framework का भी इस्तेमाल किया जा सकता है. यह वही फ़्रेमवर्क है जो Espresso में Accessibility Scanner और सुलभता से जुड़ी जांच की सुविधा देता है. इसकी मदद से, सुलभता से जुड़ी कुछ जांच अपने-आप की जा सकती हैं. यह सुविधा, Compose 1.8.0 से शुरू होगी.

जांच की सुविधा चालू करने के लिए, ui-test-junit4-accessibility डिपेंडेंसी जोड़ें, AndroidComposeTestRule में enableAccessibilityChecks() को कॉल करें, और कोई कार्रवाई या 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()
}

यह टेस्ट, अपवाद और इस मैसेज के साथ फ़ेल हो जाता है कि हो सकता है कि आइटम में ऐसा लेबल न हो जिसे सुलभता सेवाएं पढ़ सकें.

अन्य जांचों में, कलर कंट्रास्ट, टच टारगेट (स्क्रीन के वे हिस्से जहां छूने पर कोई कार्रवाई होती है) के छोटे साइज़ या एलिमेंट के ट्रैवर्सल ऑर्डर से जुड़ी सुलभता की समस्याएं देखी जाती हैं.

अगर 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 और Accessibility Test Framework, दोनों का इस्तेमाल करके ऑटोमेटेड टेस्ट किए जा सकते हैं. इससे आपको डेवलपमेंट प्रोसेस की शुरुआत में ही, संभावित समस्याओं का पता लगाने में मदद मिल सकती है.