# Prieinamų svetainių kūrimas

> Sketchnote autorius [Tomomi Imura](https://twitter.com/girlie_mac)
```mermaid
journey
title Jūsų prieinamumo mokymosi nuotykis
section Pagrindai
Vartotojų supratimas: 5: You
Testavimo įrankiai: 4: You
POUR principai: 5: You
section Įgūdžių įgijimas
Semantinis HTML: 4: You
Vizualus dizainas: 5: You
ARIA technikos: 4: You
section Meistriškumo praktika
Klaviatūros navigacija: 5: You
Formos prieinamumas: 4: You
Realus testavimas: 5: You
```
## Priešpaskaitinis testas
[Priešpaskaitinis testas](https://ff-quizzes.netlify.app/web/)
> Interneto galia slypi jo universaliyje. Prieinamumas visiems, nepaisant negalios, yra esminis aspektas.
>
> \- Seras Timothy Berners-Lee, W3C direktorius ir Pasaulinio interneto išradėjas
Štai kas gali jus nustebinti: kūrę prieinamas svetaines jūs ne tik padedate žmonėms su negalia — jūs iš tikrųjų darote internetą geresnį visiems!
Ar pastebėjote tas nuolaidas šaligatvių kampuose? Jos iš pradžių buvo skirtos neįgaliųjų vežimėliams, bet dabar padeda žmonėms su vaikų vežimėliais, pristatymo darbuotojams su vežimėliais, keliautojams su lagaminais ant ratukų ir dviratininkams. Būtent taip veikia prieinama interneto dizainas — sprendimai, padedantys vienai grupei, dažnai naudingi visiems. Gana šaunu, tiesa?
Šiame pamoke tyrinėsime, kaip sukurti svetaines, kurios iš tikrųjų veikia visiems, nesvarbu, kaip jie naršo internete. Nusiųsite praktiškus metodus, kurie jau įtraukti į interneto standartus, išbandysite testavimo įrankius ir pamatysite, kaip prieinamumas paverčia jūsų svetaines patogesnėmis visiems vartotojams.
Pamokos pabaigoje jūs turėsite pasitikėjimą, kad prieinamumas tampa natūralia jūsų kūrimo darbo dalimi. Pasiruošę sužinoti, kaip apgalvoti dizaino sprendimai gali atverti internetą milijardams vartotojų? Pradėkime!
```mermaid
mindmap
root((Tinklalapių prieinamumas))
Users
Screen readers
Klaviatūros naršymas
Balso valdymas
Didinimas
Technologies
HTML semantika
ARIA atributai
CSS fokusavimo indikatoriai
Klaviatūros įvykiai
Benefits
Platesnė auditorija
Geresnis SEO
Teisinis atitikimas
Universalus dizainas
Testing
Automatizuoti įrankiai
Rankinis testavimas
Vartotojų atsiliepimai
Tikros pagalbinės technologijos
```
> Šią pamoką galite laikyti [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/accessibility/?WT.mc_id=academic-77807-sagibbon)!
## Asistinių technologijų supratimas
Prieš pradėdami koduoti, skirkime akimirką suprasti, kaip žmonės su skirtingomis gebėjimų rūšimis iš tikrųjų patiria internetą. Tai ne tik teorija — supratimas apie šiuos realaus pasaulio naršymo būdus padarys jus daug geresniu kūrėju!
Asistinės technologijos yra gana nuostabios priemonės, kurios padeda žmonėms su negalia sąveikauti su svetainėmis būdais, kurie gali jus nustebinti. Kai suprasite, kaip šios technologijos veikia, prieinamų interneto patirčių kūrimas taps kur kas intuityvesnis. Tai tarsi mokytis matyti savo kodą kito žmogaus akimis.
### Ekrano skaitytuvai
[Ekrano skaitytuvai](https://en.wikipedia.org/wiki/Screen_reader) yra gana sudėtingos technologijos, kurios konvertuoja skaitmeninį tekstą į kalbą arba Brailio išvestį. Nors daugiausia juos naudoja regos negalią turintys žmonės, jie taip pat labai naudingi vartotojams su mokymosi sunkumais, tokiais kaip disgrafija.
Man patinka galvoti apie ekrano skaitytuvą kaip apie labai išmanų pasakotoją, kuris skaito knygą jums. Jis skaito garsiai turinį logiška tvarka, paskelbia interaktyvius elementus, tokius kaip "mygtukas" arba "nuoroda", ir suteikia klaviatūros nuorodas, kad būtų galima greitai pereiti per puslapį. Bet čia yra dalykas — ekrano skaitytuvai gali atlikti savo stebuklus tik tada, kai mes kuriame svetaines su tinkama struktūra ir prasmingu turiniu. Štai kur įsijungi jūs, kūrėjas!
**Populiariausi ekrano skaitytuvai įvairioms platformoms:**
- **Windows**: [NVDA](https://www.nvaccess.org/about-nvda/) (nemokamas ir labiausiai paplitęs), [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) (integruotas)
- **macOS/iOS**: [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) (integruotas ir labai pajėgus)
- **Android**: [TalkBack](https://support.google.com/accessibility/android/answer/6283677) (integruotas)
- **Linux**: [Orca](https://wiki.gnome.org/Projects/Orca) (nemokamas ir atviro kodo)
**Kaip ekrano skaitytuvai naršo interneto turinį:**
Ekrano skaitytuvai suteikia kelis naršymo metodus, kurie daro naršymą efektyvų įgudusiems vartotojams:
- **Sekantis skaitymas**: skaito turinį iš viršaus į apačią, kaip knygą
- **Žemėlapių (landmark) naršymas**: pereina tarp puslapio sekcijų (antraštė, naršymas, pagrindinė dalis, poraštė)
- **Antraščių naršymas**: praleidžia tarp antraščių, kad suprastų puslapio struktūrą
- **Nuorodų sąrašai**: sukuria visų nuorodų sąrašą greitam prieinamumui
- **Formos valdikliai**: tiesiogiai naršo tarp įvesties laukų ir mygtukų
> 💡 **Čia yra tai, kas pribloškė mane**: 68 % ekrano skaitytuvo vartotojų daugiausia naršo pagal antraštes ([WebAIM apklausa](https://webaim.org/projects/screenreadersurvey9/#finding)). Tai reiškia, kad jūsų antraščių struktūra yra tarsi žemėlapis vartotojams — kai ją teisingai sudėliojate, jūs tiesiogine prasme padedate žmonėms greičiau rasti jūsų turinį!
### Testavimo darbo eigos kūrimas
Štai gera žinia — efektyvus prieinamumo testavimas nebūtinai turi būti varginantis! Norėsite sujungti automatinius įrankius (jie puikūs aptikdami akivaizdžias problemas) su šiek tiek rankinio testavimo. Štai sistemingas požiūris, kurį radau aptinkant daugiausiai problemų per trumpą laiką:
**Pagrindinė rankinio testavimo darbo eiga:**
```mermaid
flowchart TD
A[🚀 Pradėti testavimą] --> B{⌨️ Klaviatūros navigacija}
B --> C[Perjunkite tabo klavišu per visus interaktyvius elementus]
C --> D{🎧 Ekrano skaitytuvo testavimas}
D --> E[Testuoti su NVDA/VoiceOver]
E --> F{🔍 Didinimo testavimas}
F --> G[Padidinti iki 200% ir patikrinti funkcionalumą]
G --> H{🎨 Spalvų/kontrasto patikrinimas}
H --> I[Patikrinti, ar visas tekstas atitinka kontrasto santykius]
I --> J{👁️ Fokuso valdymas}
J --> K[Užtikrinti, kad fokuso indikatoriai būtų matomi]
K --> L[✅ Testavimas baigtas]
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
```
**Testavimo žingsnis po žingsnio kontrolinis sąrašas:**
1. **Klaviatūros naršymas**: naudokite tik Tab, Shift+Tab, Enter, Space ir rodyklių klavišus
2. **Ekrano skaitytuvo testavimas**: įjunkite NVDA, VoiceOver arba Narrator ir naršykite užmerktomis akimis
3. **Padidinimo testavimas**: išbandykite 200 % ir 400 % padidinimus
4. **Spalvų kontrasto patikrinimas**: patikrinkite visą tekstą ir vartotojo sąsajos komponentus
5. **Fokusavimo indikatoriaus testavimas**: įsitikinkite, kad visi interaktyvūs elementai turi matomus fokusavimo būsenas
✅ **Pradėkite nuo Lighthouse**: Atidarykite naršyklės kūrėjų įrankius, paleiskite Lighthouse prieinamumo auditą ir naudokite rezultatus kaip vadovą jūsų rankinio testavimo prioritetams.
### Didinimo ir priartinimo įrankiai
Žinote, kaip kartais savo telefone prispaudžiate ekraną, kad padidintumėte tekstą, kai jis per mažas, arba įsižiūrite į nešiojamojo kompiuterio ekraną ryškioje saulėje? Daugelis vartotojų kiekvieną dieną pasikliauja priartinimo įrankiais, kad turinys būtų įskaitomas. Tai apima žmones su silpnu regėjimu, vyresnio amžiaus asmenis ir visus, kurie kada nors bandė skaityti svetainę lauke.
Modernios didinimo technologijos išsivystė toliau nei tik didinimas. Supratimas, kaip šie įrankiai veikia, padės jums sukurti reaktyvų dizainą, kuris išlieka funkcionalus ir patrauklus bet kokiu priartinimo lygiu.
**Šiuolaikiškos naršyklės didinimo galimybės:**
- **Puslapio didinimas**: proporcingai keičia visą turinį (tekstą, vaizdus, išdėstymą) – tai pageidaujamas būdas
- **Tik teksto didinimas**: didina šriftų dydį išlaikant originalų išdėstymą
- **Suvėlimo priartinimas (pinch-to-zoom)**: mobilus gestas laikiniam priartinimui
- **Naršyklių palaikymas**: visos modernios naršyklės palaiko priartinimą iki 500 % nesulaužant funkcionalumo
**Specializuota didinimo programinė įranga:**
- **Windows**: [Didintuvė](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198) (integruota), [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/)
- **macOS/iOS**: [Zoom](https://www.apple.com/accessibility/mac/vision/) (integruota su pažangiomis funkcijomis)
> ⚠️ **Dizaino svarstymai**: WCAG reikalauja, kad turinys išliktų funkcionalus priartinus iki 200 %. Ta lygiu horizontalus slinkimas turėtų būti minimalus, o visi interaktyvūs elementai likti prieinami.
✅ **Išbandykite savo reaktyvų dizainą**: priartinkite naršyklę iki 200 % ir 400 %. Ar jūsų išdėstymas prisitaiko sklandžiai? Ar galite pasiekti visas funkcijas be perteklinio slinkimo?
## Šiuolaikiniai prieinamumo testavimo įrankiai
Dabar, kai suprantate, kaip žmonės naršo internetą su asistinėmis technologijomis, pažvelkime į įrankius, kurie padeda jums kurti ir testuoti prieinamas svetaines.
Galvokite apie tai taip: automatizuoti įrankiai puikiai aptinka akivaizdžias problemas (pavyzdžiui, trūkstamą alt tekstą), o rankinis testavimas padeda užtikrinti, kad jūsų svetainė būtų patogi naudoti realiame pasaulyje. Kartu jie suteikia jums pasitikėjimą, kad jūsų svetainės veikia visiems.
### Spalvų kontrasto testavimas
Štai gera žinia: spalvų kontrastas yra viena dažniausių prieinamumo problemų, bet taip pat viena lengviausių ištaisyti. Geras kontrastas naudingas visiems — nuo regos negalią turinčių vartotojų iki žmonių, bandančių skaityti telefoną paplūdimyje.
**WCAG kontrasto reikalavimai:**
| Teksto tipas | WCAG AA (minimali) | WCAG AAA (patobulinta) |
|--------------|--------------------|------------------------|
| **Įprastas tekstas** (iki 18pt) | 4.5:1 kontrasto santykis | 7:1 kontrasto santykis |
| **Didelis tekstas** (18pt+ arba 14pt+ paryškintas) | 3:1 kontrasto santykis | 4.5:1 kontrasto santykis |
| **Vartotojo sąsajos komponentai** (mygtukai, formų rėmeliai) | 3:1 kontrasto santykis | 3:1 kontrasto santykis |
**Svarbiausi testavimo įrankiai:**
- [Colour Contrast Analyser](https://www.tpgi.com/color-contrast-checker/) – darbalaukio programa su spalvų rinkikliu
- [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) – internetinis įrankis su momentiniu grįžtamuoju ryšiu
- [Stark](https://www.getstark.co/) – dizaino įrankių įskiepis Figma, Sketch, Adobe XD
- [Accessible Colors](https://accessible-colors.com/) – suraskite prieinamas spalvų paletes
✅ **Sukurkite geresnes spalvų paletes**: pradėkite nuo savo prekės ženklo spalvų ir naudokite kontrasto tikrintuvus, kad sukurtumėte prieinamas variacijas. Užfiksuokite jas kaip savo dizaino sistemos prieinamus spalvų žetonus.
### Išsamus prieinamumo auditas
Efektyviausias prieinamumo testavimas sujungia kelis metodus. Nė vienas įrankis neaptinka visko, todėl sukūrus testavimo rutiną įvairiomis priemonėmis užtikrinama išsami apžvalga.
**Testavimas naršyklėje (integruotas kūrėjų įrankiuose):**
- **Chrome/Edge**: Lighthouse prieinamumo auditas + Accessibility panel
- **Firefox**: Accessibility Inspector su detaliu medžio vaizdu
- **Safari**: Audit tab Web Inspector su VoiceOver simuliacija
**Profesionalios testavimo plėtiniai:**
- [axe DevTools](https://www.deque.com/axe/devtools/) – pramonės standartas automatizuotame testavime
- [WAVE](https://wave.webaim.org/extension/) – vizualinis grįžtamasis ryšys su klaidų paryškinimu
- [Accessibility Insights](https://accessibilityinsights.io/) – Microsoft išsami testavimo sistema
**Komandinės eilutės ir CI/CD integracija:**
- [axe-core](https://github.com/dequelabs/axe-core) – JavaScript biblioteka automatizuotam testavimui
- [Pa11y](https://pa11y.org/) – komandinės eilutės prieinamumo testavimo įrankis
- [Lighthouse CI](https://github.com/GoogleChrome/lighthouse-ci/) – automatinis prieinamumo įvertinimas
> 🎯 **Testavimo tikslas**: siekite Lighthouse prieinamumo balo 95+ kaip bazinę vertę. Atminkite, automatizuoti įrankiai aptinka tik apie 30–40 % prieinamumo problemų — rankinis testavimas vis dar būtinas!
### 🧠 **Testavimo įgūdžių tikrinimas: pasiruošę rasti problemas?**
**Pažiūrėkime, kaip jaučiatės dėl prieinamumo testavimo:**
- Kuris testavimo metodas dabar atrodo labiausiai prieinamas jums?
- Ar galite įsivaizduoti naudotis tik klaviatūra visą dieną?
- Kokia viena prieinamumo kliūtis jums asmeniškai teko patirti internete?
```mermaid
pie title "Prieinamumo problemos, aptiktos skirtingais metodais"
"Automatiniai įrankiai" : 35
"Rankinis testavimas" : 40
"Vartotojų atsiliepimai" : 25
```
> **Pasitikėjimo stiprintuvas**: profesionalūs prieinamumo testuotojai naudoja būtent tokį metodų derinį. Jūs mokotės pramonės standartų praktikų!
## Prieinamumo kūrimas nuo pagrindų
Prieinamumo sėkmės pagrindas yra įtraukti jį į savo pamatą nuo pirmos dienos. Žinau, kad vilioja pagalvoti „prieinamumą pridėsiu vėliau“, bet tai tarsi bandyti įvesti rampą į namą, kai jis jau pastatytas. Įmanoma? Taip. Lengva? Ne visai.
Galvokite apie prieinamumą kaip apie namo planavimą — daug lengviau įtraukti pritaikymą neįgaliesiems pradiniuose architektūriniuose planuose nei viską perdaryti vėliau.
### PRINCIPAI POUR: Jūsų prieinamumo pamatas
Web Content Accessibility Guidelines (WCAG) remiasi keturiais pagrindiniais principais, kurie sudaro akronimą POUR. Nesijaudinkite — tai nėra sausi akademiniai terminai! Tai praktiškos gairės, kaip kurti turinį, kuris veikia visiems.
Kai susipažinsite su POUR, priimti prieinamumo sprendimus taps žymiai paprasčiau. Tai kaip turėti protinį kontrolinį sąrašą, kuris veda jūsų dizaino pasirinkimus. Pradėkime:
```mermaid
flowchart LR
A[🔍 SUVOKIAMAS Ar vartotojai tai jaučia?] --> B[🎮 VEIKIANČIAS Ar vartotojai gali tai naudoti?]
B --> C[📖 SUPRANTAMAS Ar vartotojai tai supranta?]
C --> D[💪 PATVARUS Ar tai veikia visur?]
A1[Alternatyvus tekstas Antraštės Kontrastas] --> A
B1[Klaviatūros prieiga Nėra priepuolių Laiko apribojimai] --> B
C1[Aiški kalba Numatomas Klaidos pagalba] --> C
D1[Galiojantis kodas Suderinamas Ateičiai pritaikytas] --> D
style A fill:#e1f5fe
style B fill:#e8f5e8
style C fill:#fff3e0
style D fill:#f3e5f5
```
**🔍 Perceivable (Suvokiamas)**: informacija turi būti pateikiama tokiais būdais, kad vartotojai ją galėtų suvokti per savo turimus jutimus
- Suteikite tekstines alternatyvas netekstiniam turiniui (vaizdams, vaizdo įrašams, garsui)
- Užtikrinkite pakankamą spalvų kontrastą visam tekstui ir vartotojo sąsajos komponentams
- Pateikite subtitrus ir transkripcijas daugialypiam turiniui
- Kurkite turinį, kuris išlieka funkcionalus keičiant dydį iki 200 %
- Naudokite kelias jutimo charakteristikas (ne tik spalvą) perduodant informaciją
**🎮 Operable (Valdomas)**: visi sąsajos komponentai turi būti valdomi esamais įvesties metodais
- Užtikrinkite, kad visa funkcionalumas būtų pasiekiamas naudojant klaviatūrą
- Suteikite vartotojams pakankamai laiko skaityti ir sąveikauti su turiniu
- Venkite turinio, kuris gali sukelti traukulius ar vestibuliarinius sutrikimus
- Padėkite vartotojams efektyviai naršyti su aiškia struktūra ir žemėlapiais
- Užtikrinkite interaktyvių elementų tinkamus taikinius (44 px minimum)
**📖 Understandable (Suprantamas)**: informacija ir sąsajos veiksmai turi būti aiškūs ir suprantami
- Naudokite aiškią, paprastą kalbą, pritaikytą jūsų auditorijai
- Užtikrinkite, kad turinys pasirodo ir veikia numatomais, nuosekliais būdais
- Pateikite aiškias instrukcijas ir klaidų pranešimus vartotojo įvesties atveju
- Padėkite vartotojams suprasti ir ištaisyti klaidas formose
- Organizuokite turinį su logine skaitymo tvarka ir informacijos hierarchija
**💪 Robust (Patikimas)**: turinys turi veikti patikimai įvairiose technologijose ir asistinėse įrangoje
- **Naudokite validų, semantinį HTML kaip pagrindą**
- **Užtikrinkite suderinamumą su esamomis ir būsimomis asistinėmis technologijomis**
- **Laikykitės interneto standartų ir geriausių praktikų žymėjime**
- **Išbandykite skirtinguose naršyklėse, įrenginiuose ir pagalbinėse priemonėse**
- **Struktūrizuokite turinį taip, kad jis palaipsniui prastėtų, jei nepalaikomos pažangesnės funkcijos**
### 🎯 **POUR principų patikra: Įtvirtinimas**
**Greitas atspindėjimas apie pagrindus:**
- Ar galite prisiminti svetainės funkciją, kuri neatitinka kiekvieno POUR principo?
- Kuris principas jums kaip kūrėjui atrodo natūraliausias?
- Kaip šie principai galėtų pagerinti dizainą visiems, o ne tik neįgaliesiems?
```mermaid
quadrantChart
title POUR principų poveikio matrica
x-axis Mažas pastangų reikalavimas --> Didelis pastangų reikalavimas
y-axis Mažas poveikis --> Didelis poveikis
quadrant-1 Greiti laimėjimai
quadrant-2 Dideli projektai
quadrant-3 Apsvarstyti vėliau
quadrant-4 Strateginis dėmesys
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]
```
> **Prisiminkite**: Pradėkite nuo didelio poveikio, mažo pastangų reikalaujančių patobulinimų. Semantinis HTML ir alternatyvus tekstas suteikia didžiausią prieinamumo naudą už mažiausias pastangas!
## Prieinamų vizualinių dizainų kūrimas
Geras vizualinis dizainas ir prieinamumas eina koja kojon. Kai projektuojate turėdami omenyje prieinamumą, dažnai pastebite, kad šie apribojimai lemia švaresnius, elegantiškesnius sprendimus, kurie naudingi visiems vartotojams.
Pažvelkime, kaip sukurti vizualiai patrauklius dizainus, kurie veikia visiems, nepriklausomai nuo jų regėjimo gebėjimų ar sąlygų, kuriose jie žiūri jūsų turinį.
### Spalvų ir vizualinio prieinamumo strategijos
Spalva yra galinga komunikacijos priemonė, tačiau tai neturėtų būti vienintelis būdas perduoti svarbią informaciją. Projektavimas, neapsiribojant spalva, sukuria tvirtesnes, įtraukiančias patirtis, kurios veikia daugiau situacijų.
**Projektuokite atsižvelgdami į spalvų regos skirtumus:**
Apie 8 % vyrų ir 0,5 % moterų turi tam tikrą spalvų regos skirtumą (dažnai vadinamą „spalvų aklumu“). Dažniausios rūšys yra:
- **Deuteranopija**: sunku atskirti raudoną ir žalią spalvas
- **Protanopija**: raudona atrodo blankesnė
- **Tritanopija**: sunku atskirti mėlyną ir geltoną (retai pasitaiko)
**Įtraukiamosios spalvų strategijos:**
```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;
}
```
**Už bazinių kontrasto reikalavimų ribų:**
- Išbandykite savo spalvų pasirinkimus naudojant spalvų aklumo simuliatorius
- Naudokite raštus, tekstūras arba formas kartu su spalvų žymėjimu
- Užtikrinkite, kad interaktyvūs būsena būtų atskiriamos be spalvų
- Apsvarstykite, kaip jūsų dizainas atrodo didelio kontrasto režimu
✅ **Patikrinkite savo spalvų prieinamumą**: Naudokitės įrankiais, tokiais kaip [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/), kad pamatytumėte, kaip jūsų svetainė atrodo vartotojams su skirtingų tipų spalvų regos skirtumais.
### Fokuso indikatoriai ir sąveikos dizainas
Fokuso indikatoriai yra skaitmeninis žymeklio atitikmuo – jie rodo klaviatūros vartotojams, kur jie yra puslapyje. Gerai sukurti fokusavimo indikatoriai pagerina patirtį visiems, padarydami sąveikas aiškiomis ir nuspėjamomis.
**Modernios fokusavimo indikatorių gerosios praktikos:**
```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;
}
```
**Fokuso indikatoriai reikalavimai:**
- **Matomumas**: turi turėti bent 3:1 kontrasto santykį su aplinkiniais elementais
- **Plotis**: aplink visą elementą turi būti bent 2px storio
- **Ištvermė**: turėtų likti matomi, kol fokusas persikelia kitur
- **Skirtumas**: turi būti vizualiai skirtingi nuo kitų vartotojo sąsajos būsenų
> 💡 **Dizaino patarimas**: Puikūs fokusavimo indikatoriai dažnai naudoja apvadą, dėžutės šešėlį ir spalvos pasikeitimus, kad užtikrintų matomumą įvairiame fone ir kontekstuose.
✅ **Patikrinkite fokusavimo indikatorius**: Naudokite Tab klavišą naršydami savo svetainę ir atkreipkite dėmesį, kuriems elementams aiškiai matomi fokusavimo indikatoriai. Ar yra sunkiai matomų ar visai be jų?
### Semantinis HTML: Prieinamumo pamatai
Semantinis HTML yra tarsi GPS sistema jūsų svetainei pagalbinėms technologijoms. Kai naudojate tinkamus HTML elementus jų paskirčiai, jūs iš esmės teikiate ekrano skaitytuvams, klaviatūroms ir kitiems įrankiams detalią žemėlapio schemą, padedančią vartotojams efektyviai orientuotis.
Man patinka analogija: semantinis HTML yra skirtumas tarp gerai organizuotos bibliotekos su aiškiomis kategorijomis ir naudingais ženklais, ir sandėlio, kuriame knygos išmėtytos atsitiktinai. Abiejose vietose yra tos pačios knygos, bet kurioje geriau ieškotumėte ko nors? Būtent!
```mermaid
flowchart TD
A[🏠 HTML Dokumentas] --> B[📰 antraštė]
A --> C[🧭 naršymas]
A --> D[📄 pagrindinis]
A --> E[📋 poraštė]
B --> B1[h1: Svetainės pavadinimas Logotipas ir ženklinimas]
C --> C1[ul: Naršymas Pagrindinės nuorodos]
D --> D1[straipsnis: Turinys skiltis: Poskyriai]
D --> D2[šonas: Šoninė juosta Susijęs turinys]
E --> E1[nav: Poraštės nuorodos Autorių teisės]
D1 --> D1a[h1: Puslapio pavadinimas h2: Pagrindinės skiltys h3: Poskyriai]
style A fill:#e3f2fd
style B fill:#e8f5e8
style C fill:#fff3e0
style D fill:#f3e5f5
style E fill:#e0f2f1
```
**Prieinamos puslapio struktūros statybiniai elementai:**
```html
Your Site Name
Article Title
Published on
First Section
Content that relates to this section...
Second Section
More related content...
```
**Kodėl semantinis HTML transformuoja prieinamumą:**
| Semantinis elementas | Paskirtis | Ekrano skaitytuvo nauda |
|---------------------|-----------|-------------------------|
| `` | Puslapio ar skyriaus antraštė | „Reklaminės juostos žymė“ – greita navigacija į viršų |
| `