Accessibility (a11y) este practica de a crea aplicații care pot fi utilizate de persoane cu dizabilități. Potrivit Organizației Mondiale a Sănătății, peste 1,3 miliarde de persoane (16% din populație) trăiesc cu o formă de dizabilitate. OMS (raport 2024) subliniază că accesibilitatea digitală devine critic de importantă. Să analizăm cum putem asigura accesibilitatea pe iOS și Android și ce standarde există.
Puncte cheie
Accessibility (abreviat a11y — litera a + 11 litere + y) este proprietatea unui produs de a fi utilizabil de către persoane cu dizabilități. În contextul aplicațiilor mobile, aceasta înseamnă: suport pentru cititoare de ecran (VoiceOver, TalkBack), dimensiune adecvată a textului, contrast ridicat, ordinea corectă a focalizării pentru navigarea cu tastatura și absența elementelor animate care provoacă amețeli.
Incluziunea nu este doar o obligație etică, ci și legală. Multe țări au legi privind accesibilitatea digitală: ADA (SUA), Secțiunea 508, European Accessibility Act (UE, obligatoriu pentru aplicații din 2025). Potrivit Business Disability Forum, companiile care investesc în accesibilitate își măresc audiența cu 15–20% și reduc riscurile legale.
La IT Sectr, verificăm accesibilitatea în fiecare etapă a dezvoltării. Experiența noastră arată: remedierea problemelor de accesibilitate în faza de proiectare costă de 10 ori mai puțin decât după lansare. Accesibilitatea nu este o caracteristică, ci o cerință de bază pentru o aplicație modernă.
Ecosistemul Apple oferă instrumente puternice de accesibilitate. VoiceOver este un cititor de ecran încorporat care vocalizează tot ce se întâmplă pe ecran. Utilizatorul controlează dispozitivul cu gesturi: glisare la dreapta — elementul următor, glisare la stânga — elementul anterior, atingere dublă — activare.
Accessibility Label este textul pe care VoiceOver îl citește pentru un element. În mod implicit, iOS utilizează textul butonului sau eticheta, dar pentru pictograme și elemente grafice trebuie să setați eticheta explicit. Accessibility Trait este o proprietate care descrie tipul elementului: button (buton), header (antet), link (legătură), image (imagine). Trăsăturile corecte ajută utilizatorul să înțeleagă cum să interacționeze cu un element.
VoiceOver suportă peste 40 de limbi și funcționează pe toate dispozitivele Apple. Pentru dezvoltator, principalul lucru este să seteze accessibilityLabel și accessibilityTraits corecte pentru fiecare element de interfață. Dacă un element nu trebuie să fie accesibil (imagine decorativă), setați isAccessibilityElement = false.
// Swift — configurarea accesibilității pentru un buton
let shareButton = UIButton()
shareButton.setImage(UIImage(named: "share-icon"), for: .normal)
shareButton.accessibilityLabel = "Distribuie acest articol"
shareButton.accessibilityHint = "Deschide un dialog pentru alegerea metodei de trimitere"
shareButton.accessibilityTraits = .button
// SwiftUI — și mai simplu
struct ShareButtonView: View {
var body: some View {
Button(action: share) {
Image(systemName: "square.and.arrow.up")
}
.accessibilityLabel("Distribuie")
.accessibilityHint("Deschide meniul de distribuire")
}
}
Codul arată configurarea accesibilității pentru un buton fără text (doar pictogramă). AccessibilityLabel este ceea ce va auzi utilizatorul. AccessibilityHint este un indiciu suplimentar despre rezultatul acțiunii. Nu utilizați fraze precum «buton pentru» în etichetă — Trait indică deja că este un buton.
TalkBack este cititorul de ecran de la Google pentru Android, parte a pachetului Android Accessibility Suite. Ca și VoiceOver, vocalizează elementele interfeței și este controlat prin gesturi. TalkBack suportă peste 100 de limbi și funcționează pe toate dispozitivele cu Google Play Services.
Content Description este echivalentul lui accessibilityLabel pe Android. Se setează prin atributul android:contentDescription în XML sau prin metoda setContentDescription() în cod. Pentru elemente nefocalizabile (ImageView decorativ), utilizați importantForAccessibility="no".
Focus Order (ordinea focalizării) este secvența în care TalkBack se deplasează între elemente la glisare. În mod implicit, Android utilizează ordinea elementelor în layout, dar poate fi modificată prin atributele accessibilityTraversalBefore și accessibilityTraversalAfter. Acest lucru este important pentru ecrane complexe cu componente personalizate.
La IT Sectr, verificăm Focus Order pe fiecare ecran. Erorile de ordine a focalizării sunt printre cele mai comune probleme de accesibilitate. De exemplu, dacă după un antet utilizatorul merge la comentarii în loc de textul articolului — aceasta este o eroare de accesibilitate.
WCAG (Web Content Accessibility Guidelines) este un standard internațional de accesibilitate dezvoltat de W3C. Versiunea curentă este WCAG 2.2 (2023). Standardul este împărțit în 4 principii: Perceivable (perceptibil), Operable (operabil), Understandable (ușor de înțeles), Robust (robust) — abrevierea POUR.
Niveluri WCAG: A (minim), AA (mediu, obligatoriu prin lege în UE), AAA (maxim). Pentru aplicațiile mobile, nivelul AA este suficient: contrastul textului de cel puțin 4.5:1, suport pentru cititoare de ecran, dimensiunea minimă a țintei de 44x44 pixeli, subtitrări pentru video.
Nivelul A — cerințe de bază: alternative text pentru imagini, control prin tastatură, contrast de cel puțin 3:1. Nivelul AA — mediu: contrast 4.5:1, suport pentru scalare până la 200%, antete și etichete corecte. Nivelul AAA — ridicat: contrast 7:1, limbajul semnelor pentru video, control vocal complet. În practică, majoritatea companiilor vizează AA.
| Parametru | iOS | Android |
|---|---|---|
| Cititor de ecran | VoiceOver | TalkBack |
| Eticheta elementului | accessibilityLabel | android:contentDescription |
| Tip element | accessibilityTraits | accessibilityRole (Compose), importanța focalizării |
| Ordinea focalizării | Automată (poate fi modificată) | accessibilityTraversalBefore/After |
| Scalarea textului | Dynamic Type (UIFontMetrics) | sp (scale-independent pixels) |
| Reducere mișcare | UIAccessibility.isReduceMotionEnabled | Settings.Global.getFloat(... ANIMATOR_DURATION_SCALE) |
Tabelul 2. Comparație între API-urile de accesibilitate iOS și Android. În ciuda numelor diferite, conceptele sunt identice: etichetă, tip, ordinea focalizării și suport pentru adaptarea textului.
Testarea accesibilității este verificarea unei aplicații pentru conformitatea cu standardele WCAG și funcționarea corectă cu cititoarele de ecran. Setul minim de teste: activați VoiceOver/TalkBack și navigați prin toate ecranele aplicației. Ascultați pentru a verifica dacă toate elementele sunt anunțate, ordinea focalizării este logică, iar elementele nepotrivite (decorative) sunt ignorate.
Instrumente automatizate: Xcode Accessibility Inspector (audit în Xcode pentru iOS), Android Accessibility Scanner (scanează ecranul și găsește probleme), Axe DevTools, WAVE. Aceste instrumente verifică contrastul, dimensiunea țintei, prezența etichetelor și alți parametri.
La IT Sectr, efectuăm o revizuire a accesibilității înainte de fiecare lansare. Procesul include: audit automatizat (Accessibility Inspector), testare manuală cu VoiceOver și TalkBack, verificarea contrastului și a scalării textului. Înregistrăm problemele în Jira și le atribuim unui sprint. Acest lucru ne permite să menținem nivelul AA WCAG în toate proiectele.
Întrebări frecvente
Setări → Accesibilitate → VoiceOver. Sau apăsați de trei ori butonul lateral (sau butonul Home) cu comanda rapidă de accesibilitate activată. Pentru activare rapidă, utilizați Siri: «Activează VoiceOver». Pe Android, TalkBack se activează în Setări → Accesibilitate → TalkBack.
Pentru conformarea cu legislația UE (European Accessibility Act din 2025) și SUA (ADA), este necesar nivelul AA. Aceasta înseamnă: contrast 4.5:1, toate elementele au etichete, dimensiunea țintei de cel puțin 44x44 pixeli, suport pentru cititoare de ecran, subtitrări pentru video.
Da. Accesibilitatea ajută pe toată lumea: persoane în vârstă, utilizatori într-o zi însorită, părinți care țin un copil în brațe (cu o singură mână). În plus, este o cerință legală în multe țări. Incluziunea extinde audiența și îmbunătățește experiența utilizatorului pentru toți.
Utilizați aceste instrumente: WebAIM Contrast Checker (online), Stark pentru Figma/Sketch. Pentru WCAG AA, raportul minim este 4.5:1 pentru textul normal și 3:1 pentru textul mare (18px și mai mult). Pentru AAA — 7:1 și 4.5:1 respectiv.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.