Accessibility (a11y) — এমন অ্যাপ্লিকেশন তৈরি করার অনুশীলন যা প্রতিবন্ধী ব্যক্তিরা ব্যবহার করতে পারেন। বিশ্ব স্বাস্থ্য সংস্থার মতে, 1.3 বিলিয়নেরও বেশি মানুষ (জনসংখ্যার 16%) কোনো না কোনো ধরনের প্রতিবন্ধিতা নিয়ে বাস করেন। WHO (প্রতিবেদন 2024) জোর দেয় যে ডিজিটাল অ্যাক্সেসিবিলিটি গুরুত্বপূর্ণ হয়ে উঠছে। আসুন দেখি কীভাবে iOS এবং Android-এ অ্যাক্সেসিবিলিটি নিশ্চিত করা যায় এবং কী কী মানদণ্ড বিদ্যমান।
মূল বিষয়
Accessibility (সংক্ষেপে a11y — a অক্ষর + 11 অক্ষর + y) — একটি পণ্যের প্রতিবন্ধী ব্যক্তিদের দ্বারা ব্যবহারযোগ্য হওয়ার বৈশিষ্ট্য। মোবাইল অ্যাপ্লিকেশনের প্রসঙ্গে, এর অর্থ: স্ক্রিন রিডার (VoiceOver, TalkBack) সমর্থন, পর্যাপ্ত টেক্সট আকার, উচ্চ কনট্রাস্ট, কীবোর্ড নেভিগেশনের জন্য সঠিক ফোকাস অর্ডার এবং মাথা ঘোরানো অ্যানিমেটেড উপাদানের অনুপস্থিতি।
অন্তর্ভুক্তি শুধুমাত্র নৈতিক নয়, আইনগত বাধ্যবাধকতাও। অনেক দেশে ডিজিটাল অ্যাক্সেসিবিলিটি আইন রয়েছে: ADA (মার্কিন যুক্তরাষ্ট্র), Section 508, European Accessibility Act (EU, 2025 থেকে অ্যাপের জন্য বাধ্যতামূলক)। Business Disability Forum-এর মতে, অ্যাক্সেসিবিলিটিতে বিনিয়োগকারী কোম্পানিগুলি তাদের দর্শক 15–20% বাড়ায় এবং আইনগত ঝুঁকি হ্রাস করে।
IT Sectr-এ, আমরা উন্নয়নের প্রতিটি ধাপে অ্যাক্সেসিবিলিটি পরীক্ষা করি। আমাদের অভিজ্ঞতা দেখায়: ডিজাইন ধাপে অ্যাক্সেসিবিলিটি সমস্যা সমাধান করা রিলিজের পরের চেয়ে 10 গুণ সস্তা। Accessibility কোনো ফিচার নয়, আধুনিক অ্যাপ্লিকেশনের জন্য একটি মৌলিক প্রয়োজনীয়তা।
Apple ইকোসিস্টেম শক্তিশালী অ্যাক্সেসিবিলিটি টুল সরবরাহ করে। VoiceOver একটি অন্তর্নির্মিত স্ক্রিন রিডার যা স্ক্রিনে ঘটে যাওয়া সবকিছু পড়ে শোনায়। ব্যবহারকারী অঙ্গভঙ্গি দিয়ে ডিভাইস নিয়ন্ত্রণ করে: ডানদিকে সোয়াইপ — পরবর্তী উপাদান, বামে সোয়াইপ — পূর্ববর্তী উপাদান, ডাবল ট্যাপ — সক্রিয়করণ।
Accessibility Label হল টেক্সট যা VoiceOver একটি উপাদানের জন্য পড়ে। ডিফল্টরূপে, iOS বাটন টেক্সট বা লেবেল ব্যবহার করে, কিন্তু আইকন এবং গ্রাফিকাল উপাদানের জন্য আপনাকে লেবেল স্পষ্টভাবে সেট করতে হবে। Accessibility Trait — একটি বৈশিষ্ট্য যা উপাদানের ধরন বর্ণনা করে: button (বাটন), header (শিরোনাম), link (লিংক), image (ছবি)। সঠিক traits ব্যবহারকারীকে বুঝতে সাহায্য করে কীভাবে একটি উপাদানের সাথে ইন্টারঅ্যাক্ট করতে হয়।
VoiceOver 40টিরও বেশি ভাষা সমর্থন করে এবং সব Apple ডিভাইসে কাজ করে। ডেভেলপারের জন্য প্রধান কাজ হল প্রতিটি ইন্টারফেস উপাদানের জন্য সঠিক accessibilityLabel এবং accessibilityTraits সেট করা। যদি কোনো উপাদান অ্যাক্সেসযোগ্য না হওয়া উচিত (আলংকারিক ছবি), তাহলে isAccessibilityElement = false সেট করুন।
// Swift — বাটনের জন্য অ্যাক্সেসিবিলিটি সেটআপ
let shareButton = UIButton()
shareButton.setImage(UIImage(named: "share-icon"), for: .normal)
shareButton.accessibilityLabel = "এই নিবন্ধটি শেয়ার করুন"
shareButton.accessibilityHint = "পাঠানোর পদ্ধতি বেছে নেওয়ার জন্য একটি ডায়ালগ খোলে"
shareButton.accessibilityTraits = .button
// SwiftUI — আরও সহজ
struct ShareButtonView: View {
var body: some View {
Button(action: share) {
Image(systemName: "square.and.arrow.up")
}
.accessibilityLabel("শেয়ার করুন")
.accessibilityHint("শেয়ার মেনু খোলে")
}
}
কোডটি টেক্সট ছাড়া বাটনের (শুধু আইকন) জন্য অ্যাক্সেসিবিলিটি সেটআপ দেখায়। AccessibilityLabel হল যা ব্যবহারকারী শুনতে পাবেন। AccessibilityHint — কর্মের ফলাফল সম্পর্কে একটি অতিরিক্ত ইঙ্গিত। লেবেলে «বাটন জন্য» এর মতো বাক্যাংশ ব্যবহার করবেন না — Trait ইতিমধ্যে বলে দেয় এটি একটি বাটন।
TalkBack হল Android-এর জন্য Google-এর স্ক্রিন রিডার, যা Android Accessibility Suite প্যাকেজের অংশ। VoiceOver-এর মতো, এটি ইন্টারফেস উপাদান পড়ে শোনায় এবং অঙ্গভঙ্গি দ্বারা নিয়ন্ত্রিত হয়। TalkBack 100টিরও বেশি ভাষা সমর্থন করে এবং Google Play Services আছে এমন সব ডিভাইসে কাজ করে।
Content Description — Android-এ accessibilityLabel-এর সমতুল্য। এটি XML-এ android:contentDescription অ্যাট্রিবিউট বা কোডে setContentDescription() মেথডের মাধ্যমে সেট করা হয়। নন-ফোকাসযোগ্য উপাদানের (আলংকারিক ImageView) জন্য, importantForAccessibility="no" ব্যবহার করুন।
Focus Order (ফোকাস অর্ডার) — যে ক্রমে TalkBack সোয়াইপ করার সময় উপাদানের মধ্যে চলে। ডিফল্টরূপে, Android লেআউটে উপাদানের ক্রম ব্যবহার করে, কিন্তু এটি accessibilityTraversalBefore এবং accessibilityTraversalAfter অ্যাট্রিবিউটের মাধ্যমে পরিবর্তন করা যায়। এটি কাস্টম কম্পোনেন্ট সহ জটিল স্ক্রিনের জন্য গুরুত্বপূর্ণ।
IT Sectr-এ, আমরা প্রতিটি স্ক্রিনে Focus Order পরীক্ষা করি। ফোকাস অর্ডারের ত্রুটি সবচেয়ে সাধারণ অ্যাক্সেসিবিলিটি সমস্যার মধ্যে একটি। উদাহরণস্বরূপ, যদি শিরোনামের পরে ব্যবহারকারী নিবন্ধের টেক্সটের পরিবর্তে মন্তব্যে যায় — এটি একটি অ্যাক্সেসিবিলিটি বাগ।
WCAG (ওয়েব কন্টেন্ট অ্যাক্সেসিবিলিটি গাইডলাইনস) — W3C দ্বারা উন্নত আন্তর্জাতিক অ্যাক্সেসিবিলিটি মান। বর্তমান সংস্করণ WCAG 2.2 (2023)। মানটি ৪টি নীতিতে বিভক্ত: Perceivable (বোধগম্য), Operable (পরিচালনাযোগ্য), Understandable (বোধগম্য), Robust (নির্ভরযোগ্য) — সংক্ষিপ্ত রূপ POUR।
WCAG স্তর: A (সর্বনিম্ন), AA (মধ্যম, EU-তে আইনত বাধ্যতামূলক), AAA (সর্বোচ্চ)। মোবাইল অ্যাপ্লিকেশনের জন্য, স্তর AA যথেষ্ট: টেক্সট কনট্রাস্ট কমপক্ষে 4.5:1, স্ক্রিন রিডার সমর্থন, ন্যূনতম টার্গেট সাইজ 44x44 পিক্সেল, ভিডিওর জন্য সাবটাইটেল।
স্তর A — মৌলিক প্রয়োজনীয়তা: ছবির জন্য টেক্সট বিকল্প, কীবোর্ড নিয়ন্ত্রণ, কমপক্ষে 3:1 কনট্রাস্ট। স্তর AA — মধ্যম: কনট্রাস্ট 4.5:1, 200% পর্যন্ত স্কেলিং সমর্থন, সঠিক শিরোনাম এবং লেবেল। স্তর AAA — উচ্চ: কনট্রাস্ট 7:1, ভিডিওর জন্য সাংকেতিক ভাষা, পূর্ণ ভয়েস নিয়ন্ত্রণ। বাস্তবে, বেশিরভাগ কোম্পানি AA লক্ষ্য করে।
| প্যারামিটার | iOS | Android |
|---|---|---|
| স্ক্রিন রিডার | VoiceOver | TalkBack |
| উপাদান লেবেল | accessibilityLabel | android:contentDescription |
| উপাদানের ধরন | accessibilityTraits | accessibilityRole (Compose), ফোকাস গুরুত্ব |
| ফোকাস অর্ডার | স্বয়ংক্রিয় (পরিবর্তন করা যায়) | accessibilityTraversalBefore/After |
| টেক্সট স্কেলিং | Dynamic Type (UIFontMetrics) | sp (scale-independent pixels) |
| গতি কমান | UIAccessibility.isReduceMotionEnabled | Settings.Global.getFloat(... ANIMATOR_DURATION_SCALE) |
সারণী 2. iOS এবং Android অ্যাক্সেসিবিলিটি API-র তুলনা। ভিন্ন নাম সত্ত্বেও, ধারণাগুলি একই: লেবেল, ধরন, ফোকাস অর্ডার এবং টেক্সট অভিযোজন সমর্থন।
অ্যাক্সেসিবিলিটি টেস্টিং — WCAG মানদণ্ডের সাথে সামঞ্জস্য এবং স্ক্রিন রিডারের সাথে সঠিক কার্যকারিতার জন্য অ্যাপ্লিকেশন পরীক্ষা করা। ন্যূনতম পরীক্ষার সেট: VoiceOver/TalkBack চালু করুন এবং অ্যাপ্লিকেশনের সব স্ক্রিনে নেভিগেট করুন। শুনে পরীক্ষা করুন যে সব উপাদান ঘোষণা করা হয়েছে, ফোকাস অর্ডার যৌক্তিক, এবং অনুপযুক্ত উপাদান (আলংকারিক) উপেক্ষা করা হয়েছে।
স্বয়ংক্রিয় টুল: Xcode Accessibility Inspector (iOS-এর জন্য Xcode-এ অডিট), Android Accessibility Scanner (স্ক্রিন স্ক্যান করে এবং সমস্যা খুঁজে), Axe DevTools, WAVE। এই টুলগুলি কনট্রাস্ট, টার্গেট সাইজ, লেবেলের উপস্থিতি এবং অন্যান্য প্যারামিটার পরীক্ষা করে।
IT Sectr-এ, আমরা প্রতিটি রিলিজের আগে অ্যাক্সেসিবিলিটি রিভিউ করি। প্রক্রিয়াটি অন্তর্ভুক্ত: স্বয়ংক্রিয় অডিট (Accessibility Inspector), VoiceOver এবং TalkBack দিয়ে ম্যানুয়াল টেস্টিং, কনট্রাস্ট এবং টেক্সট স্কেলিং পরীক্ষা। আমরা Jira-তে সমস্যাগুলি লিপিবদ্ধ করি এবং স্প্রিন্টে বরাদ্দ করি। এটি আমাদের সব প্রকল্পে WCAG স্তর AA বজায় রাখতে দেয়।
সচরাচর জিজ্ঞাসা
সেটিংস → অ্যাক্সেসিবিলিটি → VoiceOver। অথবা অ্যাক্সেসিবিলিটি শর্টকাট চালু থাকলে সাইড বাটন (বা হোম বাটন) তিনবার চাপুন। দ্রুত সক্রিয়করণের জন্য, Siri ব্যবহার করুন: «VoiceOver চালু করুন». Android-এ, TalkBack সেটিংস → অ্যাক্সেসিবিলিটি → TalkBack-এ চালু করা হয়।
EU আইন (2025 থেকে European Accessibility Act) এবং USA (ADA) মেনে চলতে স্তর AA প্রয়োজন। এর অর্থ: কনট্রাস্ট 4.5:1, সব উপাদানের লেবেল আছে, টার্গেট সাইজ কমপক্ষে 44x44 পিক্সেল, স্ক্রিন রিডার সমর্থন, ভিডিওর জন্য সাবটাইটেল।
হ্যাঁ। অ্যাক্সেসিবিলিটি সবার সাহায্য করে: বয়স্ক ব্যক্তি, উজ্জ্বল রৌদ্রোজ্জ্বল দিনে ব্যবহারকারী, কোলে শিশু নিয়ে বাবা-মা (এক হাতে)। তাছাড়া, এটি অনেক দেশে আইনগত প্রয়োজনীয়তা। অন্তর্ভুক্তি দর্শক বাড়ায় এবং সবার জন্য UX উন্নত করে।
এই টুলগুলি ব্যবহার করুন: WebAIM Contrast Checker (অনলাইন), Figma/Sketch-এর জন্য Stark। WCAG AA-র জন্য, সাধারণ টেক্সটের জন্য ন্যূনতম অনুপাত 4.5:1 এবং বড় টেক্সটের (18px এবং বেশি) জন্য 3:1। AAA-র জন্য — যথাক্রমে 7:1 এবং 4.5:1।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।