# Lage tilgjengelige nettsider ![Alt om tilgjengelighet](../../../../translated_images/no/webdev101-a11y.8ef3025c858d897a.webp) > Sketchnote av [Tomomi Imura](https://twitter.com/girlie_mac) ```mermaid journey title Din Læringsreise i Tilgjengelighet section Grunnlag Forstå Brukere: 5: You Testverktøy: 4: You POUR Prinsipper: 5: You section Bygg Ferdigheter Semantisk HTML: 4: You Visuell Design: 5: You ARIA Teknikker: 4: You section Mestre Praksis Tastaturnavigasjon: 5: You Skjema Tilgjengelighet: 4: You Virkelighetstesting: 5: You ``` ## Quiz før forelesning [Quiz før forelesning](https://ff-quizzes.netlify.app/web/) > Kraften til nettet ligger i dets universalitet. Tilgang for alle, uavhengig av funksjonshemning, er en viktig del. > > \- Sir Timothy Berners-Lee, W3C-direktør og oppfinner av World Wide Web Her er noe som kanskje overrasker deg: når du bygger tilgjengelige nettsider, hjelper du ikke bare personer med funksjonsnedsettelser—du gjør faktisk nettet bedre for alle! Har du noen gang lagt merke til de lave kantsteinene i gatehjørner? De ble opprinnelig designet for rullestoler, men hjelper nå folk med barnevogner, leveringsarbeidere med traller, reisende med koffert på hjul og syklister også. Det er akkurat slik tilgjengelig nettdesign fungerer—løsninger som hjelper én gruppe, ender ofte opp med å gagne alle. Ganske kult, ikke sant? I denne leksjonen skal vi utforske hvordan lage nettsider som virkelig fungerer for alle, uansett hvordan de surfer på nettet. Du vil oppdage praktiske teknikker som allerede er innebygd i webstandarder, prøve testverktøy på egenhånd og se hvordan tilgjengelighet gjør sidene dine mer brukervennlige for alle brukere. Ved slutten av denne leksjonen vil du ha selvtilliten til å gjøre tilgjengelighet til en naturlig del av utviklingsarbeidet ditt. Klar til å utforske hvordan gjennomtenkte designvalg kan åpne nettet for milliarder av brukere? La oss sette i gang! ```mermaid mindmap root((Nettsted Tilgjengelighet)) Users Skjermlesere Tastaturnavigasjon Stemmestyring Forstørrelse Technologies HTML semantikk ARIA attributter CSS fokusindikatorer Tastaturhendelser Benefits Større publikum Bedre SEO Juridisk samsvar Universell utforming Testing Automatiserte verktøy Manuell testing Brukertilbakemelding Ekte hjelpemiddelteknologi ``` > Du kan ta denne leksjonen på [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/accessibility/?WT.mc_id=academic-77807-sagibbon)! ## Forstå hjelpeteknologier Før vi hopper inn i koding, la oss ta et øyeblikk for å forstå hvordan personer med ulike evner faktisk opplever nettet. Dette er ikke bare teori—forståelse av disse virkelige navigasjonsmønstrene vil gjøre deg til en mye bedre utvikler! Hjelpeteknologier er ganske fantastiske verktøy som hjelper personer med funksjonsnedsettelser å interagere med nettsider på måter som kan overraske deg. Når du blir kjent med hvordan disse teknologiene fungerer, blir det mye mer intuitivt å lage tilgjengelige nettopplevelser. Det er som å lære å se koden din gjennom andres øyne. ### Skjermlesere [Skjermlesere](https://en.wikipedia.org/wiki/Screen_reader) er ganske avanserte teknologier som omdanner digital tekst til tale eller punktskriftutgang. Selv om de først og fremst brukes av personer med synshemninger, er de også svært nyttige for brukere med lærevansker som dysleksi. Jeg liker å tenke på en skjermleser som å ha en veldig smart forteller som leser en bok for deg. Den leser innhold høyt i en logisk rekkefølge, kunngjør interaktive elementer som "knapp" eller "lenke", og gir hurtigtaster for å hoppe rundt på en side. Men her er greia—skjermlesere kan bare jobbe sin magi hvis vi bygger nettsider med riktig struktur og meningsfullt innhold. Det er her du som utvikler kommer inn! **Populære skjermlesere på ulike plattformer:** - **Windows**: [NVDA](https://www.nvaccess.org/about-nvda/) (gratis og mest populær), [JAWS](https://webaim.org/articles/jaws/), [Narrator](https://support.microsoft.com/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1/?WT.mc_id=academic-77807-sagibbon) (innebygd) - **macOS/iOS**: [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) (innebygd og svært kapabel) - **Android**: [TalkBack](https://support.google.com/accessibility/android/answer/6283677) (innebygd) - **Linux**: [Orca](https://wiki.gnome.org/Projects/Orca) (gratis og åpen kildekode) **Hvordan skjermlesere navigerer nettpresentasjoner:** Skjermlesere tilbyr flere navigasjonsmetoder som gjør surfing effektivt for erfarne brukere: - **Sekvensiell lesing**: Leser innhold fra topp til bunn, som å følge en bok - **Landmark-navigasjon**: Hopper mellom seksjoner på siden (header, nav, main, footer) - **Overskriftsnavigasjon**: Hopper mellom overskrifter for å forstå sidestruktur - **Lenkelister**: Genererer en liste over alle lenker for rask tilgang - **Skjemakontroller**: Navigerer direkte mellom inputfelter og knapper > 💡 **Her er noe som blåste meg av banen**: 68 % av skjermleserbrukere navigerer hovedsakelig med overskrifter ([WebAIM Survey](https://webaim.org/projects/screenreadersurvey9/#finding)). Det betyr at overskriftsstrukturen din er som et veikart for brukerne—når den er riktig, hjelper du folk å finne veien i innholdet ditt raskere! ### Bygge din testarbeidsflyt Her er noen gode nyheter—effektiv tilgjengelighetstesting trenger ikke være overveldende! Du vil kombinere automatiserte verktøy (de er fantastiske til å oppdage åpenbare feil) med noe praktisk testing. Her er en systematisk tilnærming jeg har funnet fanger de fleste problemer uten å spise opp hele dagen din: **Viktig manuell test-arbeidsflyt:** ```mermaid flowchart TD A[🚀 Start testing] --> B{⌨️ Tastaturnavigasjon} B --> C[Tabb gjennom alle interaktive elementer] C --> D{🎧 Skjermlesertesting} D --> E[Test med NVDA/VoiceOver] E --> F{🔍 Zoomtesting} F --> G[Zoom til 200 % og test funksjonalitet] G --> H{🎨 Farge-/kontrastsjekk} H --> I[Verifiser at all tekst oppfyller kontrastratioer] I --> J{👁️ Fokushåndtering} J --> K[Sørg for at fokusindikatorer er synlige] K --> L[✅ Testing fullført] style A fill:#e3f2fd style L fill:#e8f5e8 style B fill:#fff3e0 style D fill:#f3e5f5 style F fill:#e0f2f1 style H fill:#fce4ec style J fill:#e8eaf6 ``` **Trinn-for-trinn test-sjekkliste:** 1. **Tastaturnavigasjon**: Bruk bare Tab, Shift+Tab, Enter, Space og piltaster 2. **Skjermlesertesting**: Slå på NVDA, VoiceOver eller Narrator og naviger med øynene lukket 3. **Zoom-testing**: Test med 200 % og 400 % zoomnivåer 4. **Fargkontrastverifisering**: Sjekk all tekst og brukergrensesnittelementer 5. **Test fokusindikatorer**: Sørg for at alle interaktive elementer har synlige fokus-tilstander ✅ **Start med Lighthouse**: Åpne nettleserens Utviklerverktøy, kjør en Lighthouse-tilgjengelighetsrevisjon, og bruk resultatene til å guide fokuset i den manuelle testingen din. ### Zoom- og forstørrelsesverktøy Vet du hvordan du noen ganger kniper for å zoome på telefonen når teksten er for liten, eller myser på laptopskjermen i sterkt sollys? Mange brukere er avhengige av forstørrelsesverktøy for å gjøre innhold lesbart hver eneste dag. Dette inkluderer personer med nedsatt syn, eldre, og alle som noen gang har prøvd å lese en nettside ute i friluft. Moderne zoomteknologier har utviklet seg utover å bare gjøre ting større. Å forstå hvordan disse verktøyene fungerer vil hjelpe deg å lage responsive design som forblir funksjonelle og attraktive på alle forstørrelsesnivåer. **Moderne nettleserzoom-funksjoner:** - **Sidezoom**: Skalerer alt innhold proporsjonalt (tekst, bilder, layout) – dette er den foretrukne metoden - **Zoom kun på tekst**: Øker fontstørrelse mens original layout bevares - **Knip-til-zoom**: Mobilgest for midlertidig forstørrelse - **Nettleserstøtte**: Alle moderne nettlesere støtter zoom opptil 500 % uten å bryte funksjonalitet **Spesialisert forstørrelsesprogramvare:** - **Windows**: [Forstørrelsesglass](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198) (innebygd), [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) - **macOS/iOS**: [Zoom](https://www.apple.com/accessibility/mac/vision/) (innebygd med avanserte funksjoner) > ⚠️ **Designhensyn**: WCAG krever at innhold forblir funksjonelt ved 200 % zoom. På dette nivået skal horisontal rulling være minimal, og alle interaktive elementer må fortsatt være tilgjengelige. ✅ **Test ditt responsive design**: Zoom nettleseren til 200 % og 400 %. Tilpasser layouten seg elegant? Kan du fortsatt få tilgang til all funksjonalitet uten overdreven rulling? ## Moderne tilgjengelighetstestverktøy Nå som du forstår hvordan folk navigerer nettet med hjelpeteknologier, la oss utforske verktøy som hjelper deg å bygge og teste tilgjengelige nettsider. Tenk på det slik: automatiserte verktøy er gode til å fange åpenbare problemer (som manglende alt-tekst), mens praktisk testing hjelper deg å sikre at siden føles god å bruke i virkeligheten. Sammen gir de deg selvtillit på at nettsidene dine fungerer for alle. ### Fargkontrasttesting Her er noen gode nyheter: fargkontrast er en av de vanligste tilgjengelighetsutfordringene, men også en av de enkleste å fikse. God kontrast gagner alle—fra brukere med synsnedsettelser til folk som prøver å lese telefonen sin på stranden. **WCAG-kontrastkrav:** | Teksttype | WCAG AA (minimum) | WCAG AAA (forbedret) | |-----------|-------------------|---------------------| | **Normal tekst** (under 18 pt) | 4,5:1 kontrastforhold | 7:1 kontrastforhold | | **Stor tekst** (18 pt+ eller 14 pt+ fet) | 3:1 kontrastforhold | 4,5:1 kontrastforhold | | **UI-komponenter** (knapper, formularrammer) | 3:1 kontrastforhold | 3:1 kontrastforhold | **Essensielle testverktøy:** - [Colour Contrast Analyser](https://www.tpgi.com/color-contrast-checker/) – Skrivebordsapp med fargeplukker - [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) – Nettbasert med umiddelbar feedback - [Stark](https://www.getstark.co/) – Designverktøy-plugin for Figma, Sketch, Adobe XD - [Accessible Colors](https://accessible-colors.com/) – Finn tilgjengelige fargepaletter ✅ **Lag bedre fargepaletter**: Start med merkevarens farger og bruk kontrastkontrollere for å lage tilgjengelige varianter. Dokumenter disse som tilgjengelige fargetoner i designsystemet ditt. ### Omfattende tilgjengelighetsrevisjon Den mest effektive tilgjengelighetstesting kombinerer flere metoder. Ingen enkelt verktøy fanger opp alt, så ved å bygge en testrutine med forskjellige tilnærminger sikrer du grundig dekning. **Nettleserbasert testing (innebygd i DevTools):** - **Chrome/Edge**: Lighthouse-tilgjengelighetsrevisjon + tilgjengelighetspanel - **Firefox**: Tilgjengelighetsinspektør med detaljert trevisning - **Safari**: Revisjonsfane i Web Inspector med VoiceOver-simulering **Profesjonelle testutvidelser:** - [axe DevTools](https://www.deque.com/axe/devtools/) – Bransjestandard for automatisert testing - [WAVE](https://wave.webaim.org/extension/) – Visuell tilbakemelding med feilmelding - [Accessibility Insights](https://accessibilityinsights.io/) – Microsofts omfattende testsett **Kommando-linje og CI/CD-integrasjon:** - [axe-core](https://github.com/dequelabs/axe-core) – JavaScript-bibliotek for automatisert testing - [Pa11y](https://pa11y.org/) – Kommando-linje tilgjengelighetstestverktøy - [Lighthouse CI](https://github.com/GoogleChrome/lighthouse-ci) – Automatisert tilgjengelighetsscore > 🎯 **Testmål**: sikte på Lighthouse-tilgjengelighetsscore på 95+ som baseline. Husk at automatiserte verktøy kun fanger ca. 30-40 % av tilgjengelighetsproblemer—manuell testing er fortsatt essensielt! ### 🧠 **Testferdighets-sjekk: Klar for å finne problemer?** **La oss se hvordan du føler deg om tilgjengelighetstesting:** - Hvilken testmetode virker mest tilgjengelig for deg akkurat nå? - Kan du tenke deg å bruke bare tastaturnavigasjon en hel dag? - Hva er en tilgjengelighetsbarriere du personlig har opplevd på nettet? ```mermaid pie title "Tilgjengelighetsproblemer fanget opp av ulike metoder" "Automatiserte verktøy" : 35 "Manuell testing" : 40 "Bruker tilbakemelding" : 25 ``` > **Selvtillitsboost**: Profesjonelle tilgjengelighetstestere bruker akkurat denne kombinasjonen av metoder. Du lærer bransjestandard praksis! ## Bygge tilgjengelighet fra bunnen av Nøkkelen til suksess med tilgjengelighet er å bygge det inn i grunnlaget ditt fra dag én. Jeg vet det er fristende å tenke "jeg legger til tilgjengelighet senere", men det er som å prøve å legge til en rampe til et hus etter at det allerede er bygget. Mulig? Ja. Lett? Ikke akkurat. Tenk på tilgjengelighet som å planlegge et hus—det er mye enklere å inkludere rullestoltilgang i de opprinnelige arkitektplanene enn å lage tilpasninger i etterkant. ### POUR-prinsippene: Din tilgjengelighetsgrunnmur Retningslinjene for tilgjengelig webinnhold (WCAG) er bygget rundt fire grunnleggende prinsipper som staver ut POUR. Ikke bekymre deg—disse er ikke tørr, akademisk teori! De er praktiske retningslinjer for å lage innhold som fungerer for alle. Når du får taket på POUR, blir tilgjengelighetsvalg mye mer intuitive. Det er som å ha en mental sjekkliste som guider designvalgene dine. La oss bryte det ned: ```mermaid flowchart LR A[🔍 OPPLEVBART
Kan brukere sanse det?] --> B[🎮 BRUKBART
Kan brukere bruke det?] B --> C[📖 FORSTÅELIG
Kan brukere forstå det?] C --> D[💪 ROBUST
Fungerer det overalt?] A1[Alternativ tekst
Bildetekster
Kontrast] --> A B1[Tastaturtilgang
Ingen anfall
Tidsbegrensninger] --> B C1[Klart språk
Forutsigbart
Feilhjelp] --> C D1[Gyldig kode
Kompatibel
Fremtidssikret] --> D style A fill:#e1f5fe style B fill:#e8f5e8 style C fill:#fff3e0 style D fill:#f3e5f5 ``` **🔍 Oppfattbart (Perceivable)**: Informasjon må kunne presenteres på måter brukerne kan oppfatte med sine tilgjengelige sanser - Gi tekstalternativer for ikke-tekstlig innhold (bilder, videoer, lyd) - Sørg for tilstrekkelig fargekontrast for all tekst og UI-komponenter - Tilby teksting og transkripsjoner for multimedia - Design innhold som forblir funksjonelt når det økes til 200 % - Bruk flere sansemessige kjennetegn (ikke bare farge) for å formidle informasjon **🎮 Opererbart (Operable)**: Alle grensesnittkomponenter må kunne betjenes med tilgjengelige inndata-metoder - Gjør all funksjonalitet tilgjengelig via tastaturnavigasjon - Gi brukerne nok tid til å lese og interagere med innhold - Unngå innhold som kan forårsake anfall eller balanseforstyrrelser - Hjelp brukerne å navigere effektivt med klar struktur og landemerker - Sørg for at interaktive elementer har tilstrekkelig målstørrelse (minst 44 px) **📖 Forståelig (Understandable)**: Informasjon og UI-operasjon må være klar og forståelig - Bruk klart, enkelt språk tilpasset målgruppen din - Sørg for at innhold opptrer og fungerer på forutsigbare, konsistente måter - Gi klare instruksjoner og feilmeldinger ved brukerinput - Hjelp brukerne å forstå og rette feil i skjemaer - Organiser innhold med logisk leserekkefølge og informasjonsstruktur **💪 Robust (Robust)**: Innhold må fungere pålitelig på tvers av ulike teknologier og hjelpeteknologier - **Bruk gyldig, semantisk HTML som grunnlag** - **Sørg for kompatibilitet med nåværende og fremtidige hjelpeteknologier** - **Følg webstandarder og beste praksis for markup** - **Test på tvers av forskjellige nettlesere, enheter og hjelpemidler** - **Strukturer innhold slik at det degraderer pent når avanserte funksjoner ikke støttes** ### 🎯 **POUR-prinsippene: Slik gjør du dem holdbare** **Rask refleksjon over grunnlaget:** - Kan du tenke deg en nettsidefunksjon som bryter hvert POUR-prinsipp? - Hvilket prinsipp føles mest naturlig for deg som utvikler? - Hvordan kan disse prinsippene forbedre design for alle, ikke bare brukere med funksjonsnedsettelser? ```mermaid quadrantChart title POUR prinsipper påvirkningsmatrise x-axis Lav innsats --> Høy innsats y-axis Lav påvirkning --> Høy påvirkning quadrant-1 Rask gevinst quadrant-2 Store prosjekter quadrant-3 Vurder senere quadrant-4 Strategisk fokus Alt Text: [0.2, 0.9] Color Contrast: [0.3, 0.8] Semantic HTML: [0.4, 0.9] Keyboard Nav: [0.6, 0.8] ARIA Complex: [0.8, 0.7] Screen Reader Testing: [0.7, 0.6] ``` > **Husk**: Start med forbedringer som gir stor effekt med liten innsats. Semantisk HTML og alternativ tekst gir deg den største tilgjengelighetsforbedringen med minst innsats! ## Lage tilgjengelig visuell design God visuell design og tilgjengelighet går hånd i hånd. Når du designer med tilgjengelighet i tankene, oppdager du ofte at disse begrensningene fører til renere, mer elegante løsninger som gagner alle brukere. La oss utforske hvordan vi kan skape visuelt tiltalende design som fungerer for alle, uavhengig av deres synsevne eller betingelsene de ser innholdet under. ### Farge- og visuelle tilgjengelighetsstrategier Farge er et kraftfullt kommunikasjonsmiddel, men den bør aldri være den eneste måten du formidler viktig informasjon på. Å designe utover farge skaper mer robuste, inkluderende opplevelser som fungerer i flere situasjoner. **Design for fargesynsvariasjoner:** Omtrent 8 % av menn og 0,5 % av kvinner har en form for fargesynsvariasjon (ofte kalt «fargeblindhet»). De vanligste typene er: - **Deuteranopi**: Vansker med å skille rødt og grønt - **Protanopi**: Rødt ser mer dempet ut - **Tritanopi**: Vansker med blått og gult (sjeldent) **Inkluderende fargestrategier:** ```css /* ❌ Bad: Using only color to indicate status */ .error { color: red; } .success { color: green; } /* ✅ Good: Color plus icons and context */ .error { color: #d32f2f; border-left: 4px solid #d32f2f; } .error::before { content: "⚠️"; margin-right: 8px; } .success { color: #2e7d32; border-left: 4px solid #2e7d32; } .success::before { content: "✅"; margin-right: 8px; } ``` **Utover grunnleggende kontrastkrav:** - Test fargevalgene dine med fargeblindhetssimulatorer - Bruk mønstre, teksturer eller former i tillegg til fargekoding - Sørg for at interaktive tilstander forblir gjenkjennelige uten farge - Tenk på hvordan designet ser ut i høykontrastmodus ✅ **Test fargetilgjengeligheten din**: Bruk verktøy som [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/) for å se hvordan siden din ser ut for brukere med ulike typer fargesyn. ### Fokusindikatorer og interaksjonsdesign Fokusindikatorer er det digitale ekvivalenten til en markør—de viser tastaturbrukere hvor de er på siden. Godt designede fokusindikatorer forbedrer opplevelsen for alle ved å gjøre interaksjoner tydelige og forutsigbare. **Beste praksis for moderne fokusindikatorer:** ```css /* Enhanced focus styles that work across browsers */ button:focus-visible { outline: 2px solid #0066cc; outline-offset: 2px; box-shadow: 0 0 0 4px rgba(0, 102, 204, 0.25); } /* Remove focus outline for mouse users, preserve for keyboard users */ button:focus:not(:focus-visible) { outline: none; } /* Focus-within for complex components */ .card:focus-within { box-shadow: 0 0 0 3px rgba(74, 144, 164, 0.5); border-color: #4A90A4; } /* Ensure focus indicators meet contrast requirements */ .custom-focus:focus-visible { outline: 3px solid #ffffff; outline-offset: 2px; box-shadow: 0 0 0 6px #000000; } ``` **Krav til fokusindikatorer:** - **Synlighet**: Må ha minst 3:1 kontrastforhold mot omkringliggende elementer - **Bredde**: Minimum 2px tykkelse rundt hele elementet - **Varighet**: Skal være synlig til fokus flyttes til et annet element - **Forskjell**: Må visuelt skille seg fra andre UI-tilstander > 💡 **Designtips**: Gode fokusindikatorer bruker ofte en kombinasjon av outline, boks-skygge og fargeendringer for å sikre synlighet mot ulike bakgrunner og kontekster. ✅ **Revider fokusindikatorer**: Naviger med Tab gjennom nettstedet ditt og noter hvilke elementer som har klare fokusindikatorer. Er noen vanskelige å se eller mangler helt? ### Semantisk HTML: Grunnlaget for tilgjengelighet Semantisk HTML er som å gi hjelpemidler et GPS-system for nettsiden din. Når du bruker riktige HTML-elementer for deres tiltenkte formål, gir du i praksis skjermlesere, tastatur og andre verktøy en detaljert veibeskrivelse som hjelper brukerne å navigere effektivt. Her er en analogi som virkelig traff meg: semantisk HTML er forskjellen på et godt organisert bibliotek med klare kategorier og hjelpsomme skilt versus et lager der bøkene ligger spredt tilfeldig. Begge steder har de samme bøkene, men hvor ville du helst prøve å finne noe? Akkurat! ```mermaid flowchart TD A[🏠 HTML-dokument] --> B[📰 topptekst] A --> C[🧭 navigasjon] A --> D[📄 hoveddel] A --> E[📋 bunntekst] B --> B1[h1: Nettstednavn
Logo & merkevare] C --> C1[ul: Navigasjon
Primære lenker] D --> D1[artikkel: Innhold
seksjon: Underseksjoner] D --> D2[sidefelt: Sidepanel
Relatert innhold] E --> E1[navigasjon: Bunntekstlenker
Opphavsrettsinformasjon] D1 --> D1a[h1: Sidetittel
h2: Hovedseksjoner
h3: Underseksjoner] style A fill:#e3f2fd style B fill:#e8f5e8 style C fill:#fff3e0 style D fill:#f3e5f5 style E fill:#e0f2f1 ``` **Byggeklosser for tilgjengelig sidestruktur:** ```html

Your Site Name

Article Title

Published on

First Section

Content that relates to this section...

Second Section

More related content...

``` **Hvorfor semantisk HTML transformerer tilgjengelighet:** | Semantisk element | Formål | Fordel for skjermleser | |------------------|---------|------------------------| | `
` | Side- eller seksjonsoverskrift | "Banner landemerke" – rask navigasjon til toppen | | `