Latest articles
JOURNAL INDEX
تطوير تطبيقات الموبايل/2026.10.12/4 VIEWS/5 MIN READ

Mobile App Accessibility Testing: TalkBack, VoiceOver, and Inclusive UX

عبدالرحمن ربيع علي
Abdelrahman Rabie Ali Software Engineer & AI Builder

A practical Android and iOS accessibility testing workflow covering screen readers, focus order, text scaling, contrast, and task-based testing.

اختبار إتاحة الوصول في تطبيقات الموبايل: دليل TalkBack وVoiceOver

اختبار إتاحة الوصول في تطبيقات الموبايل: دليل عملي لـ TalkBack وVoiceOver

قد يبدو تطبيق الموبايل جميلًا وسريعًا على جهاز المطوّر، لكنه يظل صعب الاستخدام لشخص يعتمد على قارئ شاشة، أو يحتاج إلى تكبير النص، أو لا يستطيع تنفيذ إيماءات دقيقة. اختبار إتاحة الوصول (Mobile Accessibility Testing) ليس تحسينًا تجميليًا يُضاف في نهاية المشروع؛ بل هو طريقة للتحقق من أن المهام الأساسية متاحة لمستخدمين بقدرات وطرق تفاعل مختلفة.

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

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

1. حوّل الإتاحة إلى متطلبات قابلة للاختبار

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

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

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

التعامل مع الحالات الحدية وخطة التحقق

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مقالات ذات صلة

هاتف ذكي لاختبار سهولة استخدام التطبيق وإتاحة عناصر الواجهة
المصدر: Unsplash — تصوير Lorin Both
مطور يراجع الشيفرة للتحقق من أسماء عناصر الواجهة وترتيب التركيز
المصدر: Unsplash — تصوير Rob Wingate
خوادم خلفية لتوضيح اختبار الوصول للخدمات دون الاعتماد على العرض البصري
المصدر: Unsplash — تصوير Kevin Ache
SHARE Share this article
عبدالرحمن ربيع علي
Written by

Abdelrahman Rabie Ali

Software Engineer & AI Builder

Full-stack software engineer and graphic designer with 4+ years building modern web applications using PHP, JavaScript, HTML, and CSS. Strong UI/UX background and advanced use of AI tools to boost development efficiency, automation, and decision-making.

Article tags

#تطبيقات الموبايل #Android #iOS #TalkBack #VoiceOver #اختبار البرمجيات
COMMENTS

Comments

Be the first to comment on this article.

Add your comment

Your comment appears after review.