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

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

আপনার আগে থেকে থাকা Espresso টেস্টে কীভাবে অ্যাক্সেসিবিলিটি চেক যোগ করবেন তা এই পৃষ্ঠায় বর্ণনা করা হয়েছে। অ্যাক্সেসিবিলিটি সম্পর্কে আরও জানতে, অ্যাক্সেসিবিলিটি গাইড দেখুন।

চেক চালু করুন

আপনি AccessibilityChecks ক্লাস ব্যবহার করে অ্যাক্সেসিবিলিটি টেস্টিং চালু ও কনফিগার করতে পারবেন:

Kotlin

import androidx.test.espresso.accessibility.AccessibilityChecks

@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
    init {
        AccessibilityChecks.enable()
    }
}

জাভা

import androidx.test.espresso.accessibility.AccessibilityChecks;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
    @BeforeClass
    public void enableAccessibilityChecks() {
        AccessibilityChecks.enable();
    }
}

ডিফল্ট হিসেবে, আপনি ViewActions-এ উল্লেখ করা কোনও ভিউ অ্যাকশন করলে চেক রান করে। প্রতিটি চেক সেই ভিউ অন্তর্ভুক্ত করে যার উপর অ্যাকশনটি করা হয় এবং সেইসাথে সমস্ত বংশধর ভিউ। আপনি প্রতিটি চেক করার সময় true-কে setRunChecksFromRootView()-এ পাস করে স্ক্রিনের সম্পূর্ণ ভিউ হায়ারার্কি মূল্যায়ন করতে পারবেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

জাভা

AccessibilityChecks.enable().setRunChecksFromRootView(true);

ফলাফলের সাবসেট ব্লক করুন

Espresso আপনার অ্যাপে অ্যাক্সেসিবিলিটি চেক করার পরে, আপনি অ্যাপের অ্যাক্সেসিবিলিটি উন্নত করার জন্য বেশ কয়েকটি সুযোগ খুঁজে পেতে পারেন যা আপনি অবিলম্বে সমাধান করতে পারবেন না। এইসব ফলাফলের কারণে Espresso টেস্ট যাতে ক্রমাগত ব্যর্থ না হয়, তার জন্য আপনি সাময়িকভাবে সেগুলি উপেক্ষা করতে পারেন। Accessibility Test Framework (ATF) এই কার্যকারিতা প্রদান করে setSuppressingResultMatcher() পদ্ধতি ব্যবহার করে, যা Espresso-কে নির্দেশ দেয় সেইসব ফলাফলকে দমন করতে যা প্রদত্ত ম্যাচার এক্সপ্রেশনকে সন্তুষ্ট করে।

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

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

  1. নির্দিষ্ট ধরনের অ্যাক্সেসিবিলিটি চেক, যেমন টাচ টার্গেটের সাইজ চেক করা।
  2. অ্যাক্সেসিবিলিটি চেক যা কোনও নির্দিষ্ট UI এলিমেন্ট মূল্যায়ন করে, যেমন বোতাম।

ATF একাধিক ম্যাচিংয়ের সংজ্ঞা দেয় যা আপনার Espresso টেস্টে কোন ফলাফল দেখানো হবে তা নির্ধারণ করতে সাহায্য করে। নিম্নলিখিত উদাহরণটি একটি TextView এলিমেন্টের কালার কনট্রাস্ট সম্পর্কিত চেক করার ফলাফলকে দমন করে। এলিমেন্টের আইডি হল countTV।

Kotlin

AccessibilityChecks.enable().apply {
        setSuppressingResultMatcher(
                allOf(
                    matchesCheck(TextContrastCheck::class.java),
                    matchesViews(withId(R.id.countTV))
                )
        )
}

জাভা

AccessibilityValidator myChecksValidator =
    AccessibilityChecks.enable()
        .setSuppressingResultMatcher(
            allOf(
                matchesCheck(TextContrastCheck.class),
                matchesViews(withId(R.id.countTV))));