Accesibilitate web în practică: 12 exemple greșit vs. corect

Teoria WCAG devine clară abia când vedeți diferența. Mai jos sunt cele mai frecvente 12 probleme de accesibilitate web găsite în audituri, fiecare cu varianta greșită, varianta corectă și codul care face diferența.

Actualizat: 1 octombrie 2026 9 min de citit Cu cod HTML 4 exemple interactive

Pe scurt

  • Accesibilitatea web se joacă în detalii: un atribut alt, o etichetă, un contur de focus.
  • Primele 4 exemple sunt interactive — rulați simularea sau navigați cu Tab.
  • Celelalte 8 arată varianta greșită și cea corectă, cu codul evidențiat.

1–4. Exemple interactive: ARIA, tabindex, ordinea focusului, contrastul focusului

Aceste patru erori afectează direct persoanele care folosesc tastatura sau un cititor de ecran. Comparați cele două variante: în stânga, simularea arată ce se întâmplă; în dreapta, componentele sunt reale — încercați chiar dvs. cu Tab.

Butoane fără nume accesibil și fără stare

Iconițele „lupă” și „hamburger” arată clar pentru cine vede ecranul, dar un cititor de ecran anunță doar „buton”. Iar un meniu care se deschide fără aria-expanded nu spune nimănui că s-a deschis. Criteriu: 4.1.2 Nume, rol, valoare (A).

Greșitsimulare
Cititorul de ecran spune—
<!-- iconiță fără text alternativ -->
<button><svg>…</svg></button>
<button><svg>…</svg></button>
<button onclick="toggle()">Servicii online</button>
Corectinteractiv — folosiți Tab
Cititorul de ecran spune—
<button aria-label="Caută"><svg aria-hidden="true"></button>
<button aria-label="Meniu" aria-expanded="false"
        aria-controls="meniu">…</button>
<button aria-expanded="false" aria-controls="servicii">
  Servicii online</button>

5. Imagini fără text alternativ

Criteriu: 1.1.1 Conținut non-text (A)

Cititorul de ecran citește numele fișierului sau sare peste imagine. Pentru un afiș de eveniment, informația se pierde complet.

Greșit

Se citește: „imagine, afis_final_v3 punct jpg”

<img src="afis_final_v3.jpg">
Corect

Se citește: „Târgul de Crăciun, 1–24 decembrie, Piața Mare, intrare liberă”

<img src="afis.jpg"
     alt="Târgul de Crăciun, 1–24 decembrie,
          Piața Mare, intrare liberă">

6. Linkuri „click aici”

Criteriu: 2.4.4 Scopul linkului (A)

Utilizatorii de cititoare de ecran parcurg adesea lista tuturor linkurilor din pagină. Zece linkuri „aici” nu spun nimic.

Greșit

Formularul de cerere îl găsiți aici.

Formularul îl găsiți <a href="…">aici</a>.
Corect
Descărcați <a href="…">formularul de cerere
  pentru certificatul de urbanism (PDF, 120 KB)</a>.

7. Câmpuri fără etichetă (doar placeholder)

Criteriu: 1.3.1 · 3.3.2 Etichete (A)

Textul din placeholder dispare când începeți să scrieți și nu este anunțat sigur de toate cititoarele de ecran. Utilizatorul uită ce trebuia completat.

Greșit
E-mail
<input placeholder="E-mail">
Corect
Adresa de e-mailnume@exemplu.ro
<label for="email">Adresa de e-mail</label>
<input id="email" type="email"
       autocomplete="email">

8. Text cu contrast slab

Criteriu: 1.4.3 Contrast minim (AA)

Textul gri deschis pe alb arată „elegant”, dar devine greu de citit pentru persoanele cu vedere slabă, pe ecrane ieftine sau în lumină puternică.

Greșit · 2,3:1
Programul de lucru cu publicul: luni–vineri, 8:00–16:00.
p { color: #a8a8b3; } /* 2,3:1 pe alb */
Corect · 8,7:1

Programul de lucru cu publicul: luni–vineri, 8:00–16:00.

p { color: #494a5a; } /* 8,7:1 pe alb */

9. Titluri false (text îngroșat în loc de H2)

Criteriu: 1.3.1 Info și relații (A) · 2.4.6 (AA)

Majoritatea utilizatorilor de cititoare de ecran navighează prin titluri. Un text doar mărit și îngroșat nu apare în lista de titluri.

Greșit

Servicii online

<div class="titlu-mare">Servicii online</div>
Corect

Servicii online

(marcat ca titlu de nivel 2)

<h2>Servicii online</h2>

10. Erori semnalate doar prin culoare

Criteriu: 1.4.1 Utilizarea culorii (A) · 3.3.1 (A)

O bordură roșie nu spune nimic unei persoane daltoniste sau nevăzătoare. Eroarea trebuie explicată în text și legată de câmp.

Greșit
<input class="input-rosu">
Corect

✕ CNP-ul trebuie să aibă 13 cifre.

<input id="cnp" aria-invalid="true"
       aria-describedby="cnp-err">
<p id="cnp-err">CNP-ul trebuie să aibă 13 cifre.</p>

11. Limba paginii nedeclarată

Criteriu: 3.1.1 Limba paginii (A)

Fără atributul lang, sintetizatorul vocal poate citi textul românesc cu pronunție englezească — de neînțeles.

Greșit

Se aude: „Primaria” pronunțat ca în engleză

<html>
Corect

Se aude: „Primăria”, cu pronunție românească

<html lang="ro">

12. Video fără subtitrări

Criteriu: 1.2.2 Subtitrări (A)

Înregistrarea ședinței de consiliu sau clipul de prezentare sunt inutile pentru persoanele surde — și pentru oricine le urmărește fără sunet.

Greșit

Video fără subtitrări și fără transcriere.

<video src="sedinta.mp4" controls></video>
Corect

Video cu subtitrări în română și transcriere disponibilă sub player.

<video src="sedinta.mp4" controls>
  <track kind="captions" srclang="ro"
         src="sedinta.ro.vtt" default>
</video>

Ce faceți după ce ați recunoscut erorile

Cele mai multe dintre aceste probleme se rezolvă o singură dată, în șablonul site-ului, și dispar de pe sute de pagini. Altele — textul alternativ, linkurile, subtitrările — țin de felul în care echipa publică zilnic conținut și cer o scurtă instruire. Pentru o imagine completă a site-ului dvs., folosiți checklistul WCAG sau cereți un audit de accesibilitate. Fundamentele le găsiți în ghidul complet de accesibilitate web.

Întrebări frecvente

Contrastul insuficient al textului, imaginile fără text alternativ, câmpurile de formular fără etichete, linkurile fără text descriptiv, butoanele fără nume accesibil și lipsa atributului lang sunt, an de an, cele mai frecvente erori găsite pe site-uri.

Multe da: textul alternativ, linkurile descriptive și titlurile țin de editarea conținutului. Problemele de cod (focus, ARIA, formulare, contrast) se rezolvă de dezvoltatorul site-ului, ideal pe baza unui raport de audit.

ARIA (Accessible Rich Internet Applications) este un set de atribute HTML care descriu rolul, numele și starea componentelor pentru tehnologiile asistive, de exemplu aria-label sau aria-expanded. Regula de bază: folosiți întâi elemente HTML native și ARIA doar acolo unde acestea nu ajung.

Exemplele sunt demonstrative și simplificate. Rapoartele de contrast sunt calculate după formula WCAG pentru fundal alb.

Ghiduri pentru instituții

Continuați cu celelalte ghiduri

audit

Audit accesibilitate site instituție

Cum se desfășoară un audit complet — scanare automată, testare manuală a fluxurilor, mobil — și ce conține raportul.

fundamente

Accesibilitate web: ghid complet

Ce înseamnă accesibilitatea web, cine are nevoie de ea, cum se testează și de unde începeți.

Aflați unde se află site-ul instituției dvs.

Scanare automată gratuită, audit manual al fluxurilor și declarație de accesibilitate — de la echipa Wawsome.

Scanează gratuit Solicită un audit