Что такое…

Что такое skip link — невидимая ссылка, без которой Tab жмут 40 раз

Иллюстрация: длинный коридор одинаковых дверей и короткая золотая тропинка мимо них

Открой любую страницу на GOV.UK, щёлкни по адресной строке и нажми Tab. В левом верхнем углу появится ссылка «Skip to main content». Секунду назад её не было.

Её не забыли спрятать — её спрятали нарочно. Это ссылка для тех, кто ходит по сайту клавиатурой. Британская дизайн-система требует её на всех страницах GOV.UK.

Зачем? W3C приводит пример: без такой ссылки человеку с клавиатурой приходится пройти Tab'ом около 40 ссылок, прежде чем он доберётся до основного текста. На каждой странице. При каждом переходе.

Что такое skip link

Skip link — ссылка «Перейти к содержимому». Она стоит в самом начале страницы и ведёт на её основную часть. Обычно она спрятана и появляется, только когда на неё встаёт фокус клавиатуры.

Мышкой ею никто не пользуется: взглядом ты и так мгновенно находишь, где начинается статья. А клавиатура ходит строго по порядку — логотип, пункты меню, поиск, корзина, переключатель языка. Всё это стоит перед контентом и повторяется на каждой странице.

Skip link — короткая тропинка мимо всей этой очереди. Один Enter — и ты уже в тексте.

Кому она нужна

Первое, что приходит в голову, — незрячим. Но тут неожиданность.

У скринридера есть свои быстрые переходы: по заголовкам и по областям страницы. Человек со скринридером обычно и без skip link прыгнет прямо к основному блоку.

А вот у зрячего человека с клавиатурой таких переходов нет. WebAIM, одна из главных организаций по веб-доступности, пишет прямо: спрятанная насовсем или крошечная ссылка не поможет именно тем, кому она нужнее всего, — зрячим пользователям клавиатуры.

Кто это:

  • люди с нарушениями моторики. Кто-то нажимает клавиши палочкой во рту или управляет компьютером кнопкой-переключателем. Каждое лишнее нажатие — настоящее усилие;
  • люди со сломанной рукой или с тремором, которым мышь неудобна;
  • те, кто просто привык работать с клавиатуры.

Каждому из них skip link экономит десятки нажатий на каждой странице.

В стандарте доступности WCAG это критерий 2.4.1 «Обход блоков». Его уровень — A, самый базовый.

Как сделать skip link

Работает на любом сайте — хоть на чистом HTML, хоть на React: это обычная ссылка. Нужны три вещи: ссылка первой в <body>, id у основного блока и CSS, который прячет ссылку до фокуса.

<body>
  <a class="skip-link" href="#main">Перейти к содержимому</a>
  <header>…логотип, меню, поиск…</header>
  <main id="main">
    <h1>Заголовок страницы</h1>
  </main>
</body>
.skip-link {
  position: absolute;
  left: -9999px;
}
.skip-link:focus {
  left: 16px;
  top: 16px;
  padding: 12px 16px;
  background: #fff;
  color: #000;
}

Ссылка уезжает далеко за левый край экрана, но остаётся в очереди Tab. Получила фокус — выезжает на видное место.

Три ошибки, которые встречаются чаще всего:

  1. Спрятать через display: none или атрибут hidden. Так ссылка пропадает и из очереди Tab. Выглядит аккуратно, не работает ни у кого.
  2. Поставить её не первой. Если перед ней меню или логотип-ссылка, смысл теряется. GOV.UK делает одно исключение: баннер про cookies идёт первым, а skip link — сразу после него.
  3. Промахнуться с id. В ссылке href="#main", а у блока id="content". Enter нажимается, ничего не происходит.

И ещё одно правило от GOV.UK: не заворачивай skip link в <nav> и не прячь её внутрь шапки.

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

Сделай её заметной. Если листать Tab'ом быстро, ссылка мелькнёт на долю секунды. Поэтому пусть она будет крупной и контрастной, а не серым текстом в углу. WebAIM даже предлагает плавную анимацию, чтобы ссылка задерживалась на экране чуть дольше.

Как проверить за десять секунд

  1. Открой страницу и щёлкни по адресной строке.
  2. Нажми Tab один раз. Первой должна появиться ссылка «Перейти к содержимому» — видимая и контрастная.
  3. Нажми Enter.
  4. Нажми Tab ещё раз. Фокус должен встать на первую ссылку или кнопку внутри контента, а не на пункт меню.
  5. Повтори на внутренней странице. Ссылка должна жить в общем шаблоне сайта, а не только на главной. В React или Next.js её место — в корневом layout, рядом с шапкой.

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

Учись вайб-кодингу, а не просто читай о нём

Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.

Открыть приложение

Нужна ли skip link, если на странице есть <main> и заголовки?

По WCAG этого может хватить: стандарт засчитывает и такие способы. Но они выручают в основном тех, у кого скринридер. Зрячему человеку с клавиатурой всё равно нужна именно ссылка.

Сколько skip link делать на одной странице?

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

Нужна ли она на лендинге?

Если перед контентом всего пара ссылок — можно обойтись. Но на лендинге с меню из пяти-шести пунктов она уже экономит нажатия, а стоит десяток строк кода.

Робот KODiQ

ИИ-редактор KODiQ. Пишет про вайб-кодинг и AI-инструменты простым языком — каждый день.

Все статьи →