Overskriftshierarki
Se også: heading levels, heading structure, heading order
Den strukturelle brug af `<h1>` til `<h6>` til at formidle indholdets organisation. Skærmlæsere navigerer via overskrifter; et inkonsekvent hierarki gør siden uforståelig for dem. WCAG 1.3.1 kræver programmatisk overskriftsstruktur.
Overskriftshierarki er disciplinen at bruge <h1>-<h6>-elementer til
at danne en konsekvent dispositionsstruktur af en sides indhold. Gjort
rigtigt giver det skærmlæsere en gratis indholdsfortegnelse. Gjort forkert
(oversprunget niveauer, rent dekorative overskrifter, flere h1’er, generiske
div’er som overskrifter) gør siden uforståelig for hjælpeteknologi-brugere.
Den grundlæggende struktur
<h1>Artiklens titel (én per side)</h1>
<h2>Hovedafsnit</h2>
<h3>Underafsnit</h3>
<h3>Underafsnit</h3>
<h2>Hovedafsnit</h2>
<h3>Underafsnit</h3>
<h4>Under-underafsnit</h4>
Reglerne:
- Én
<h1>per side — sidens primære titel. Flere h1’er forvirrer skærmlæsere om sidens identitet. - Ingen oversprunget niveauer nedad. En
<h2>kan efterfølges af en<h3>(ét niveau dybere), men ikke af en<h4>(to niveauer dybere). Et oversprunget niveau signalerer til skærmlæseren, at noget mangler imellem. - Overskrifter afspejler indholdsstruktur, ikke visuel styling. Hvis et stykke tekst ser stort ud, men ikke er en overskrift til nyt indhold, brug et stylet afsnit, ikke en overskrift.
- Ingen tomme overskrifter.
<h2></h2>er meningsløst. Udfyld den eller fjern den.
Hvorfor skærmlæsere holder af det
Den mest almindelige skærmlæser-navigationsoperation er
“hop til næste overskrift” — H-tasten i JAWS og NVDA, rotor-tilstanden
“Overskrifter” i VoiceOver, overskrifter-læsekontrollen i TalkBack.
En bruger, der åbner en lang artikel, trykker H gentagne gange for at
danne sig et overblik over artiklens struktur, inden de læser noget af den.
Hvis overskrifterne er sammenhængende, får de en gratis disposition af teksten.
Hvis overskrifterne kun er dekorative eller springer niveauer over, får de støj.
Hvad der går galt i produktion
- Ingen
<h1>. Siden har ingen primær overskrift. Skærmlæsere annoncerer sidetitlen fra<title>, men in-page-overskriftsnavigationen har intet ankerpunkt. Almindeligt på dårligt strukturerede CMS-sider, hvor artiklens titel gengives som stylet tekst, men aldrig markeres som<h1>. - Flere
<h1>er. “Hero-titel” + “første afsnits titel” markeret begge som<h1>. Skærmlæsere hører to h1’er og kan ikke afgøre, hvilken der er sidetitlen. - Oversprunget niveauer.
<h1>→<h3>, fordi designet ikke ønskede<h2>-størret tekst. Skærmlæsernes navigation læser “manglende overskriftsniveau.” - Div’er stylet som overskrifter.
<div class="hed-xl">Afsnitsoverskrift</div>. Skærmlæseren ser ingen overskrift. Løsning: brug den korrekte<hN>, stil med CSS. - Overskrifter brugt til layout. At sætte
<h2>på en sidebar-etiket, så den visuelt ligner en overskrift, men etiketten ikke er en overskrift i indholdsmæssig forstand. Brug et stylet afsnit.
Sådan reviderer du overskriftshierarkiet
Tre tilgange:
- Skærmlæserens overskriftsliste. Åbn
Insert+F7i NVDA eller VO+U → Overskrifter. Den viste liste bør give mening som en disposition af siden. Giver den ikke mening, ret markeringen. - HeadingsMap browser-udvidelse. Gengiver sidens overskriftsdisposition visuelt. Niveauer og huller er umiddelbart tydelige.
- axe-core-scanning. Fanger manglende h1, oversprunget niveauer (i visse konfigurationer) og tomme overskrifter.
Hvorfor én h1 per side er et omdiskuteret punkt
HTML5 foreslog oprindeligt, at indlejrede <section>-elementer skabte
deres egne overskriftsomfang, hvilket tillod flere <h1>er. Browsere og
skærmlæsere implementerede aldrig denne adfærd. W3C’s WCAG Working Group
er vendt tilbage til “én h1 per side” som den gældende vejledning. De
fleste moderne stilguider og tilgængelighedsrevisioner håndhæver
én-h1-reglen.