Web Accessibility Academy · Урок

Неактивный фон и aria-modal

Делайте остальную часть страницы недоступной, пока окно открыто.

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

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

Страница позади всё ещё существует

Даже если фокус удерживается внутри, содержимое позади модальной области всё ещё находится в DOM. Программа чтения с экрана может перейти к нему, если не заблокировать доступ.

Знакомство с атрибутом inert

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

<main inert>...page content...</main>

Сделайте фон неактивным

При открытии модальной области добавьте inert всему, что находится за её пределами. Теперь никто не сможет получить доступ к странице позади.

pageContent.inert = true;

Удалите inert при закрытии

При закрытии модальной области удалите атрибут inert, чтобы страница снова стала интерактивной. Если забыть это сделать, страница останется заблокированной.

pageContent.inert = false;

Нативный dialog делает это за вас

Нативный dialog, открытый с помощью showModal(), автоматически делает остальную часть страницы неактивной, поэтому дополнительный код не нужен.

Что объявляет aria-modal

Добавление aria-modal со значением true сообщает вспомогательным технологиям, что содержимое за пределами этого диалога недоступно, пока он открыт.

<div role="dialog" aria-modal="true">...</div>

aria-modal — это обещание, а не преграда

Будьте внимательны: aria-modal только информирует программу чтения с экрана. Он фактически не блокирует фокус или щелчки, поэтому вам по-прежнему нужен inert.

Используйте оба атрибута вместе

Надёжный подход сочетает inert на фоне с aria-modal на диалоге. Первый действительно блокирует доступ, второй объявляет границу.

<div role="dialog" aria-modal="true">
<!-- background gets inert -->

Старый приём с aria-hidden

До того как inert получил широкую поддержку, разработчики добавляли aria-hidden фону. Это скрывало содержимое от программ чтения с экрана, но не блокировало фокус клавиатуры.

Никогда не скрывайте сам диалог

Одна из классических ошибок — применить aria-hidden настолько широко, что он охватывает и диалог. Убедитесь, что ваша модальная область не попала в скрытую область.

Проверьте дерево

Откройте дерево доступности браузера при открытой модальной области. Убедитесь, что страница позади исчезла из дерева и остался только диалог. ✅

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

Вы добавили aria-modal=true, но не использовали inert. Какая проблема остаётся?

Итоги: изолируйте фон

Вы научились делать страницу позади неактивной с помощью inert и объявлять aria-modal, чтобы модальная область действительно оставалась единственным доступным для пользователей содержимым. 🎯

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

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

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

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

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

Урок «Неактивный фон и aria-modal» бесплатный?

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

Чему я научусь в уроке «Неактивный фон и aria-modal»?

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

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

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

Сколько времени занимает урок «Неактивный фон и aria-modal»?

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

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

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

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

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