অ্যান্ড্রয়েড টিভির জন্য অ্যাক্সেসযোগ্যতার সেরা অনুশীলন

এই নির্দেশিকাটি অ্যান্ড্রয়েড টিভিতে অ্যাক্সেসযোগ্যতার জন্য সর্বোত্তম অনুশীলন প্রদান করে এবং স্থানীয় এবং অ-নেটিভ উভয় অ্যাপের জন্য সুপারিশ প্রদান করে।

আমার টিভি অ্যাপের জন্য অ্যাক্সেসিবিলিটি কেন গুরুত্বপূর্ণ?

টিভি দেখার জনসংখ্যার মধ্যে দৃষ্টি প্রতিবন্ধকতা অস্বাভাবিক নয়। বিশ্ব স্বাস্থ্য সংস্থার (WHO) মতে, বিশ্বব্যাপী আনুমানিক ২.২ বিলিয়ন মানুষের দৃষ্টি প্রতিবন্ধকতা রয়েছে। ২০১৮ সালের জাতীয় স্বাস্থ্য সাক্ষাৎকার জরিপ অনুসারে, মার্কিন যুক্তরাষ্ট্রে, ১৮ বছর বা তার বেশি বয়সী ৩২ মিলিয়ন আমেরিকান উল্লেখযোগ্যভাবে দৃষ্টিশক্তি হারানোর অভিজ্ঞতা অর্জন করেছেন। ইউরোপীয় ব্লাইন্ড ইউনিয়ন (EBU) অনুসারে, অনুমান অনুসারে, ইউরোপে ৩ কোটি অন্ধ এবং আংশিক দৃষ্টিশক্তিহীন ব্যক্তি রয়েছেন।

সবচেয়ে গুরুত্বপূর্ণ বিষয় হল, দৃষ্টি প্রতিবন্ধী ব্যবহারকারীরা তাদের সম্পূর্ণ দৃষ্টিশক্তি সম্পন্ন সমবয়সীদের মতোই মিডিয়া কন্টেন্ট উপভোগ করেন। Comcast দ্বারা পরিচালিত ২০১৭ সালের একটি জরিপে দেখা গেছে যে ৯৬% অন্ধ বা কম দৃষ্টিশক্তি সম্পন্ন ব্যবহারকারী নিয়মিত টিভি দেখেন, যার মধ্যে ৮১% প্রতিদিন এক ঘন্টারও বেশি সময় ধরে দেখেন। তবে, ৬৫% টিভিতে কী আছে তা দেখতে সমস্যায় পড়ার কথাও জানিয়েছেন। এবং যুক্তরাজ্যে ২০২০ সালের একটি জরিপে , ৮০% প্রতিবন্ধী ব্যক্তি বলেছেন যে তারা ভিডিও অন-ডিমান্ড স্ট্রিমিং পরিষেবাগুলির সাথে অ্যাক্সেসিবিলিটি সমস্যার সম্মুখীন হয়েছেন।

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

অ্যাক্সেসিবিলিটি উন্নত করার প্রথম ধাপ হল সচেতনতা। এই নির্দেশিকাটি আপনাকে এবং আপনার দলকে আপনার টিভি অ্যাপের অ্যাক্সেসিবিলিটি সমস্যাগুলি উন্মোচন করতে সাহায্য করতে পারে।

অ্যান্ড্রয়েড অ্যাক্সেসিবিলিটি রিসোর্স

অ্যান্ড্রয়েডে অ্যাক্সেসিবিলিটি সম্পর্কে আরও জানতে, আমাদের অ্যাক্সেসিবিলিটি ডেভেলপমেন্ট রিসোর্স দেখুন।

টেক্সট স্কেলিং

অ্যান্ড্রয়েড টিভি অ্যাপগুলিকে বিভিন্ন পিক্সেল ঘনত্ব সমর্থন করে টেক্সট স্কেলিংয়ের জন্য ব্যবহারকারীর পছন্দকে সম্মান করা উচিত।

বিশেষ যত্ন নিন:

  • UI উপাদানগুলিতে মাত্রার জন্য wrap_content ব্যবহার করুন।
  • টেক্সট স্কেলের উপর নির্ভর করে উপাদানগুলির মাত্রা পরিবর্তনের সাথে সাথে লেআউটগুলি পুনর্বিন্যাস করে তা নিশ্চিত করুন।
  • নিশ্চিত করুন যে উপাদানগুলি এখনও বৃহত্তর টেক্সট স্কেলে স্ক্রিনে ফিট করে।
  • নমনীয় নয় এমন উপাদানগুলির জন্য sp টেক্সট সাইজ ইউনিট ব্যবহার করবেন না।
  • কাস্টম ভিউতে সমন্বয়ের জন্য FONT_SCALE এর মান পরীক্ষা করুন:

    // Checking font scale with Context
    val scale = resources.configuration.fontScale
    Log.d(TAG, "Text scale is: " + scale)
    

নিম্নলিখিত কমান্ডের সাহায্যে টেক্সট স্কেল পরিবর্তন করা যেতে পারে:

adb shell settings put system font_scale 1.2f

অ্যান্ড্রয়েড ১২ এবং তার পরবর্তী ভার্সনে, ব্যবহারকারীরা ডিভাইস সেটিংস থেকে টেক্সট স্কেলিং পরিবর্তন করতে পারবেন।

কীবোর্ড লেআউট

অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩) এবং তার উচ্চতর সংস্করণে, আপনি প্রত্যাশিত কী লোকেশনের জন্য কীকোডগুলি অনুসন্ধান করতে getKeyCodeForKeyLocation() ব্যবহার করতে পারেন। ব্যবহারকারী যদি কিছু কী লোকেশন পুনরায় ম্যাপ করে থাকেন অথবা যদি তারা এমন একটি কীবোর্ড ব্যবহার করেন যার কোনও সাধারণ লেআউট নেই তবে এটি প্রয়োজনীয় হতে পারে।

অডিও বর্ণনা

অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩) এবং তার উচ্চতর সংস্করণে, একটি নতুন সিস্টেম-ওয়াইড অ্যাক্সেসিবিলিটি পছন্দ ব্যবহারকারীদের সমস্ত অ্যাপ জুড়ে অডিও বর্ণনা সক্ষম করতে দেয়। অ্যান্ড্রয়েড টিভি অ্যাপগুলি isAudioDescriptionRequested() দিয়ে অনুসন্ধান করে ব্যবহারকারীর পছন্দ পরীক্ষা করতে পারে।

কোটলিন

private lateinit var accessibilityManager: AccessibilityManager

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager::class.java)

// Where your media player is initialized
if (am.isAudioDescriptionRequested) {
    // User has requested to enable audio descriptions
}

জাভা

private AccessibilityManager accessibilityManager;

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager.class);

// Where your media player is initialized
if(accessibilityManager.isAudioDescriptionRequested()) {
    // User has requested to enable audio descriptions
}

AccessibilityManager শ্রোতা যোগ করে অ্যান্ড্রয়েড টিভি অ্যাপগুলি ব্যবহারকারীর পছন্দ পরিবর্তন হলে তা পর্যবেক্ষণ করতে পারে:

কোটলিন

private val listener =
    AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled ->
        // Preference changed; reflect its state in your media player
    }

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

জাভা

private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> {
    // Preference changed; reflect its state in your media player
};

@Override
protected void onStart() {
    super.onStart();

    accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener);
}

@Override
protected void onStop() {
    super.onStop();

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}