এই নির্দেশিকাটি Android TV-তে অ্যাক্সেসযোগ্যতার জন্য সর্বোত্তম অনুশীলন প্রদান করে এবং নেটিভ এবং অ-নেটিভ উভয় অ্যাপের জন্য সুপারিশ প্রদান করে।
কেন আমার টিভি অ্যাপের জন্য অ্যাক্সেসযোগ্যতা গুরুত্বপূর্ণ?
টিভি দেখার জনসংখ্যার মধ্যে দৃষ্টি প্রতিবন্ধকতা অস্বাভাবিক নয়। বিশ্ব স্বাস্থ্য সংস্থা (WHO) অনুসারে বিশ্বব্যাপী আনুমানিক ২.২ বিলিয়ন লোকের দৃষ্টি প্রতিবন্ধকতা রয়েছে। 2018 সালের ন্যাশনাল হেলথ ইন্টারভিউ সার্ভে অনুসারে, মার্কিন যুক্তরাষ্ট্রে, 18 বছর বা তার বেশি বয়সী 32 মিলিয়ন আমেরিকানদের উল্লেখযোগ্য দৃষ্টিশক্তি হ্রাস পেয়েছে। ইউরোপে, ইউরোপীয় ব্লাইন্ড ইউনিয়ন (ইবিইউ) অনুসারে, অনুমানগুলি 30 মিলিয়ন অন্ধ এবং আংশিকভাবে দৃষ্টিসম্পন্ন ব্যক্তিকে নির্দেশ করে।
সবচেয়ে গুরুত্বপূর্ণভাবে, দৃষ্টি প্রতিবন্ধী ব্যবহারকারীরা তাদের সম্পূর্ণ দৃষ্টিসম্পন্ন সমবয়সীদের মতোই মিডিয়া বিষয়বস্তু উপভোগ করেন। Comcast দ্বারা পরিচালিত একটি 2017 সমীক্ষায় দেখা গেছে যে 96% ব্যবহারকারী যারা অন্ধ বা কম দৃষ্টিশক্তি রয়েছে তারা নিয়মিত টিভি দেখেন, 81% প্রতিদিন এক ঘন্টার বেশি দেখেন। যাইহোক, 65% টিভিতে যা আছে তা দেখতে সমস্যার সম্মুখীন হওয়ার কথাও জানিয়েছেন। এবং যুক্তরাজ্যে 2020 সালের একটি সমীক্ষায় , 80% প্রতিবন্ধী ব্যক্তি বলেছেন যে তারা ভিডিও অন-ডিমান্ড স্ট্রিমিং পরিষেবাগুলির সাথে অ্যাক্সেসযোগ্যতার সমস্যা অনুভব করেছেন।
যদিও সহায়ক প্রযুক্তিগুলি কম দৃষ্টিভঙ্গি সহ ব্যবহারকারীদের সাহায্য করতে পারে এবং করতে পারে, টিভি অ্যাপগুলির জন্য সামগ্রী আবিষ্কারের যাত্রায় অ্যাক্সেসযোগ্যতা সমর্থন করা গুরুত্বপূর্ণ৷ উদাহরণস্বরূপ, নেভিগেশন নির্দেশিকা প্রদান এবং উপাদানগুলিকে সঠিকভাবে লেবেল করার দিকে অতিরিক্ত মনোযোগ দিন এবং নিশ্চিত করুন যে TV অ্যাপগুলি টকব্যাকের মতো অ্যাক্সেসিবিলিটি বৈশিষ্ট্যগুলির সাথে ভাল কাজ করে৷ এই পদক্ষেপগুলি দৃষ্টি প্রতিবন্ধী ব্যবহারকারীদের অভিজ্ঞতাকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।
অ্যাক্সেসযোগ্যতা উন্নত করার প্রথম ধাপ হল সচেতনতা। এই নির্দেশিকাটি আপনাকে এবং আপনার টিমকে আপনার TV অ্যাপের সাথে অ্যাক্সেসযোগ্যতার সমস্যাগুলি উন্মোচন করতে সাহায্য করতে পারে৷
অ্যান্ড্রয়েড অ্যাক্সেসিবিলিটি রিসোর্স
Android-এ অ্যাক্সেসিবিলিটি সম্পর্কে আরও জানতে, আমাদের অ্যাক্সেসিবিলিটি ডেভেলপমেন্ট রিসোর্স দেখুন।
পাঠ্য স্কেলিং
Android TV অ্যাপগুলিকে বিভিন্ন পিক্সেল ঘনত্ব সমর্থন করে পাঠ্য স্কেলিং এর জন্য ব্যবহারকারীর পছন্দকে সম্মান করা উচিত।
বিশেষ যত্ন নিন:
- 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
অ্যান্ড্রয়েড 12 এবং তার উপরে, ব্যবহারকারীরা ডিভাইস সেটিংস থেকে পাঠ্য স্কেলিং পরিবর্তন করতে পারেন।
কীবোর্ড লেআউট
Android 13 (API স্তর 33) এবং উচ্চতর, আপনি প্রত্যাশিত মূল অবস্থানগুলির জন্য কীকোডগুলি সন্ধান করতে getKeyCodeForKeyLocation()
ব্যবহার করতে পারেন। ব্যবহারকারী যদি কিছু মূল অবস্থান পুনরায় ম্যাপ করে থাকে বা যদি তারা এমন একটি কীবোর্ড ব্যবহার করে যার একটি সাধারণ বিন্যাস নেই তাহলে এটি প্রয়োজনীয় হতে পারে৷
অডিও বর্ণনা
Android 13 (API স্তর 33) এবং উচ্চতর, একটি নতুন সিস্টেম-ব্যাপী অ্যাক্সেসিবিলিটি পছন্দ ব্যবহারকারীদের সমস্ত অ্যাপ জুড়ে অডিও বিবরণ সক্ষম করতে দেয়। Android TV অ্যাপগুলি 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
একজন শ্রোতা যোগ করার মাধ্যমে ব্যবহারকারীর পছন্দ পরিবর্তন হলে Android TV অ্যাপগুলি পর্যবেক্ষণ করতে পারে:
কোটলিন
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); }