ARIA roles, aria-label/labelledby/describedby, aria-live va 'First Rule of ARIA' tamoyili — test va debugging mashqlari bilan.
Semantik HTML — accessibility'ning 80%ini "bepul" beradi. ARIA — qolgan holatlar uchun qo'shimcha ma'lumot beradi.
index.htmlHTML<div role="button" tabindex="0">Custom tugma</div><div role="alert">Xato yuz berdi</div><div role="navigation">...</div>
⚠️ Common Mistake
Semantik HTML element mavjud bo'lsa ham (<button>, <nav>), ularning o'rniga <div role="..."> ishlatish — bu ortiqcha ish va ko'proq xato ehtimolini keltirib chiqaradi.
index.htmlHTML<button aria-label="Modalni yopish">✕</button><div id="dialog-title">Tasdiqlash</div><div role="dialog" aria-labelledby="dialog-title">...</div><input aria-describedby="password-hint"><p id="password-hint">Kamida 8 ta belgi bo'lishi kerak</p>
index.htmlHTML<div aria-live="polite" id="cart-count">Savatda 3 ta mahsulot</div>
💡 Key Idea
aria-live="polite" — bu elementning kontenti JavaScript orqali o'zgarganda, ekran o'quvchi foydalanuvchini "bezovta qilmasdan" (joriy ishini to'xtatmasdan), keyingi qulay vaqtda o'zgarish haqida xabardor qiladi.
Task: Faqat "✕" ikonkasiga ega, ekran o'quvchi uchun tushunarli yopish tugmasini yarating.
Task: Savat sonini real-vaqtda yangilaydigan, ekran o'quvchiga ham xabar beradigan komponent yarating (aria-live bilan).
index.htmlHTML<div class="btn" onclick="submitForm()">Yuborish</div>
Your Task: Bu "tugma" nechta accessibility muammosiga ega?
<details> <summary>Solution</summary> Muammolar: (1) klaviatura orqali fokus ololmaydi va ishga tushmaydi; (2) ekran o'quvchi buni "tugma" deb e'lon qilmaydi. Eng yaxshi yechim — haqiqiy `<button>`: ```html <button onclick="submitForm()">Yuborish</button> ``` Agar `<div>` ishlatish shart bo'lsa (kamdan-kam holat): `role="button" tabindex="0"` va klaviatura event handler qo'shish kerak. </details>ARIA — semantik HTML yetarli bo'lmagan holatlar uchun qo'shimcha ma'lumot beradi, lekin "First Rule of ARIA" — imkon qadar semantik elementlarni afzal ko'rish. aria-label, aria-labelledby, aria-describedby, aria-live — eng ko'p ishlatiladigan ARIA atributlari.
aria-label — ko'rinmas/matnsiz elementlarga tushunarli nom beradiaria-live — dinamik kontent haqida ekran o'quvchini xabardor qiladiindex.htmlHTML<button aria-label="Yopish">✕</button><div role="dialog" aria-labelledby="title-id">...</div><div aria-live="polite">...</div>
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslik ichidagi interaktiv muharrirda berilgan barcha amaliy topshiriqlarni bajaring va avto-tekshiruvdan o‘ting.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Laboratoriya
Laboratoriya muharririda testlarni topshiring
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: