Stlačte "Enter" na preskočenie k obsahu

AccessKit: Zjednotená prístupnosť

Správy o aktualizáciach čítačov obrazoviek či iných prístupnostných nástrojov sa objavujú pomerne pravidelne. Čo je už ale podstatne zriedkavejšie je vývoj na poli prístupnosti ako takej. Tu vzbudzovali v posledných rokoch pozornosť najmä vylepšenia na poli prehliadačov či vylepšení v Android AccessibilityService API. Jeden projekt však pomaly púta pozornosť aj na desktopových platformách, a má potenciál významne zamiešať karty na poli prístupnosti aplikácií. Dnes sa pozrieme na projekt AccessKit.

Ako funguje prístupnosť

Aby sme pochopili význam a myšlienku AccessKitu, musíme si povedať niečo o tom, ako prístupnosť vlastne funguje. Vývojári aplikácií používajú pri tvorbe grafického rozhrania niečo, čomu sa hovorí graphical user interface framework – GUI framework. Znie to možno zložito, ale vôbec nie je. Aj stavebné firmy pri konštrukcii budov nerobia úplne všetku prácu sami. Objednajú panely, nosníky a iné diely od externých dodávateľov, ktorí sa starajú o ich výrobu vrámci svojej špecializácie. Stavbári následne z týchto dielov vytvoria želanú stavbu. Podobne je to aj pri tvorbe aplikácií. Kód, ktorý sa stará o tvorbu okien, políčok, tlačítok, robia tímy špecializujúce sa na počítačovú grafiku a používateľské rozhrania, pričom výsledkom ich práce je modul, ktorý vývojári aplikácií len zapoja do svojho projektu aby mohli vytvoriť grafické rozhranie.

Na druhej strane barikády máme čítače obrazovky. To sú programy, ktoré mimoriadne zaujíma, čo obsahuje ktoré otvorené okno. Zistiť to ale nie je vôbec jednoduché, nakoľko všetko čo GUI frameworky robia je vykresľovanie na displej na základe vstupu z klávesnice, myši a softvérovej logiky. To je len obraz ktorý nenesie nijakú informáciu o svojom obsahu. Jediný spôsob, ako spraviť rozhranie prístupným, je zariadiť, aby sa vedel čítač obrazovky spojiť s GUI frameworkom a vydiskutovať s ním, čo sa v okne danej aplikácie práve deje.

To sa však ľahšie povie než urobí.

Dorozumenie, najväčší problém prístupnosti

Aby si mohli čítače s frameworkami vymieňať informácie, potrebujú na to dohodnutý protokol, podobne ako ľudia, keď sa chcú dohodnúť, musia ovládať aspoň 1 spoločný jazyk. Práve v pojme spoločný však tkvie háčik. Vývoj prístupnosti z historického hľadiska nebol veľmi priamočiary proces, musel sa prispôsobovať stále novým a novým výzvam, meniacim sa požiadavkám. Je niečo iné sprístupniť konzolové prostredie typu MS DOS či Unix, grafické rozhranie ako to Windowsové, web, webové aplikácie, či smartfóny. Každé z týchto prostredí je svojím spôsobom unikátne a bolo treba vymyslieť ako vôbec by malo byť sprístupnené, a vytvoriť systém, ktorý by si s tým vedel poradiť. Preto na poli komunikačných protokolov postupne vznikali na Windowse MS Active Accessibility MSAA, Microsoft User interface Automation MSUIA, na Linuxe ATK, neskôr AT-SPI, svoje vlastné protokoly vytvorili tiež Android i Apple a web je tak trochu kategória sama o sebe.

Z toho vyplýva, že máme nie len vlastný „prístupnostný jazyk“ zvlášť pre každú platformu, my máme ešte aj v rámci jednotlivých platforiem niekoľko verzií týchto jazykov. A teraz si predstavte, že máte tím expertov na grafiku, ktorí robia framework, a mali by doňho implementovať prístupnosť. Musia sa v prvom rade oboznámiť s tým, čo sú to vôbec čítače obrazovky, ako fungujú a pracujú pre používateľov. Následne musia ísť pod povrch týchto čítačov, zistiť, ako vnútorne fungujú a ako sa s nimi dorozumieť. No a keď prídu do tejto fázy a zistia, že majú pred sebou masívnu úlohu synchronizácie stavu, tak zistia, že by ju v ideálnom prípade mali riešiť nie raz, ale rovno 3 až 5-krát. A to sa bavíme o oblasti, ktorá sa síce v posledných rokoch dostáva čoraz viac do pozornosti, ale v minulosti išlo skôr o okrajovú záležitosť.

Výsledkom bola v mnohých prípadoch, najmä pri menších projektoch, úplná absencia podpory prístupnosti, prípadne obmedzená len na niektoré platformy. A aj tam, kde sa podpora objavila, boli implementácie často chybné, pomalé či neúplné, čo sa týkalo aj tak rozšírených nástrojov ako Java či QT.

AccessKit: Univerzálny prístup

Na scéne sa pred pár rokmi objavil zaujímavý projekt, ktorý by tento problém mohol vyriešiť. Volá sa AccessKit, a stojí za ním známy a11y vývojár Matt Campbell s finančnou podporou Googlu. Myšlienka AccessKitu je jednoduchá. Poskytnúť vývojárom GUI frameworkov jednoduchú knižnicu, ktorá by cez zrozumiteľné a dobre zdokumentované rozhranie vyriešila komunikáciu s čítačmi obrazovky na všetkých platformách, navrhnutú a dôsledne otestovanú expertmi na prístupnosť.

Výhod je množstvo:

  • Vývojári frameworkov sa nebudú musieť zaoberať detailmi implementácie prístupnosti, čo výrazne zjednoduší jej zapracovanie.
  • Dobrá dokumentácia spolu s príkladmi dávajú predpoklady pre správne použitie.
  • Centrálne sústredenie prístupnostnej logiky znižuje priestor pre chyby a umožňuje testovať výkonnosť systému.
  • V prípade ďalšieho vývoja komunikačných a11y protokolov stačí zmeny implementovať v AccessKite a v ideálnom prípade bude pre frameworky aktualizácia predstavovať len prechod na vyššiu verziu knižnice.
  • AccessKit je napísaný v programovacom jazyku Rust, čo znamená vysokú mieru efektivity, robustnosti a bezpečnosti knižnice.

Kedy uvidíme AccessKit v praxi?

Prvé GUI knižnice ako egui, Slint, či iced postupne AccessKit zapracovávajú. Zároveň sa vyvíja knižnica ako taká, pričom samotný Matt Campbell sa nedávno pripojil do accessibility tímu Gnome kde pracuje na novom at-spi protokole pre Linux, prístupnosti GTK a Waylandu.

Aký bude mať nový prístup vplyv na prístupnosť ukáže až čas. Ide však o zaujímavý počin problému, s ktorým sa opakovane potýkali s rôznou úspešnosťou aj firmy ako Google. Aktivita v tejto oblasti má preto rozhodne veľký potenciál.

Okomentujte ako prví

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Táto webová stránka používa Akismet na redukciu spamu. Získajte viac informácií o tom, ako sú vaše údaje z komentárov spracovávané.