Вебсправочник
Справочник HTML

Тег <dialog>: диалоговое окно

Чем модальный диалог отличается от немодального и что нужно предусмотреть для управления фокусом.

Зачем нужен этот элемент

dialog обозначает диалоговое окно. В модальном режиме оно появляется в верхнем слое и делает остальную страницу недоступной для взаимодействия до закрытия. Немодальный вариант этого не делает. Само добавление open показывает именно немодальное окно.

Для модального открытия обычно используют метод showModal(), для немодального — show(). Методы требуют JavaScript, который отключён в учебной песочнице. Здесь показано только статическое открытое состояние. Полноценный компонент должен иметь понятное название, способ закрытия и продуманное возвращение фокуса.

Синтаксис и пример

<dialog open aria-labelledby="dialog-title">
  <h2 id="dialog-title">Учебный диалог</h2>
  <p>Это немодальный статический пример. Управление окном добавляется отдельно.</p>
</dialog>

Что важно в разметке

Параметр Как использовать
open Начальное видимое немодальное состояние.
showModal() Открытие модального диалога через JavaScript.
close() Закрытие через JavaScript.
aria-labelledby Связывает диалог с его заголовком.

Частая ошибка

Не подменяйте модальность просто высоким z-index и затемнённым фоном. Фокус, клавиатура и доступность остальных элементов тоже должны быть организованы.

Небольшая практика

Измените заголовок и текст статического окна. При переносе в приложение добавьте реальное открытие и закрытие, проверку Escape и возврат фокуса на кнопку вызова.

Разберите также <button>, <form>: эти элементы пригодятся в том же интерфейсе.

Попробуйте сами

HTML + CSS песочница
РЕЗУЛЬТАТ · ИЗОЛИРОВАННЫЙ ПРЕДПРОСМОТР
Измените код и нажмите «Запустить». JavaScript и внешние запросы отключены.
Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.