Връзка за прескачане
Също: skip to content, skip nav
Клавишна комбинация в самото начало на всяка страница, която позволява на потребителите да прескочат повтарящата се навигация и да преминат директно към основното съдържание. Изисква се от WCAG 2.4.1 Bypass Blocks.
Връзката за прескачане е клавишна комбинация в самото начало на всяка страница, която позволява на потребителите да прескочат повтарящата се навигация и да преминат директно към основното съдържание. Тя удовлетворява изискването на WCAG 2.4.1 Bypass Blocks (Ниво A) и е едно от най-евтините подобрения в достъпността, с които може да се постигне реален ефект.
Защо съществува
Представете си типичен сайт със съдържание. Заглавната част съдържа шест навигационни връзки от първо ниво, превключвател за език и превключвател на тема. Долният колонтитул разполага с още дванадесет. Всяка страница повтаря тези структури. Потребител, ползващ клавиатура или екранен четец, който попадне на дадена статия и иска да я прочете, трябва да натисне Tab приблизително тридесет пъти, преди да достигне тялото на статията. Умножено по всяка навигация между страниците, това е изтощително.
Връзката за прескачане е единична <a href="#main-content">Skip to content</a>,
поставена като първия елемент с фокус в документа. Потребителят натиска Tab веднъж
след зареждане на страницата, вижда „Прескочи към съдържанието”, натиска Enter и
фокусът се премества в тялото на статията.
Имплементация
Шаблонът е компактен, но крие няколко добре известни капана:
<a class="skip-link" href="#main-content">Skip to content</a>
...
<main id="main-content" tabindex="-1">
...
</main>
.skip-link {
position: absolute;
left: -9999px;
top: 0;
background: #000;
color: #fff;
padding: 0.5rem 1rem;
z-index: 100;
}
.skip-link:focus {
left: 0;
}
Три детайла, които имат значение:
-
Връзката трябва да е видима при фокус. Връзка за прескачане, която е постоянно
display: none, е невидима за зрящите потребители на клавиатура, при което те не могат да разберат за съществуването й. Тя се скрива извън екрана чрез позициониране, а не чрезdisplay: noneилиvisibility: hidden. -
Целевият елемент трябва да приема фокус. Обикновен
<main>не получава клавиатурен фокус по подразбиране. Добавянето наtabindex="-1"го прави програмно фокусируем, така че браузърът действително премества фокуса при следване на връзката. Без това URL хешът се променя, но фокусът не се мести и следващото натискане на Tab рестартира от горната част на страницата — обезсмисляйки напълно функцията на връзката за прескачане. -
Тя трябва да е първият фокусируем елемент. Не „сред първите 100 елемента” — буквално първият. Ако нещо я предшества (лого-връзка, икона за търсене), потребителят трябва да прескочи тези елементи, преди да достигне връзката за прескачане, което обезсмисля целта й.
Множество връзки за прескачане
Дълги страници с множество повтарящи се региони понякога се възползват от малко меню за прескачане вместо от единична връзка:
- Прескочи към основното съдържание
- Прескочи към навигацията
- Прескочи към долния колонтитул
Кратък списък с три или четири дестинации, видим при фокус, е приемлив. Дълго автоматично генерирано съдържание в началото на всяка страница — не.
Какво не замества
Връзката за прескачане е предпазна мрежа за заобикаляне на блокове. Тя не замества
правилните ориентири (<nav>, <main>, <aside>, <footer>), правилната структура
на заглавията (едно <h1> на страница, йерархични <h2>), нито ARIA aria-label
върху дублиращи се ориентири. Потребителите на екранни четци се придвижват между
региони и заглавия чрез клавишни комбинации, които зависят от наличието на тези
структури; връзката за прескачане е предназначена за зрящи потребители, ползващи
само клавиатура.