تصنيفات المحتوى

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

في بعض الحالات، مثلاً عند عرض المعلومات في رسم بياني داخل عنصر، توفّر تصنيفات المحتوى وصفًا نصيًا للمعنى أو الإجراء المرتبط بالعنصر.

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

التنفيذ

العرض

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

كيفية توفير تصنيفات المحتوى

android:contentDescription

عند استخدام ImageView أو ImageButton أو CheckBox أو عنصر View آخر يعرض المعلومات في رسم بياني، استخدِم السمة android:contentDescription لتوفير تصنيف للمحتوى لعنصر View هذا.

يعتمد تصنيف المحتوى في بعض الأحيان على معلومات لا تتوفّر إلا في وقت التشغيل، أو قد يتغير معنى عنصر View بمرور الوقت. على سبيل المثال، قد يتغير زر التشغيل إلى زر إيقاف مؤقت أثناء تشغيل الموسيقى. في هذه الحالات، استخدِم View#setContentDescription(CharSequence contentDescription) لتعديل تصنيف المحتوى في الوقت المناسب.

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

android:hint

بالنسبة إلى EditTexts أو TextViews القابلة للتعديل، استخدِم السمة android:hint للإشارة إلى الغرض من الحقل النصي. ويجب عدم استخدام android:contentDescription باعتبارها تصنيف محتوى لعناصر View القابلة للتعديل.

android:labelFor

استخدِم السمة android:labelFor للإشارة إلى أنّ أحد عناصر View سيعمل كتصنيف محتوى لعنصر View آخر.

الحالات التي لا تتطلب توفير تصنيفات المحتوى

يجب عدم توفير تصنيفات المحتوى بشكل محدد في بعض الحالات، مثلاً:

  • إذا كان النص المعروض في TextView (أو فئاته الفرعية) مقدَّمًا تلقائيًا للخدمات المخصصة لتسهيل الاستخدام. وعادةً ما تكون تصنيفات المحتوى الإضافية غير ضرورية.
  • إذا كانت الصور الزخرفية أو الصور لا تحمل معلومات مفيدة، وبالتالي لا تتطلب تصنيفات محتوى من الناحية البيانية. في هذه الحالات، يجب ضبط السمة android:contentDescription على القيمة "‎@null" أو السمة android:importantForAccessibility على القيمة "no".

للمزيد من المعلومات، يمكنك الاطّلاع على تطبيق تصنيفات المحتوى في تدريب مطورّي برامج Android وأدلة واجهات برمجة التطبيقات.

الإنشاء

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

كيفية توفير تصنيفات المحتوى

مواصفات المحتوى

يجب ضبط وصف المحتوى لتوفير تصنيف المحتوى المخصص للعنصر Image أو Icon أو عنصر آخر قابل للإنشاء منخفض المستوى يعرض معلومات بيانية.

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

مَعلمة التصنيف

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

الحالات التي لا تتطلب توفير تصنيفات المحتوى

في بعض الحالات، يجب عدم إضافة تصنيفات المحتوى:

  • إذا كان النص المعروض في Text، أو عناصر أخرى قابلة للإنشاء تحتوي على Text، مقدّمًا تلقائيًا لخدمات تسهيل الاستخدام
  • إذا كانت الصور الزخرفية أو الصور لا تحمل معلومات ذات معنى موضّحة في رسم بياني
    • في هذه الحالات، يجب ضبط المعلمة contentDescription أو السمة Modifier.semantics#contentDescription على null أو طلب Modifier#clearAndSetSemantics.

التصميم

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

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

للمزيد من المعلومات، يمكنك الاطّلاع على إرشادات الكتابة من أجل تسهيل الاستخدام في التصميم المتعدد الأبعاد.

الاختبار

للتحقق يدويًا من أنّ واجهة مستخدم التطبيق تشتمل على تصنيفات المحتوى، يُرجى اتّباع الخطوات التالية:

  1. تفعيل TalkBack
  2. فتح التطبيق
  3. استخدام إيماءات التنقل الخطية لنقل تركيز تسهيل الاستخدام إلى كل عنصر على الشاشة
  4. إذا كان TalkBack ينقل التركيز إلى عنصر معيّن، ولكن لا يقدّم شرحًا مفيدًا لهذا العنصر، أو يقول رسالة "غير مصنَّف"، هذا يعني أنّ العنصر لا يتضمّن على الأرجح تصنيفًا للمحتوى.

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

بحث
محو البحث
إغلاق البحث
القائمة الرئيسية
1327567691303323311
true
مركز مساعدة البحث
true
true
true
true
true
717068
false
false
false