# Skapa tillgängliga webbsidor ![Allt om tillgänglighet](../../../../translated_images/sv/webdev101-a11y.8ef3025c858d897a.webp) > Sketchnote av [Tomomi Imura](https://twitter.com/girlie_mac) ```mermaid journey title Din Tillgänglighetsläranderesa section Grundläggande Förstå Användare: 5: You Testverktyg: 4: You POUR Principer: 5: You section Bygg Färdigheter Semantisk HTML: 4: You Visuell Design: 5: You ARIA Tekniker: 4: You section Mästare Praktik Tangentbordsnavigering: 5: You Formulärtillgänglighet: 4: You Verklighetstestad: 5: You ``` ## Förföreläsningsquiz [Förföreläsningsquiz](https://ff-quizzes.netlify.app/web/) > Webben kraft ligger i dess universalitet. Tillgång för alla oavsett funktionsnedsättning är en grundläggande aspekt. > > \- Sir Timothy Berners-Lee, W3Cs chef och uppfinnare av World Wide Web Här är något som kanske överraskar dig: när du bygger tillgängliga webbplatser hjälper du inte bara personer med funktionsnedsättningar – du gör faktiskt webben bättre för alla! Har du någonsin lagt märke till de där trottoarkantsnedsättningarna vid gatuhörn? De designades ursprungligen för rullstolar, men nu hjälper de personer med barnvagnar, leveransarbetare med kärror, resenärer med rullande bagage och även cyklister. Det är precis så tillgänglig webbdesign fungerar – lösningar som hjälper en grupp gynnar ofta alla. Ganska häftigt, eller hur? I denna lektion kommer vi att utforska hur man skapar webbplatser som verkligen fungerar för alla, oavsett hur de surfar på webben. Du kommer att upptäcka praktiska tekniker som redan finns inbyggda i webbstandarder, göra praktiska tester med hjälp av testverktyg och se hur tillgänglighet gör dina sidor mer användarvänliga för alla användare. I slutet av denna lektion kommer du att ha förtroendet att göra tillgänglighet till en naturlig del av din utvecklingsprocess. Redo att utforska hur genomtänkta designval kan öppna webben för miljarder användare? Låt oss sätta igång! ```mermaid mindmap root((Webbtillgänglighet)) Users Skärmläsare Tangentbordsnavigering Röststyrning Förstoring Technologies HTML-semantik ARIA-attribut CSS fokusindikatorer Tangentbordsinteraktioner Benefits Bredare publik Bättre SEO Juridisk efterlevnad Universell design Testing Automatiserade verktyg Manuella tester Användarfeedback Verklig hjälptech ``` > Du kan ta denna lektion på [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/accessibility/?WT.mc_id=academic-77807-sagibbon)! ## Förståelse för hjälpmedelsteknologier Innan vi hoppar in i kodningen, låt oss ta en stund för att förstå hur personer med olika förmågor faktiskt upplever webben. Detta är inte bara teori – att förstå dessa verkliga navigationsmönster gör dig till en mycket bättre utvecklare! Hjälpmedelsteknologier är ganska fantastiska verktyg som hjälper personer med funktionsnedsättningar att interagera med webbplatser på sätt som kan överraska dig. När du väl behärskar hur dessa teknologier fungerar blir det mycket mer intuitivt att skapa tillgängliga webbupplevelser. Det är som att lära sig se sin kod genom någon annans ögon. ### Skärmläsare [Skärmläsare](https://en.wikipedia.org/wiki/Screen_reader) är ganska sofistikerade tekniklösningar som omvandlar digital text till tal eller punktskrift. Även om de främst används av personer med synnedsättning är de också väldigt hjälpsamma för användare med inlärningssvårigheter som dyslexi. Jag gillar att tänka på en skärmläsare som en riktigt smart berättare som läser en bok för dig. Den läser innehåll högt i en logisk ordning, meddelar interaktiva element som "knapp" eller "länk" och erbjuder kortkommandon för att hoppa runt på en sida. Men här är grejen – skärmläsare kan bara göra sitt magiska jobb om vi bygger webbplatser med korrekt struktur och meningsfullt innehåll. Där kommer du in som utvecklare! **Populära skärmläsare över plattformar:** - **Windows**: [NVDA](https://www.nvaccess.org/about-nvda/) (gratis och 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) (inbyggd) - **macOS/iOS**: [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) (inbyggd och mycket kapabel) - **Android**: [TalkBack](https://support.google.com/accessibility/android/answer/6283677) (inbyggd) - **Linux**: [Orca](https://wiki.gnome.org/Projects/Orca) (gratis och öppen källkod) **Hur skärmläsare navigerar webbinnehåll:** Skärmläsare erbjuder flera navigeringsmetoder som gör surfandet effektivt för erfarna användare: - **Sekventiell läsning**: Läser innehållet uppifrån och ner, som att följa en bok - **Landmark-navigering**: Hoppar mellan sidans sektioner (huvud, nav, main, sidfot) - **Rubriknavigering**: Hoppar mellan rubriker för att förstå sidans struktur - **Länklistor**: Genererar en lista över alla länkar för snabb åtkomst - **Formulärkontroller**: Navigerar direkt mellan inmatningsfält och knappar > 💡 **Det här öppnade mina ögon**: 68% av skärmläsaranvändare navigerar främst via rubriker ([WebAIM Survey](https://webaim.org/projects/screenreadersurvey9/#finding)). Det betyder att din rubrikstruktur är som en karta för användarna – när du får den rätt hjälper du bokstavligen folk att hitta runt i ditt innehåll snabbare! ### Bygg din testarbetsflöde Här är goda nyheter – effektiv tillgänglighetstestning behöver inte vara överväldigande! Du vill kombinera automatiska verktyg (de är fantastiska på att hitta uppenbara problem) med praktisk testning. Här är en systematisk metod som jag har funnit fångar flest problem utan att ta upp hela din dag: **Väsentligt manuellt testarbetsflöde:** ```mermaid flowchart TD A[🚀 Starta Testning] --> B{⌨️ Tangentbordsnavigering} B --> C[Tabba genom alla interaktiva element] C --> D{🎧 Skärmläsartestning} D --> E[Testa med NVDA/VoiceOver] E --> F{🔍 Zoomtestning} F --> G[Zooma till 200% och testa funktionaliteten] G --> H{🎨 Färg/Kontroll av kontrast} H --> I[Verifiera att all text uppfyller kontrastförhållanden] I --> J{👁️ Fokusförvaltning} J --> K[Säkerställ att fokuseringsindikatorer är synliga] K --> L[✅ Testning klar] 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 ``` **Checklista för steg-för-steg-testning:** 1. **Tangentbordsnavigering**: Använd endast Tab, Shift+Tab, Enter, Space och piltangenter 2. **Testa med skärmläsare**: Aktivera NVDA, VoiceOver eller Narrator och navigera med stängda ögon 3. **Zoomtest**: Testa vid 200 % och 400 % zoomnivåer 4. **Kontroll av färgkontrast**: Kontrollera all text och UI-komponenter 5. **Test av fokusindikator**: Säkerställ att alla interaktiva element har synliga fokusmarkeringar ✅ **Börja med Lighthouse**: Öppna din webbläsares DevTools, kör en Lighthouse accessibility audit och använd sedan resultaten för att styra din manuella testning. ### Zoom och förstoringverktyg Du vet hur du ibland nypzoomar på din telefon när texten är för liten, eller kisar på din laptop i starkt solljus? Många användare förlitar sig dagligen på förstoringsverktyg för att göra innehållet läsbart. Det inkluderar personer med nedsatt syn, äldre och alla som någonsin försökt läsa en webbplats utomhus. Moderna zoomtekniker har utvecklats bortom att bara göra saker större. Att förstå hur dessa verktyg fungerar hjälper dig att skapa responsiva designer som förblir funktionella och attraktiva vid alla förstoringsnivåer. **Moderna webbläsares zoomfunktioner:** - **Sidzoom**: Skalar allt innehåll proportionellt (text, bilder, layout) – detta är den föredragna metoden - **Endast textzoom**: Ökar teckenstorleken samtidigt som originallayouten behålls - **Nyp-zoom**: Mobilgest för tillfällig förstorning - **Webbläsarstöd**: Alla moderna webbläsare stöder zoom upp till 500 % utan att bryta funktionalitet **Specialiserad förstoringsprogramvara:** - **Windows**: [Förstoringsglas](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198) (inbyggd), [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) - **macOS/iOS**: [Zoom](https://www.apple.com/accessibility/mac/vision/) (inbyggd med avancerade funktioner) > ⚠️ **Designövervägande**: WCAG kräver att innehåll förblir funktionellt vid 200 % zoom. Vid denna nivå bör horisontell scrollning vara minimal, och alla interaktiva element ska vara tillgängliga. ✅ **Testa din responsiva design**: Zooma din webbläsare till 200 % och 400 %. Anpassar sig din layout smidigt? Kan du fortfarande nå all funktionalitet utan alltför mycket scrollning? ## Moderna tillgänglighetstestverktyg Nu när du förstår hur människor navigerar webben med hjälpmedelsteknologier, låt oss utforska de verktyg som hjälper dig att bygga och testa tillgängliga webbplatser. Tänk så här: automatiska verktyg är bra på att hitta uppenbara problem (som saknad alt-text), medan praktiska tester hjälper dig att säkerställa att din sida känns bra att använda i verkligheten. Tillsammans ger de dig förtroende för att dina sidor fungerar för alla. ### Test av färgkontrast Här är goda nyheter: färgkontrast är ett av de vanligaste tillgänglighetsproblemen, men också ett av de enklaste att fixa. Bra kontrast gynnar alla – från användare med synnedsättning till personer som försöker läsa telefonen på stranden. **WCAG kontrastkrav:** | Texttyp | WCAG AA (Minimalt) | WCAG AAA (Förbättrat) | |---------|--------------------|----------------------| | **Normal text** (under 18pt) | 4.5:1 kontrastförhållande | 7:1 kontrastförhållande | | **Stor text** (18pt+ eller 14pt+ fetstil) | 3:1 kontrastförhållande | 4.5:1 kontrastförhållande | | **UI-komponenter** (knappar, formulärgränser) | 3:1 kontrastförhållande | 3:1 kontrastförhållande | **Nödvändiga testverktyg:** - [Colour Contrast Analyser](https://www.tpgi.com/color-contrast-checker/) – Skrivbordsapp med färgplockare - [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) – Webb-baserad med omedelbar återkoppling - [Stark](https://www.getstark.co/) – Designplugin för Figma, Sketch, Adobe XD - [Accessible Colors](https://accessible-colors.com/) – Hitta tillgängliga färgpaletter ✅ **Skapa bättre färgpaletter**: Börja med dina varumärkesfärger och använd kontrastkontroller för att skapa tillgängliga variationer. Dokumentera dessa som dina tillgängliga färgtokens i designsystemet. ### Omfattande tillgänglighetsrevision Den mest effektiva tillgänglighetstestningen kombinerar flera metoder. Inget enskilt verktyg fångar allt, så skapa en testvana med olika metoder för att säkerställa heltäckande analys. **Webbläsarbaserad testning (inbyggd i DevTools):** - **Chrome/Edge**: Lighthouse accessibility audit + Accessibility-panel - **Firefox**: Accessibility Inspector med detaljerad trädvy - **Safari**: Audit-flik i Web Inspector med VoiceOver-simulering **Professionella testtillägg:** - [axe DevTools](https://www.deque.com/axe/devtools/) – Industriell standard för automatisk testning - [WAVE](https://wave.webaim.org/extension/) – Visuell återkoppling med felmarkeringar - [Accessibility Insights](https://accessibilityinsights.io/) – Microsofts omfattande testsuite **Kommando-rads- och CI/CD-integration:** - [axe-core](https://github.com/dequelabs/axe-core) – JavaScript-bibliotek för automatiserad testning - [Pa11y](https://pa11y.org/) – Kommandoradsverktyg för tillgänglighetstestning - [Lighthouse CI](https://github.com/GoogleChrome/lighthouse-ci) – Automatiserad tillgänglighetspoäng > 🎯 **Testmål**: Sikta på en Lighthouse-tillgänglighetspoäng på 95+ som din baslinje. Kom ihåg att automatiska verktyg bara hittar cirka 30–40 % av tillgänglighetsproblemen – manuell testning är fortfarande väsentlig! ### 🧠 **Testfärdigheter: Redo att hitta problem?** **Låt oss se hur du känner inför tillgänglighetstestning:** - Vilken testmetod verkar mest tillgänglig för dig just nu? - Kan du tänka dig att använda bara tangentbord för navigering en hel dag? - Vad är ett tillgänglighetshinder du personligen upplevt online? ```mermaid pie title "Tillgänglighetsproblem fångade av olika metoder" "Automatiserade verktyg" : 35 "Manuell testning" : 40 "Användarfeedback" : 25 ``` > **Självförtroendeboost**: Professionella tillgänglighetstestare använder denna exakta kombination av metoder. Du lär dig industristandardpraxis! ## Bygg tillgänglighet från grunden Nyckeln till framgång med tillgänglighet är att bygga in det i grunden från dag ett. Jag vet att det är frestande att tänka ”jag lägger till tillgänglighet senare,” men det är som att försöka lägga till en ramp till ett hus efter att det redan är byggt. Möjligt? Ja. Enkelt? Inte riktigt. Tänk på tillgänglighet som att planera ett hus – det är mycket lättare att inkludera rullstolstillgång i dina initiala arkitektplaner än att anpassa allt i efterhand. ### P-O-U-R-principerna: Din tillgänglighetsgrund Web Content Accessibility Guidelines (WCAG) bygger på fyra grundläggande principer som bildar förkortningen POUR. Oroa dig inte – detta är inte tråkiga akademiska begrepp! De är praktiska riktlinjer för att skapa innehåll som fungerar för alla. När du väl bekantar dig med POUR blir tillgänglighetsbeslut mycket mer intuitiva. Det är som en mental checklista som vägleder dina designval. Låt oss bryta ner det: ```mermaid flowchart LR A[🔍 UPPFATTBAR
Kan användare uppfatta det?] --> B[🎮 ANVÄNDBAR
Kan användare använda det?] B --> C[📖 FÖRSTÅELIG
Kan användare förstå det?] C --> D[💪 ROBUST
Fungerar det överallt?] A1[Alternativ text
Bildtexter
Kontrast] --> A B1[Tangentbordsåtkomst
Inga anfall
Tidsgränser] --> B C1[Klar språkbruk
Förutsägbar
Felhjälp] --> C D1[Giltig kod
Kompatibel
Framtidssäker] --> D style A fill:#e1f5fe style B fill:#e8f5e8 style C fill:#fff3e0 style D fill:#f3e5f5 ``` **🔍 Perceivable (Uppfattbart)**: Information måste kunna presenteras på sätt som användare kan uppfatta via sina tillgängliga sinnen - Ge textalternativ för icke-textinnehåll (bilder, videor, ljud) - Säkerställ tillräcklig färgkontrast för all text och UI-komponenter - Erbjud undertexter och transkript för multimediainnehåll - Designa innehåll som fungerar när det förstoras upp till 200 % - Använd flera sensoriska egenskaper (inte bara färg) för att förmedla information **🎮 Operable (Han­terbart)**: Alla gränssnittskomponenter måste kunna hanteras via tillgängliga inmatningsmetoder - Gör all funktionalitet tillgänglig via tangentbordsnavigering - Ge användare tillräckligt med tid att läsa och interagera med innehåll - Undvik innehåll som orsakar anfall eller vestibulära störningar - Hjälp användare navigera effektivt med klar struktur och landmärken - Säkerställ att interaktiva element har tillräckligt stora målytor (minst 44px) **📖 Understandable (Förståeligt)**: Information och gränssnittets funktion måste vara tydligt och begripligt - Använd klart, enkelt språk som är anpassat för din målgrupp - Säkerställ att innehållet visas och fungerar på förutsägbara, konsekventa sätt - Ge tydliga instruktioner och felmeddelanden vid användarinmatning - Hjälp användare att förstå och rätta till fel i formulär - Organisera innehållet med logisk läsordning och informationshierarki **💪 Robust (Robust)**: Innehåll måste fungera pålitligt över olika teknologier och hjälpmedel - **Använd giltig, semantisk HTML som grund** - **Säkra kompatibilitet med nuvarande och framtida hjälpmedelsteknologier** - **Följ webbstandarder och bästa praxis för markering** - **Testa i olika webbläsare, enheter och hjälpmedel** - **Strukturera innehållet så att det försämras gradvis när avancerade funktioner inte stöds** ### 🎯 **POUR-principernas Kontroll: Att Göra Det Hållbart** **Snabb reflektion över grunderna:** - Kan du tänka dig en webbplatsfunktion som bryter mot varje POUR-princip? - Vilken princip känns mest naturlig för dig som utvecklare? - Hur kan dessa principer förbättra designen för alla, inte bara för personer med funktionsnedsättningar? ```mermaid quadrantChart title POUR Principer Påverkan Matris x-axis Låg Ansträngning --> Hög Ansträngning y-axis Låg Påverkan --> Hög Påverkan quadrant-1 Snabba Vinster quadrant-2 Stora Projekt quadrant-3 Överväg Senare quadrant-4 Strategiskt 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] ``` > **Kom ihåg**: Börja med förbättringar som har stor effekt men kräver lite arbete. Semantisk HTML och alt-text ger dig den största tillgänglighetsboostern med minst ansträngning! ## Skapa Tillgänglig Visuell Design Bra visuell design och tillgänglighet går hand i hand. När du designar med tillgänglighet i åtanke upptäcker du ofta att dessa begränsningar leder till renare, mer eleganta lösningar som gagnar alla användare. Låt oss utforska hur man skapar visuellt tilltalande designer som fungerar för alla, oavsett deras visuella förmågor eller under vilka förhållanden de ser ditt innehåll. ### Färg och strategier för visuell tillgänglighet Färg är ett kraftfullt kommunikationsmedel, men det bör aldrig vara det enda sättet du förmedlar viktig information. Att designa bortom färg skapar mer robusta, inkluderande upplevelser som fungerar i fler situationer. **Designa för skillnader i färgseende:** Ungefär 8 % av män och 0,5 % av kvinnor har någon form av färgseendedifferentiering (ofta kallat "färgblindhet"). De vanligaste typerna är: - **Deuteranopi**: Svårighet att skilja rött från grönt - **Protanopi**: Rött framstår som mer dämpat - **Tritanopi**: Svårighet med blått och gult (ovanligt) **Inkluderande färgstrategier:** ```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; } ``` **Bortom grundläggande kontrastkrav:** - Testa dina färgval med simulatorer för färgblindhet - Använd mönster, texturer eller former tillsammans med färgkodning - Säkerställ att interaktiva tillstånd förblir urskiljbara utan färg - Tänk på hur din design ser ut i högkontrastläge ✅ **Testa din färgtillgänglighet**: Använd verktyg som [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/) för att se hur din webbplats ser ut för användare med olika typer av färgseende. ### Fokusindikatorer och interaktionsdesign Fokusindikatorer är den digitala motsvarigheten till en markör—de visar för tangentbordsanvändare var de befinner sig på sidan. Väl designade fokusindikatorer förbättrar upplevelsen för alla genom att göra interaktioner tydliga och förutsägbara. **Moderna bästa praxis för 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 på fokusindikatorer:** - **Synlighet**: Ska ha minst 3:1 kontrastförhållande mot omgivande element - **Bredd**: Minst 2px tjock runt hela elementet - **Beständighet**: Bör förbli synlig tills fokus flyttas någon annanstans - **Särskiljning**: Måste vara visuellt annorlunda än andra UI-tillstånd > 💡 **Designtips**: Bra fokusindikatorer använder ofta en kombination av kontur, box-skugga och färgändringar för att säkerställa synlighet över olika bakgrunder och kontexter. ✅ **Granska fokusindikatorer**: Tabba igenom din webbplats och notera vilka element som har tydliga fokusindikatorer. Är några svåra att se eller saknas helt? ### Semantisk HTML: Grunden för tillgänglighet Semantisk HTML är som att ge hjälpmedel ett GPS-system för din webbplats. När du använder rätt HTML-element för deras avsedda syfte ger du i princip skärmläsare, tangentbord och andra verktyg en detaljerad karta som hjälper användare att navigera effektivt. Här är en liknelse som verkligen fastnade för mig: semantisk HTML är skillnaden mellan ett välorganiserat bibliotek med tydliga kategorier och hjälpsamma skyltar versus ett lager där böcker är slumpmässigt utspridda. Båda ställena har samma böcker, men i vilket skulle du helst leta efter något? Precis! ```mermaid flowchart TD A[🏠 HTML-dokument] --> B[📰 sidhuvud] A --> C[🧭 navigering] A --> D[📄 huvud] A --> E[📋 sidfot] B --> B1[h1: Webbplatsnamn
Logotyp & varumärke] C --> C1[ul: Navigering
Primära länkar] D --> D1[artikel: Innehåll
sektion: Underavsnitt] D --> D2[aside: Sidospalt
Relaterat innehåll] E --> E1[nav: Sidfotslänkar
Copyright-information] D1 --> D1a[h1: Sidtitel
h2: Huvudsektioner
h3: Underavsnitt] style A fill:#e3f2fd style B fill:#e8f5e8 style C fill:#fff3e0 style D fill:#f3e5f5 style E fill:#e0f2f1 ``` **Byggstenar för tillgänglig sidstruktur:** ```html

Your Site Name

Article Title

Published on

First Section

Content that relates to this section...

Second Section

More related content...

``` **Varför semantisk HTML förändrar tillgängligheten:** | Semantiskt Element | Syfte | Fördel för Skärmläsare | |--------------------|--------|------------------------| | `
` | Sid- eller sektionshuvud | "Banner landmark" - snabb navigering till toppen | | `