الخلاصة

  • وصفت مسودة HTML 5.1 الصادرة عن W3C في مايو 2013 العنصر dialog والطريقة showModal() ومكدس النوافذ والطبقة العليا وتعطيل الصفحة. وشرحت مادة التفاعل أن ما يقع خارج النافذة المشروطة يصبح غير قابل للتفاعل.
  • أبقت وثيقة HTML5 المرشحة للتوصية عام 2014 وتوصية HTML 5.2 عام 2017 هذا التقسيم للمهام. وتفصل مواصفة HTML الحالية موضع التركيز وطلبات الإغلاق بصورة أوسع.

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

في مسودة HTML 5.1 بتاريخ 28 مايو 2013، عُرّف dialog بوصفه مساحة تؤدى فيها مهمة داخل التطبيق. تفتح show() نافذة يمكن أن ترافق ما يحدث في الصفحة. أما showModal() فتضع النافذة في مكدس يديره المستند، وترفعها إلى الطبقة العليا، وتمنع التفاعل المعتاد مع المستند. هنا بدأ المتصفح يعمل بوّاباً: يعرف أي حديث له الأولوية الآن.

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

للبوّاب مهام عند الوصول والمغادرة أيضاً. تضمنت وثيقة 2013 اختيار عنصر autofocus عند الفتح، وطلب إلغاء يصل إلى الحوار الأعلى، وclose() التي يمكن أن تعيد قيمة عبر returnValue. إذا اختار القارئ الاحتفاظ بمقالاته، يتلقى الموقع القرار ويمتنع عن الحذف. إدارة خروج النافذة من الشاشة وظيفة المتصفح؛ تفسير «نعم» و«لا» وظيفة من طرح السؤال.

احتفظت وثيقة HTML5 المرشحة للتوصية في فبراير 2014 بالمكدس والطبقة العليا ومسار الإلغاء والإغلاق. ثم شرحت توصية HTML 5.2 في ديسمبر 2017 خطوات توجيه التركيز داخل الحوار. هذه تواريخ وثائق ومعايير، وليست جدولاً يثبت أن كل متصفح نفذ الميزة في اليوم ذاته. لكنها تظهر إصرار التصميم على فكرة واحدة: من يتكلم الآن، وأين تنتظر بقية الصفحة؟

الفرق بين show() وshowModal() هو الامتحان الحقيقي. يمكن لنافذة معلومات صغيرة أن تبقى مفتوحة بينما يقرأ المرء الخبر. طلب تأكيد الحذف يقتضي لحظة من الانفراد بالقرار. قد تبدو النافذتان متشابهتين تماماً في الصورة، لكن واحدة منهما تطلب من المتصفح أن يوقف حركة الممر. قرار طلب ذلك الوقف يخص الموقع، ولا ينبغي أن يصبح عادة كلما أراد إظهار زر جديد.

تصف مواصفة HTML الحالية التركيز الأولي وطلبات الإغلاق والقيمة المعادة بدقة أكبر، وتضم أدوات أحدث مثل requestClose() وclosedby. لا ننسب تلك الإضافات إلى مسودة 2013. المغزى الذي جمع النصوص أقدم وأبسط: حين توقف الصفحة قارئاً في منتصف عمله، يجب أن تكون للوقفة حدود واضحة وطريق واضح للعودة.

يؤدي البوّاب عمله جيداً عندما لا يلاحظ أحد وجوده. يجيب القارئ ثم يعود إلى مقاله. وإذا استوقفه الموقع عند كل فقرة، فلن تنقذ أناقة البوّاب سمعة البيت.