إمكانية الوصول في Android: رؤى المطورين ودليل التنفيذ

نشرت: 2022-09-12

يوجد في جميع أنحاء العالم حوالي 285 مليون شخص يعانون من إعاقات بصرية. وبالتالي ، عند تصميم تطبيق جديد أو التفكير في تجديد التصميم ، فمن الأفضل بالتأكيد تعديل تطبيقك وفقًا لاحتياجات هذه المجموعة الواسعة من المستخدمين. يؤدي تخصيص التطبيقات للأشخاص المعاقين بصريًا إلى تحسين تجربة جميع المستخدمين. ما الأسباب الأخرى للنظر في تحسين إمكانية الوصول إلى تطبيقك ، وكيفية القيام بذلك؟ الرجاء العثور على جميع الإجابات أدناه!

كيف يستخدم الأشخاص ضعاف البصر التطبيقات؟

يعد قارئ الشاشة أداة لتشغيل التطبيقات (أو ببساطة تصفح شاشة هاتفك الذكي) للأشخاص المكفوفين وضعاف البصر. قارئ الشاشة الأكثر شيوعًا لنظام Android هو TalkBack . باستخدام هذه الأداة ، ينفذ المستخدم الإدخال عبر الإيماءات مثل التمرير أو السحب.

عادةً ما يكون الناتج عبارة عن تعليقات منطوقة. في TalkBack ، لدينا وضعان لإدخال الإيماءات:

  • الاستكشاف باللمس ، حيث تقوم بسحب إصبعك عبر الشاشة.
  • التنقل الخطي ، حيث يمكنك التمرير إلى اليسار واليمين بإصبعك حتى تعثر على العنصر الذي تريده.

بمجرد وصولك إلى العنصر الذي تهتم به ، يمكنك النقر عليه مرتين لتنشيطه. هل تريد معرفة المزيد حول كيفية تشغيل TalkBack؟ الرجاء قراءة المقال التالي.

TalkBack هو قارئ الشاشة الأكثر شيوعًا لنظام Android

مبادئ التطبيق التي يمكن الوصول إليها

لتمكين الأشخاص ذوي الإعاقة البصرية من استخدام تطبيقنا ، نحتاج أولاً إلى فهم المبادئ التي يجب أن نتبعها عند تصميمه. لذلك ، قبل أن ننتقل إلى قسم التنفيذ ، دعونا نناقش أهم الافتراضات.

التخطيط والطباعة

الجزء المرئي من التطبيق بالغ الأهمية. تعد الأزرار التي تم تنفيذها بشكل صحيح ومعالجة النص من أهم العوامل التي تجعل التطبيق سهل الوصول إليه.

أهداف اللمس

أهداف اللمس هي أجزاء من الشاشة تستجيب لتفاعل المستخدم. التوصية الرئيسية هي إنشاء أهداف تعمل باللمس بدقة لا تقل عن 48dp x 48dp. سوف تقرأ المزيد عن هذا في الفصل التالي.

أهداف اللمس هي أجزاء من الشاشة تستجيب لتفاعل المستخدم

اللون والتباين

أنشأت شبكة الويب العالمية إرشادات إمكانية الوصول إلى تباين الألوان لمساعدة المستخدمين ومساعدتهم في حالات قصور الألوان. وفقًا للوثائق ، فإن الجوانب الحاسمة فيما يتعلق بإمكانية الوصول إلى تباين الألوان هي:

  • النسبة : يجب أن يكون للنص والعناصر التفاعلية نسبة تباين ألوان لا تقل عن 4.5: 1.
  • اللون كمؤشر : يجب ألا يكون اللون هو المؤشر الوحيد للعناصر التفاعلية. سيكون من الأفضل إذا قمت أيضًا بوضع خط تحت الارتباطات الموجودة في التمرير أو قمت بتمييز الحقول المطلوبة بعلامة النجمة.
  • عمى الألوان: عمى الألوان الأحمر / الأخضر هو الأكثر شيوعًا. ومن ثم ، يجب تجنب اللون الأخضر على الأحمر أو الأحمر على الأخضر. للسبب نفسه ، يرجى تجنب استخدام الأحمر والأخضر لمؤشرات "سيئة" و "جيدة".

الطباعة

يمكن للمستخدمين زيادة حجم الخط لتحسين إمكانية القراءة . في أجهزة Android ، يعد هذا أحد خيارات النظام المستخدمة بشكل متكرر ، لذا تأكد من وجود مساحة كافية للخطوط الكبيرة والأجنبية.

نص إمكانية الوصول

نص إمكانية الوصول هو نص مرئي (على سبيل المثال ، تسميات عناصر واجهة المستخدم ، والنص الموجود على الأزرار والروابط والنماذج) والأوصاف غير المرئية (أوصاف المحتوى ، والتي يمكن أن توفر مزيدًا من المعلومات حول المكون الموصوف).

ما هي حالات الاستخدام الأكثر شيوعًا لنص إمكانية الوصول ؟

أنواع الضوابط والحالات

يمكن لقارئات الشاشة ، مثل TalkBack ، الإعلان تلقائيًا عن نوع عنصر التحكم أو حالته إما من خلال نطق اسم عنصر التحكم أو إصدار صوت.

مبينا العناصر من خلال العمل

تشير أفعال العمل إلى ما يفعله عنصر أو ارتباط عند النقر عليه ووصف ما يفعله العرض.

العناصر مع تغييرات الحالة

في حالة الرموز التي تقوم بالتبديل بين القيم أو الحالات ، يصف قارئ الشاشة رمزًا وفقًا لكيفية تقديمه للمستخدم. لمزيد من الأمثلة ، يرجى قراءة إرشادات التصميم متعدد الأبعاد.

ملخص

علمك هذا الفصل كيف يجب تكييف التصميم لضعاف البصر والمكفوفين. حتى الآن ، قمنا بتغطية التخطيط والطباعة وإمكانية الوصول إلى النص . الآن سوف ننتقل إلى مبادئ تنفيذها.

تنفيذ إمكانية الوصول

في القسم التالي ، سأركز على الجوانب الرئيسية لتنفيذ إمكانية الوصول إلى تطبيقك. هيا نبدأ!

تخطيط - هدف اللمس

كما ذكرت في الجزء النظري ، يجب أن يحتوي كل عنصر قابل للنقر على 48dp / 48dp على الأقل.

هناك عدة خيارات للقيام بذلك. يمكنك:

  • تحديد قيم العرض والارتفاع على النحو الموصى به (48dp / 48dp)
  • أضف المساحة المتروكة حول الرموز
  • حدد قيمًا للسمات: MinWidth و / أو minHeight
  • سجل TouchDelegate.

انظر إلى مثال من وثائق Google الرسمية. يُظهر العنصر الذي يحتوي على الحجم الموصى به لهدف اللمس :

 <ImageButton 
   ...
   android: minWidth = "40dp"
   android: minHeight = "32dp"
   android: paddingLeft = "4dp"

   android: paddingTop = "8dp"
   android: paddingRight = "4dp"
   android: paddingBottom = "8dp" />

نص إمكانية الوصول

تتمثل إحدى طرق إرفاق نص إمكانية الوصول بعناصر واجهة المستخدم الخاصة بك في استخدام سمة Android تسمى ContentDescription . إذا لم توفره لزر صورة ، على سبيل المثال ، فإن تجربة مستخدم TalkBack يمكن أن تكون مزعجة.

انظر الى المثال:

 <! - قيمة السلسلة التالية هي "بحث". ->
<ImageView
   ...
   android: contentDescription = "@ string / search" />

بالنسبة للعناصر الزخرفية مثل الفواصل والفواصل ، اضبط “android:contentDescription” على "null" . إذا كان تطبيقك يدعم فقط الأجهزة التي تعمل بنظام التشغيل Android 4.1 (مستوى واجهة برمجة التطبيقات 16) أو أعلى ، يمكنك بدلاً من ذلك تعيين سمات “android:importantForAccessibility” على "no" .

من فضلك ، تأكد من عدم تضمين نوع التحكم أو حالة التحكم في وصف المحتوى الخاص بك. يحتوي Android في الأصل على كلمات مثل الأزرار ، المحددة ، المحددة ، إلخ.

تقنيات وضع العلامات

يمكنك العثور أدناه على مجموعة من الممارسات الجيدة لوصف مكونات واجهة المستخدم في تطبيقك.

المكونات التي تصف بعضها البعض

إذا كان لديك مكون يسمح لك بتوفير بعض البيانات (مثل EditText) ، فمن الجيد أن يكون لديك كائن View يصفه (مثل TextView). هذا هو سبب إنشاء السمة "android:labelFor" . يرجى إلقاء نظرة على المثال:

 <! - نص التسمية سيكون "الاسم:" ->
<TextView 
   ...
   ذكري المظهر:
   android: labelFor = "@ + id / nameEntry"
   android: text = "@ string / name" />

<! - سيكون نص إمكانية الوصول "تحرير نص للاسم" ->
<EditText 
   ...
   الروبوت: />

<! - نص التسمية سيكون "اللقب:" ->
<TextView 
   ...
   ذكري المظهر:
   android: labelFor = "@ + معرف / اسم العائلة"
   android: text = "@ string / اسم العائلة" />

<! - سيكون نص إمكانية الوصول "تحرير نص اللقب" ->
<EditText 
   ...
   الروبوت: />

مجموعة العناصر ذات الصلة

إذا كان تطبيقك يحتوي على عناصر واجهة مستخدم مرتبطة بشكل طبيعي (مثل الحقول التي تحتوي على معلومات حول كتاب) ، فيمكنك ترتيبها في مجموعات باستخدام حاوية قابلة للتركيز . للقيام بذلك ، اضبط سمة كائن الحاوية “android:focusable” على true.

عند القيام بذلك ، يمكن لـ TalkBack تقديم أوصاف محتوى العناصر الداخلية ، واحدًا تلو الآخر ، في إعلان واحد. يقلل تجميع المحتوى من مقدار الضرب الذي يتعين على المستخدم القيام به أثناء تبسيط إخراج الكلام. الرجاء إلقاء نظرة على المثال:

 <LinearLayout 
   ...
   ذكري المظهر:
   android: orientation = "vertical"
   android: focusable = "true">

   <TextView
	  ...
       ذكري المظهر:
       android: text = "@ string / title" />

   <TextView
	  ...
       ذكري المظهر:
       android: text = "@ string / author" />

   <TextView
	  ...
       ذكري المظهر:
       android: text = "@ string / pages" />
</LinearLayout>

بالطبع ، إذا كانت الحاوية الخاصة بك تحتوي على طرق عرض متداخلة ، فيمكنك أيضًا تطبيق هذا الحل عليها. سيؤدي ذلك إلى جعل التنقل في التطبيق الخاص بك أكثر سهولة.

إجراءات الوصول

عندما يدعم تطبيقك إجراءات مثل النقر أو الضغط لفترة طويلة أو التمرير ، فإنك تحتاج إلى ضبط هذه الإجراءات على الأشخاص الذين يعانون من إعاقة بصرية. هذا ما سنركز عليه في هذا الجزء من المقال.

انظر كيف يمكنك تنفيذه:

 ViewCompat.addAccessibilityAction (
   // عرض لإضافة إجراء إمكانية الوصول
   itemView ،
   // التسمية التي تقرأها خدمة إمكانية الوصول
   getString (R.string.save)
) {_، _ ->
   // أمر الوصول
   saveItem ()
   حقيقي
}

ينتج عن ذلك إعلان TalkBack "انقر نقرًا مزدوجًا للأرشفة" .

مع تنفيذ إجراء الوصول ، يمكن للمستخدمين الآن الوصول إلى الإجراء من خلال قائمة الإجراءات. سأخبرك بعد قليل عن الانتقال إلى هذه القائمة. من فضلك ، تذكر: من الضروري السماح للمستخدمين بأداء جميع التدفقات داخل تطبيقك بكفاءة.

الحاجيات

هذا القسم قصير ولكنه مهم جدا. عندما تقوم بإنشاء مكون واجهة المستخدم الخاص بك ، استخدم أو قم بتوسيع عناصر واجهة المستخدم التي يوفرها النظام والتي تكون أدنى من التسلسل الهرمي لفئة Android قدر الإمكان. تحتوي الأدوات المصغّرة التي يوفرها النظام في أسفل التسلسل الهرمي بالفعل على معظم إمكانيات الوصول التي يحتاجها تطبيقك. أهمها ما يلي:

  • إجراءات الوصول
  • صفات
  • معلومات الدولة.

بفضل هذا ، لن تحتاج إلى كتابة دعم الوصول الكامل للمكون من البداية ، وسوف تقلل من مخاطر الخطأ.

التنقل

يستمر TalkBack في النمو. استخدمنا قائمتين من قوائم السياق (العالمية والمحلية) منذ وقت ليس ببعيد للتنقل في نظام الهاتف الذكي الخاص بنا. الآن ، أصبحت هاتان القائمتان واحدة.

يتم استخدام قائمة السياق لغرضين أساسيين:

  • كما يوحي الاسم ، يتم استخدامه للملاحة. يمكنك التنقل عبر الكلمات أو الرؤوس أو الروابط أو الصفوف أو المحتوى الفريد أو نقاط أخرى حسب تفضيلات التطبيق أو إمكانياته.
  • الغرض الثاني يسمح للمستخدم بتغيير إعدادات TalkBack وعناصر التحكم بسرعة.

في هذه القائمة ، يمكنك العثور على مجموعة من الإجراءات (المذكورة في قسم " إجراء إمكانية الوصول " أعلاه). كيف يمكنك الوصول إلى هذه القائمة؟ انها بسيطة جدا. عليك فقط أن تقوم بتمرير إصبعك لأعلى وإيماءة لليمين.

اختبار الوصول

في المشاريع التي طورتها حتى الآن ، استفدت بشكل أساسي من المساعدات الثلاثة التالية: ماسح إمكانية الوصول ، Espresso و Lint. بالطبع ، لديك أدوات أكثر بكثير تحت تصرفك. أوصي بشدة أن تتحقق منها بنفسك. يمكنك العثور على جميع الوثائق اللازمة هنا.

فاحص الوصول

Accessibility Scanner - أداة لاختبار إمكانية الوصول السريع والسهل

تقوم هذه الأداة بمسح واجهة المستخدم وتقدم توصيات لتحسين إمكانية الوصول إلى التطبيق.

يسمح Accessibility Scanner لأي شخص ، وليس فقط المطورين ، بالتعرف بسرعة وسهولة على بعض تحسينات إمكانية الوصول الشائعة ، مثل أهداف اللمس الصغيرة ، وأخطاء التباين للنصوص والصور ، وأوصاف المحتوى المفقودة لعناصر واجهة مستخدم غير مصنفة ، وما إلى ذلك إذا كنت تريد البدء في استخدام Accessibility Scanner أو ببساطة ابحث عن تعليمات أكثر تفصيلاً ، يرجى قراءة الوثائق التالية.

أندرويد لينت

أنا متأكد من أن معظمكم يعرف هذه الأداة من خلال عملك اليومي. ما يستحق التذكر هو أن Android Studio يوفر أيضًا تحذيرات حول العديد من مشكلات إمكانية الوصول وروابط إلى أماكن في التعليمات البرمجية المصدر تحتوي على هذه المشكلات.

إسبرسو

Espresso هي مكتبة اختبار Android تتيح لك اختبار واجهة المستخدم الخاصة بك بسرعة وسهولة. يتيح التفاعل مع مكونات واجهة المستخدم المختبرة للتطبيق ويضمن حدوث سلوكيات معينة أو تلبية الشروط. بالطبع ، كجزء من دعم إمكانية الوصول ، يمكنك تمكين وتكوين اختبار إمكانية الوصول .

ملخص

لا يقتصر الوصول إلى تطبيقك على فتحه للمستخدمين الجدد فقط. يساعد على تحسين حياتنا اليومية ويجعل العالم أكثر شمولاً. آمل أن يكون هذا المقال قد ساعدك في التعرف على إمكانية الوصول. لمزيد من القراءة ، من فضلك لا تنسى مراجعة الوثائق الرسمية.