# Tworzenie dostępnych stron internetowych

> Sketchnote autorstwa [Tomomi Imura](https://twitter.com/girlie_mac)
```mermaid
journey
title Twoja przygoda z nauką dostępności
section Podstawy
Zrozumienie użytkowników: 5: You
Narzędzia testowe: 4: You
Zasady POUR: 5: You
section Rozwijanie umiejętności
Semantyczny HTML: 4: You
Projektowanie wizualne: 5: You
Techniki ARIA: 4: You
section Opanowanie praktyki
Nawigacja za pomocą klawiatury: 5: You
Dostępność formularzy: 4: You
Testowanie w praktyce: 5: You
```
## Quiz przed wykładem
[Quiz przed wykładem](https://ff-quizzes.netlify.app/web/)
> Siła Internetu tkwi w jego uniwersalności. Dostęp dla wszystkich, bez względu na niepełnosprawność, jest kluczowym aspektem.
>
> \- Sir Timothy Berners-Lee, dyrektor W3C i wynalazca World Wide Web
Oto coś, co może Cię zaskoczyć: kiedy budujesz dostępne strony internetowe, nie tylko pomagasz osobom z niepełnosprawnościami — faktycznie sprawiasz, że internet staje się lepszy dla wszystkich!
Zauważyłeś kiedyś te obniżenia krawężników na rogach ulic? Zostały one pierwotnie zaprojektowane dla wózków inwalidzkich, ale teraz pomagają także osobom z wózkami dziecięcymi, kurierom z taczkami, podróżnym z walizkami na kółkach i rowerzystom. Tak właśnie działa dostępny design stron internetowych — rozwiązania pomagające jednej grupie często okazują się korzystne dla wszystkich. Fajne, prawda?
W tej lekcji zbadamy, jak tworzyć strony, które naprawdę działają dla wszystkich, bez względu na to, jak korzystają z internetu. Odkryjesz praktyczne techniki już zawarte w standardach sieciowych, przetestujesz narzędzia do testowania na żywo i zobaczysz, jak dostępność zwiększa użyteczność Twoich stron dla wszystkich użytkowników.
Pod koniec lekcji będziesz mieć pewność, że uczynienie dostępności naturalną częścią Twojego procesu programistycznego jest jak najbardziej możliwe. Gotowy, by odkryć, jak przemyślane decyzje projektowe mogą otworzyć internet dla miliardów użytkowników? Zaczynajmy!
```mermaid
mindmap
root((Dostępność stron internetowych))
Users
Screen readers
Keyboard navigation
Voice control
Magnification
Technologies
HTML semantics
ARIA attributes
CSS focus indicators
Keyboard events
Benefits
Szersza publiczność
Lepsze SEO
Zgodność z prawem
Projekt uniwersalny
Testing
Automatyczne narzędzia
Testowanie ręczne
Opinie użytkowników
Rzeczywiste technologie wspomagające
```
> Możesz odbyć tę lekcję na [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/accessibility/?WT.mc_id=academic-77807-sagibbon)!
## Zrozumienie technologii wspomagających
Zanim przejdziemy do kodowania, poświęćmy chwilę, aby zrozumieć, jak osoby o różnych zdolnościach faktycznie doświadczają internetu. To nie jest tylko teoria — zrozumienie tych rzeczywistych wzorców nawigacji uczyni Cię znacznie lepszym programistą!
Technologie wspomagające to naprawdę niesamowite narzędzia, które pomagają osobom z niepełnosprawnościami w interakcji ze stronami internetowymi w sposób, który może Cię zaskoczyć. Kiedy poznasz, jak działają te technologie, tworzenie dostępnych doświadczeń internetowych stanie się o wiele bardziej intuicyjne. To jak nauczyć się widzieć swój kod oczami kogoś innego.
### Czytniki ekranu
[Czytniki ekranu](https://en.wikipedia.org/wiki/Screen_reader) to dość zaawansowane technologicznie narzędzia, które zamieniają cyfrowy tekst na mowę lub notatki brajlowskie. Choć głównie używają ich osoby z wadami wzroku, są także bardzo pomocne dla użytkowników z trudnościami w uczeniu się, np. dysleksją.
Lubię myśleć o czytniku ekranu jak o bardzo inteligentnym narratorze czytającym Ci książkę. Czyta treść na głos w logicznym porządku, ogłasza elementy interaktywne takie jak „przycisk” czy „link” i zapewnia skróty klawiaturowe do przeskakiwania po stronie. Ale jest jedno „ale” — czytniki ekranu mogą działać cudownie tylko wtedy, gdy budujemy strony z odpowiednią strukturą i znaczącą zawartością. I tutaj przychodzisz Ty jako programista!
**Popularne czytniki ekranu na różnych platformach:**
- **Windows**: [NVDA](https://www.nvaccess.org/about-nvda/) (darmowy i najbardziej popularny), [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) (wbudowany)
- **macOS/iOS**: [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) (wbudowany i bardzo zaawansowany)
- **Android**: [TalkBack](https://support.google.com/accessibility/android/answer/6283677) (wbudowany)
- **Linux**: [Orca](https://wiki.gnome.org/Projects/Orca) (darmowy i open source)
**Jak czytniki ekranu nawigują po zawartości internetowej:**
Czytniki ekranu oferują wiele sposobów nawigacji, które czynią przeglądanie efektywnym dla doświadczonych użytkowników:
- **Czytanie sekwencyjne**: Czyta treść od góry do dołu, jak książkę
- **Nawigacja po punktach orientacyjnych**: Przeskoki między sekcjami strony (nagłówek, nawigacja, główny obszar, stopka)
- **Nawigacja po nagłówkach**: Przeskakiwanie między nagłówkami, by zrozumieć strukturę strony
- **Listy linków**: Generowanie listy wszystkich linków do szybkiego dostępu
- **Sterowanie formularzami**: Bezpośrednia nawigacja między polami formularza i przyciskami
> 💡 **Coś, co mnie zaskoczyło**: 68% użytkowników czytników ekranu nawigują przede wszystkim po nagłówkach ([WebAIM Survey](https://webaim.org/projects/screenreadersurvey9/#finding)). To oznacza, że Twoja struktura nagłówków to jak mapa drogowa dla użytkowników — kiedy robi się ją dobrze, dosłownie pomagasz ludziom szybciej odnaleźć to, czego szukają!
### Budowanie swojego procesu testowania
Dobra wiadomość — skuteczne testowanie dostępności nie musi być przytłaczające! Chcesz połączyć narzędzia automatyczne (świetne w wykrywaniu oczywistych problemów) z trochę testowania ręcznego. Oto systematyczne podejście, które przynosi największą skuteczność bez poświęcania całego dnia:
**Podstawowy manualny proces testowania:**
```mermaid
flowchart TD
A[🚀 Rozpocznij testowanie] --> B{⌨️ Nawigacja klawiaturą}
B --> C[Przechodź tabulatorem przez wszystkie elementy interaktywne]
C --> D{🎧 Testowanie czytnika ekranu}
D --> E[Przetestuj za pomocą NVDA/VoiceOver]
E --> F{🔍 Testowanie powiększenia}
F --> G[Powiększ do 200% i przetestuj funkcjonalność]
G --> H{🎨 Sprawdzenie koloru/kontrastu}
H --> I[Zweryfikuj, czy cały tekst spełnia współczynniki kontrastu]
I --> J{👁️ Zarządzanie fokusem}
J --> K[Upewnij się, że wskaźniki fokusu są widoczne]
K --> L[✅ Testowanie zakończone]
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
```
**Lista kontrolna krok po kroku:**
1. **Nawigacja klawiaturą**: Używaj wyłącznie Tab, Shift+Tab, Enter, Spacji i klawiszy strzałek
2. **Testowanie czytnikiem ekranu**: Włącz NVDA, VoiceOver lub Narratora i nawiguj z zamkniętymi oczami
3. **Testowanie powiększenia**: Testuj na poziomach 200% i 400%
4. **Weryfikacja kontrastu kolorów**: Sprawdź cały tekst i elementy UI
5. **Testowanie wskaźnika fokusa**: Upewnij się, że wszystkie elementy interaktywne mają widoczny stan fokusa
✅ **Zacznij od Lighthouse**: Otwórz narzędzia deweloperskie przeglądarki, uruchom audyt dostępności Lighthouse, a wyniki wykorzystaj, by skupić się na obszarach wymagających manualnego testowania.
### Narzędzia powiększające i zoom
Znasz to uczucie, gdy ściskasz ekran telefonu, by powiększyć tekst, bo jest zbyt mały, albo mrużysz oczy na ekran laptopa w ostrym słońcu? Wiele osób codziennie korzysta z narzędzi powiększających, aby uczynić treść czytelną. Dotyczy to osób z niskim wzrokiem, starszych dorosłych, a także tych, którzy kiedykolwiek próbowali czytać stronę na zewnątrz.
Nowoczesne technologie powiększania to coś więcej niż tylko powiększanie elementów. Zrozumienie, jak działają te narzędzia, pomoże Ci tworzyć responsywne projekty, które pozostaną funkcjonalne i estetyczne przy każdej wielkości powiększenia.
**Możliwości zoomu w nowoczesnych przeglądarkach:**
- **Zoom strony**: Skaluje całą zawartość proporcjonalnie (tekst, obrazy, układ) — to preferowana metoda
- **Zoom tylko tekstu**: Zwiększa rozmiar czcionki, zachowując oryginalny układ
- **Pinch-to-zoom**: Gest powiększania na urządzeniach mobilnych, tymczasowe powiększenie
- **Wsparcie przeglądarek**: Wszystkie nowoczesne przeglądarki obsługują zoom do 500% bez utraty funkcjonalności
**Specjalistyczne oprogramowanie powiększające:**
- **Windows**: [Lupa](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198) (wbudowana), [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/)
- **macOS/iOS**: [Zoom](https://www.apple.com/accessibility/mac/vision/) (wbudowany z zaawansowanymi funkcjami)
> ⚠️ **Wskazówka dot. projektowania**: WCAG wymaga, aby treść pozostała funkcjonalna przy powiększeniu do 200%. Na tym poziomie przewijanie poziome powinno być minimalne a wszystkie elementy interaktywne dostępne.
✅ **Testuj responsywność swojego projektu**: Powiększ przeglądarkę do 200% i 400%. Czy układ dostosowuje się płynnie? Czy nadal masz dostęp do wszystkich funkcji bez nadmiernego przewijania?
## Nowoczesne narzędzia do testowania dostępności
Teraz, gdy rozumiesz, jak ludzie nawigują po sieci za pomocą technologii wspomagających, przyjrzyjmy się narzędziom, które pomagają budować i testować dostępne strony.
Pomyśl o tym tak: narzędzia automatyczne świetnie wykrywają oczywiste błędy (np. brak tekstu alternatywnego), a testowanie ręczne pomaga Ci upewnić się, że serwis jest przyjemny i użyteczny w rzeczywistości. Razem dają pewność, że Twoje witryny działają dla wszystkich.
### Testowanie kontrastu kolorów
Dobra wiadomość: kontrast kolorów to jedno z najczęstszych problemów dostępności, ale też jedno z najłatwiejszych do naprawienia. Dobry kontrast sprzyja wszystkim — od osób z wadami wzroku po tych, którzy próbują czytać telefon na plaży.
**Wymagania WCAG dotyczące kontrastu:**
| Rodzaj tekstu | WCAG AA (minimum) | WCAG AAA (rozszerzone) |
|---------------|-------------------|-----------------------|
| **Tekst zwykły** (poniżej 18pt) | stosunek kontrastu 4.5:1 | stosunek kontrastu 7:1 |
| **Tekst duży** (18pt+ lub 14pt+ pogrubiony) | stosunek kontrastu 3:1 | stosunek kontrastu 4.5:1 |
| **Elementy UI** (przyciski, obramowania formularzy) | stosunek kontrastu 3:1 | stosunek kontrastu 3:1 |
**Podstawowe narzędzia do testowania:**
- [Colour Contrast Analyser](https://www.tpgi.com/color-contrast-checker/) - aplikacja desktopowa z narzędziem do wyboru kolorów
- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) - narzędzie webowe z natychmiastową informacją zwrotną
- [Stark](https://www.getstark.co/) - wtyczka do narzędzi projektowych Figma, Sketch, Adobe XD
- [Accessible Colors](https://accessible-colors.com/) - narzędzie do znajdowania dostępnych palet kolorów
✅ **Buduj lepsze palety kolorów**: Zacznij od kolorów Twojej marki i użyj narzędzi do sprawdzania kontrastu, aby tworzyć dostępne warianty. Dokumentuj je jako tokeny kolorów dostępnych w systemie projektowym.
### Kompleksowe audyty dostępności
Najskuteczniejsze testowanie dostępności łączy różnorodne metody. Żadne pojedyncze narzędzie nie wychwyci wszystkiego, dlatego budowanie rutyny testowej z wieloma podejściami gwarantuje pełne pokrycie.
**Testowanie w przeglądarce (wbudowane w DevTools):**
- **Chrome/Edge**: audyt dostępności Lighthouse + panel dostępności
- **Firefox**: Inspektor dostępności z szczegółowym widokiem drzewa
- **Safari**: karta audytu w Web Inspector z symulacją VoiceOver
**Profesjonalne rozszerzenia do testów:**
- [axe DevTools](https://www.deque.com/axe/devtools/) - branżowy standard testów automatycznych
- [WAVE](https://wave.webaim.org/extension/) - wizualne wskazówki z podświetleniem błędów
- [Accessibility Insights](https://accessibilityinsights.io/) - kompleksowy zestaw narzędzi Microsoftu
**Testy wiersza poleceń i integracja CI/CD:**
- [axe-core](https://github.com/dequelabs/axe-core) - biblioteka JavaScript do testów automatycznych
- [Pa11y](https://pa11y.org/) - narzędzie do testów dostępności z linii komend
- [Lighthouse CI](https://github.com/GoogleChrome/lighthouse-ci) - automatyczne oceny dostępności
> 🎯 **Cel testowania**: Dąż do wyniku 95+ w audycie dostępności Lighthouse jako bazy wyjściowej. Pamiętaj, że narzędzia automatyczne wykrywają tylko około 30-40% problemów — testy manualne są wciąż konieczne!
### 🧠 **Sprawdzenie umiejętności testowania: Gotowy znaleźć problemy?**
**Sprawdź, jak się czujesz względem testowania dostępności:**
- Która metoda testowania wydaje się teraz najbardziej przystępna?
- Czy wyobrażasz sobie korzystanie wyłącznie z klawiatury przez cały dzień?
- Jaka jest jedna bariera dostępności, której osobiście doświadczyłeś online?
```mermaid
pie title "Problemy z dostępnością wykryte różnymi metodami"
"Narzędzia automatyczne" : 35
"Testy manualne" : 40
"Opinie użytkowników" : 25
```
> **Zastrzyk pewności**: Profesjonalni testerzy dostępności używają dokładnie takiego zestawu metod. Uczysz się standardów branżowych!
## Budowanie dostępności od podstaw
Kluczem do sukcesu w dostępności jest wbudowanie jej w fundament od samego początku. Wiem, że kusi myśl „dodam dostępność później”, ale to tak, jakby próbować dobudować rampę do domu, który już stoi. Można? Tak. Łatwo? Niekoniecznie.
Pomyśl o dostępności jak o planowaniu domu — dużo łatwiej uwzględnić dostęp dla wózków inwalidzkich w pierwotnych planach architektonicznych niż poprawiać wszystko na późniejszym etapie.
### Zasady POUR: Twoje fundamenty dostępności
Wytyczne dotyczące dostępności treści internetowych (WCAG) opierają się na czterech podstawowych zasadach skróconych jako POUR. Nie martw się — to nie są sztywne, akademickie koncepcje! To praktyczne wytyczne, które pomagają tworzyć treści działające dla wszystkich.
Kiedy opanujesz zasady POUR, podejmowanie decyzji dotyczących dostępności będzie o wiele bardziej intuicyjne. To jak posiadanie mentalnej listy kontrolnej, która prowadzi Twoje wybory projektowe. Rozbijmy je:
```mermaid
flowchart LR
A[🔍 POSTRZEGALNE Czy użytkownicy mogą to wyczuć?] --> B[🎮 OBSŁUGIWALNE Czy użytkownicy mogą to używać?]
B --> C[📖 ZROZUMIAŁE Czy użytkownicy to pojmują?]
C --> D[💪 SOLIDNE Czy działa wszędzie?]
A1[Tekst alternatywny Napisy Kontrast] --> A
B1[Dostęp z klawiatury Brak napadów Limity czasowe] --> B
C1[Jasny język Przewidywalne Pomoc przy błędach] --> C
D1[Poprawny kod Zgodne Odporne na przyszłość] --> D
style A fill:#e1f5fe
style B fill:#e8f5e8
style C fill:#fff3e0
style D fill:#f3e5f5
```
**🔍 Postrzegalne**: Informacje muszą być przedstawione w sposób dostępny dla zmysłów użytkowników
- Zapewnij tekstowe alternatywy dla treści niebędących tekstem (obrazy, wideo, audio)
- Zapewnij wystarczający kontrast kolorów dla tekstu i elementów UI
- Udostępnij napisy i transkrypcje dla treści multimedialnych
- Projektuj treści, które pozostają funkcjonalne po powiększeniu do 200%
- Używaj wielu cech sensorycznych (nie tylko koloru) do przekazywania informacji
**🎮 Obsługiwalne**: Wszystkie komponenty interfejsu muszą być obsługiwane przez dostępne metody wprowadzania danych
- Umożliwiaj dostęp do całej funkcjonalności za pomocą klawiatury
- Zapewnij użytkownikom wystarczająco dużo czasu na czytanie i interakcję
- Unikaj treści mogących wywołać napady lub zawroty głowy
- Pomagaj użytkownikom nawigować efektywnie przez klarowną strukturę i punkty orientacyjne
- Zapewnij odpowiednie rozmiary celów interaktywnych (minimum 44px)
**📖 Zrozumiałe**: Informacje i obsługa interfejsu muszą być jasne i zrozumiałe
- Używaj jasnego, prostego języka dopasowanego do odbiorców
- Zapewnij, że treść pojawia się i działa w przewidywalny, spójny sposób
- Dostarczaj wyraźne instrukcje i komunikaty o błędach przy wprowadzaniu danych
- Pomagaj użytkownikom zrozumieć i poprawić błędy w formularzach
- Organizuj treści z logicznym porządkiem czytania i hierarchią informacji
**💪 Solidne**: Treści muszą działać niezawodnie na różnych technologiach i urządzeniach wspomagających
- **Używaj poprawnego, semantycznego HTML jako podstawy**
- **Zapewnij kompatybilność z obecnymi i przyszłymi technologiami wspomagającymi**
- **Stosuj standardy sieciowe i najlepsze praktyki dotyczące znaczników**
- **Testuj na różnych przeglądarkach, urządzeniach i narzędziach wspomagających**
- **Strukturyzuj treść tak, aby degradacja przebiegała łagodnie, gdy zaawansowane funkcje nie są obsługiwane**
### 🎯 **Sprawdzenie zasad POUR: Utrwalanie wiedzy**
**Szybka refleksja na temat fundamentów:**
- Czy potrafisz wymyślić funkcję strony internetowej, która nie spełnia którejkolwiek z zasad POUR?
- Która zasada wydaje Ci się najbardziej naturalna jako programiście?
- Jak te zasady mogą poprawić projektowanie dla wszystkich, nie tylko dla użytkowników z niepełnosprawnościami?
```mermaid
quadrantChart
title Macierz Wpływu Zasad POUR
x-axis Niski Wysiłek --> Wysoki Wysiłek
y-axis Niski Wpływ --> Wysoki Wpływ
quadrant-1 Szybkie Zyski
quadrant-2 Główne Projekty
quadrant-3 Rozważyć Później
quadrant-4 Skupienie Strategiczne
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]
```
> **Pamiętaj**: Zacznij od usprawnień o dużym wpływie i niskim nakładzie pracy. Semantyczny HTML i tekst alternatywny dają największy wzrost dostępności przy najmniejszym wysiłku!
## Tworzenie dostępnego designu wizualnego
Dobry design wizualny i dostępność idą w parze. Projektując z myślą o dostępności, często odkrywasz, że takie ograniczenia prowadzą do czystszych, bardziej eleganckich rozwiązań korzystnych dla wszystkich użytkowników.
Przyjrzyjmy się, jak tworzyć atrakcyjne wizualnie projekty, które sprawdzają się dla wszystkich, niezależnie od ich zdolności wzrokowych czy warunków przeglądania treści.
### Strategie dotyczące koloru i dostępności wizualnej
Kolor jest potężnym narzędziem komunikacji, ale nie powinien być jedynym sposobem przekazywania ważnych informacji. Projektowanie ponadkolorowe tworzy bardziej trwałe, inkluzywne doświadczenia działające w większej liczbie sytuacji.
**Projektuj z uwzględnieniem różnic w percepcji kolorów:**
Około 8% mężczyzn i 0,5% kobiet ma jakąś formę różnicy w widzeniu kolorów (często nazywanej „daltonizmem”). Najczęstsze typy to:
- **Deuteranopia**: trudności z rozróżnianiem czerwonego i zielonego
- **Protanopia**: czerwony wydaje się przygaszony
- **Tritanopia**: trudności z rozróżnianiem niebieskiego i żółtego (rzadkie)
**Inkluzywne strategie kolorystyczne:**
```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;
}
```
**Poza podstawowymi wymaganiami kontrastu:**
- Testuj dobór kolorów za pomocą symulatorów daltonizmu
- Używaj wzorów, tekstur lub kształtów obok kodowania kolorystycznego
- Zapewnij, że stany interaktywne pozostają rozróżnialne bez koloru
- Rozważ, jak Twój projekt wygląda w trybie wysokiego kontrastu
✅ **Przetestuj dostępność kolorów**: Korzystaj z narzędzi takich jak [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/), aby zobaczyć, jak Twoja strona wygląda dla użytkowników z różnymi rodzajami różnicy widzenia kolorów.
### Wskaźniki fokusu i projektowanie interakcji
Wskaźniki fokusu to cyfrowy odpowiednik kursora — pokazują użytkownikom klawiatury, gdzie się znajdują na stronie. Dobrze zaprojektowane wskaźniki fokusu poprawiają doświadczenie wszystkich, czyniąc interakcje jasnymi i przewidywalnymi.
**Nowoczesne najlepsze praktyki wskaźników fokusu:**
```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;
}
```
**Wymagania dotyczące wskaźników fokusu:**
- **Widoczność**: co najmniej 3:1 kontrast względem otoczenia
- **Szerokość**: minimalna grubość 2px dookoła całego elementu
- **Trwałość**: powinien pozostać widoczny do momentu zmiany fokusu
- **Rozróżnialność**: musi wizualnie różnić się od innych stanów UI
> 💡 **Wskazówka projektowa**: Świetne wskaźniki fokusu często korzystają z kombinacji obrysu, cienia pudełka i zmiany koloru, aby zapewnić widoczność na różnych tłach i w różnych kontekstach.
✅ **Przeprowadź audyt wskaźników fokusu**: Przechodź tabulatorem przez swoją stronę i zanotuj, które elementy mają wyraźne wskaźniki fokusu. Czy któryś jest trudny do zauważenia lub w ogóle go brak?
### Semantyczny HTML: fundament dostępności
Semantyczny HTML to jak podarowanie technologiom wspomagającym systemu GPS na Twojej stronie. Używając odpowiednich elementów HTML w ich zamierzonym celu, dostarczasz czytnikom ekranu, klawiaturom i innym narzędziom szczegółowej mapy ułatwiającej sprawną nawigację.
Oto analogia, która bardzo mi utkwiła: semantyczny HTML to różnica między dobrze zorganizowaną biblioteką z wyraźnymi kategoriami i pomocnymi znakami a magazynem, gdzie książki są porozrzucane losowo. Oba miejsca mają te same książki, ale w którym łatwiej byłoby Ci coś znaleźć? Dokładnie!
```mermaid
flowchart TD
A[🏠 Dokument HTML] --> B[📰 nagłówek]
A --> C[🧭 nawigacja]
A --> D[📄 główna]
A --> E[📋 stopka]
B --> B1[h1: Nazwa witryny Logo i branding]
C --> C1[ul: Nawigacja Linki główne]
D --> D1[artykuł: Treść sekcja: Podsekcje]
D --> D2[bok: Pasek boczny Powiązane treści]
E --> E1[na: Linki stopki Informacje o prawach autorskich]
D1 --> D1a[h1: Tytuł strony h2: Główne sekcje h3: Podsekcje]
style A fill:#e3f2fd
style B fill:#e8f5e8
style C fill:#fff3e0
style D fill:#f3e5f5
style E fill:#e0f2f1
```
**Budulec struktury dostępnej strony:**
```html
Your Site Name
Article Title
Published on
First Section
Content that relates to this section...
Second Section
More related content...
```
**Dlaczego semantyczny HTML zmienia dostępność:**
| Element semantyczny | Przeznaczenie | Korzyść dla czytnika ekranu |
|---------------------|---------------|-----------------------------|
| `` | Nagłówek strony lub sekcji | „Banner landmark” – szybka nawigacja na górę |
| `