{"id":"l-a11y-1-1","courseId":"web-accessibility","lang":"ar","kind":"intro","summary":"صِف من يعتمد على الواجهات سهلة الوصول، بمن فيهم أصحاب القيود الدائمة والمؤقتة والظرفية، ولماذا لا يزال معظم الويب يخذلهم.","html":"<p>قبل عشر سنوات بدأت أتقاسم المكتب مع سمير، مطوّر backend كفيف يستخدم قارئ الشاشة NVDA. في أسبوعه الأول حاول حجز تذكرة قطار على موقع معروف. وصل إلى خريطة المقاعد، وهي شبكة من المربعات القابلة للنقر لم يُعلن قارئ الشاشة عنها شيئًا على الإطلاق، فاستسلم. اتصل بمركز خدمة العملاء ودفع رسوم حجز إضافية مقابل هذا «الامتياز». لم يكن مطوّرو ذلك الموقع أشخاصًا مهملين. لكنهم لم يشاهدوا قطّ شخصًا مثل سمير يستخدمه.</p>\n<p>هذه الدورة عن سدّ تلك الفجوة، بالكود. لن تتعلّم قائمة قواعد تحفظها وتردّدها؛ بل ستتعلّم كيف يستخدم الأشخاص ذوو الإعاقة صفحة الويب فعلًا، وما الذي تحتاجه بالضبط من HTML وCSS وJavaScript وARIA لتعمل صفحاتك لهم.</p>\n<h2 id=\"sec-1\" tabindex=\"-1\">لمن تبني</h2>\n<p>تقدّر منظمة الصحة العالمية أن نحو <strong>1.3 مليار شخص، أي قرابة واحد من كل ستة</strong>، يعيشون مع إعاقة ملموسة. هذا الرقم وحده يجعل إمكانية الوصول (accessibility) قضية عامة لا هامشية، لكنه يقلّل من عدد المستفيدين الحقيقي. فالإعاقة كثيرًا ما تكون مؤقتة أو ظرفية:</p>\n<ul>\n<li><strong>الرؤية:</strong> العمى وضعف البصر وعمى الألوان، وأيضًا شاشة هاتف مشروخة أو وهج الشمس على رصيف المحطة.</li>\n<li><strong>السمع:</strong> المستخدمون الصمّ وضعاف السمع، وأيضًا أي شخص في مقهى صاخب أو في مكتبة هادئة بلا سمّاعات.</li>\n<li><strong>الحركة:</strong> الرعاش أو الشلل أو فقدان أحد الأطراف، وأيضًا معصم مكسور، أو أمّ تحمل رضيعها بذراع واحدة.</li>\n<li><strong>الفهم والتذكّر:</strong> عُسر القراءة (dyslexia) واضطراب فرط الحركة وتشتّت الانتباه (ADHD) وإصابات الدماغ، وأيضًا الإرهاق أو التوتّر أو القراءة بلغة ثانية.</li>\n</ul>\n<figure class=\"diagram\"><svg class=\"diagram-svg\" focusable=\"false\" viewBox=\"0 0 680 250\" role=\"img\" aria-labelledby=\"l-a11y-1-1-t1\"><defs><marker id=\"arrow-l-a11y-1-1-1\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0 L10 5 L0 10 z\" class=\"d-arrowhead\"/></marker></defs>\n  <title id=\"l-a11y-1-1-t1\">شبكة من ثلاثة أعمدة: دائم ومؤقت وظرفي. تُظهر أن الشخص ضعيف البصر، والشخص بعد جراحة في العين، والسائق تحت الوهج يشتركون في الحاجة إلى نص واضح، وأن الشخص ذا الذراع الواحدة، وصاحب المعصم المكسور، وأحد الوالدين وهو يحمل رضيعًا يشتركون في الحاجة إلى الاستخدام بيد واحدة.</title>\n  <text class=\"d-label-strong\" x=\"200\" y=\"30\" text-anchor=\"middle\">دائم</text>\n  <text class=\"d-label-strong\" x=\"400\" y=\"30\" text-anchor=\"middle\">مؤقت</text>\n  <text class=\"d-label-strong\" x=\"600\" y=\"30\" text-anchor=\"middle\">ظرفي</text>\n  <text class=\"d-label-muted\" x=\"20\" y=\"95\">الرؤية</text>\n  <rect class=\"d-box-primary\" x=\"120\" y=\"60\" width=\"160\" height=\"60\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"200\" y=\"95\" text-anchor=\"middle\">ضعف البصر</text>\n  <rect class=\"d-box-primary\" x=\"320\" y=\"60\" width=\"160\" height=\"60\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"400\" y=\"95\" text-anchor=\"middle\">جراحة في العين</text>\n  <rect class=\"d-box-primary\" x=\"520\" y=\"60\" width=\"160\" height=\"60\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"600\" y=\"95\" text-anchor=\"middle\">وهج على الشاشة</text>\n  <text class=\"d-label-muted\" x=\"20\" y=\"185\">الحركة</text>\n  <rect class=\"d-box-accent\" x=\"120\" y=\"150\" width=\"160\" height=\"60\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"200\" y=\"185\" text-anchor=\"middle\">ذراع واحدة</text>\n  <rect class=\"d-box-accent\" x=\"320\" y=\"150\" width=\"160\" height=\"60\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"400\" y=\"185\" text-anchor=\"middle\">معصم مكسور</text>\n  <rect class=\"d-box-accent\" x=\"520\" y=\"150\" width=\"160\" height=\"60\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"600\" y=\"185\" text-anchor=\"middle\">حمل رضيع</text>\n  <text class=\"d-label-muted\" x=\"400\" y=\"240\" text-anchor=\"middle\">إصلاح واحد في الواجهة يخدم الصف كله</text>\n</svg><figcaption>النسخ الدائمة والمؤقتة والظرفية من الحاجة نفسها</figcaption></figure>\n<p>حين تصمّم للعمود الأيسر، يحصل أصحاب العمود الأيمن على الفائدة مجانًا. بُنيت الترجمة النصية المصاحبة للفيديو (captions) في الأصل للمشاهدين الصمّ؛ واليوم يُشاهَد جزء كبير من فيديو الشبكات الاجتماعية والصوت مكتوم.</p>\n<h2 id=\"sec-2\" tabindex=\"-1\">حال الويب اليوم</h2>\n<p>تُجري WebAIM كل عام فحصًا آليًا للصفحات الرئيسية لأشهر مليون موقع. وجد فحص 2026 إخفاقات WCAG قابلة للرصد في <strong>95.9%</strong> منها، بمتوسط 56 خطأً في الصفحة الواحدة. اللافت هو مدى عادية هذه الأخطاء. وتكاد ست فئات تستأثر بها كلها: نص منخفض التباين، وصور بلا نص بديل (alt text)، وحقول إدخال بلا labels، وروابط فارغة، وأزرار فارغة، وغياب لغة الصفحة. لا يحتاج أيٌّ منها إلى متخصّص. كلٌّ منها يُصلَح في دقائق بمجرد أن تعرف أين تنظر.</p>\n<p>لاحظ أن كل واحد منها يعيش في كود الصفحة نفسها وأنماطها. لهذا لا تلجأ هذه الدورة أبدًا إلى زر لتفعيل «وضع إمكانية الوصول» أو إلى سكربت overlay من طرف ثالث: الوضع الثاني يتقادم مع الوقت، والصفحة الافتراضية، وهي التي يصل إليها معظم الأشخاص ذوي الإعاقة، تبقى معطوبة. أنت تُصلح المصدر، فيحصل كل مستخدم على الإصلاح.</p>\n<aside class=\"callout callout-why\" role=\"note\"><p class=\"callout-title\"><svg class=\"icon \" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><circle cx=\"12\" cy=\"12\" r=\"6\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/></svg><span><span class=\"callout-kind\">لماذا يهمّ هذا</span><span class=\"callout-sep\" aria-hidden=\"true\"> · </span>لماذا يهمّ هذا</span></p>\n<p>أصبحت إمكانية الوصول اشتراطًا قانونيًا في أسواق كثيرة، منها الاتحاد الأوروبي منذ يونيو 2025، وسترى التفاصيل في درس <a href=\"/ar/lesson/web-accessibility/l-a11y-1-3\">WCAG 2.2 ومبادئ POUR والقانون</a>. لكن السبب الأقوى عملي: الصفحات سهلة الوصول أسهل في الاستخدام وأسهل في الاختبار وأسهل في الأتمتة، لأن البنية نفسها التي يعتمد عليها قارئ الشاشة هي ما يعتمد عليه Playwright ومحرّكات البحث أيضًا.</p>\n</aside>\n<h2 id=\"sec-3\" tabindex=\"-1\">تعرّف إلى Ticketly</h2>\n<p>على طول الدورة ستفحص <strong>Ticketly</strong> وتُصلحه، وهو موقع حجز من صفحة واحدة لمهرجان Harbour Lights، مهرجان موسيقي يقام في عطلة نهاية الأسبوع. يبدو Ticketly سليمًا حين تستخدمه بالفأرة. لكن تحت السطح توجد فيه مشكلات WebAIM الست الكلاسيكية كلها، إضافةً إلى منتقي مقاعد لا يستجيب إلا للنقر، ونافذة «احجز الآن» تترك تركيز لوحة المفاتيح خلفها في الصفحة، ورسائل خطأ تظهر بصمت، وعنوان فعالية بالعربية يُقرأ بصوت إنجليزي.</p>\n<p>كل درس يتناول شريحة واحدة من Ticketly. القسم 2 يعيد بناء هيكله بـ HTML دلالي. القسم 3 يجعله قابلًا للتشغيل بالكامل من لوحة المفاتيح وقارئ الشاشة. القسم 4 يُصلح ما يراه الناس ويقرؤونه. القسم 5 يختبر النتيجة باستخدام axe ولوحة المفاتيح وVoiceOver وNVDA، ويحوّل الدروس إلى عادات لفريق كامل.</p>\n<p>لكن قبل أن تغيّر سطرًا واحدًا من الكود، عليك أن تعرف ما الذي يستخدمه زوّار Ticketly للوصول إليه. يتناول الدرس التالي التقنيات المساعدة (assistive technology) وشجرة إمكانية الوصول (accessibility tree) التي تقرؤها.</p>\n","toc":[{"id":"sec-1","text":"لمن تبني","level":2},{"id":"sec-2","text":"حال الويب اليوم","level":2},{"id":"sec-3","text":"تعرّف إلى Ticketly","level":2}],"takeaways":["يعيش نحو 1.3 مليار شخص، أي قرابة واحد من كل ستة، مع إعاقة ملموسة، ويواجه كثيرون غيرهم قيودًا مؤقتة أو ظرفية.","تنقسم عوائق إمكانية الوصول إلى عائلات قليلة: الرؤية، والسمع، والحركة، والفهم أو التذكّر.","وجد تقرير WebAIM Million لعام 2026 إخفاقات WCAG قابلة للرصد في 95.9% من أشهر مليون صفحة رئيسية، معظمها في ست فئات بسيطة.","إمكانية الوصول صفة من صفات جودة الكود الذي تكتبه، مثل الأداء أو الأمان، وليست ميزة منفصلة تُركَّب في النهاية."],"further":[{"title":"W3C WAI: Introduction to Web Accessibility","url":"https://www.w3.org/WAI/fundamentals/accessibility-intro/"},{"title":"W3C WAI: How People with Disabilities Use the Web","url":"https://www.w3.org/WAI/people-use-web/"},{"title":"The WebAIM Million","url":"https://webaim.org/projects/million/"}],"quiz":[{"q":"<p>سائق توصيل يقرأ Ticketly على هاتفه تحت شمس ساطعة ولا يكاد يرى الأسعار المكتوبة بالرمادي الفاتح. ما نوع هذا القيد؟</p>","options":[{"text":"قيد ظرفي يحلّه التباين الجيد للجميع","why":"صحيح. عينا السائق سليمتان؛ البيئة هي التي صنعت العائق، والحلّ نفسه (تباين أقوى) يفيد ضعاف البصر أيضًا."},{"text":"ليست مشكلة إمكانية وصول، لأن السائق ليس لديه إعاقة","why":"إمكانية الوصول تتعلّق بالعوائق في الواجهة، لا بالتشخيص الطبي. النص الرمادي يخذل الناس سواء كانت لديهم إعاقة أم لا."},{"text":"إعاقة بصرية دائمة تحتاج إلى قارئ شاشة","why":"لا شيء هنا دائم، وقارئ الشاشة أداة خاطئة لشخص يستطيع رؤية الشاشة بمجرد أن يتحسّن التباين."}],"answer":0},{"q":"<p>بحسب تقرير WebAIM Million، أيّ مشكلة تظهر في أكبر عدد من الصفحات الرئيسية؟</p>","options":[{"text":"غياب لغة المستند","why":"هي ضمن الست الأوائل، لكنها تظهر في نحو 13.5% من الصفحات فقط، أقل بكثير من إخفاقات التباين."},{"text":"أزرار فارغة بلا اسم متاح (accessible name)","why":"الأزرار الفارغة شائعة (نحو 30.6%)، لكنها ليست الإخفاق الأكثر تكرارًا."},{"text":"نص منخفض التباين","why":"صحيح. ظهر التباين المنخفض في 83.9% من الصفحات الرئيسية التي فُحصت عام 2026، وهو الإخفاق الأكثر شيوعًا في كل سنة من سنوات الدراسة."},{"text":"مصائد لوحة المفاتيح في نوافذ الحوار","why":"مصائد لوحة المفاتيح خطيرة، لكن أدوات الفحص الآلي لا تستطيع رصدها بشكل موثوق، لذلك لا تُحسب في هذا الترتيب."}],"answer":2},{"q":"<p>لماذا تُصلح هذه الدورة كود Ticketly بدلًا من إضافة زر لتفعيل «وضع إمكانية الوصول»؟</p>","options":[{"text":"لأن WCAG 2.2 تمنع أزرار التبديل","why":"لا توجد في WCAG قاعدة ضد أزرار التبديل. المشكلة أن الوضع المنفصل يتأخّر عادةً عن الموقع الأساسي ويترك التجربة الافتراضية معطوبة."},{"text":"لأن إمكانية الوصول تعيش في HTML وCSS وJavaScript نفسها التي يستخدمها الجميع، فإصلاح المصدر يفيد كل المستخدمين دفعة واحدة","why":"صحيح. الكود الدلالي والـ labels وإدارة التركيز خصائص في الصفحة نفسها؛ لا توجد صفحة ثانية لتصونها."},{"text":"لأن قارئات الشاشة تتجاهل JavaScript، فلن يعمل زر التبديل أبدًا","why":"تعمل قارئات الشاشة في متصفّحات عادية وJavaScript مفعّلة فيها. مشكلة الوضع المنفصل هي الصيانة والجودة، لا دعم السكربتات."}],"answer":1}],"exercise":null,"words":603,"readMinutes":4}