Kullanıcılar, kalıcı iletişim kutusu açıkken bunları kapatmak için tanıdık kontrolleri kullanmayı bekler: klavyede Esc tuşuna basmak, mobil platformlarda geri düğmesini veya hareketini kullanmak ya da yardımcı teknolojilerle kapatma hareketini kullanmak.
<dialog> öğesi ilk kullanıma sunulduğunda Esc tuşuyla kapatılabiliyordu ancak mobil cihazlardaki geri düğmesi/hareketi gibi diğer platform kontrolleriyle kapatılamıyordu. <dialog> öğeleri için closedby özelliğinin eklenmesiyle, kapatma istekleri için platforma özgü daha fazla denetime yanıt vermenin genişletilmiş davranışı, kalıcı durumda açılan <dialog> öğeleri için uygulanmıştır (ör. JavaScript'te <dialog> öğesinin showModal() yöntemiyle zorunlu olarak veya show-modal çağırıcı komutuyla bildirimli olarak açıldığında). Bu nedenle, <dialog> öğesini zaten kullanan geliştiricilerin herhangi bir değişiklik yapması gerekmez.
<!-- 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>
Kalıcı durumda açıldığında, closedby özelliği olmayan bir iletişim kutusu, kapatma isteklerine closedby özelliğini açıkça closerequest olarak ayarlamakla aynı şekilde yanıt verir.
<!-- 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>
"Hafif kapatma" davranışını da istiyorsanız closedby değerini any olarak ayarlamanız gerekir:
<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>
Yedek stratejiler
<dialog> kalıcı durumda açılan öğeler Esc ile kapatılabildiğinden yedek gerekmez. Mobil geri düğmesinden/hareketlerinden gelen kapatma isteklerini uygulamanın iyi bir yolu yoktur. Bu nedenle, özellikle kalıcı iletişim kutusunu kapatmanın başka kapsayıcı yolları olduğu göz önüne alındığında, bu özelliği progresif geliştirme olarak benimsemek daha kolaydır. Benzer şekilde, closedby="any" kullanan bir <dialog> öğesi için hafif kapatma davranışı, progresif geliştirme olarak kabul edilebilir.