Web Accessibility Academy · Урок

Роли диалоговых окон и встроенный элемент dialog

Обозначайте слой как настоящее модальное диалоговое окно.

Урок 1 из 413 шагов

«Роли диалоговых окон и встроенный элемент dialog» — бесплатный урок Web Accessibility Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Web Accessibility Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Web Accessibility Academy содержит 4 уроков всего.

Что делает диалог диалогом

Диалог — это слой, прерывающий работу со страницей, чтобы запросить ввод или показать сообщение. Пользователям средств чтения с экрана нужно сообщить, что это диалог, а не просто плавающий текст.

Div выглядит как модальное окно, но им не является

Стилизованный div может выглядеть как всплывающее окно, но вспомогательные технологии видят обычное содержимое. Без правильной роли пользователи не узнают, что открылся диалог.

<div class="modal">Are you sure?</div>

Знакомство с нативным элементом dialog

Элемент HTML dialog создан именно для этой задачи. Он автоматически получает семантику диалога, поэтому программы чтения с экрана объявляют его правильно.

<dialog>Are you sure?</dialog>

Откройте его как настоящую модальную область

Вызовите showModal() в JavaScript, чтобы открыть диалог как настоящую модальную область. Благодаря этому страница позади становится неактивной и недоступной.

document.querySelector("dialog").showModal();

show() не является модальным

Будьте внимательны: show() открывает диалог как немодальный, поэтому страница позади остаётся интерактивной. Для блокирующего диалога используйте showModal().

dialog.show();

Роль, лежащая в основе dialog

Внутри системы этот элемент соответствует роли dialog. Если необходимо создать диалог на основе div, атрибут role="dialog" придаст ему нужный смысл.

<div role="dialog">Settings</div>

alertdialog для срочных решений

Если диалог требует ответа, например подтверждения удаления, используйте role="alertdialog". Это сообщает вспомогательным технологиям о повышенной срочности.

<div role="alertdialog">Delete this file?</div>

Каждому диалогу нужно имя

У диалога должно быть доступное имя, чтобы при открытии пользователи понимали его назначение. Укажите в aria-labelledby заголовок внутри диалога.

<dialog aria-labelledby="t"><h2 id="t">Confirm</h2></dialog>

Закройте его в коде

Нативный элемент предоставляет соответствующий метод close(). Его вызов закрывает диалог и снова делает страницу позади доступной.

dialog.close();

Встроенный фон

Модальный диалог автоматически получает фон, который можно стилизовать с помощью псевдоэлемента ::backdrop. Он затемняет страницу и показывает, что фокус переместился.

dialog::backdrop { background: rgba(0,0,0,0.5); }

Почему нативный элемент экономит ваши усилия

Нативный dialog самостоятельно обрабатывает фокус, Escape и блокировку фона. Используя его, вы допускаете меньше ошибок, чем при создании собственного div.

Быстрая проверка

Вам нужно всплывающее окно подтверждения, которое блокирует страницу, пока пользователь не ответит. Какой вызов следует использовать?

Итоги: используйте настоящие диалоги

Вы узнали, что модальной области нужна семантика диалога. Предпочитайте нативный dialog с showModal(), задавайте ему имя, а alertdialog оставляйте для срочных решений.

Можно начать бесплатно

Изучай HTML с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Роли диалоговых окон и встроенный элемент dialog» бесплатный?

Да — полный текст урока «Роли диалоговых окон и встроенный элемент dialog» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Web Accessibility Academy, подпишись на CoddyKit PRO. Курс Web Accessibility Academy содержит 4 уроков всего.

Чему я научусь в уроке «Роли диалоговых окон и встроенный элемент dialog»?

Обозначайте слой как настоящее модальное диалоговое окно. Ты практикуешь Web Accessibility Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Web Accessibility Academy?

Предыдущий опыт не требуется. Web Accessibility Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Роли диалоговых окон и встроенный элемент dialog»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Web Accessibility Academy?

Да. Каждый урок Web Accessibility Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Роли диалоговых окон и встроенный элемент dialog
  2. Удержание фокуса внутри модального окна
  3. Закрытие по Escape и восстановление фокуса
  4. Неактивный фон и aria-modal
← Назад к Web Accessibility Academy