Web Accessibility Academy · Урок

Закрытие по Escape и восстановление фокуса

Обеспечьте надёжный выход с возвратом пользователя назад.

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

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

У каждой модальной области должен быть выход

Модальная область, из которой нельзя выйти, становится ловушкой. Пользователи ожидают быстрого и надёжного способа закрыть её, не разыскивая маленькую кнопку.

Escape — универсальная клавиша

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

Нативный dialog обрабатывает Escape

Нативный dialog, открытый с помощью showModal(), автоматически закрывается по Escape и создаёт событие отмены, которое при необходимости можно отслеживать.

dialog.addEventListener('cancel', onClose);

Настройте обработку Escape самостоятельно

Для пользовательской модальной области отслеживайте событие keydown и закрывайте её при нажатии Escape. Это всего несколько строк, но пропускать их нельзя.

if (e.key === 'Escape') closeModal();

Запомните, где находился фокус

Перед открытием модальной области сохраните элемент, на котором находился фокус. document.activeElement — это элемент, к которому вы позже вернёте пользователя.

const opener = document.activeElement;

Восстановите фокус при закрытии

Когда модальная область закрывается, верните фокус на сохранённый элемент. Этот шаг — восстановление фокуса — делает закрытие плавным.

closeModal();
opener.focus();

Почему восстановление важно

Без восстановления фокус перемещается в начало страницы. Пользователь теряет своё место и должен снова пройти клавишей Tab весь путь. Это неприятно и совершенно необязательно. 😕

Добавьте также видимую кнопку закрытия

Одной клавиши Escape недостаточно. Добавьте чётко обозначенную кнопку закрытия, чтобы у пользователей мыши и сенсорных устройств тоже был очевидный выход.

<button aria-label="Close dialog">&times;</button>

Щелчок по фону

Многие модальные области также закрываются при щелчке по затемнённому фону. Это полезное дополнение, но оно ни в коем случае не должно заменять Escape или кнопку.

Будьте осторожны с разрушающими действиями

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

Проверьте полный цикл

Откройте модальную область с клавиатуры, нажмите Escape и убедитесь, что фокус вернулся точно на исходный элемент, открывший её. Это и есть цель полного цикла. ✅

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

Пользователь открывает модальную область кнопкой и нажимает Escape. Где должен оказаться фокус?

Итоги: закрывайте корректно

Вы научились поддерживать Escape, добавлять видимую кнопку закрытия и возвращать фокус на элемент, открывший модальную область, чтобы при закрытии пользователь не терялся. 🎯

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

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

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

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

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

Урок «Закрытие по Escape и восстановление фокуса» бесплатный?

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

Чему я научусь в уроке «Закрытие по Escape и восстановление фокуса»?

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

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

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

Сколько времени занимает урок «Закрытие по Escape и восстановление фокуса»?

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

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

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

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

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