Semantic HTML, ARIA, focus management, forma va rasmlarda accessibility — test va debugging mashqlari bilan.
Yaxshi UI — faqat ko'rinishi chiroyli emas, balki har qanday foydalanuvchi (jumladan ekran o'quvchi yoki klaviatura orqali foydalanuvchilar) uchun ham qulay bo'lishi kerak.
App.jsxReact JSX// Yomon<div onClick={handleClick}>Yuborish</div>// Yaxshi<button onClick={handleClick}>Yuborish</button>
Semantic elementlar (<button>, <nav>, <header>) brauzer va ekran o'quvchilarga elementning vazifasini avtomatik yetkazadi — <div> esa hech qanday ma'no bermaydi.
App.jsxReact JSXfunction Modal({ onClose }) {const closeButtonRef = useRef(null);useEffect(() => {closeButtonRef.current.focus(); // modal ochilganda fokusni boshqarish}, []);return (<div role="dialog" aria-modal="true"><button ref={closeButtonRef} onClick={onClose}>Yopish</button></div>);}
App.jsxReact JSX<label htmlFor="email">Email</label><input id="email" type="email" /><img src="logo.png" alt="Kompaniya logotipi" />
⚠️ Common Mistake
<img> uchun alt atributini bo'sh yoki umuman qo'ymaslik — ekran o'quvchi foydalanuvchilariga rasm haqida hech qanday ma'lumot bermaydi.
Task: Faqat klaviatura yordamida to'liq to'ldirish mumkin bo'lgan forma yarating (barcha maydonlar to'g'ri label'langan).
App.jsxReact JSX<div className="button" onClick={handleSubmit}>Yuborish</div>
Your Task: Bu element klaviatura orqali ishlatib bo'lmaydi. Nega, va qanday tuzatish mumkin?
<details> <summary>Solution</summary> `<div>` — standart holatda fokus ololmaydi va klaviatura hodisalarini qo'llab-quvvatlamaydi. Eng to'g'ri yechim — semantik `<button>` ishlatish: ```jsx <button className="button" onClick={handleSubmit}>Yuborish</button> ``` </details>Semantic HTML — accessibility'ning asosi. Focus management — modal va dinamik UI'larda muhim. Forma elementlari to'g'ri label'langan, rasmlar mazmunli alt matniga ega bo'lishi kerak.
button, nav, label) — accessibility'ni "bepul" beradiApp.jsxReact JSX<button onClick={fn}>...</button> // <div onClick> emas<label htmlFor="x">Matn</label><input id="x" /><img src="..." alt="Tavsif" /><div role="dialog" aria-modal="true">...</div>
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslikda o‘rganilgan qoidalarga asosan real kod yozing, testlardan o‘tkazing va yechimlarni mustahkamlang.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Masalalar
0 / 1 ta yechildi (kamida 75% kerak)
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: