Неактивный фон и aria-modal
Делайте остальную часть страницы недоступной, пока окно открыто.
«Неактивный фон и 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 — локальная установка не требуется.
Все уроки этого курса
- Роли диалоговых окон и встроенный элемент dialog
- Удержание фокуса внутри модального окна
- Закрытие по Escape и восстановление фокуса
- Неактивный фон и aria-modal