Accessibility nima va nima uchun muhim
Muammodan boshlaylik
Tajriba qiling. O'zingiz yasagan saytni oching va:
- Sichqonchani chetga qo'ying. Faqat Tab, Enter, Space va strelkalar bilan menyuni oching, formani to'ldiring, tugmani bosing
- Ekranni 200% ga kattalashtiring (Ctrl +). Matn o'qiladimi, yoki hamma narsa bir-birining ustiga chiqdimi?
- Quyosh ostida telefonda oching. Och kulrang matnni oq fonda o'qiy olasizmi?
Ko'p saytlar bu sinovlardan o'tmaydi. Va bu sinovlar — millionlab odamlarning har kungi hayoti: ko'rish qobiliyati past, qo'li titraydigan, sichqoncha ishlata olmaydigan, yoki shunchaki singan qo'l bilan yurgan foydalanuvchilar.
Accessibility nima
Accessibility (qisqacha a11y — "a", 11 ta harf, "y") — sayt hamma odamlar uchun, ularning imkoniyatlaridan qat'i nazar, foydalanish mumkin bo'lishi.
Kimlar uchun:
| Imkoniyat | Qanday foydalanadi | Saytdan nima kerak |
|---|---|---|
| Ko'zi ojiz | Ekran o'quvchi (screen reader) — sahifani ovoz bilan o'qiydi | Semantik HTML, alt, label lar |
| Ko'rish qobiliyati past | Kattalashtirish, yuqori kontrast | Yetarli kontrast, kattalashtirish buzmasin |
| Rang ajrata olmaslik (erkaklarning ~8%) | Odatdagidek | Ma'lumot faqat rangda bo'lmasin |
| Harakat cheklovlari | Faqat klaviatura, ovoz bilan boshqarish, maxsus tugmalar | Hamma narsa klaviatura bilan ishlasin |
| Eshitish qobiliyati past | Subtitrlar | Video uchun subtitr, audio uchun matn |
| Kognitiv | Oddiy va aniq interfeys | Tushunarli til, izchil tuzilma, vaqt cheklovlarisiz |
Vaqtinchalik va vaziyatga bog'liq
Accessibility nafaqat doimiy nogironlik haqida:
- Vaqtinchalik: singan qo'l, ko'z operatsiyasidan keyin
- Vaziyatga bog'liq: quyosh ostidagi ekran, bir qo'lda bola bilan telefon, shovqinli joyda ovozsiz video, sekin internet
Har bir inson hayotida qachondir "cheklangan" holatda bo'ladi. Accessible sayt — hamma uchun yaxshi sayt.
Ekran o'quvchi qanday ishlaydi
Ekran o'quvchi sahifani ko'rmaydi — u HTML tuzilmasini o'qiydi va ovoz bilan aytadi:
<button>Saqlash</button>
🔊 "Saqlash, tugma"
<div class="btn" onclick="saqla()">Saqlash</div>
🔊 "Saqlash" — tugma ekani aytilmaydi, Tab bilan tanlanmaydi, Enter bilan bosilmaydi
<img src="grafik.png">
🔊 "grafik.png, rasm" — fayl nomi, hech narsa tushunarsiz
<img src="grafik.png" alt="2026 yilda foydalanuvchilar soni 3 baravar oshdi">
🔊 "2026 yilda foydalanuvchilar soni 3 baravar oshdi, rasm"
Mashhur ekran o'quvchilar: NVDA (Windows, bepul), VoiceOver (Mac va iPhone — o'rnatilgan), TalkBack (Android — o'rnatilgan), JAWS.
[!TIP] Bir marta sinab ko'ring: Mac da Cmd + F5, Windows da NVDA ni o'rnating, telefonda sozlamalardan TalkBack/VoiceOver ni yoqing. Ko'zingizni yumib o'z saytingizdan biror narsani qidirib ko'ring. 5 daqiqa — va accessibility ga qarashingiz butunlay o'zgaradi.
Asosiy tamoyillar — WCAG
Xalqaro standart — WCAG (Web Content Accessibility Guidelines). Uning to'rt tamoyili — POUR:
| Tamoyil | Ma'nosi | Misollar |
|---|---|---|
| Perceivable — idrok etiladigan | Ma'lumotni sezish mumkin | alt, subtitrlar, kontrast |
| Operable — boshqariladigan | Interfeysni ishlatish mumkin | Klaviatura, yetarli vaqt, tugmalar katta |
| Understandable — tushunarli | Kontent va interfeys tushunarli | Aniq til, izchil menyu, xato xabarlari |
| Robust — mustahkam | Turli vositalarda ishlaydi | To'g'ri HTML, ARIA ning to'g'ri ishlatilishi |
Darajalari: A (minimal), AA (ko'pchilik qonunlar talab qiladigan standart), AAA (eng yuqori).
Eng muhim qoidalar — 80% natija
Ko'p muammolar bir necha oddiy qoida bilan hal bo'ladi — va ularning ko'pchiligini oldingi darslarda o'rgandik:
1. Semantik HTML (9–10-darslar)
<button>, <a href>, <nav>, <main>, <h1>–<h6>, <label>, <ul>
To'g'ri teg — accessibility ning yarmi. Ekran o'quvchi, klaviatura va boshqa vositalar tayyor ishlaydi.
2. Rasmlar uchun alt (6-dars)
<img src="logo.svg" alt="DevDocs"> <!-- ma'noli rasm -->
<img src="naqsh.svg" alt=""> <!-- bezak — bo'sh alt, o'qilmaydi -->
3. Har bir maydonga label (15-dars)
<label for="email">Email</label>
<input id="email" type="email">
4. Rang kontrasti
Matn va fon orasidagi kontrast: oddiy matn uchun kamida 4.5 : 1, katta matn uchun 3 : 1 (WCAG AA).
/* ❌ 2.3 : 1 — o'qish qiyin */
color: #aaaaaa; background: #ffffff;
/* ✅ 7 : 1 */
color: #555555; background: #ffffff;
Tekshirish: Chrome DevTools da elementni tanlang → rang yonida kontrast ko'rsatkichi.
5. Ma'lumot faqat rangda bo'lmasin
<!-- ❌ faqat qizil chegara — rang ajrata olmaydigan foydalanuvchi ko'rmaydi -->
<input class="xato">
<!-- ✅ rang + ikonka + matn -->
<input class="xato" aria-invalid="true" aria-describedby="email-xato">
<p id="email-xato">⚠ Email formati noto'g'ri</p>
6. Klaviatura (22-dars)
Har bir interaktiv element Tab bilan tanlanishi, fokus ko'rinishi va Enter/Space bilan ishlashi kerak.
/* ❌ hech qachon */
*:focus { outline: none; }
/* ✅ */
:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
7. Sahifa tili (2-dars)
<html lang="uz">
Busiz ekran o'quvchi o'zbekcha matnni ingliz talaffuzi bilan o'qiydi — tushunib bo'lmaydi.
8. Kattalashtirish va harakat
user-scalable=noyo'q (11-dars)- O'lchamlar
remda — foydalanuvchi shrift o'lchamini oshirsa, sayt moslashadi - Animatsiyalarni
prefers-reduced-motionbilan hurmat qiling (CSS kursi, 29-dars)
Tekshirish vositalari
| Vosita | Nima qiladi |
|---|---|
| Lighthouse (Chrome DevTools) | Accessibility balli va muammolar ro'yxati |
| axe DevTools (kengaytma) | Batafsil tekshiruv, tuzatish bo'yicha maslahatlar |
| WAVE (kengaytma) | Muammolarni sahifaning o'zida ko'rsatadi |
| Klaviatura | Sichqonchasiz butun saytni o'tib chiqish |
| Ekran o'quvchi | NVDA, VoiceOver bilan haqiqiy sinov |
[!INFO] Avtomatik vositalar muammolarning faqat 30–40% ini topadi. Ular
altborligini tekshiradi, lekinalt="rasm"foydasiz ekanini bilmaydi; tugma borligini ko'radi, lekin klaviatura bilan unga yetib bo'lmasligini sezmaydi. Qo'lda sinov — klaviatura va ekran o'quvchi bilan — almashtirib bo'lmaydi.
Nima uchun muhim
- Odamlar — dunyo aholisining ~16% i (1,3 milliard) qandaydir nogironlik bilan yashaydi. Ular ham kurs o'qishi, xarid qilishi, xizmatdan foydalanishi kerak
- Qonun — Yevropa (European Accessibility Act, 2025), AQSh (ADA) va boshqa davlatlarda accessibility talab qilinadi; xalqaro loyihalarda ishlasangiz — bu majburiyat
- SEO — accessible sayt ko'pincha yaxshiroq indekslanadi: semantik HTML,
alt, sarlavhalar (13-dars) - Hamma uchun qulaylik — subtitrlar, klaviatura yorliqlari, katta tugmalar, aniq xatolar — barcha foydalanuvchilarga yoqadi
- Professionallik — yaxshi frontend dasturchi accessibility ni biladi; intervyularda tez-tez so'raladi
Nima uchun shunday?
Nima uchun accessibility ko'pincha "keyinroq qilamiz" ro'yxatiga tushadi — va nima uchun bu xato?
Chunki dasturchi o'zi uchun sinaydi: sichqoncha bilan, yaxshi ekranda, sog'lom ko'z bilan. Muammolar ko'rinmaydi — ular faqat boshqa foydalanuvchilarda paydo bo'ladi, va bu foydalanuvchilar odatda shikoyat qilmaydi — shunchaki ketib qoladi. "Keyinroq" esa qimmat: div lardan qurilgan saytni keyin tuzatish — deyarli qaytadan yozish. Boshidan to'g'ri HTML yozish esa qo'shimcha vaqt talab qilmaydi: <button> yozish <div onclick> yozishdan qiyin emas. Accessibility — alohida xususiyat emas, sifatli kod yozishning bir qismi.
Xulosa
Eslab qoling:
- Accessibility (a11y) — sayt imkoniyatidan qat'i nazar hamma uchun ishlaydi
- Doimiy, vaqtinchalik va vaziyatga bog'liq cheklovlar — hammamizga tegishli
- Ekran o'quvchi HTML ni o'qiydi — semantika hal qiluvchi
- WCAG: POUR — idrok, boshqaruv, tushunarlilik, mustahkamlik; maqsad — AA
- Asosiy qoidalar: semantik HTML,
alt,label, kontrast 4.5:1, faqat rang emas, klaviatura va fokus,lang - Avtomatik vositalar — 30–40%; klaviatura va ekran o'quvchi bilan qo'lda sinang
Keyingi dars
21-dars: ARIA — role, aria-label, aria-hidden, aria-expanded