CloseWatcher
Ein einheitliches API für „der Nutzer will das hier schließen" — ob das Signal Escape auf der Tastatur ist oder die Zurückgeste auf dem Handy.
Das Problem entstand, weil die beiden Gesten völlig unterschiedlich behandelt wurden. Ein Modal auf dem Desktop lauscht auf Escape, aber unter Android ist die natürliche Schließgeste die Zurück-Taste — die im Browser eigentlich „im Verlauf zurücknavigieren" bedeutet. Jahrelang bestand der Workaround darin, beim Öffnen des Dialogs einen falschen Verlaufseintrag einzuschieben und auf dessen Entfernen zu warten, ein Hack, der Lesezeichen, Deeplinks und die echte Zurück-Taste unzuverlässig machte. Mit new CloseWatcher() bekommt man stattdessen ein close-Ereignis für beide Gesten, dazu ein cancel-Ereignis zum Einhaken, falls es ungesicherte Änderungen gibt, nach denen man fragen sollte. Das <dialog>-Element und Popovers nutzen den Mechanismus intern, sodass die meisten das Verhalten gratis bekommen.