Rubrikhierarki
Se även: heading levels, heading structure, heading order
Den strukturella användningen av `<h1>` till `<h6>` för att förmedla innehållsorganisation. Skärmläsaranvändare navigerar via rubriker; en inkohärent hierarki gör sidan inkohärent för dem. WCAG 1.3.1 kräver programmatisk rubrikstruktur.
Rubrikhierarki är disciplinen att använda <h1>–<h6>-element för att bilda
ett konsekvent dispositionsschema av sidans innehåll. Gjort rätt ger det
skärmläsaranvändare en gratis innehållsförteckning. Gjort fel — hoppade nivåer,
enbart dekorativa rubriker, flera h1:or, generiska divs som rubriker — gör
sidan inkohärent för hjälpmedelstekniksanvändare.
Grundstrukturen
<h1>Artikeltitel (en per sida)</h1>
<h2>Huvudavsnitt</h2>
<h3>Underavsnitt</h3>
<h3>Underavsnitt</h3>
<h2>Huvudavsnitt</h2>
<h3>Underavsnitt</h3>
<h4>Under-underavsnitt</h4>
Reglerna:
- En
<h1>per sida — sidans primära titel. Flera h1:or förvirrar skärmläsare om sidans identitet. - Inga hoppade nivåer nedåt. En
<h2>kan följas av en<h3>(en nivå djupare) men inte av en<h4>(två nivåer djupare). Att hoppa en nivå signalerar till skärmläsaren att något missades däremellan. - Rubriker återspeglar innehållsstruktur, inte visuell stil. Om en text ser stor ut men inte är en rubrik för nytt innehåll, använd ett stiliserat stycke, inte en rubrik.
- Inga tomma rubriker.
<h2></h2>är meningslöst. Fyll det eller ta bort det.
Varför skärmläsare bryr sig
Den vanligaste enskilda navigationsoperationen för skärmläsare är
“hoppa till nästa rubrik” — H-tangenten i JAWS och NVDA, rotor-läget
“Rubriker” i VoiceOver, rubrikläsningskontrollen i TalkBack.
En användare som öppnar en lång artikel trycker H upprepade gånger för att
bilda sig en uppfattning om artikelns struktur innan de läser den. Om rubrikerna
är koherenta får de en gratis disposition av texten. Om rubrikerna är enbart
dekorativa eller hoppar nivåer får de brus.
Vad som går fel i produktion
- Ingen
<h1>. Sidan saknar primär rubrik. Skärmläsare annonserar sidans titel från<title>, men in-page-rubriknavigering har inget ankare. Vanligt på dåligt strukturerade CMS-sidor där artikeltiteln är en stiliserad text men aldrig märkt som<h1>. - Flera
<h1>:or. “Hjältetitel” + “första avsnittstiteln” båda märkta<h1>. Skärmläsaranvändare hör två h1:or och kan inte avgöra vilken som är sidtiteln. - Hoppade nivåer.
<h1>→<h3>för att designen inte ville ha<h2>-storlekad text. Skärmläsarnavigering läser “saknad rubriknivå”. - Divs stilade som rubriker.
<div class="hed-xl">Avsnittstiteln</div>. Skärmläsaren får ingen rubrik. Åtgärd: använd rätt<hN>, styla med CSS. - Rubriker används för layout. Att sätta
<h2>på en sidopanelsetikett för att den ska se ut som en rubrik visuellt, men etiketten är inte en rubrik innehållsmässigt. Använd ett stiliserat stycke.
Hur man granskar rubrikhierarki
Tre metoder:
- Skärmläsarens rubriklist. Öppna
Insert+F7i NVDA eller VO+U → Rubriker. Den visade listan ska vara meningsfull som en disposition av sidan. Om inte, åtgärda uppmärkningen. - HeadingsMap webbläsartillägg. Renderar sidans rubrikdisposition visuellt. Nivåer och luckor syns omedelbart.
- axe-core-skanning. Fångar saknad h1, hoppade nivåer (i vissa konfigurationer) och tomma rubriker.
Varför en h1 per sida är en omtvistad punkt
HTML5 föreslog ursprungligen att nästlade <section>-element skapade egna
rubrikomfång, vilket tillät flera <h1>:or. Webbläsare och skärmläsare
implementerade aldrig detta beteende. W3C:s WCAG-arbetsgrupp har återgått
till “en h1 per sida” som operativ vägledning. De flesta moderna stilguider
och tillgänglighetsgransikningar tillämpar en-h1-regeln.