Кнопка
Сверяем тип элемента, активную область, aria-expanded, aria-controls и доступное название.
Навигация
Воспроизводим сбой на нужной ширине экрана, проверяем кнопку, слои, CSS, JavaScript и ссылки. Возвращаем пользователю предсказуемую навигацию мышью, касанием и клавиатурой.
Диагностика
Внешне одинаковый сбой может возникать в разных слоях. Мы проверяем фактическое нажатие, изменение состояния, расположение панели и переход по ссылке, а не увеличиваем z-index наугад.
Сверяем тип элемента, активную область, aria-expanded, aria-controls и доступное название.
Проверяем загрузку скрипта, ошибки консоли, повторные обработчики и конфликт с темой или виджетом.
Ищем невидимые перекрытия, новый stacking context, неверный z-index и панель за пределами экрана.
Тестируем контрольные ширины, поворот телефона, смену display и классы, которые должны открывать панель.
Проверяем блокировку body, возврат позиции, высоту панели и доступность пунктов внизу списка.
Сверяем адреса и якоря, порядок Tab, видимый фокус, Enter, Space, Escape и возврат к кнопке.
Результат
Кнопка меняет состояние один раз, а панель видна поверх нужной части интерфейса.
Ссылки нажимаются, получают фокус и не скрываются за границами экрана.
После закрытия возвращаются прокрутка, фокус и привычное управление контентом.
Контрольный сценарий
Пример навигации W3C показывает связь кнопки, состояния раскрытия и управления с клавиатуры. Конкретная реализация зависит от структуры сайта, но пользовательский сценарий должен оставаться понятным.
Кнопка заметна, имеет понятное название и доступна без точного попадания в маленькую иконку.
Панель не обрезается, активное состояние объявлено, а фон не перехватывает действия.
Ссылка ведёт по ожидаемому адресу, якорь не прячется под шапкой и меню закрывается корректно.
Escape, повторное нажатие или выбор пункта возвращают управление странице без зависшей блокировки.
Границы работ
Если меню создаёт закрытый модуль CMS, внешний виджет или конструктор, исправление может зависеть от доступных настроек и обновления поставщика. Перед изменением общего шаблона делаем резервную копию и проверяем тестовый контур. Мы не удаляем пункты, не меняем структуру разделов и не перестраиваем навигацию без согласования: ремонт поведения и информационная архитектура — разные задачи.
Вопросы
Проверяем, получает ли кнопка нажатие, запускается ли скрипт и меняются ли классы и атрибуты раскрытия.
На мобильной ширине включается отдельная панель и блокировка прокрутки, поэтому десктопная версия может оставаться исправной.
Нет, если существующая структура подходит. Локальную ошибку разметки, CSS или JavaScript можно исправить отдельно.
Ссылки, раскрытие и закрытие, несколько ширин, поворот телефона, клавиатура, фокус и прокрутка.
Первый шаг
Пришлите URL, устройство, браузер и действие, после которого возникает сбой. Если проблема зависит от авторизации, опишите доступный тестовый сценарий.