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

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

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

চেকগুলি সক্ষম করুন

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

কোটলিন

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 এ সংজ্ঞায়িত যেকোনো ভিউ অ্যাকশন সম্পাদন করলে এই চেকগুলো চলে। প্রতিটি চেকে সেই ভিউটি অন্তর্ভুক্ত থাকে যার উপর অ্যাকশনটি সম্পাদিত হয়, সেইসাথে এর সমস্ত ডিসেন্ডেন্ট ভিউও। আপনি setRunChecksFromRootView()true পাস করে প্রতিটি চেকের সময় একটি স্ক্রিনের সম্পূর্ণ ভিউ হায়ারার্কি মূল্যায়ন করতে পারেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

কোটলিন

AccessibilityChecks.enable().setRunChecksFromRootView(true)

জাভা

AccessibilityChecks.enable().setRunChecksFromRootView(true);

ফলাফলের উপসেটগুলি দমন করুন

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

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

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

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

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

কোটলিন

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))));