Teknik

Så implementerar du 'Hoppa till innehåll' (Skip Link) rätt

Lästid

5 min

Publicerad

22 nov. 2025

Tangentbord i närbild med fokus på Tab-tangenten

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:

Logotyp (länk)
5-10 navigeringslänkar
Sökfält
Inloggningsknapp
Språkväljare

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:

href pekar på ett ID – Målet måste finnas och ha matchande id-attribut
Målet är <main> – Eller en wrapper runt huvudinnehållet
Texten är beskrivande – 'Hoppa till innehåll', 'Skip to main content', etc.

Steg 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.

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:

Flytta fokus till toppen av <main> eller till en ny rubrik (h1) när rutten ändras
Använd aria-live för att meddela skärmläsare om sidbytet
Se till att skip-länken fortfarande fungerar – antingen via JavaScript eller genom att alltid scroll till toppen först

Så testar du din implementation

Manuellt test (30 sekunder):

1.Ladda om sidan
2.Tryck Tab
3.Skip-länken ska synas visuellt
4.Tryck Enter
5.Fokus ska flyttas till huvudinnehållet
6.Nästa Tab ska fokusera första länken/knappen i innehållet – inte headern

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

WCAG 2.1 AA-kontroll
2-minuters skanning
Åtgärdsbar rapport

Vanliga frågor

Måste skip-länken vara synlig vid fokus?+
Tekniskt sett kräver WCAG bara att mekanismen finns för att hoppa över repetitivt innehåll. Men att visa länken visuellt vid fokus är best practice och hjälper användare som ser skärmen men navigerar med tangentbord.
Vilken text ska skip-länken ha?+
Texten ska vara tydlig och beskrivande: 'Hoppa till innehåll', 'Skip to main content', eller 'Gå till huvudinnehåll'. Undvik kryptiska förkortningar.
Funkar skip links på mobilen?+
Skip links är primärt för tangentbordsanvändare, men externa tangentbord kan anslutas till mobiler. Dessutom använder skärmläsare på mobil (VoiceOver, TalkBack) liknande navigeringsmönster och drar nytta av landmarker som <main>.

Relaterade artiklar

Visa alla
Närbild på kod i en editor med fokus på HTML-element
Teknik5 min

ARIA-labels: När, var och hur (utan att förstöra din UX)

Läs artikel
Dataskärm med kod och checklista
Teknik5 min

Den ultimata WCAG 2.2 checklistan för utvecklare (AA & AAA)

Läs artikel
Person som använder laptop med tillgängligt gränssnitt
Guider6 min

Vad är webbtillgänglighet? En komplett guide för nybörjare

Läs artikel
Skärm med SEO-analys och grafer
Tips4 min

Tillgänglighet och SEO: Så förbättrar du båda samtidigt

Läs artikel