This survey closed on August 31, 2025.

A disclosure widget that can be toggled to hide or show content interactively.

html
<details>
    <summary>Details</summary>
    Longer content
</details>
Tell us more:
Tell us more:
Tell us more:

Group <details> elements so that only up to one in the group can be open at a time.

html
<details open name="sidebar_panel">
	<summary>Main info</summary>
	<!-- controls -->
</details>
<details name="sidebar_panel">
	<summary>Style</summary>
	<!-- controls -->
</details>
Tell us more:
Tell us more:
Tell us more:

Creates a modal or non-modal dialog box, such as a confirmation prompt or a subwindow used to enter data.

html
<dialog id="confirm">
	<form method="dialog">
		Are you sure?
		<button value="1">Yes</button>
		<button value="0">No</button>
	</form>
</dialog>
Tell us more:
Tell us more:
Tell us more:

Allows the dialog to be closed by clicking outside of it (light dismiss).

Tell us more:
Tell us more:
Tell us more:

Closes the dialog in a way that can be cancelled (unlike dialog.close()).

Tell us more:
Tell us more:
Tell us more:

HTML syntax and JS API facilitating popovers such as overlays, popups, menus etc.

html
<button popovertarget="foo">Toggle the popover</button>
<div id="foo" popover>Popover content</div>
Tell us more:
Tell us more:
Tell us more:

A way to create less persistent popovers, such as tooltips.

html
<div id="tooltip" popover="hint">
  Save this document
</div>
<button popovertarget="tooltip">
  Save
</button>
Tell us more:
Tell us more:
Tell us more:

A declarative way for <button> to invoke predefined custom commands.

html
<button commandfor="mydialog" command="show-modal">
  Show modal dialog
</button>
<dialog id="mydialog">
  <button commandfor="mydialog" command="close">
    Close
  </button>
  *dialog content*
</dialog>
Tell us more:
Tell us more:
Tell us more:

DOM method that moves an element before another.

js
referenceElement.before(newElement);
Tell us more:
Tell us more:
Tell us more:

Move an element before another while preserving state (focus, iframe loads, animation frame, etc).

js
referenceElement.parentNode.moveBefore(newElement, referenceElement);
Tell us more:
Tell us more:
Tell us more:

Browser incompatibilities or lack of support, missing features, and other problems you face around interactive elements and behaviors (except forms), DOM manipulation, events, and related APIs.