Disponibilitate UX și interfețe pentru toți
1) De ce contează
Din punct de vedere juridic și etic: interfața nu ar trebui să excludă persoanele cu deficiențe vizuale, auditive, motorii, cognitive.
Efect de afaceri: mai mulți utilizatori, conversie și păstrare mai mare, o mai bună calitate SEO și cod.
Operațional: Accesibilitatea este un proces, nu un „fix aleatoriu”.
2) Fundamente și principii (POUR)
Perceptibil: contrast, texte alternative, subtitrări.
Operabil: totul este accesibil de la tastatură, focalizare vizibilă, animații pauză/oprire.
Înțelegere: navigare previzibilă, erori clare, formulări simple.
Robust: semantică corectă HTML/ARIA, compatibilitate cu tehnologiile asistive.
3) Semantică, titluri și ARIAs
Marcaj semantic înainte de ARIA: '<button>', '<α>', '<form>', '<table>' - după scop.
Ierarhia antetului: unul '<h1>' pe pagină, apoi structura logică '<h2>' - '<h3>'.
Repere: '<header>', '<main>', '<deoparte>', '<footer>', '<α>' - ajutor cititoare de ecran.
ARIA numai atunci când este necesar: „rol”, „aria-etichetă”, „aria-descris”, „aria-extins”, „aria-live”.
Stări/erori prin „aria-invalid”, „aria-errormessage”.
4) Managementul tastaturii și al focalizării
Control complet al tastaturii: 'Tab/Shift + Tab' - comandă, 'Enter/Space' - activare, 'Esc' - ieșire.
Focalizare vizibilă întotdeauna; nu dezactivați conturul.
Focus capcane: în modalități - focalizare ciclică, returnarea focalizării la sursă după închidere.
Elementele ascunse nu trebuie să cadă în ordinea filei (' display: none', 'aria-hidden =” true”').
Skip link-uri: „Du-te la conținutul principal” - la începutul paginii.
5) Culoare, contrast și tipografie
Contrast text: cel puțin 4. 5:1 pentru text simplu și 3:1 pentru text mare.
Nu vă bazați numai pe culoare: duplicați cu o pictogramă/model/semnătură.
Dimensiunea obiectivelor clicabile: cel puțin 40-48 px, câmpuri suficiente în jurul valorii.
Fonturi: fonturi lizibile, linie-la-linie 1. 4–1. 6, lungime linie 45-90 caractere.
6) Mișcare, animații și flash epileptogen
Respectați sistemul preferă steagul cu mișcare redusă - adăugați animații simplificate/dezactivați paralaxa.
Evitați pâlpâiturile> 3 ori/sec.
Toate mișcările automate trebuie să aibă Pause/Stop/Hide.
7) Formulare, erori și validare
Legați explicit etichetele și câmpurile: '<label for = "id'>'.
Înlocuitorul nu este o etichetă.
Mesajele de eroare de lângă câmp și în rezumatul de eroare din partea de sus; bind via 'aria-descrise'.
Explicați formatul de intrare, exemplul, masca; Specificați unitățile și moneda.
Nu resetați câmpurile completate atunci când apare o eroare; concentrează-te pe câmpul problemelor.
html
<label for="email">Эл. почта</label>
<input id="email" name="email" type="email" aria-describedby="email-hint email-err">
<div id="email-hint" class="hint">Мы не рассылаем спам</div>
<div id="email-err" class="error" role="alert">Укажите адрес в формате name@example.com</div>
8) Componente și interactive: modele
Butoane vs link-uri: action = '<button>', jump = '<a>'.
File/acordeoane: săgeți de navigare, „aria-controale”, „aria-selectate”.
Modalități/dialoguri: 'rol =' dialog '', 'aria-modal =' true '', focus trap, 'Esc' se închide.
Tooltip/Popover: accesibilitatea tastaturii, timeout-urile nu interferează cu citirea.
Drag & Drop: alternative - mutați butoanele în sus/în jos, săgețile tastaturii; evenimente nu doar cu mouse-ul.
9) Media: Video/Audio/Grafică
Video: subtitrări, transcriere, descriere audio alternativă (AD).
Audio: transcriere text.
Grafice/diagrame: rezumat text („ce este important”), tabel de date, etichete descriptive ale axelor.
Zonele de viață: 'aria-live = "politicos "/" asertiv" "- atent să nu" țipe "prea des.
10) Tabele și liste
11) i18n, locales și RTL
Atributul 'lang' pe rădăcina html; numărul local/data/formatele valutare.
Suport RTL (arabă/ebraică): icoane de oglindire, ordine de navigare, cursoare.
Evitați cuvintele cusute în pictograme (textul trebuie să fie traductibil).
Formulări simple, evitați jargonul; glosar de termeni.
12) Timp, sesiuni, captchas și alternative
Timeouts - cu un avertisment și capacitatea de a extinde.
CAPTCHA: preferați alternative (întrebări, analizoare de bot invizibile, confirmare prin poștă/telefon); dacă utilizați - o alternativă de text și nu numai vizual.
Autentificare: suport pentru managerii de parole, „arată parola”, WebAuthn.
13) Accesibilitatea pentru deficiențe senzoriale și motorii
Gesturile trebuie să aibă echivalente clic/tastatură.
Nu necesită rețineri lungi/robinete duble fără alternativă.
„Anulare pointer”: acțiunea trebuie efectuată pe eliberare, nu pe „presă” pentru a da o șansă de a anula.
14) State, anunțuri și alerte
Use 'role = "stare "/" alertă" "pentru mesaje dinamice.
Nu vă acoperiți concentrarea cu bannere lipicioase.
Notificări toast - cu pauză la focus/hover și acces de la tastatură.
15) Planul de încercare (manual și automat)
Manual (minim):- Treceți toate scripturile cheie numai cu tastatura.
- Verificați vizibilitatea focalizării pe fiecare element.
- Zoom până la 200% - interfața rămâne funcțională fără derulare orizontală.
- Activați modul de sistem „reduce mișcarea” - animațiile nu interferează.
- Treceți scriptul cu un cititor de ecran (NVDA/VoiceOver), asigurați-vă că rolurile/etichetele/ordinea sunt corecte.
- Scame de accesibilitate la nivel de componente.
- Verificați contrastul, textele alternative, ordinea antetului, valabilitatea ARIA.
- Instantanee de semantică (copac rol) pentru ecrane critice.
16) Disponibilitate Măsurători de calitate
A11y Acoperire: proporția de componente cu liste de verificare completate.
Rata de trecere a tastaturii: procentajul scripturilor traversate de tastatură.
Contrast Violations/1k elemente.
SR Flow Time: Script timp de rulare cu cititor de ecran.
Feedback-ul utilizatorilor: reclamații privind disponibilitatea, timpul de răspuns și corecțiile.
17) Lista de verificare a componentelor
- Semantică corectă/rol fără ARIA redundantă
- Etichete semnate, „aria” corect
- Control complet al tastaturii, focalizare vizibilă
- Contrastul text/pictogramă/frontieră este normal
- Erorile și condițiile sunt exprimate de cititorul de ecran
- Respectul preferă mișcarea redusă
- Dimensiune suprafață clicabilă ≥ 40-48 px
- Localizare și RTL nu rupe aspectul
18) Anti-modele
„Div-butoane” fără un rol/tastatură.
Ascunde „contur: nici unul” se concentreze fără o alternativă.
Înlocuitor în loc de etichetă.
Numai erori de culoare.
Modalități fără focalizare și fără "Esc'.
Trageți numai fără tastatură.
Lungă auto-derulare/paralaxă fără opțiunea de a dezactiva.
19) Roluri și proces
A11y-owner în comandă (Produs/Design/Dev).
Definiția datelor (DoD) include disponibilitatea.
Revizuirea designului: verificarea contrastului, focalizarea, etichetele.
Recenzie cod: semantică/ARIA, test de tastatură.
Audituri regulate și plan de îmbunătățire.
20) Implementarea prin iterație
Iterația 1 - Fundația (2 săptămâni):- Semantică/titluri, contrast, focalizare și tastatură, forme de bază și erori.
- Modale, file/acordeoane, tabele/grafice cu rezumat text, subtitrare video, animație redusă.
- Autotesturi în CI, RTL/i18n, metrici, audituri regulate, instruire în echipă.
21) Șabloane și fragmente
Modalka (simplificată):html
<div role="dialog" aria-modal="true" aria-labelledby="dlg-title" aria-describedby="dlg-desc">
<h2 id="dlg-title">Подтвердите действие</h2>
<p id="dlg-desc">Эта операция необратима.</p>
<button>Отмена</button>
<button>Подтвердить</button>
</div>
Treci la butonul de conținut:
html
<a class="skip-link" href="#main">Перейти к основному содержимому</a>
<main id="main">...</main>
Respectul preferă mișcarea redusă:
css
@media (prefers-reduced-motion: reduce) {
{ animation-duration: 0.01ms!important; animation-iteration-count: 1!important; transition: none!important; }
}
22) Mini-Întrebări frecvente
Am nevoie de o versiune separată „cu deficiențe de vedere”?
Nu, nu este. O versiune adaptivă, accesibilă pentru toată lumea cu setări.
Este suficient pentru a verifica doar contrastul?
Nu, nu este. Contrastul este doar parti. nevoie de tastatură, focalizare, semantică, erori de formă, mass-media, etc.
ARIA va rezolva totul?
ARIA nu va corecta semantica incorectă. Mai întâi etichetele corecte, apoi rafinamentele ARIA.
Rezultat
Disponibilitatea este o disciplină de sistem: semantică tastatură/focus contrast/culoare forme/greșeli media/programe plan de testare și metrică. Faceți accesibilitatea parte din DoD și cultura echipei - iar produsul dvs. va fi cu adevărat versatil, fiabil și convenabil pentru toată lumea.