Problematika přístupnosti AJAX aplikací


24Červ, 2010
Problematika přístupnosti AJAX aplikací

Autor: PhDr. Milan Novák, Ph.D. Datum: 24.07.2010 Kategorie: Optimalizace stránek

AJAX je jednou z rychle se rozvíjejících platforem, které přináší nové možnosti do prostředí internetových stránek. Při jeho bohatých možnostech nasazení by měla být zajištěna uživatelská přístupnost, což je jeden z problematických faktorů, které se obtížně akceptují.


Co je AJAX?

AJAX je jednou z novějších webových technologií poskytující dynamickou interakci klient-server v prostředí internetových aplikací, bez nutného požadavku na neustálé načítání celých stránek. AJAX je postaven na asynchronním volání JavaScriptu a XML. AJAX sám osobě není technologií, ale jedná se o kombinaci několika technologií, které vedou k danému cíli. AJAX využívá:

  • XHTML a CSS kvytváření rozhraní a vizuálního stylu předávaných informací. Elementy XHTML a CSS mohou být dynamicky modifikovány tak, aby zobrazovaly nové informace nebo upravovali informace stávající podle definovaného stylu.
  • JavaScript se využívá kmanipulaci elementů vizuálního rozhraní a kvytváření komunikace swebovým serverem prostřednictvím XMLHttpRequest. Tím je umožněno přenášet data (typicky ve formátu XML) mezi klientem a serverem bez nutného znovu načítání celé stránky.

Využívání AJAX poskytuje vyšší úroveň interaktivity a zpracování, bez požadavku na standardní typ interakce mezi klientem a serverem v podobě:

  1. Prezentace rozhraní webové stránky.
  2. Získávání informací uživatelem (prostřednictvím formulářů, odkazů apod.).
  3. Odesílání informací uživatelem.
  4. Zpracování informací serverem.
  5. Odeslání nově zpracovaného rozhraní webové stránky uživateli.

Prostřednictvím AJAX mohou být uvedené kroky realizovány v jednom rozhraní, resp. v jednom elementu webové stránky. Příkladem využití AJAX jsou např. mapové aplikace, real-time vyhledávání, validace formulářů, emailové aplikace a mnoho dalších. Tento typ webových aplikací založených na AJAX poskytl vzestup rámce "WEB 2.0"- což signalizovalo odlišné a možná i revoluční použití webu. AJAX přinesl jednotlivým technologiím používaným v této koncepci jejich zvýšenou popularitu a jejich uvědomění se předkládá vývojářům otázky týkající se přístupnosti aplikací vytvořených v těchto technologiích.

Proč využívat AJAX?

Jak bylo uvedeno výše, AJAX umožňuje interaktivně bohatší, dynamické webové aplikace, které využívají serverového zpracování bez tradičního odesílání a přijímání dat v prostředí webové stránky. Využívání XMLHttpRequest umožňuje přenášet data na pozadí webové aplikace a JavaScript se využívá k manipulaci aplikačního rozhranní a zobrazení dynamických informací. To umožňuje vytvářet více efektivnějších aplikací, které vyžadují nízké procesní zpracování a menší přenos dat, protože nedochází ke generování celého rozhraní webové stránky při každém požadavku. JavaScript může být také použit k aplikaci vyšší úrovně interaktivity, což HTML zcela neumožňuje (myslíse tím drag and drop, ovládání prostřednictvím kláves apod.).

Proč nevyužívat AJAX?

Jedním z požadavků na přístupnost stránek je stejné zobrazení v různých webových prohlížečích při zachování podobné interaktivity. AJAX tento požadavek zcela nesplňuje. Je to způsobeno především využíváním technologie  JavaScript, protože některé prohlížeče ji nepodporují. Z tohoto důvodu AJAX není přístupný pro celou řadu typických webových uživatelů. Podle W3C - Web Content Accessibility Guidelines je požadováno, aby webové aplikace fungovali i při vypnutém nebo nepodporovaném JavaScriptu. Dalším, ne vždy podporovaným požadavkem je využití XMLHttpRequest.

Aktuálním řešení těchto problémů je buď vytvořit alternativní obsah k AJAX verzi webové aplikace, nebo povolit provozující aplikaci využívání AJAX i v případě zamítnuté podpory uvedených technologií a předpokládat, že uživatel bude mít vždy k dispozici adekvátní podporu prohlížeče. Takovýto požadavek, ale nemusí být vždy jednoduše dosažitelný. Přestože vývojáři mohou pro provozování AJAX aplikace vždy požadovat odpovídající podporu v prohlížeči, musí si být vědomi, že takový požadavek nemusí být dosažitelný pro každého uživatele, zejména pak v mobilních zařízeních a starších internetových prohlížečích.

Přirozenou vlastností AJAX je inovace a manipulace nad konkrétními elementy stránky tzv. za běhu. Prostřednictvím AJAX mohou být informace odesílány na server bez přímé uživatelovi interakce nebo může využívat kroků, které nejsou pro uživatele zcela zřejmé. Například většina uživatelů očekává odesílání, validaci a zpracování formulářů až po stisknutí tlačítka, ale AJAX tyto procesní kroky může provádět i při jiných událostech (např. každých 5 sekund, nebo při předání fokusu danému prvku, apod.). Tyto operace nemusí být uživateli zcela zjevný a navíc se mohou vykonávat velmi rychle. Mnoho uživatelů očekává určitou prodlevu mezi odesláním a následným zobrazením informací na nově nahrané nebo obnovené celé stránce.

Další záležitostí spjatou s AJAX je, v jaké formě dochází k inovaci rozhraní stránky, na které jsou nová data zobrazována. Pokud dojde ke změně v obsahu rozhraní, nemusí se jednat o zcela vizuálně patrný efekt, který by poukázal na to, že změna byla provedena. Tento problém je nejvíce patrný při postupném čtení informací z obrazovky. Uživatelé čtou lineárním způsobem, a pokud nastane změna rozhraní, nemusí ji vůbec zaregistrovat a nové informace budou ignorovány.

V krátkosti lze říci, že dynamické rozhraní může být uživatelsky přístupné tehdy, pokud aplikace bude uživatele varovat při každé provedené změně a bude k nově zobrazovanému obsahu přistupovat přímo. Uživatel by měl mít možnost přímého ovládání webové aplikace. V současné době již AJAX umožňuje v mnoha aplikacích splnění těchto podmínek formou vizuálních efektů, které uživatele informují o prováděných změnách a o aktuálním stavu prováděných změn.

Literatura:

Ideose [online]. 2009 [cit. 2010-07-25]. Dostupné z WWW: <http://www.ideose.eu/en/>.