عندما يكون مربّع الحوار المشروط مفتوحًا، يتوقّع المستخدمون استخدام عناصر تحكّم مألوفة لإغلاقه: الضغط على مفتاح Esc على لوحة المفاتيح، أو استخدام زر الرجوع أو الإيماءة على الأنظمة الأساسية للأجهزة الجوّالة، أو إيماءة الإغلاق باستخدام التكنولوجيات المساعِدة.
عند طرح العنصر <dialog> لأول مرة، كان من الممكن إغلاقه باستخدام مفتاح Esc، ولكن ليس باستخدام عناصر التحكّم الأخرى في النظام الأساسي، مثل زر الرجوع أو الإيماءة على الأجهزة الجوّالة. بعد إضافة السمة closedby لعناصر <dialog>، تم تطبيق السلوك الموسّع للاستجابة لمزيد من عناصر التحكّم الخاصة بالنظام الأساسي لطلبات الإغلاق على عناصر <dialog> التي يتم فتحها في حالة مشروطة (أي عند فتحها بشكل إلزامي باستخدام طريقة showModal() لعنصر <dialog> في JavaScript أو بشكل تعريفي باستخدام أمر المُستدعي show-modal). بالتالي، ليس على المطوّرين إجراء أي تغيير محدّد إذا كانوا يستخدمون العنصر <dialog>.
<!-- MANDATORY: must be opened with either `showModal()` with JavaScript or the `show-modal` command using declarative command invokers in order respond to close requests including platform-specific controls. -->
<dialog aria-labelledby="example">
<h1 id="example">Example</h1>
<p>Modal that can be dismissed with close requests.</p>
</dialog>
عند فتح مربّع حوار في حالة مشروطة، يستجيب مربّع الحوار الذي لا يتضمّن السمة closedby لطلبات الإغلاق بالطريقة نفسها التي يتم بها ضبط السمة closedby صراحةً على closerequest.
<!-- This is unnecessary as it is the default behavior for modal dialogs -->
<dialog closedby="closerequest" aria-labelledby="example">
<h1 id="example">Example</h1>
<p>Modal that can be dismissed with close requests.</p>
</dialog>
إذا أردت أيضًا تفعيل سلوك "الإغلاق السريع"، عليك ضبط closedby على any:
<dialog closedby="any" aria-labelledby="example">
<h1 id="example">Example</h1>
<p>Modal that can be dismissed with close requests and light dismiss.</p>
</dialog>
استراتيجيات احتياطية
<dialog> يمكن إغلاق العناصر التي تم فتحها في حالة مشروطة باستخدام Esc، لذا ليس من الضروري استخدام إجراء احتياطي. لا توجد طريقة جيدة لتنفيذ طلبات الإغلاق من زر الرجوع أو الإيماءات على الأجهزة الجوّالة، لذا من الأسهل استخدام هذه الميزة كتحسين تدريجي، خاصةً أنّ هناك وسائل شاملة أخرى لإغلاق مربّع الحوار المشروط. وبالمثل، يمكن اعتبار سلوك الإغلاق البسيط لعنصر <dialog> باستخدام closedby="any" تحسينًا تدريجيًا.