Accessibility / DOM / hybrid web applications

Posted: March 21, 2009 in IT/Dev
Tags: , , , ,

Ross Boucher provides a comprehensive discussion about WAI-ARIA spec, that deals with accessibility through DOM. As usual the additional comments brought a lot of useful informations. Here are my thoughts :

Document (HTML, XML) manipulation in a browser has to be made by altering DOM model (modifying nodes values or adding new ones), and the language to achieve that will be typically Javascript (could be any other language if in another context). The WAI-ARIA sepc is then based on DOM to provide/define accessibility features/roles.

Web applications are now hybrid, that is they are made not only of a document, but also of various heterogeneous elements : Flash element, Cancas element, WebKitView, etc. These elements address specific problematics (features or performance concerns not available from a document – we have to note however that HTML5 extended the document’s possibilites, by addind video tags and database storage for example) : animations, 3D, etc. (the text parts logically will remain in the document’s DOM nodes – except for specific cases where it has to be animated, zoomed, etc., or as with the Bespin editor, that is based on Canvas). We have to note that WebKit’s CSS Animations also provide separation of model (animation definition through CSS) and interaction language. A document can render without Javascript, but Javascript can’t be executed outside a document context.

These various elements have to communicate with each other in order for responding to user actions, and that has to be made through DOM manipulation for now (for example a user action in a Flash view that has to change a document’s node value). We then speak about APIs accessibility, that can be from a container’s element to another, or from a container’s element to the system itself (in order for benefit from features or optimizations not available in the container). Apple still allows through WebKitView to use 3D acceleration (for 3D transforms) on iPhone (Cocoa access from Javascript, by using a WebScriptObject and JavascriptCore).

Finally the accessibility from the user point (zoom on a text part, underline, etc.) depends from the technical accessibility (APIs inter-communication). In fact technical accessibility (in browser containers inter-communication, or access to system functions from the browser) should be referred as availability to avoid misleading.

About containers inter-communication (that is on browser, not system/external function call) we can read a thread about controlling a Flash movie (passing parameters) from a Cappuccino application. For that to work, the CPFlashView has to provide access to some Flash embed’s DOM node attributes (and requires a name attribute on the _DOMEmbedElement to get the right Flash handle). On the other way (Flash–>Cappuccino) the Flash ActionScript code has to have access to the Cappuccino root DOM element (that is normally hidden by the framework).


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s