Abrir un diálogo solía exigir addEventListener + showModal(). Desde diciembre de 2025, HTML lo resuelve con dos atributos declarativos, sin una sola línea de JavaScript.
Invoker commands
Baseline2025newly availableSupported in Chrome: yes.
Supported in Edge: yes.
Supported in Firefox: yes.
Supported in Safari: yes.
Since December 2025 this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Preview
<button command="show-modal" commandfor="remove-item-dialog">
Remove item
</button>
<dialog id="remove-item-dialog">
<p>This will permanently delete the item.</p>
<button command="close" commandfor="remove-item-dialog">Keep item</button>
</dialog>Qué son command y commandfor
command se coloca en un elemento invocable (button, input, select, textarea o un custom element) y declara qué acción ejecutar. commandfor apunta al id del elemento sobre el que se ejecuta esa acción — un <dialog>, un popover, etc.
En el ejemplo de arriba, el botón con command="show-modal" abre el diálogo referenciado por commandfor="remove-item-dialog"; el botón dentro del diálogo lo cierra con command="close".
Antes vs. ahora
Antes necesitabas JavaScript para abrir y cerrar el diálogo:
const dialog = document.querySelector("#remove-item-dialog");
document.querySelector("[data-remove]").addEventListener("click", () => {
dialog.showModal();
});Ahora los atributos hacen el trabajo y el navegador se encarga del resto:
<button command="show-modal" commandfor="remove-item-dialog">Remove item</button>Valores de command
| Comando | Efecto |
|---|---|
show-modal |
Abre el <dialog> como modal (showModal()) |
show-popover |
Muestra un popover (showPopover()) |
toggle-popover |
Alterna un popover (togglePopover()) |
hide-popover |
Oculta un popover (hidePopover()) |
close |
Cierra el diálogo o popover apuntado por commandfor |
request-close |
Pide un cierre validado (con cancel event y returnValue) |
El atributo command sin commandfor se aplica al elemento invocable mismo; con commandfor, al elemento referenciado.