Accessibility Mobiliose Aplikacijose: Inkluzyvaus Dizaino Vadovas

Prieš metus gavau užduotį - pritaikyti banko aplikaciją regėjimo negalią turintiems vartotojams. "Tiesiog pridėk VoiceOver palaikymą" - pasakė klientas. Po savaitės supratau, kad accessibility nėra "tiesiog pridėti" - tai visiškai kitoks požiūris į kūrimą.

Tas projektas pakeitė mano supratimą apie tai, kam kuriame aplikacijas. Lietuvoje apie 200,000 žmonių turi įvairaus laipsnio regėjimo sutrikimų. Dar daugiau - laikinus sužalojimus, situacinius apribojimus (ryški saulė, viena ranka užimta). Accessibility nėra nišinė funkcija - tai geras dizainas visiems.

Kodėl Accessibility Svarbu?

Skaičiai kalba patys:

  • 15% pasaulio gyventojų turi kokią nors negalią
  • 71% vartotojų su negalia palieka svetaines, kurios neveikia su jų pagalbinėmis technologijomis
  • EU Accessibility Act nuo 2025 m. reikalauja prieinamų skaitmeninių paslaugų
  • Accessible aplikacijos dažnai turi geresnį SEO ir bendrą UX

Praktinis Pavyzdys

Viena Lietuvos e-parduotuvė po accessibility patobulinimų padidino konversijas 23%. Kodėl? Nes aiškesni mygtukai, geresni kontrastai ir logiška navigacija padėjo VISIEMS vartotojams, ne tik tiems su negalia.

WCAG Gairės Mobilioms Aplikacijoms

WCAG (Web Content Accessibility Guidelines) yra standartas, bet jis sukurtas web'ui. Mobilioms aplikacijoms pritaikome tuos pačius principus su specifiniais niuansais.

1. Perceivable (Suvokiama)

Tekstinės alternatyvos: Kiekvienas vaizdas turi turėti aprašymą.

  • iOS: accessibilityLabel
  • Android: contentDescription
  • Flutter: Semantics(label: "...")

Kontrastas: Minimalus kontrastas 4.5:1 normaliam tekstui, 3:1 dideliam. Naudoju įrankius kaip Stark arba Colour Contrast Analyser tikrinimui.

Šrifto dydis: Palaikyk sistemos šrifto dydžio nustatymus. Lietuvoje ypač aktualu - daug vyresnio amžiaus vartotojų naudoja padidintą šriftą.

2. Operable (Valdoma)

Touch targets: Minimalus 44x44 pt (iOS) arba 48x48 dp (Android). Tai ypač svarbu mygtukams ir nuorodoms.

Gestures: Jei naudoji sudėtingus gestus (pinch, swipe), visada turėk alternatyvą - mygtuką ar meniu.

Focus order: Screen reader turi eiti logiška tvarka - iš viršaus į apačią, iš kairės į dešinę. Patikrink su TalkBack/VoiceOver.

3. Understandable (Suprantama)

Aiškios klaidos: Kai forma turi klaidą, pasakyk KUR ir KAIP ją ištaisyti, ne tik "Forma neteisinga".

Nuoseklumas: Navigacija visur ta pati. Jei "Atgal" mygtukas viršuje kairėje - visur ten.

4. Robust (Tvirta)

Semantic markup: Naudok teisingus komponentus - Button yra Button, ne Text su onTap.

Screen Reader Palaikymas: Praktiniai Patarimai

Praleidau daug valandų klausydamas VoiceOver ir TalkBack skaitymo savo aplikacijas. Štai ką išmokau:

Dažniausia Klaida

Ikonėlės be aprašymų. Jei turi hamburger menu ikoną - screen reader pasakys "button". Vartotojas nežino, kad tai meniu. Pridėk: "Atidaryti navigacijos meniu".

iOS VoiceOver

  • accessibilityLabel - ką elementas daro
  • accessibilityHint - papildoma informacija (neprivaloma)
  • accessibilityTraits - elemento tipas (button, header, link)
  • isAccessibilityElement - ar elementas "matomas" screen reader

Android TalkBack

  • contentDescription - pagrindinis aprašymas
  • importantForAccessibility - yes/no/auto
  • accessibilityLiveRegion - dinaminiam turiniui

Flutter

Flutter turi puikų Semantics widget'ą, kuris veikia abiejose platformose:

Flutter Semantics Pavyzdys

Semantics(
  label: 'Pridėti į krepšelį',
  hint: 'Du kartus bakstelėkite pridėti prekę',
  button: true,
  child: IconButton(...),
)

Testavimas: Kaip Patikrinti Accessibility?

Automatinis Testavimas

  • iOS: Xcode Accessibility Inspector
  • Android: Accessibility Scanner (Google app)
  • Flutter: flutter analyze su accessibility lint rules

Rankinis Testavimas

Automatiniai įrankiai randa tik ~30% problemų. Būtina testuoti rankiniu būdu:

  1. Įjunk VoiceOver/TalkBack
  2. Užmerk akis ir bandyk atlikti pagrindinius veiksmus
  3. Ar galėjai suprasti, kur esi?
  4. Ar galėjai pasiekti visus mygtukus?
  5. Ar klaidos buvo aiškios?

Vartotojų Testavimas

Geriausias būdas - pakviesti žmones su negalia testuoti. Lietuvoje galima kreiptis į Lietuvos aklųjų ir silpnaregių sąjungą (LASS).

Spalvos ir Kontrastas

Apie 8% vyrų turi spalvų aklumą. Štai ką daryti:

  • Nenaudok tik spalvos informacijai perduoti. Jei klaida raudona - pridėk ir ikoną, ir tekstą.
  • Testuok su simuliatoriais - Sim Daltonism (Mac), Color Oracle (Windows)
  • Naudok kontrastų tikrinimo įrankius - WebAIM Contrast Checker

Geras Kontrastas

Normalus tekstas: 4.5:1 minimum
Didelis tekstas (18pt+): 3:1 minimum
UI komponentai: 3:1 minimum

Kainos ir ROI

Būsiu atviras - accessibility nėra nemokamas. Bet tai investicija:

Etapas Papildomos išlaidos Nauda
Dizaino fazė +10-15% laiko Mažiau pakeitimų vėliau
Kūrimo fazė +15-20% laiko Geresnis kodas, mažiau bugų
Testavimas +5-10% laiko Tikras vartotojų feedback
Viso +20-30% pradžioje Daugiau vartotojų, mažiau teisinių rizikų

EU Accessibility Act: Ką Reikia Žinoti?

Nuo 2025 m. birželio ES reikalauja, kad skaitmeninės paslaugos būtų prieinamos. Tai liečia:

  • E-komercijos platformas
  • Bankininkystės paslaugas
  • Transporto paslaugas
  • El. knygas ir media

Baudos už neatitikimą - iki 10% metinės apyvartos. Bet svarbiau - tai tiesiog teisinga daryti.

Ką Daryti Šiandien?

5 Žingsniai Pradėti

  1. Audit: Paleisk Accessibility Scanner/Inspector savo aplikacijai
  2. Touch targets: Patikrink, ar visi mygtukai bent 44x44
  3. Kontrastas: Patikrink pagrindinius tekstus ir mygtukus
  4. Screen reader: Pabandyk VoiceOver/TalkBack 10 min
  5. Alt texts: Pridėk aprašymus visoms ikonėlėms

Reikia Pagalbos su Accessibility?

Atlieku accessibility auditus ir padedau pritaikyti aplikacijas WCAG standartams.

Susisiekti