Teknik
Så implementerar du 'Hoppa till innehåll' (Skip Link) rätt
Lästid
5 min
Publicerad
22 nov. 2025
Föreställ dig att du måste lyssna på varje länk i Aftonbladets huvudmeny varje gång du klickar på en ny artikel. Sedan alla sociala delningsknappar. Sedan breadcrumbs. Först därefter kommer du till den text du faktiskt vill läsa.
För användare som navigerar med tangentbord eller skärmläsare är detta vardag – om sajten saknar skip links. WCAG-kriteriet 2.4.1 'Bypass Blocks' finns för att lösa exakt detta problem.
En skip link är en länk som ligger allra först i HTML-koden, men som är visuellt dold tills den får fokus via tangentbordet. Tryck Tab på valfri tillgänglig sajt och du ser den dyka upp. I denna guide visar vi exakt hur du implementerar den korrekt.
Varför skip links är så viktiga
Tänk på hur du själv använder webben. Du scrollar förbi headern, klickar i huvudinnehållet, och börjar läsa. Denna interaktion tar en bråkdel av en sekund.
För en tangentbordsanvändare ser det annorlunda ut. Varje Tab flyttar fokus till nästa interaktiva element – i ordning. En typisk header kan innehålla:
Det är 15+ Tab-tryckningar innan användaren når huvudinnehållet. Och detta upprepas på varje sidladdning.
Skip links eliminerar detta genom att erbjuda en genväg. Ett enda Tab + Enter tar användaren direkt till innehållet.
En skip link är den enskilt viktigaste tillgänglighetsfunktionen för tangentbordsanvändare. Den tar 5 minuter att implementera och förbättrar upplevelsen dramatiskt.
Steg 1: HTML-strukturen
Skip-länken ska vara det första fokuserbara elementet på sidan. Placera den direkt efter öppnande <body>-taggen:
<body> <a href="#main-content" class="skip-link">Hoppa till innehåll</a> <header>...</header> <main id="main-content"> <!-- Huvudinnehåll --> </main></body>Några viktiga detaljer:
id-attribut<main> – Eller en wrapper runt huvudinnehålletSteg 2: CSS för dold-men-tillgänglig
Länken ska vara osynlig för musanvändare men tillgänglig för tangentbord. Använd INTE display: none eller visibility: hidden – då döljs den även för skärmläsare och tangentbord.
Istället positionerar vi den utanför skärmen och visar den vid fokus:
.skip-link { position: absolute; top: -40px; left: 0; background: #000; color: #fff; padding: 8px 16px; z-index: 100; text-decoration: none;}.skip-link:focus { top: 0;}När användaren trycker Tab hamnar fokus på skip-länken, och CSS:en :focus visar den visuellt. Lägg gärna till en transition för snyggare effekt.
Steg 3: JavaScript för bättre fokushantering (valfritt)
I vissa webbläsare (främst Safari) hoppar fokus inte automatiskt till målelementet när man klickar på en ankar-länk. Detta kan fixas med lite JavaScript:
document.querySelector('.skip-link').addEventListener('click', (e) => { const target = document.getElementById('main-content'); if (target) { target.setAttribute('tabindex', '-1'); target.focus(); target.removeAttribute('tabindex'); }});Vi lägger tillfälligt till tabindex="-1" för att göra målet fokusbart, fokuserar det, och tar sedan bort attributet. Detta säkerställer att fokus verkligen flyttas.
Flera skip links för komplex layout
Stora sajter kan ha flera regioner användaren vill nå snabbt: huvudmeny, sökfunktion, sidfot. WCAG tillåter och uppmuntrar multipla skip links:
<a href="#main-content" class="skip-link">Hoppa till innehåll</a><a href="#main-nav" class="skip-link">Hoppa till huvudmeny</a><a href="#search" class="skip-link">Hoppa till sök</a>Varje länk visas i tur och ordning när användaren tabbar. Var dock försiktig med att inte ha för många – det motverkar syftet om användaren måste tabba genom 10 skip links.
Skip links i Single Page Applications (SPA)
I React, Vue eller Angular-appar laddas inte sidan om vid navigation. Detta skapar problem:
1. Fokus stannar kvar – Efter en 'sidnavigering' förblir fokus där användaren sist var, inte i toppen av sidan.
2. Skip-länken fungerar inte – Att klicka på #main-content gör ingenting om innehållet redan finns på sidan.
Lösningen är att hantera fokus manuellt vid route-ändringar:
<main> eller till en ny rubrik (h1) när rutten ändrasaria-live för att meddela skärmläsare om sidbytetSå testar du din implementation
Manuellt test (30 sekunder):
Automatiskt test:
Verktyg som Xrayd och axe DevTools kontrollerar att skip-länken finns och pekar på ett giltigt mål. Men de kan inte verifiera att fokus verkligen flyttas – det kräver manuellt test.
Testa din webbplats tillgänglighet
Gratis skanning, ingen registrering