UX-design, brukertesting og universell utforming.
Ein teknisk perfekt applikasjon som er vanskeleg å bruke, har lite verdi. Brukaroppleving (UX - User Experience) handlar om å skape produkt som er intuitive, effektive og behagelege å bruke.
I dette kapittelet skal vi sjå på UX-prinsipp, heuristisk evaluering, brukartesting og tilgjenge. Dette er essensielt for å vurdere brukarvennlegheita i eigne og andre sine program.
1. Brukarkontroll og fridom
Brukarar gjer feil. Gi dei alltid ein utveg (angre/undo, avbryt, tilbake).
2. Konsistens
Like ting skal sjå like ut og fungere likt. Ikkje overrask brukaren.
3. Synlegheit av systemstatus
Hald brukaren informert (laster..., lagra!, feil oppstod).
4. Førebygging av feil
Design for å hindre feil før dei skjer (validering, stadfestingar).
5. Attkjenning framfor hugs
Ikkje krev at brukarar hugsar informasjon mellom skjermar. Vis alternativ synleg.
6. Fleksibilitet og effektivitet
Støtt både nybyrjarar (tydelege knappar) og ekspertar (snøggtastar).
7. Estetikk og minimalistisk design
Kvar ekstra informasjonsbit konkurrerer med relevant informasjon.
8. Tilgjenge
Design for alle, inkludert brukarar med funksjonsnedsetjingar.
// Ingen feedback når data sendes
button.addEventListener('click', async () => {
await sendData();
// Brukeren vet ikke om noe skjedde
});God: Tydeleg feedback
button.addEventListener('click', async () => {
button.disabled = true;
button.textContent = 'Sender...';
try {
await sendData();
button.textContent = 'Sendt!';
setTimeout(() => {
button.disabled = false;
button.textContent = 'Send';
}, 2000);
} catch (error) {
alert('Feil: ' + error.message);
button.disabled = false;
button.textContent = 'Send';
}
});Dårleg: Irreversible handlingar
<button onclick="slettAlt()">Slett</button>God: Stadfesting før farlege handlingar
function slettMedBekreftelse() {
if (confirm('Er du sikker på at du vil slette alt? Dette kan ikke angres.')) {
slettAlt();
}
}Dårleg: Inkonsistent navigasjon
Tilbake-knapp øvst venstre på nokre sider, nedst høgre på andre.
God: Konsistent plassering
Same navigasjonsstruktur på alle sider.
Nielsens 10 heuristikkar:
1. Synlegheit av systemstatus
2. Match mellom system og verkeleg verd
3. Brukarkontroll og fridom
4. Konsistens og standardar
5. Førebygging av feil
6. Attkjenning framfor hugs
7. Fleksibilitet og effektivitet
8. Estetikk og minimalistisk design
9. Hjelp brukarar å kjenne att, diagnostisere og fikse feil
10. Hjelp og dokumentasjon
Prosess:
1. Evaluer kvar side/funksjon mot heuristikkane
2. Noter brot på heuristikkar
3. Vurder alvorsgrad (0-4)
4. Prioriter og fiks problem
Fordelar:
- Rask og billeg
- Finn mange problem
- Kan gjerast tidleg i utviklinga
Ulemper:
- Finn ikkje alle problem ekte brukarar har
- Krev erfarne evaluatorar
HTML:
<form>
<input type="text" name="user">
<input type="text" name="pass">
<button>OK</button>
</form>Problem funne:
1. Brot på heuristikk #9 (Feilmeldingar):
- Inga validering eller feilmeldingar
- Alvorsgrad: 3/4 (stor)
- Forslag: Vis tydelege feilmeldingar
2. Brot på heuristikk #2 (Match verkelegheit):
- Input-felt manglar labels (kva skal skrivast inn?)
- Knapp seier berre "OK" (ikkje skildrande)
- Alvorsgrad: 3/4
- Forslag: Legg til labels og tydeleg knapp-tekst
3. Brot på heuristikk #5 (Førebygging):
- Passord-felt er type="text", ikkje type="password"
- Alvorsgrad: 4/4 (kritisk tryggleiksproblem)
- Forslag: Bruk rett input-type
Forbetra versjon:
<form id="loginForm">
<label for="brukernavn">Brukernavn:</label>
<input type="text" id="brukernavn" name="brukernavn" required>
<label for="passord">Passord:</label>
<input type="password" id="passord" name="passord" required>
<button type="submit">Logg inn</button>
<div id="feilmelding" style="color:red;"></div>
</form>Typar brukartesting:
1. Moderert testing
- Ein moderator er til stades
- Brukaren "tenkjer høgt" medan dei utfører oppgåver
- Moderator kan stille oppfølgingsspørsmål
2. Umoderert testing
- Brukaren testar åleine (ofte heimanfrå)
- Opptak av skjerm og lyd
- Billegare og når fleire brukarar
3. A/B-testing
- To versjonar av same funksjon
- Måle kva for ein som gir best resultat
- Datadriven avgjerd
Prosess for moderert test:
1. Definer mål: Kva vil du teste?
2. Lag oppgåver: "Finn og kjøp ein laptop under 10 000 kr"
3. Rekrutter brukarar: 5-8 brukarar (Nielsen: 5 brukarar finn 85% av problem)
4. Gjennomfør test: Observer, ta notat
5. Analyser: Identifiser mønster og problem
6. Implementer forbetringar
Nøkkelspørsmål:
- Kor lang tid tok oppgåva?
- Kor mange feil gjorde brukaren?
- Kor nøgd var brukaren (subjektivt)?
- Fullførte dei oppgåva?
Oppgåve til brukar:
"Du skal kjøpe ei bok til 299 kr. Legg ho i handlekorga og fullfør kjøpet. Tenk høgt medan du gjer det."
Observasjonar:
Brukar 1 (Kari, 28 år):
- Fann "Legg i kurv"-knappen straks (00:05)
- Usikker på om produktet vart lagt til (manglande feedback)
- Leita etter handlekorg-ikon i 12 sekund
- Klikka "Kjøp nå" ved eit uhell, ville berre sjå korga
- Kommentar: "Eg vil berre sjå kva som ligg i korga utan å kjøpe no"
Brukar 2 (Ola, 45 år):
- Klikka "Legg i kurv" (00:08)
- Sa høgt: "Skjedde det noko? Eg veit ikkje om det fungerte"
- Scrolla ned for å leite etter korg
- Gav opp etter 20 sekund, klikka på logo for å starte på nytt
Identifiserte problem:
1. Inga visuell feedback når produkt blir lagt i korg (kritisk)
2. Handlekorg-ikon er vanskeleg å finne
3. Forvirrande knappar ("Kjøp nå" vs "Se kurv")
Tilrådde forbetringar:
// Vis tydelig feedback når produkt legges til
function leggIKurv(produkt) {
// Legg til i kurv
handlekurv.push(produkt);
// Vis toast-melding
visMelding(`${produkt.navn} lagt i handlekurven!`);
// Oppdater antall i kurv-ikon
oppdaterKurvAntall();
// Animasjon på kurv-ikon
kurvIkon.classList.add('bounce');
}WCAG (Web Content Accessibility Guidelines) har fire prinsipp (POUR):
1. Perceivable (Oppfattbar)
- Alternativ tekst for bilete (alt-attributt)
- Undertekstar for video
- Fargekontrast (minst 4.5:1 for normal tekst)
2. Operable (Anvendbar)
- Tastaturnavigasjon (alt tilgjengeleg utan mus)
- Ingen tidsgrenser brukaren ikkje kan kontrollere
- Unngå blinkande innhald (kan utløyse epilepsi)
3. Understandable (Forståeleg)
- Klart språk
- Føreseieleg navigasjon
- Hjelp ved feilinput
4. Robust
- Fungerer med hjelpemiddelteknologi (skjermlesarar)
- Semantisk HTML
Lovkrav:
I Noreg er offentlege nettsider lovpålagde å følgje WCAG 2.1 nivå Å.
<div onclick="submit()">Send</div>
<img src="logo.png">
<span style="color: #777; background: #999;">Viktig melding</span>Problem:
- <div> som knapp - ikkje tastaturnavigasjon, ingen semantikk
- Bilete utan alt-tekst - skjermlesarar veit ikkje kva det er
- Dårleg fargekontrast - vanskeleg å lese
God - Tilgjengeleg:
<button type="submit" onclick="submit()">Send skjema</button>
<img src="logo.png" alt="Firmaets logo">
<p style="color: #000; background: #fff;" role="alert" aria-live="polite">
Viktig melding
</p>Tastaturnavigasjon:
<nav>
<a href="#hovedinnhold">Hopp til hovedinnhold</a>
</nav>
<main id="hovedinnhold" tabindex="-1">
<!-- Innhold -->
</main>ARIA-attributt (for skjermlesarar):
<!-- Ekspanderbar seksjon -->
<button
aria-expanded="false"
aria-controls="innhold"
onclick="toggle()">
Vis mer
</button>
<div id="innhold" hidden>
Skjult innhold...
</div>
<!-- Loading-indikator -->
<div role="status" aria-live="polite">
<span aria-busy="true">Laster data...</span>
</div>Test tilgjenge:
- Prøv å navigere med berre TAB-tasten
- Slå av CSS - er innhaldet framleis forståeleg?
- Bruk skjermlesar (NVDA for Windows, VoiceOver for Mac)
- Bruk verktøy som Lighthouse i Chrome DevTools
No skal du løyse oppgåver om brukaroppleving, heuristisk evaluering, brukartesting og tilgjenge.
Oppsummering
I dette kapittelet har du lært:
- Brukaroppleving (UX): god vs. dårleg design.
- Heuristisk evaluering: vurdere mot anerkjende prinsipp.
- Brukartesting: teste løysinga med ekte brukarar.
- Tilgjenge: kodeeksempel for universell utforming.
Nøkkelomgrep
| Omgrep | Forklaring |
|---|---|
| UX | Brukaroppleving |
| Heuristisk evaluering | Vurdering mot anerkjende designprinsipp |
| Brukartesting | Testing med ekte brukarar |
Oppgaver
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.