टेस्ट करना

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

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

Compose के मौजूदा टेस्टिंग एपीआई की मदद से, अपने-आप चलने वाले ऐसे टेस्ट लिखे जा सकते हैं जो सेमैंटिक एलिमेंट के साथ इंटरैक्ट करते हैं. साथ ही, ये आपके यूज़र इंटरफ़ेस (यूआई) में बताई गई प्रॉपर्टी की पुष्टि करते हैं.

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

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

जांच चालू करने के लिए, AndroidComposeTestRule में ui-test-junit4-accessibility dependency, कॉल 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 एपीआई और सुलभता जांच फ़्रेमवर्क, दोनों का इस्तेमाल करके ऑटोमेटेड टेस्ट करने से, आपको डेवलपमेंट प्रोसेस के शुरुआती दौर में ही संभावित समस्याओं का पता लगाने में मदद मिल सकती है.