حاوِل أن تجعل تطبيق Android قابلاً للاستخدام من قِبل الجميع، بما في ذلك الأشخاص الذين لديهم احتياجات متعلقة بسهولة الاستخدام.
يستخدم أجهزة Android الأشخاص الذين يعانون من ضعف في النظر أو عمى الألوان أو ضعف في السمع أو ضعف في المهارات اليدوية أو عجز إدراكي أو غير ذلك من حالات العجز. عند تطوير تطبيقات مع مراعاة إمكانية الوصول، يمكنك تحسين تجربة المستخدمين الذين لديهم احتياجات متعلّقة بإمكانية الوصول.
تقدّم هذه الصفحة إرشادات حول تنفيذ العناصر الأساسية لتسهيل الاستخدام ليتمكّن الجميع من استخدام تطبيقك بسهولة أكبر. للحصول على إرشادات أكثر تفصيلاً حول كيفية تحسين إمكانية الوصول إلى تطبيقك، راجِع مبادئ تحسين إمكانية الوصول إلى التطبيقات.
زيادة مستوى ظهور النص
بالنسبة إلى كل مجموعة من النصوص داخل تطبيقك، ننصح بأن يكون تباين الألوان، أي الفرق في السطوع الملحوظ بين لون النص ولون الخلفية التي يظهر عليها النص، أعلى من حدّ معيّن. يعتمد الحد الأدنى الدقيق على حجم خط النص وما إذا كان النص يظهر بخط عريض:
- إذا كان حجم النص أقل من 18 وحدة بكسل مستقلة عن الكثافة (sp)، أو إذا كان النص غامقًا وحجمه أقل من 14 وحدة بكسل مستقلة عن الكثافة (sp)، استخدِم ألوان المقدّمة والخلفية التي تؤدي إلى نسبة تباين الألوان تبلغ 4.5:1 على الأقل.
- بالنسبة إلى جميع النصوص الأخرى، اضبط نسبة تباين الألوان على 3:1 على الأقل.
تعرض الصورة التالية مثالَين على تباين لون النص مع لون الخلفية:
للتحقّق من تباين الألوان بين النص والخلفية في تطبيقك، استخدِم مدقّق تباين الألوان على الإنترنت أو تطبيق Accessibility Scanner.
استخدام عناصر تحكّم كبيرة وبسيطة
تصبح واجهة مستخدم تطبيقك أسهل في الاستخدام إذا كانت عناصر التحكّم أسهل في الرؤية والنقر. بالنسبة إلى واجهات اللمس، ننصح بأن يتضمّن كل عنصر في واجهة المستخدم التفاعلي مساحة قابلة للتركيز، أو حجم مساحة اللمس، لا تقل عن 48×48 بكسل مستقل الكثافة. وكلما كان حجمها أكبر، كان ذلك أفضل.
في Jetpack Compose، تفرض العديد من مكونات Material المضمّنة، مثل Button وIconButton وListItem، هذا الحد الأدنى للحجم. ومع ذلك، عند إنشاء عناصر تفاعلية مخصّصة، عليك ضبط الحجم بنفسك.
في المقتطف التالي، تم تسهيل استخدام عنصر صغير في واجهة المستخدم من خلال توفير مساحة لمس أكبر له:
@Composable private fun LargeBox() { var clicked by remember { mutableStateOf(false) } Box( Modifier .size(100.dp) .background(if (clicked) Color.DarkGray else Color.LightGray) ) { Box( Modifier .align(Alignment.Center) .clickable { clicked = !clicked } .background(Color.Black) .sizeIn(minWidth = 48.dp, minHeight = 48.dp) ) } }
لمزيد من المعلومات حول أحجام مساحات اللمس، يُرجى الاطّلاع على الحد الأدنى لأحجام مساحات اللمس.
وصف كل عنصر في واجهة المستخدم
لكل عنصر في واجهة المستخدم في تطبيقك، أدرِج وصفًا يوضّح الغرض من العنصر. في معظم الحالات، يتم تضمين هذا الوصف في السمة contentDescription للعنصر، كما هو موضّح في مقتطف الرمز التالي:
@Composable private fun ShareButton(onClick: () -> Unit) { IconButton(onClick = onClick) { Icon( imageVector = Icons.Filled.Share, contentDescription = stringResource(R.string.label_share) ) } }
يُرجى العِلم أنّه ليس عليك تقديم contentDescription لـ Text
composables. تُعلن خدمات تسهيل الاستخدام في Android (مثل TalkBack) تلقائيًا عن النص نفسه.
عند إضافة أوصاف إلى عناصر واجهة مستخدم تطبيقك، يُرجى مراعاة أفضل الممارسات التالية:
استخدِم الأوصاف لتوضيح الغرض من التفاعل ونتيجته، وليس التفاصيل المرئية. استخدِم سمة
Roleالدلالية (مثلRole.ButtonأوRole.Switch) لعرض نوع عنصر واجهة المستخدم. بهذه الطريقة، يمكن لبرامج قراءة الشاشة الإعلان عن العنصر بشكل صحيح.تجنَّب التكرار في الأوصاف. على سبيل المثال، إذا كان النقر على زر يؤدي إلى تنفيذ إجراء "إرسال" في تطبيقك، اجعل وصف الزر
"Submit"وليس"Submit button".يجب أن يكون كل وصف فريدًا. بهذه الطريقة، عندما يصادف مستخدمو قارئ الشاشة وصفًا مكرّرًا لعنصر، سيتعرّفون بشكل صحيح على أنّ التركيز ينصبّ على عنصر سبق أن تم التركيز عليه في وقت سابق. على وجه الخصوص، يجب أن يتضمّن كل عنصر ضمن قائمة، مثل
LazyColumn، وصفًا مختلفًا يعكس المحتوى الفريد لكل عنصر، مثل اسم مدينة في قائمة بالمواقع الجغرافية.استخدِم واجهة برمجة التطبيقات
hideFromAccessibilityلوضع علامة على العناصر الزخرفية البحتة كي تتمكّن خدمات تسهيل الاستخدام من تجاهلها. إذا كان أحد عناصر واجهة المستخدم يتضمّن المَعلمةcontentDescriptionولكنّه مخصّص للعرض فقط (مثلIconالذي يشكّل جزءًا من عنصر آخر في واجهة المستخدم)، مرِّر القيمةnullلتجنُّب التصنيف المكرّر. للاطّلاع على المزيد من حالات الاستخدام التفصيلية، يُرجى الرجوع إلى الدمج والمحو.اختبِر الرمز للتأكّد من عرض وصف المحتوى على النحو المتوقّع. يمكن لأدوات Android Lint واختبار Compose وأدوات الاختبار اليدوية والمبرمَجة الإبلاغ عن المشاكل الشائعة والكشف عن المشاكل في عملية التنفيذ.
مراجع إضافية
لمزيد من المعلومات حول تسهيل استخدام تطبيقك، يُرجى الاطّلاع على المراجع الإضافية التالية: