document.addEventListener("datasette_init", () => { const openButton = document.createElement("button"); openButton.type = "button"; openButton.textContent = "Open example dialog"; // Indicate that this button opens a dialog: openButton.setAttribute("aria-haspopup", "dialog"); // Identify which dialog it controls: openButton.setAttribute("aria-controls", "my-plugin-dialog"); const modal = DatasetteModal.create(); const dialog = modal.dialog; dialog.id = "my-plugin-dialog"; // Tell screenreaders the dialog is labelled by #my-plugin-dialog-title dialog.setAttribute("aria-labelledby", "my-plugin-dialog-title"); dialog.innerHTML = ` `; const closeButton = dialog.querySelector("button"); closeButton.addEventListener("click", () => { modal.requestClose("cancel"); }); openButton.addEventListener("click", () => { modal.show({ returnFocusTo: openButton, initialFocus: closeButton }); }); document.body.append(modal); document.querySelector("section.content").append(openButton); });