পরীক্ষা করা

অ্যাক্সেসিবিলিটি পরীক্ষা করার একটি গুরুত্বপূর্ণ উপায় হল ম্যানুয়াল টেস্টিং: এর জন্য টকব্যাক বা সুইচ অ্যাক্সেসের মতো অ্যাক্সেসিবিলিটি পরিষেবা চালু করে দেখতে হবে যে সবকিছু প্রত্যাশা অনুযায়ী কাজ করছে কিনা। এর ফলে, অ্যাক্সেসিবিলিটি সংক্রান্ত প্রয়োজনীয়তা আছে এমন ব্যবহারকারীরা আপনার অ্যাপ্লিকেশন কীভাবে ব্যবহার করতে পারেন সেই সম্পর্কে সরাসরি ইনসাইট পাওয়া যায়।

ম্যানুয়াল যাচাইকরণের পাশাপাশি, আপনার অ্যাপে অবিরত পরিবর্তন করার সময় ব্যবহারকারীর অভিজ্ঞতাকে প্রভাবিত করতে পারে এমন সম্ভাব্য সমস্যা ফ্ল্যাগ করতে আপনাকে অটোমেটেড টেস্টিংও ব্যবহার করতে হবে।

আগে থেকে থাকা Compose টেস্টিং API আপনাকে এমন অটোমেটেড টেস্ট লিখতে দেয় যা সেম্যান্টিক এলিমেন্টের সাথে ইন্টার‍্যাক্ট করে এবং আপনার UI-তে সংজ্ঞায়িত প্রপার্টি অ্যাসার্ট করে।

অ্যাক্সেসিবিলিটি চেক

এছাড়াও, অটোমেটিক অ্যাক্সেসিবিলিটি টেস্টিংয়ের জন্য, আপনি অ্যাক্সেসিবিলিটি টেস্ট ফ্রেমওয়ার্ক ব্যবহার করতে পারেন—এটি হল সেই একই ফ্রেমওয়ার্ক যা Espresso-তে অ্যাক্সেসিবিলিটি স্ক্যানার ও অ্যাক্সেসিবিলিটি চেককে পাওয়ার দেয়—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 এবং অ্যাক্সেসিবিলিটি টেস্ট ফ্রেমওয়ার্ক ব্যবহার করে অটোমেটেড টেস্ট আপনাকে ডেভেলপমেন্ট প্রসেসের প্রথম দিকেই সম্ভাব্য সমস্যা শনাক্ত করতে সাহায্য করতে পারে।