# Izrada dostupnih web stranica ![Sve o dostupnosti](../../../../translated_images/webdev101-a11y.8ef3025c858d897a403a1a42c0897c76e11b724d9a8a0c0578dd4316f7507622.hr.png) > Sketchnote autorice [Tomomi Imura](https://twitter.com/girlie_mac) ## Kviz prije predavanja [Kviz prije predavanja](https://ff-quizzes.netlify.app/web/) > Snaga weba leži u njegovoj univerzalnosti. Pristup svima, bez obzira na invaliditet, ključni je aspekt. > > \- Sir Timothy Berners-Lee, direktor W3C-a i izumitelj World Wide Weba Evo nečega što bi vas moglo iznenaditi: kada gradite dostupne web stranice, ne pomažete samo osobama s invaliditetom—zapravo činite web boljim za sve! Jeste li ikada primijetili one spuštene rubove na ulicama? Izvorno su dizajnirani za invalidska kolica, ali sada pomažu ljudima s dječjim kolicima, dostavljačima s kolicima, putnicima s prtljagom na kotačima, pa čak i biciklistima. Upravo tako funkcionira dizajn dostupnih web stranica—rješenja koja pomažu jednoj skupini često na kraju koriste svima. Prilično cool, zar ne? U ovoj lekciji istražit ćemo kako stvoriti web stranice koje zaista funkcioniraju za sve, bez obzira na način na koji pregledavaju web. Otkrit ćete praktične tehnike koje su već ugrađene u web standarde, isprobati alate za testiranje i vidjeti kako dostupnost čini vaše stranice korisnijima za sve korisnike. Na kraju ove lekcije, imat ćete samopouzdanje da dostupnost učinite prirodnim dijelom vašeg razvojnog procesa. Spremni za istraživanje kako promišljeni dizajnerski izbori mogu otvoriti web za milijarde korisnika? Krenimo! > Ovu lekciju možete pronaći na [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/accessibility/?WT.mc_id=academic-77807-sagibbon)! ## Razumijevanje asistivnih tehnologija Prije nego što krenemo s kodiranjem, odvojimo trenutak da razumijemo kako osobe s različitim sposobnostima zapravo doživljavaju web. Ovo nije samo teorija—razumijevanje ovih stvarnih obrazaca navigacije učinit će vas puno boljim programerom! Asistivne tehnologije su nevjerojatni alati koji pomažu osobama s invaliditetom da komuniciraju s web stranicama na načine koji bi vas mogli iznenaditi. Kada shvatite kako te tehnologije funkcioniraju, stvaranje dostupnih web iskustava postaje puno intuitivnije. To je kao da učite gledati svoj kod kroz oči nekog drugog. ### Čitači ekrana [Čitači ekrana](https://en.wikipedia.org/wiki/Screen_reader) su prilično sofisticirani komadi tehnologije koji digitalni tekst pretvaraju u govor ili brajevo pismo. Iako ih prvenstveno koriste osobe s oštećenjem vida, također su vrlo korisni za korisnike s poteškoćama u učenju, poput disleksije. Volim razmišljati o čitaču ekrana kao o vrlo pametnom pripovjedaču koji vam čita knjigu. Čita sadržaj naglas logičnim redoslijedom, najavljuje interaktivne elemente poput "gumb" ili "link" i pruža prečace na tipkovnici za navigaciju po stranici. Ali evo u čemu je stvar—čitači ekrana mogu raditi svoj posao samo ako izgradimo web stranice s pravilnom strukturom i smislenim sadržajem. Tu vi kao programer dolazite na scenu! **Popularni čitači ekrana na različitim platformama:** - **Windows**: [NVDA](https://www.nvaccess.org/about-nvda/) (besplatan i najpopularniji), [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) (ugrađen) - **macOS/iOS**: [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) (ugrađen i vrlo sposoban) - **Android**: [TalkBack](https://support.google.com/accessibility/android/answer/6283677) (ugrađen) - **Linux**: [Orca](https://wiki.gnome.org/Projects/Orca) (besplatan i otvorenog koda) **Kako čitači ekrana navigiraju web sadržajem:** Čitači ekrana pružaju više metoda navigacije koje čine pregledavanje učinkovitijim za iskusne korisnike: - **Sekvencijalno čitanje**: Čita sadržaj od vrha prema dnu, kao da slijedi knjigu - **Navigacija po oznakama**: Skakanje između dijelova stranice (zaglavlje, navigacija, glavni dio, podnožje) - **Navigacija po naslovima**: Preskakanje između naslova za razumijevanje strukture stranice - **Popisi linkova**: Generiranje popisa svih linkova za brzi pristup - **Kontrole obrazaca**: Izravna navigacija između polja za unos i gumba > 💡 **Evo nečega što me oduševilo**: 68% korisnika čitača ekrana prvenstveno navigira pomoću naslova ([WebAIM Survey](https://webaim.org/projects/screenreadersurvey9/#finding)). To znači da je vaša struktura naslova poput karte za korisnike—kada je pravilno postavite, doslovno pomažete ljudima da brže pronađu svoj put kroz vaš sadržaj! ### Izgradnja vašeg testnog procesa Evo dobrih vijesti—učinkovito testiranje dostupnosti ne mora biti preplavljujuće! Trebat ćete kombinirati automatizirane alate (sjajni su za otkrivanje očitih problema) s nekim ručnim testiranjem. Evo sustavnog pristupa koji, prema mom iskustvu, otkriva najviše problema bez da vam oduzme cijeli dan: **Osnovni proces ručnog testiranja:** ```mermaid graph TD A[Start Testing] --> B{Keyboard Navigation} B --> C[Tab through all interactive elements] C --> D{Screen Reader Testing} D --> E[Test with NVDA/VoiceOver] E --> F{Zoom Testing} F --> G[Zoom to 200% and test functionality] G --> H{Color/Contrast Check} H --> I[Verify all text meets contrast ratios] I --> J{Focus Management} J --> K[Ensure focus indicators are visible] K --> L[Testing Complete] ``` **Kontrolni popis za testiranje korak po korak:** 1. **Navigacija tipkovnicom**: Koristite samo Tab, Shift+Tab, Enter, Space i strelice 2. **Testiranje čitača ekrana**: Omogućite NVDA, VoiceOver ili Narrator i navigirajte zatvorenih očiju 3. **Testiranje zumiranja**: Testirajte na razinama zumiranja od 200% i 400% 4. **Provjera kontrasta boja**: Provjerite sav tekst i UI komponente 5. **Testiranje indikatora fokusa**: Osigurajte da svi interaktivni elementi imaju vidljive stanja fokusa ✅ **Započnite s Lighthouseom**: Otvorite DevTools u pregledniku, pokrenite Lighthouse analizu dostupnosti, a zatim koristite rezultate za usmjeravanje vašeg fokusa na ručno testiranje. ### Alati za zumiranje i povećanje Znate kako ponekad širite prste na telefonu kad je tekst premalen ili škiljite na zaslonu laptopa na jakom suncu? Mnogi korisnici svakodnevno se oslanjaju na alate za povećanje kako bi sadržaj bio čitljiv. To uključuje osobe s slabim vidom, starije osobe i svakoga tko je ikada pokušao čitati web stranicu na otvorenom. Moderne tehnologije za zumiranje evoluirale su izvan pukog povećanja. Razumijevanje kako ti alati funkcioniraju pomoći će vam da stvorite responzivne dizajne koji ostaju funkcionalni i privlačni na bilo kojoj razini povećanja. **Suvremene mogućnosti zumiranja preglednika:** - **Zumiranje stranice**: Proporcionalno povećava sav sadržaj (tekst, slike, izgled) - ovo je preferirana metoda - **Samo zumiranje teksta**: Povećava veličinu fonta uz održavanje izvornog izgleda - **Zumiranje širenjem prstiju**: Podrška za mobilne geste za privremeno povećanje - **Podrška preglednika**: Svi moderni preglednici podržavaju zumiranje do 500% bez narušavanja funkcionalnosti **Specijalizirani softver za povećanje:** - **Windows**: [Magnifier](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198) (ugrađen), [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) - **macOS/iOS**: [Zoom](https://www.apple.com/accessibility/mac/vision/) (ugrađen s naprednim značajkama) > ⚠️ **Dizajnerska razmatranja**: WCAG zahtijeva da sadržaj ostane funkcionalan kada je zumiran do 200%. Na ovoj razini, horizontalno pomicanje treba biti minimalno, a svi interaktivni elementi trebaju ostati dostupni. ✅ **Testirajte svoj responzivni dizajn**: Zumirajte svoj preglednik na 200% i 400%. Prilagođava li se vaš izgled skladno? Možete li i dalje pristupiti svim funkcijama bez prekomjernog pomicanja? ## Suvremeni alati za testiranje dostupnosti Sada kada razumijete kako ljudi navigiraju webom pomoću asistivnih tehnologija, istražimo alate koji vam pomažu u izgradnji i testiranju dostupnih web stranica. Razmislite o tome ovako: automatizirani alati su izvrsni za otkrivanje očitih problema (poput nedostatka alt teksta), dok ručno testiranje pomaže osigurati da vaša stranica bude ugodna za korištenje u stvarnom svijetu. Zajedno vam pružaju sigurnost da vaše stranice funkcioniraju za sve. ### Testiranje kontrasta boja Evo dobrih vijesti: kontrast boja jedan je od najčešćih problema s dostupnošću, ali je također jedan od najlakših za popraviti. Dobar kontrast koristi svima—od korisnika s oštećenjem vida do ljudi koji pokušavaju čitati svoje telefone na plaži. **WCAG zahtjevi za kontrast:** | Vrsta teksta | WCAG AA (Minimalno) | WCAG AAA (Poboljšano) | |--------------|---------------------|-----------------------| | **Normalan tekst** (manje od 18pt) | Omjer kontrasta 4.5:1 | Omjer kontrasta 7:1 | | **Veliki tekst** (18pt+ ili 14pt+ podebljano) | Omjer kontrasta 3:1 | Omjer kontrasta 4.5:1 | | **UI komponente** (gumbi, obrubi obrazaca) | Omjer kontrasta 3:1 | Omjer kontrasta 3:1 | **Osnovni alati za testiranje:** - [Colour Contrast Analyser](https://www.tpgi.com/color-contrast-checker/) - Desktop aplikacija s odabirom boja - [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) - Web alat s trenutnim povratnim informacijama - [Stark](https://www.getstark.co/) - Plugin za dizajnerske alate poput Figma, Sketch, Adobe XD - [Accessible Colors](https://accessible-colors.com/) - Pronađite dostupne palete boja ✅ **Izgradite bolje palete boja**: Započnite s bojama vašeg brenda i koristite alate za provjeru kontrasta kako biste stvorili dostupne varijacije. Dokumentirajte ih kao dostupne boje u vašem dizajnerskom sustavu. ### Sveobuhvatna provjera dostupnosti Najbolje testiranje dostupnosti kombinira više pristupa. Nijedan alat ne može otkriti sve, pa izgradnja rutine testiranja s različitim metodama osigurava temeljitu pokrivenost. **Testiranje u pregledniku (ugrađeno u DevTools):** - **Chrome/Edge**: Lighthouse analiza dostupnosti + panel za dostupnost - **Firefox**: Inspektor dostupnosti s detaljnim prikazom stabla - **Safari**: Kartica za provjeru u Web Inspectoru s simulacijom VoiceOvera **Profesionalni dodaci za testiranje:** - [axe DevTools](https://www.deque.com/axe/devtools/) - Industrijski standard za automatizirano testiranje - [WAVE](https://wave.webaim.org/extension/) - Vizualne povratne informacije s isticanjem grešaka - [Accessibility Insights](https://accessibilityinsights.io/) - Microsoftov sveobuhvatni alat za testiranje **Alati za naredbeni redak i integraciju CI/CD:** - [axe-core](https://github.com/dequelabs/axe-core) - JavaScript biblioteka za automatizirano testiranje - [Pa11y](https://pa11y.org/) - Alat za testiranje dostupnosti putem naredbenog retka - [Lighthouse CI](https://github.com/GoogleChrome/lighthouse-ci) - Automatizirano ocjenjivanje dostupnosti > 🎯 **Cilj testiranja**: Ciljajte na Lighthouse ocjenu dostupnosti od 95+ kao osnovni standard. Zapamtite, automatizirani alati otkrivaju samo oko 30-40% problema s dostupnošću—ručno testiranje i dalje je ključno! ## Izgradnja dostupnosti od samog početka Ključ uspjeha u dostupnosti je uključiti je u temelje od samog početka. Znam da je primamljivo misliti "dodat ću dostupnost kasnije", ali to je kao da pokušavate dodati rampu kući nakon što je već izgrađena. Moguće? Da. Lako? Ne baš. Razmislite o dostupnosti kao o planiranju kuće—mnogo je lakše uključiti pristup za invalidska kolica u početne arhitektonske planove nego sve naknadno prilagođavati. ### Načela POUR: Temelj vaše dostupnosti Smjernice za dostupnost web sadržaja (WCAG) temelje se na četiri osnovna načela koja čine akronim POUR. Ne brinite—ovo nisu suhoparni akademski koncepti! Zapravo su to praktične smjernice za stvaranje sadržaja koji funkcionira za sve. Kada se naviknete na POUR, donošenje odluka o dostupnosti postaje puno intuitivnije. To je kao da imate mentalni kontrolni popis koji vodi vaše dizajnerske odluke. Razložimo to: **🔍 Perceptivno**: Informacije moraju biti predstavljene na način koji korisnici mogu percipirati svojim dostupnim osjetilima - Pružite tekstualne alternative za sadržaj koji nije tekst (slike, videozapisi, audio) - Osigurajte dovoljan kontrast boja za sav tekst i UI komponente - Ponudite titlove i transkripte za multimedijski sadržaj - Dizajnirajte sadržaj koji ostaje funkcionalan kada se poveća do 200% - Koristite višestruke senzorne karakteristike (ne samo boju) za prenošenje informacija **🎮 Operativno**: Sve komponente sučelja moraju biti operativne putem dostupnih metoda unosa - Omogućite pristup svim funkcijama putem navigacije tipkovnicom - Pružite korisnicima dovoljno vremena za čitanje i interakciju sa sadržajem - Izbjegavajte sadržaj koji uzrokuje napade ili vestibularne poremećaje - Pomozite korisnicima da učinkovito navigiraju jasnom strukturom i oznakama - Osigurajte da interaktivni elementi imaju odgovarajuće veličine ciljeva (minimalno 44px) **📖 Razumljivo**: Informacije i operacija UI-a moraju biti jasne i razumljive - Koristite jasan, jednostavan jezik prilagođen vašoj publici - Osigurajte da se sadržaj pojavljuje i funkcionira na predvidljiv, dosljedan način - Pružite jasne upute i poruke o greškama za unos korisnika - Pomozite korisnicima da razumiju i isprave pogreške u obrascima - Organizirajte sadržaj logičnim redoslijedom čitanja i hijerarhijom informacija **💪 Robusno**: Sadržaj mora pouzdano funkcionirati na različitim tehnologijama i asistivnim uređajima - Koristite valjani, semantički HTML kao temelj - Osigurajte kompatibilnost s trenutnim i budućim asistivnim tehnologijama - Slijedite web standarde i najbolje prakse za označavanje - Testirajte na različitim preglednicima, uređajima i asistivnim alatima - Strukturirajte sadržaj tako da se dostojanstveno degradira kada napredne značajke nisu podržane ## Stvaranje dostupnog vizualnog dizajna Dobar vizualni dizajn i dostupnost idu ruku pod ruku. Kada dizajnirate s dostupnošću na umu, često otkrivate da ti zahtjevi vode do čišćih, elegantnijih rješenja koja koriste svim korisnicima. Istražimo kako stvoriti vizualno privlačne dizajne koji funkcioniraju za sve, bez obzira na njihove vizualne sposobnosti ili uvjete u kojima pregledavaju vaš sadržaj. ### Strategije za boje i vizual Boja je moćan alat za komunikaciju, ali nikada ne bi trebala biti jedini način prenošenja važnih informacija. Dizajniranje izvan boja stvara robusnija, inkluzivnija iskustva koja funkcioniraju u različitim situacijama. **Dizajnirajte za razlike u percepciji boja:** Otprilike 8% muškaraca i 0,5% žena ima neki oblik razlike u percepciji boja (često nazvano "sljepoća za boje"). Najčešći tipovi su: - **Deuteranopija**: Teškoće u razlikovanju crvene i zelene boje - **Protanopija**: Crvena boja izgleda tamnije - **Tritanopija**: Teškoće s plavom i žutom bojom (rijetko) **Strategije za inkluzivnu upotrebu boja:** ```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; } ``` **Izvan osnovnih zahtjeva za kontrast:** - Testirajte svoje odabire boja pomoću simulatora za sljepoću na boje - Koristite uzorke, teksture ili oblike uz kodiranje bojama - Osigurajte da interaktivna stanja ostanu prepoznatljiva bez boje - Razmislite kako vaš dizajn izgleda u načinu visokog kontrasta ✅ **Testirajte pristupačnost boja**: Koristite alate poput [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/) kako biste vidjeli kako vaša stranica izgleda korisnicima s različitim vrstama percepcije boja. ### Indikatori fokusa i dizajn interakcije Indikatori fokusa digitalni su ekvivalent pokazivaču miša—pokazuju korisnicima tipkovnice gdje se nalaze na stranici. Dobro dizajnirani indikatori fokusa poboljšavaju iskustvo za sve, čineći interakcije jasnim i predvidljivim. **Najbolje prakse za moderne indikatore fokusa:** ```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; } ``` **Zahtjevi za indikatore fokusa:** - **Vidljivost**: Mora imati omjer kontrasta od najmanje 3:1 u odnosu na okolne elemente - **Širina**: Minimalna debljina od 2px oko cijelog elementa - **Postojanost**: Treba ostati vidljiv dok se fokus ne premjesti na drugo mjesto - **Razlikovanje**: Mora biti vizualno različit od drugih stanja korisničkog sučelja > 💡 **Savjet za dizajn**: Odlični indikatori fokusa često koriste kombinaciju obruba, sjene okvira i promjena boje kako bi osigurali vidljivost na različitim pozadinama i u različitim kontekstima. ✅ **Provjerite indikatore fokusa**: Prođite kroz svoju web stranicu pomoću tipke Tab i zabilježite koji elementi imaju jasne indikatore fokusa. Jesu li neki teško vidljivi ili potpuno nedostaju? ### Semantički HTML: Temelj pristupačnosti Semantički HTML je poput GPS sustava za asistivne tehnologije na vašoj web stranici. Kada koristite prave HTML elemente za njihovu namjenu, zapravo pružate čitačima ekrana, tipkovnicama i drugim alatima detaljnu kartu koja pomaže korisnicima da se učinkovito kreću. Evo analogije koja mi je stvarno pomogla: semantički HTML je razlika između dobro organizirane knjižnice s jasnim kategorijama i korisnim oznakama naspram skladišta gdje su knjige nasumično razbacane. Oba mjesta imaju iste knjige, ali u kojem biste radije pokušali nešto pronaći? Upravo tako! **Temeljni elementi pristupačne strukture stranice:** ```html

Your Site Name

Article Title

Published on

First Section

Content that relates to this section...

Second Section

More related content...

``` **Zašto semantički HTML transformira pristupačnost:** | Semantički element | Namjena | Prednost za čitače ekrana | |--------------------|---------|--------------------------| | `
` | Zaglavlje stranice ili sekcije | "Banner landmark" - brzo navigiranje na vrh | | `