Betydelsen av rubriknivåer för hjälpteknik

HTML-specifikationen beskriver sex rubrikelement: h1, h2, h3, h4, h5, och h6. Numret i var och en av dessa rubrikelement speglar dess prioritet, med h1 vara den mest generella och h6 vara den mest specifika.

Detta är en viktig sak att veta! WebAIMs 2017 Screen Reader-undersökning berättar att navigering via rubriker är det viktigaste sättet att personer som är beroende av assistentteknik lokaliserar information. På grund av detta är det viktigt att utforma dina hemsidor korrekt.

A11y från början

Denna handledning är en del av Web Accessibility: den fullständiga lärarhandboken, där vi har samlat in en rad tutorials, artiklar, kurser och e-böcker, för att hjälpa dig att förstå webbåtkomst från början.

Cognition

Innan vi kommer in i det nitty-gritty av hur hjälpteknik fungerar, det finns en anledning att våra tryckta medier använder saker som kapitel, avsnitt och underavsnitt och scenbrott. Att dela upp innehåll i bitar gör det lättare att förstå, smälta, behålla och referera. 

Bitar av innehåll, från The Guardian tidningen

Medan webben inte skrivs lånar det alla bra saker från det. HTML-rubrikelementen är analoga med dessa skrivkonventioner. Det är en av de saker som alla tar för givet, men hjälper till med massor av människor. Kognitiva problem är utbredd och uppväger alla andra former av funktionshinder. Gruppering av innehåll i logiska bitar hjälper alla, från personer som har ett biologiskt tillstånd som demens till personer som upplever situationstörning som sömnbrist eller att lära sig en helt ny skicklighet.

Navigera via rubrik

Vissa typer av hjälpteknik (inklusive men inte begränsade till skärmsläsare) tillåter att människor hoppa från rubrik till rubrik på en sida. Det motsvarar vad människor som inte använder hjälpteknik gör varje dag, flitar runt en sida för att få det övergripande läget av det, stoppar när de hittar den information de söker.

Generera listor med rubriker

Viss hjälpteknik kan ta dessa rubriker och göra dem till en ordnad lista. Denna lista kan användas för att snabbt bestämma den övergripande betydelsen av sidan.

Genererad lista över rubriker på Wikipedia-sidan

Om du inte upprätthåller en logisk sekvens, säger att du går från rubrik ett till rubrik nivå tre utan att förklara en rubriknivå mellan två, kan det skapa en potentiellt förvirrande, definitivt irriterande upplevelse för den person som åberopar rubriker för att navigera. Denna lucka i den logiska sekvensen kommer att belasta användaren och tvinga dem att använda andra, mer tid och ansträngningsintensiva metoder för att navigera för att bestämma logiken för hela sidstrukturen (om någon) och om innehållet de behöver är faktiskt presenteras på sidan.

Första nivåns rubriker

En annan viktig sak vi kan göra är att se till att det bara finns ett rubrik på första nivån per sida. Detta rubrik ska beskriva huvudpunkten för sidans innehåll. Till exempel kan en sida om franska bakverkets historia ha en första nivårubrik skrivet så här:

Historien om fransk bakverk

...

Den (icke existerande) dokumentutskriftsalgoritmen

Tyvärr finns det en missuppfattning att du kan använda första nivåns rubriker för början av varje innehållsdelningselement på en sida, vilket förtroende för webbläsaren för att ta reda på resten via dokumentutskriftsalgoritmen. Denna algoritm är spekulativ fiktion - vid tidpunkten för denna artikels publicering har den ännu inte implementerats av några webbläsare. På grund av detta måste vi hylla valkretsens prioriteringar och använda andra rubrikelement.

Andra rubriker

Rubrikerna nivån två till sex bör följa rubriken på första nivån och vara författad i en sekventiell ordning som beskriver de viktigaste samtalspunkterna för sidans innehåll.

Det här är till exempel rubrikstrukturen för den här artikeln:

  1. Betydelsen av rubriknivåer för hjälpteknik
    1. Cognition
    2. Navigera via rubrik
      1. Generera listor med rubriker
      2. Första nivåns rubriker
        1. Den (icke existerande) dokumentutskriftsalgoritmen
      3. Andra rubriker
      4. Over beskrivande
      5. Andra tjänster
    3. styling
      1. Semantik
      2. Praktiskhet
        1. Utility Styles
        2. Återställa
      3. Namngivning
    4. Förpackning: Ta en stund

Genom att läsa igenom den här listan kan du snabbt avgöra vad den här artikeln handlar om. Ganska snyggt, va?

Det andra som är värt att påpeka är att rubrikerna - ungefär som hierarkiska format som JSON-kan nestas inuti andra rubriker, förutsatt att de fortskrider logiskt. Inom en rubrik på andra nivån kan du använda flera rubriker på tredje nivån. Vart och ett av dessa undernummer kan i sin tur innehålla rubriker på fjärde nivån.

När du är färdig med ett ämne kan du stänga dina kapslade rubriker. Det här är det enda stället där "hoppa" -nivåerna är acceptabla - du är klar att diskutera ett visst begrepp och återgå till ett mer allmänt ämne.

  1. h1 Historien om fransk bakverk
    1. h2 Viktiga stunder
      1. h3 1600-talet
        1. h4 Smördeg
        2. h4 Oublies
      2. h3 17th century
        1. h4 Folierad konditorivaror
        2. h4 Vispgrädde
          1. h5 Prinsen av Condés kock
      3. h3 18th century
        1. h4 Macarons
      4. h3 1800-talet
      5. h3 20-talet
    2. h2 Viktiga människor
      1. h3...

Detta exempel visar hur det är giltigt att ha en femte nivå rubrik (Prinsen av Condé kock) följt av en tredje nivå rubrik (18th century), så länge som överordnade rubriker är i sekventiell ordning. Hade en rubrik på tredje nivån föregånde rubriken på femte nivån, det skulle ha varit ogiltigt.

Over beskrivande

Att använda för många rubriker kan skapa en överväldigande upplevelse för en person som litar på en skärmsläsare att navigera. Det kan tyckas vara lite kontraintuitivt först, med tanke på att jag bara berättade hur viktiga rubrikerna är som navigationshjälpmedel.  

Tänk på det så här: mycket eftersom hur många visuella navigationsalternativ på en sida kan påverka en persons fokus och uppmärksamhet negativt, skapar för många rubriker "buller" som distraherar och förvirrar huvudpunkten du försöker förmedla.

Det finns ingen bestämd regel för hur många rubriker som är för många. Det beror helt på vad innehållet är och hur mycket av det är närvarande. Till exempel kan ett recept bara behöva namnet på maträtten, dess ingredienser och instruktioner, medan ett akademiskt papper kan kräva en mycket mer nyanserad uppdelning.

Andra tjänster

En bra rubrikstruktur gynnar mer än bara personer som använder hjälpteknik. Eftersom rubrikerna har semantisk mening kan andra tjänster ansluta sig till denna programmatiska beskrivning av innehåll och omkontextualisera den på olika användarvänliga sätt. Till exempel, här är vad Bing-sökmotorn gör med väl konstruerade sidor:

Bing sökmotor resultat

I likhet med skärmsläsare genererar tjänster som Google Dokument och Dropbox Paper automatiskt en ordnad lista med rubriker så att du snabbt kan förstå och navigera i ett dokument. Många ordbehandlare kan också snabbt skapa en dynamiskt uppdaterad innehållsförteckning från rubriker, en annars tråkig och tidskrävande uppgift. Och tack vare HTML-kompatibiliteten kan vi till och med återskapa detta navigeringsbeteende som en webbläsareutvidgning!

styling

En sak som vi alltför ofta verkar glömma är att CSS-klasserna kan tillämpas på rubrikelement, precis som alla andra HTML-element som deklareras inuti kropp.

Semantik

Anledningen till att jag nämner detta är att rubrikelement används vanligtvis på grund av hur de se("Ooh! Jag gillar färgen och typsnittet av h3, Jag använder det. "), Och inte vilken prioritet av innehåll de beskriva (Brioche är en slags Viennoiserie). Det är ett utbrett problem.

I en idealiserad värld av akademisk renhet, skulle vi hedra den materiella ärligheten i rubrikelementen genom att dimensionera och utforma dem enligt den hierarki som de beskriver.

Men det här är den verkliga världen. Moderna webbplatser och webbapplikationer är komplicerade saker som bearbetas av många olika typer av människor, som alla har olika nivåer av erfarenhet, intresse, förtrogenhet och förmåga när de utformar och kodar.

Praktiskhet

Den verkliga världen kan kräva en rubrik på femte nivån som måste se ut som om det är en andra nivå, eller något helt nytt. I dessa situationer är det bättre att behålla den underliggande logiska sidstrukturen och ändra rubrikens visuella istället:

Expertvård till ett rimligt pris

Det är en trade-off, och ett erkännande att den verkliga världen är komplicerad. Detta tillvägagångssätt gynnar att bevara den viktiga delen: Intuitiv och effektiv navigering för hjälpteknik.

Utility Styles

Metoder som användarstilar möjliggör ett ännu mer flexibelt tillvägagångssätt för att tweakera en header's visuals:

Villkor

För detta exempel förklarar jag en serie små tweaks för att justera presentationen av rubriken tills jag får det önskade visuella utseendet. I allmänhet möter du Utility-stilar på större statliga webbplatser och webbapps, där klassens låga specificitet hjälper till att garantera konsekvens. 

Återställa

För att hjälpa till att förstärka användningen av ordentligt beställda och kapslade rubriker kan det till och med vara värt att använda en återställning av rubrikstil för att behålla alla rubriker utan att en klass som deklareras på dem ser likadant ut. 

h1, h2, h3, h4, h5, h6 färg: ärv; typsnittstorlek: 1em; linjehöjd: ärv; marginal: 0; vaddering: 0; vertikaljustering: baslinje; 

Detta är en liten defensiv design som bidrar till att uppmuntra att tänka på hur ett dokuments struktur är formad över hur det utseende. Det är tänkt att deklareras efter en importerad CSS-återställning, så den kan överväga återställnings åsikter. 

Namngivning

Det näst hårdaste problemet inom datavetenskap är namngivning av saker. Den första erkänner att du inte vet något. Jag antar inte att veta det bästa sättet att namnge rubrikklasser för din webbplats eller webbapp. Men om du använder ett icke-verktygsstilbaserat tillvägagångssätt, skulle jag rekommendera inte namnge dem .h1, .h2, .h3, etc. 

Problemet med detta tillvägagångssätt är personer som inte känner till kodbasen kan tolka dessa klassnamn som instruktioner som dikterar att de behöver matcha klassnamn med rubriknivå. Detta kommer att förstärka "hur det ser ut" över "vad det beskriver" problemet. 

Jag har också stött på situationer där det förstärker att det är acceptabelt att använda HTML annat än rubrikelement till rubriker för rubriker ("Ah, jag kan göra det här div ser ut som en h5!”). Inte bra!

Förpackning: Ta en stund

WebAIMs 2017 Screen Reader-undersökning säger också att missade eller felaktiga rubriker är ett av de tio mest problematiska problemen som upplevs av personer som är beroende av hjälpteknik för att navigera på webben. 

Detta är ett utbrett tillgänglighetsproblem med en enkel åtgärd. Ta lite tid att granska webbplatsens eller webbappsens sidor för att se om din rubrikstruktur beskriver sidan noggrant, och att den här beskrivningen följer en logisk ordning - det kan vara lika enkelt som att flytta några siffror runt!