خطة الجودة الرئيسية
فحوصات إمكانية الوصول
فحوصات إمكانية الوصول — التوثيق قيد الإعداد.
الـ QC للوصول يُتحقَّق أن كل سطح عام يُلبّي WCAG 2.2 AA. هذا غير قابل-للتفاوض — المنصّة تَخدم منطقة حيث تَبَنّي التكنولوجيا المُساعِدة يَنمو وحيث متطلّبات شراء الوصول الرسمية (خاصّة السعودية + الإمارات) تَتطلّب امتثال AA لأيّ منصّة بشراكات حكومية / تعليمية. AA هي الأرضية، ليست السقف.
شريط فحص a11y لكل سطح
- تباين اللون: نصّ الجسم ≥4.5:1 مقابل الخلفية. النصّ الكبير (≥24px أو ≥19px غامق) ≥3:1. مكوّنات UI غير-النصية ≥3:1 مقابل الألوان المجاورة.
- تنقّل لوحة المفاتيح: كل عنصر تفاعلي قابل للوصول بـ Tab بترتيب منطقي. مُؤشِّرات focus مرئية بتباين ≥3:1 مقابل الخلفية.
- رابط skip-to-content كأوّل عنصر قابل-للـ-focus على كل صفحة. مخفي حتى الـ focus، مرئي عند الـ focus.
- HTML دلالي: <button> للأزرار (ليس <div onclick>)، <a> للروابط (ليس <span onclick>)، <nav> للتنقّل، هرمية عناوين صحيحة (لا مستويات مُتخَطّاة).
- تسميات ARIA على الأزرار icon-فقط. مناطق ARIA-live لإشعارات toast. ARIA-expanded على disclosure widgets.
- حقول النموذج لها عناصر <label> مُقترِنة. الأخطاء مُقترِنة عبر aria-describedby. الحقول المطلوبة مُعَلَّمة بـ aria-required.
- الصور لها نصّ alt — SVGs الزخرفية تَستخدم alt="" (فارغ، ليس مفقود). صور الغلاف تُوصِّف الموضوع، ليس "Cover image".
- لا مصائد لوحة مفاتيح. الـ modals يمكن إغلاقها بـ Escape. الـ drawers تُرجع focus لعنصر المُحَفِّز عند الإغلاق.
- لغة الصفحة مُعلَنة عند <html lang="en"> أو <html lang="ar"> تُطابق محلّية المسار.
- حركة مُقَلَّلة: الحركات تُكَرِّم prefers-reduced-motion. نبضة accent على شارات "live" للفعالية مُكَتَّمة حين المستخدم له reduced-motion مضبوط.
اختبار قارئ الشاشة
أدوات a11y المُؤتمَتة (axe-core / Lighthouse a11y / pa11y) تَلتقط 30-40% من قضايا WCAG. الباقي يَتطلّب اختباراً يدوياً بقارئ شاشة حقيقي — NVDA على Windows، VoiceOver على macOS / iOS، TalkBack على Android. كل إصدار يُشَغِّل تمريرة قارئ-شاشة يدوية على الصفحة الرئيسية، كل نوع صفحة قائمة، كل نوع صفحة تفاصيل، ولوحة founder-account. الاستماع للصفحة هو الطريقة الوحيدة لالتقاط عيوب ترتيب-القراءة + ARIA المفقود + alt text الخطأ في السياق.
