Accessibility (a11y) — روشی برای ایجاد برنامههایی است که افراد دارای معلولیت میتوانند از آنها استفاده کنند. طبق گزارش سازمان بهداشت جهانی، بیش از 1.3 میلیارد نفر (16٪ از جمعیت) با نوعی از معلولیت زندگی میکنند. WHO (گزارش 2024) تأکید میکند که دسترسیپذیری دیجیتال به شدت مهم میشود. بیایید بررسی کنیم که چگونه دسترسیپذیری را در iOS و Android تضمین کنیم و چه استانداردهایی وجود دارد.
نکات کلیدی
Accessibility (مخفف a11y — حرف a + 11 حرف + y) — ویژگی قابل استفاده بودن یک محصول توسط افراد دارای معلولیت است. در زمینه برنامههای موبایل، این به معنای: پشتیبانی از صفحهخوانها (VoiceOver، TalkBack)، اندازه متن مناسب، کنتراست بالا، ترتیب فوکوس صحیح برای پیمایش با صفحهکلید و عدم وجود عناصر متحرک ایجادکننده سرگیجه است.
فراگیری نه تنها یک تعهد اخلاقی، بلکه یک تعهد قانونی است. بسیاری از کشورها قوانین دسترسیپذیری دیجیتال دارند: ADA (ایالات متحده)، Section 508، قانون دسترسیپذیری اروپا (اتحادیه اروپا، از 2025 برای برنامهها الزامی). به گفته Business Disability Forum، شرکتهایی که در دسترسیپذیری سرمایهگذاری میکنند، مخاطبان خود را 15–20٪ افزایش میدهند و ریسکهای قانونی را کاهش میدهند.
در IT Sectr، ما در هر مرحله از توسعه، دسترسیپذیری را بررسی میکنیم. تجربه ما نشان میدهد: رفع مشکلات دسترسیپذیری در مرحله طراحی 10 برابر ارزانتر از پس از انتشار است. دسترسیپذیری یک ویژگی نیست، بلکه یک نیاز اساسی برای یک برنامه مدرن است.
اکوسیستم اپل ابزارهای قدرتمند دسترسیپذیری را ارائه میدهد. VoiceOver یک صفحهخوان داخلی است که همه چیز را در صفحه نمایش صدادار میکند. کاربر دستگاه را با حرکات کنترل میکند: swipe به راست — عنصر بعدی، swipe به چپ — عنصر قبلی، دو ضربه — فعالسازی.
Accessibility Label متنی است که VoiceOver برای یک عنصر میخواند. به طور پیشفرض، iOS از متن دکمه یا برچسب استفاده میکند، اما برای آیکونها و عناصر گرافیکی باید برچسب را به صراحت تنظیم کنید. Accessibility Trait — ویژگیای است که نوع عنصر را توصیف میکند: button (دکمه)، header (سربرگ)، link (پیوند)، image (تصویر). Traitهای صحیح به کاربر کمک میکنند نحوه تعامل با یک عنصر را درک کند.
VoiceOver از بیش از 40 زبان پشتیبانی میکند و روی همه دستگاههای اپل کار میکند. برای توسعهدهنده، نکته اصلی تنظیم 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 است که بخشی از بسته Android Accessibility Suite است. مانند VoiceOver، عناصر رابط را صدادار میکند و با حرکات کنترل میشود. TalkBack از بیش از 100 زبان پشتیبانی میکند و روی همه دستگاههای دارای Google Play Services کار میکند.
Content Description — معادل accessibilityLabel در Android است. از طریق ویژگی android:contentDescription در XML یا از طریق متد setContentDescription() در کد تنظیم میشود. برای عناصر غیرقابل فوکس (ImageView تزئینی)، از importantForAccessibility="no" استفاده کنید.
Focus Order (ترتیب فوکوس) — ترتیبی است که TalkBack هنگام swipe بین عناصر حرکت میکند. به طور پیشفرض، Android از ترتیب عناصر در layout استفاده میکند، اما میتوان آن را از طریق ویژگیهای accessibilityTraversalBefore و accessibilityTraversalAfter تغییر داد. این برای صفحههای پیچیده با کامپوننتهای سفارشی مهم است.
در IT Sectr، ما Focus Order را در هر صفحه بررسی میکنیم. خطاهای ترتیب فوکوس از رایجترین مشکلات دسترسیپذیری هستند. به عنوان مثال، اگر پس از یک سربرگ کاربر به جای متن مقاله به نظرات برود — این یک باگ دسترسیپذیری است.
WCAG (دستورالعملهای دسترسیپذیری محتوای وب) — استاندارد بینالمللی دسترسیپذیری است که توسط W3C توسعه یافته است. نسخه فعلی WCAG 2.2 (2023) است. استاندارد به 4 اصل تقسیم میشود: Perceivable (قابل درک)، Operable (قابل اجرا)، Understandable (قابل فهم)، Robust (مقاوم) — مخفف POUR.
سطوح WCAG: A (حداقل)، AA (متوسط، الزامی قانونی در اتحادیه اروپا)، 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. مقایسه APIهای دسترسیپذیری iOS و Android. با وجود نامهای مختلف، مفاهیم یکسان هستند: برچسب، نوع، ترتیب فوکوس و پشتیبانی از تطبیق متن.
تست دسترسیپذیری — بررسی برنامه برای مطابقت با استانداردهای WCAG و عملکرد صحیح با صفحهخوانها است. حداقل مجموعه تست: VoiceOver/TalkBack را فعال کرده و در تمام صفحههای برنامه پیمایش کنید. با گوش دادن بررسی کنید که همه عناصر اعلام میشوند، ترتیب فوکوس منطقی است و عناصر نامناسب (تزئینی) نادیده گرفته میشوند.
ابزارهای خودکار: Xcode Accessibility Inspector (حسابرسی در Xcode برای iOS)، Android Accessibility Scanner (صفحه را اسکن کرده و مشکلات را پیدا میکند)، Axe DevTools، WAVE. این ابزارها کنتراست، اندازه هدف، وجود برچسبها و سایر پارامترها را بررسی میکنند.
در IT Sectr، ما قبل از هر انتشار یک بررسی دسترسیپذیری انجام میدهیم. فرآیند شامل: حسابرسی خودکار (Accessibility Inspector)، تست دستی با VoiceOver و TalkBack، بررسی کنتراست و مقیاس متن است. ما مشکلات را در Jira ثبت کرده و به اسپرینت اختصاص میدهیم. این به ما امکان میدهد سطح AA WCAG را در همه پروژهها حفظ کنیم.
سوالات متداول
تنظیمات → دسترسیپذیری → VoiceOver. یا دکمه کناری (یا دکمه Home) را سه بار فشار دهید در حالی که میانبر دسترسیپذیری فعال است. برای فعالسازی سریع، از Siri استفاده کنید: «VoiceOver را روشن کن». در Android، TalkBack در تنظیمات → دسترسیپذیری → TalkBack فعال میشود.
برای مطابقت با قوانین اتحادیه اروپا (قانون دسترسیپذیری اروپا از 2025) و ایالات متحده (ADA)، سطح AA مورد نیاز است. این به معنای: کنتراست 4.5:1، همه عناصر دارای برچسب هستند، اندازه هدف حداقل 44x44 پیکسل، پشتیبانی از صفحهخوانها، زیرنویس برای ویدیو.
بله. دسترسیپذیری به همه کمک میکند: افراد مسن، کاربران در یک روز آفتابی روشن، والدینی که نوزاد را در آغوش دارند (یک دست). علاوه بر این، در بسیاری از کشورها یک الزام قانونی است. فراگیری مخاطب را گسترش میدهد و تجربه کاربری را برای همه بهبود میبخشد.
از این ابزارها استفاده کنید: WebAIM Contrast Checker (آنلاین)، Stark برای Figma/Sketch. برای WCAG AA، حداقل نسبت 4.5:1 برای متن معمولی و 3:1 برای متن بزرگ (18px و بیشتر) است. برای AAA — به ترتیب 7:1 و 4.5:1.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.