Universell utforming

Løsningene våre skal være tilgjengelige og brukervennlige for alle

Generelt

Vi mennesker har et stort mangfold av ferdigheter, behov og ønsker. Behovene våre endrer seg også gjerne ut ifra situasjonen vi er i, omgivelsene rundt, dagsformen, alderen vår – og mye, mye mer.

Kundene våre bruker løsningene på mange forskjellige måter og med mange ulike hjelpemidler. Det er viktig at vi tenker på det når vi designer og utvikler produktene og tjenestene.

Noen har blant annet nedsatt syn, motorikk og bevegelighet, hørsel og kognisjon. Bufdir anslår at mellom 15% og 18% av befolkningen har det som defineres som nedsatt funksjonsevne, og Norges Blindeforbund anslår at mer enn 320 000 personer lever med synshemninger i Norge. De fleste av oss vil i løpet av livet oppleve en midlertidig funksjonsnedsettelse, for eksempel et brukket ben eller en annen skade som påvirker behovene våre.

Mange bruker hjelpemidler eller tilrettelagt programvare. Løsningene våre vil for eksempel brukes med både skjermlesere, tastaturnavigering, talegjenkjenning, skjermforstørring og forskjellige input-enheter.

Universell utforming handler om å lage løsningene på en måte som gjør at så mange som mulig kan bruke og ha glede av dem.

Bruk tydelig språk

Vi leser og prosesserer tekst ulikt. Tydelig språk er viktig for at alle skal kunne forstå informasjonen.

Bruk informativ og beskrivende tekst i knapper og lenker

Knapper og lenker bør ha tekst som gjør det enkelt å skjønne hvilken handling man utfører, eller hvor lenken peker.

Gjør

  • Informativ og beskrivende tekst i knapper

Unngå

  • Generisk, ukonkret tekst

Gjør

  • Informativ og beskrivende tekst i lenker

Unngå

  • Generisk, ukonkret tekst

Bruk informative og beskrivende overskrifter

Mange brukere navigerer fra overskrift til overskrift med skjermlesere og tastaturnavigering.

  • Overskrifter bør beskrive innholdet de representerer
  • Vær obs på overskriftsnivå – <h1> er sidetittel

Ta semantisk HTML til hjelp

Semantisk HTML tilbyr ekstra informasjon som kan gjøre innholdet lettere å forstå.

Eksempel

<abbr> brukes for å beskrive forkortelser.

<abbr title="November">Nov</abbr>

Tilby alternativer for ikke-tekstlig innhold

Noen brukere kan ikke se bilder eller høre lyd. Derfor er det viktig å tilby alternativer til innhold som ikke er ren tekst.

  • Videoer bør ha undertekst
  • Bilder bør ha en beskrivende og informativ alt-tekst
  • Unngå tekst i bilder - det blir ikke lest opp av skjermlesere

Vær visuelt tydelig

Løsningene bør være enkle å forstå, uten behov for forkunnskaper eller forklaring.

Bruk gjerne kjente mønstre og konvensjoner

Fokus på brukeropplevelse går hånd i hånd med universell utforming. Når vi bruker etablerte mønstre og konvensjoner som kundene kjenner igjen kan løsningene være intuitive selv om de er komplekse.

Sørg for god kontrast

Teksten må ha tilstrekkelig kontrast mot bakgrunnen for å gi god nok lesbarhet. WCAG 2.0 (nivå AA) krever at kontrastforholdet er minst på 4.5:1 for stor tekst og 3.0:1 for liten tekst. Det finnes mange verktøy for å sjekke kontrasten, for eksempel WebAIM Contrast Checker.

Husk også på kontrastforholdene når du designer og utvikler for dark mode.

Sett maks 80 tegn som tekstbredde

Det blir både lettere og mer effektivt å lese en tekst når tekstbredden er innenfor 80 tegn (inkludert mellomrom). Hvis tekstbredden går over dette, kan noen oppleve at det blir lettere å dette ut av teksten og tyngre å lese teksten.

Pass på at klikkflaten er stor nok

Klikkbare elementer bør være lette å treffe, blant annet for brukere med motoriske utfordringer og brukere som benytter seg av musemulering eller andre input-hjelpemidler.

  • Klikkbare elementer bør ha tilstrekkelig størrelse, ikke minst på mobilskjermer
  • Avstanden mellom klikkbare elementer bør være stor nok til at faren for å klikke feil reduseres
  • Radioknapper og sjekkbokser bør være tilknyttet et klikkbart <label>

Gi visuell feedback

Visuell feedback hjelper brukerne med å forstå hvordan brukergrensesnittet reagerer på handlingene deres.

  • :hover
  • :active
  • :focus

Ta høyde for skjermforstørring

Skjermforstørrere er et hjelpemiddel for personer som er svaksynte, som forstørrer skjermbildet i forskjellig grad. Løsningene våre bør kunne forstørres uten at det hindrer bruk.

  • Vær bevisst på hvordan whitespace påvirker opplevelsen i forstørret tilstand
  • Vær obs på avstanden mellom elementer som henger sammen, for eksempel <dt> og <dd> i description list

Husk at noen forstørrer teksten

Brukere skal kunne forstørre tekst inntil 200%, uten at det endrer grensesnittet på en sånn måte at det hindrer bruk.

  • Vær obs på overflow
  • Unngå hardkodet høyde på elementer der forstørret innhold tar opp mer plass enn containeren

Eksempel

Hardkodet høyde kan by på problemer ved tekstforstørring, spesielt i kombinasjon med overflow: hidden.

Kortnavn

Tittel

Subtext er grå

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Skriv semantisk HTML

Semantisk HTML hjelper både mennesker og maskiner med å forstå strukturen i websider.

Bruk tagger som beskriver innholdet

De aller fleste HTML-tagger har en semantisk betydning som beskriver dataene de inneholder. Det gjør det lettere å tolke både strukturen og innholdet for skjermlesere og andre hjelpemidler.

Eksempler

  • <nav> - Navigasjon
  • <address> - Kontaktinformasjon
  • <main> - Hovedinnhold på en side

MDN har en fullstendig liste over HTML-elementer og hvordan de brukes.

Bruk ikke-semantiske elementer kun til layout, eller beskriv de med ARIA-attributter

<div> og <span> er HTML-elementer som ikke har noen semantisk betydning. Derfor egner de seg til bruk som containere for andre HTML-elementer, men de kan også brukes som innholdscontainere i kombinasjon med ARIA-attributter som beskriver innholdet.

Bruk ARIA-attributter

WAI-ARIA tilbyr mange attributter som kan brukes for å gjøre innholdet mer tilgjengelig. For eksempel:

  • Widgeter som ikke har tilsvarende HTML-elementer
    • <div role=”tablist”>
  • Tilstand/state
    • aria-checked
    • aria-disabled
    • aria-expanded
  • Skjema
    • aria-required
    • aria-errormessage

Bruk semantiske HTML-tagger i stedet, om mulig

En del ARIA-attributter har samme betydning som semantiske HTML-elementer. I de tilfellene bør du velge HTML-elementene. For eksempel:

  • <main> fremfor <div role="main">
  • <button> fremfor <input role="button">

ARIA er grundig dokumentert hos MDN.

Vær obs på rekkefølgen på overskrifter

  • <h1> er sidetittel – bruk bare én <h1> på hver side
  • <h2> - <h6> er de resterende nivåene
  • Unngå å hoppe over nivåer

Gjør

  • Ranger overskrifter i riktig rekkefølge
<h1>Sidetittel</h1>   <h2>Nivå 2</h2>     <h3>Nivå 3</h3>   <h2>Nivå 2</h2>     <h3>Nivå 3</h3>     <h3>Nivå 3</h3>       <h4>Nivå 4</h4>

Unngå

  • Unngå å hoppe over overskriftsnivåer
<h1>Sidetittel</h1>   <h3>Nivå 3</h3>   <h3>Nivå 3</h3>     <h5>Nivå 5</h5>     <h5>Nivå 5</h5>   <h3>Nivå 3</h3>     <h6>Nivå 6</h6>

Lenker eller knapper?

  • Knapper utfører en funksjon
  • Lenker tar deg videre til en annen side

Bilder

  • Bruk en beskrivende og informativ alt-tekst
  • Bilder som brukes til ren dekorasjon kan ha tomt alt-attributtt
  • Unngå tekst i bilder

Nyttige verktøy

Browser-plugins, validering og andre automatiske verktøy kan gi verdifull informasjon underveis i utviklingen.