الخلفية غير النشطة وaria-modal
اجعلوا بقية الصفحة غير قابلة للوصول أثناء فتح النافذة
الخلفية غير النشطة وaria-modal درس مجاني في Web Accessibility Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Web Accessibility Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Web Accessibility Academy 4 دروس في المجموع.
الصفحة الموجودة خلفها لا تزال موجودة
حتى مع حبس التركيز، يظل المحتوى الموجود خلف النافذة المشروطة في DOM. ويمكن لقارئ الشاشة الوصول إليه ما لم تمنعه.
تعرّف على السمة inert
تجعل السمة inert العنصر وجميع عناصره الفرعية غير قابلة للتركيز أو النقر، وتتجاوزها تقنيات المساعدة دفعةً واحدة.
<main inert>...page content...</main>اجعل الخلفية غير تفاعلية
عند فتح النافذة المشروطة، أضف inert إلى كل ما يقع خارجها. عندها لن يتمكن أي شخص من الوصول فعليًا إلى الصفحة الموجودة خلفها.
pageContent.inert = true;أزل inert عند الإغلاق
عند إغلاق النافذة المشروطة، أزل السمة inert لتصبح الصفحة تفاعلية مجددًا. يؤدي نسيان ذلك إلى تجمّد الصفحة.
pageContent.inert = false;يتولى Native dialog ذلك نيابةً عنك
يجعل dialog الأصلي، عند فتحه باستخدام showModal()، بقية الصفحة غير تفاعلية تلقائيًا، ولذلك تحصل على هذه الحماية من دون رمز إضافي.
ما الذي تعلنه aria-modal
إن إضافة aria-modal وتعيينها إلى true تخبر تقنيات المساعدة بأن المحتوى خارج مربع الحوار هذا غير متاح أثناء فتحه.
<div role="dialog" aria-modal="true">...</div>aria-modal وعدٌ لا حاجز
انتبه: تقتصر aria-modal على إبلاغ قارئ الشاشة. فهي لا تمنع التركيز أو النقر فعليًا، لذلك لا تزال بحاجة إلى inert.
استخدمهما معًا
يجمع النمط المتين بين inert على الخلفية وaria-modal على مربع الحوار. تفرض الأولى الحد، بينما تعلن الثانية عنه.
<div role="dialog" aria-modal="true">
<!-- background gets inert -->حيلة aria-hidden القديمة
قبل أن تحظى inert بدعم واسع، كان المطورون يضعون aria-hidden على الخلفية. كانت تخفي المحتوى عن القارئات، لكنها لم تمنع التركيز باستخدام لوحة المفاتيح.
لا تُخفِ مربع الحوار نفسه أبدًا
من الأخطاء الشائعة تطبيق aria-hidden على نطاق واسع بحيث يشمل مربع الحوار أيضًا. تأكد من بقاء modal خارج المنطقة المخفية.
تحقق من شجرة الوصول
افتح accessibility tree في المتصفح أثناء ظهور النافذة المشروطة. تأكد من اختفاء الصفحة الموجودة خلفها من الشجرة وبقاء مربع الحوار وحده. ✅
تحقق سريع
أضفت aria-modal=true لكنك تخطيت inert. ما المشكلة التي لا تزال قائمة؟
مراجعة: اعزل الخلفية
لقد تعلمت جعل الصفحة الموجودة خلف النافذة inert والإعلان عن aria-modal، حتى تصبح النافذة المشروطة الشيء الوحيد الذي يمكن للمستخدمين الوصول إليه فعليًا. 🎯
الأسئلة الشائعة
هل درس «الخلفية غير النشطة وaria-modal» مجاني؟
نعم — نص درس «الخلفية غير النشطة وaria-modal» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Web Accessibility Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Web Accessibility Academy 4 دروس في المجموع.
ماذا ستتعلم في «الخلفية غير النشطة وaria-modal»؟
اجعلوا بقية الصفحة غير قابلة للوصول أثناء فتح النافذة تتمرن على Web Accessibility Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Web Accessibility Academy؟
لا تُشترط خبرة سابقة. Web Accessibility Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «الخلفية غير النشطة وaria-modal»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Web Accessibility Academy هذا؟
نعم. كل درس في Web Accessibility Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أدوار مربعات الحوار وعنصر dialog الأصلي
- حصر التركيز داخل النافذة المشروطة
- الإغلاق بمفتاح Escape واستعادة التركيز
- الخلفية غير النشطة وaria-modal