WAI-ARIA enables Web developers to make dynamic content accessible to users of assistive technologies (ATs) but there remain many sites on the Web that do not use it. Unfortunately the default behaviour of ATs when handling such pages is often sub-optimal, leaving users struggling to use the content. We present ACup: a flexible approach that injects JavaScript into the page to detect and classify any changes to the Document Object Model (DOM). These changes are then presented to the user using a WAI-ARIA live region that was injected when the page was loaded. The style of presentation varies according to the characteristics of each update (using rules previously bound to be effective) and can simply be changed, for example to test novel presentation approaches, or to apply a more fine-grained classification. This may be used to enable AT users to benefit more rapidly from advances in user-interface design.
Presented at the 10th International Cross-Disciplinary Conference on Web Accessibility – 13-15th May 2013 – Rio de Janeiro, Brazil.
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Dynamic Injection of WAI-ARIA into Web Content #w4a13
1. ACup: Dynamically Injecting WAI-ARIA
Simon Harper1
Andy Brown2
School of Computer Science
University of Manchester
May 13th, 2013
1
simon.harper@manchester.ac.uk, @sharpic
2
andrew.brown@cs.manchester.ac.uk
2. Motivation
Many Web pages contain dynamic
content
This can be problematic for AT users
WAI-ARIA provides a solution...
if implemented (well)
What if has not been used?
Auto-suggest list
Brown and Harper, W4A 2013 ACup: Dynamically Injecting WAI-ARIA 2 / 10
3. AxsJAX
Access-Enabling AJAX
Charles Chen and T.V. Raman
A Framework for injecting accessibility features into Web 2.0 applications.
Developing an AxsJAX script requires:
Technical knowledge: xpaths, JavaScript
Pre-knowledge of the structure of the page/application
What if we don’t have this information, or these skills?
Brown and Harper, W4A 2013 ACup: Dynamically Injecting WAI-ARIA 3 / 10
4. Research Questions
1 Can injected JavaScript:
monitor a Web page for updates?
classify those updates?
2 Can post-load injected WAI-ARIA be used to modify screen reader
behaviour?
3 Performance: robustness and speed?
4 How generalisable is the process?
Brown and Harper, W4A 2013 ACup: Dynamically Injecting WAI-ARIA 4 / 10
6. Classification of updates
Updates classified according to:
How it was initiated:
by the user (mouse click, key-press,...)
automatically
The effect it had on the page:
Content added
removed
replaced
Brown and Harper, W4A 2013 ACup: Dynamically Injecting WAI-ARIA 6 / 10
7. Evaluation
Classification system tested on 20 of the most popular Web sites
Classification by initiation 100% correct
Classification by effect correct on 85% of sites
Some problematic cases:
complex auto-suggest list updates
‘pre-loading’ of dynamic content
mis-match between visual changes and DOM updates
Many page changes did not involve modification to DOM structure
Brown and Harper, W4A 2013 ACup: Dynamically Injecting WAI-ARIA 7 / 10
8. Modifying the UI
Classification is only a means to an end... We need to:
Modify the user interface
Enable easy modification
Achieved by injecting WAI-ARIA enabled HTML into the page.
ACup is designed for adapting the following according to update class:
Non-speech notification
Speech announcement
Content spoken automatically: all, first sentence, none
Brown and Harper, W4A 2013 ACup: Dynamically Injecting WAI-ARIA 8 / 10
9. Conclusions
We have shown that:
Injected JavaScript can be used to detect and classify updates
Injected ARIA-enabled HTML can ’push’ content to the AT
Pages without ARIA can be made more accessible without modifying
the browser or AT
Brown and Harper, W4A 2013 ACup: Dynamically Injecting WAI-ARIA 9 / 10