Hoppgenväg
Se även: skip to content, skip nav
En tangentbordsgenväg längst upp på varje sida som låter användaren hoppa förbi upprepad navigering direkt till huvudinnehållet. Krävs enligt WCAG 2.4.1 Bypass Blocks.
En hoppgenväg är en tangentbordsgenväg längst upp på varje sida som låter användare hoppa förbi upprepad navigering direkt till huvudinnehållet. Den uppfyller WCAG 2.4.1 Bypass Blocks (Nivå A) och är en av de billigaste tillgänglighetsförbättringarna som finns.
Varför den finns
Tänk på en typisk innehållssajt. Rubriken har sex toppnivålänkar, en språkväljare och en temaväxlare. Sidfoten har ytterligare tolv. Varje sida upprepar dessa strukturer. En tangentbords- eller skärmläsaranvändare som landar på en artikel och vill läsa den måste tabba igenom ungefär trettio interaktiva element innan de når artikelns brödtext. Multiplicerat över varje sidnavigering blir det uttröttande.
En hoppgenväg är ett enda <a href="#main-content">Hoppa till innehåll</a>
placerat som det första fokusbara elementet i dokumentet. Användaren
trycker Tab en gång efter sidladdning, ser “Hoppa till innehåll,” trycker
Enter och fokus flyttas till artikelns brödtext.
Implementering
Mönstret är litet men har några välkända fallgropar:
<a class="skip-link" href="#main-content">Hoppa till innehåll</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;
}
Tre detaljer som spelar roll:
-
Länken måste vara synlig vid fokus. En hoppgenväg som permanent är
display: noneär osynlig för seende tangentbordsanvändare, som då inte vet att den finns. Dölj den utanför skärmen via positionering, inte viadisplay: noneellervisibility: hidden. -
Målet måste ta emot fokus. Ett bart
<main>tar inte tangentbordsfokus som standard. Att lägga tilltabindex="-1"gör det programmatiskt fokuserbart så att webbläsaren faktiskt flyttar fokus när länken följs. Utan detta ändras URL-hashen men fokus flyttas inte, och nästa Tab startar om från sidans topp — vilket omintetgör hela syftet med hoppgenvägen. -
Den måste vara det första fokusbara elementet. Inte “bland de första 100 elementen” — det första. Om något föregår den (en logolänk, en sökikon) måste användaren tabba förbi dessa innan hoppgenvägen nås, vilket motverkar syftet.
Flera hoppgenvägar
Långa sidor med flera upprepade regioner kan dra nytta av en liten “hoppa”-meny i stället för en enda länk:
- Hoppa till huvudinnehåll
- Hoppa till navigering
- Hoppa till sidfot
En kort synlig-vid-fokus-lista med tre eller fyra destinationer fungerar bra. En lång autogenererad innehållsförteckning längst upp på varje sida gör det inte.
Vad den inte ersätter
En hoppgenväg är säkerhetsnätet för att kringgå block. Den ersätter
inte korrekta landmärken (<nav>, <main>, <aside>, <footer>),
korrekt rubrikstruktur (en <h1> per sida, hierarkiska <h2>:or), eller
ARIA aria-label på duplicerade landmärken. Skärmläsaranvändare förflyttar
sig mellan regioner och rubriker via tangentbordsgenvägar som är beroende
av att dessa strukturer finns på plats; hoppgenvägen är för seende
tangentbordsanvändare.