This document discusses making JavaScript applications more accessible. It begins by explaining why accessibility is important given the large number of people with disabilities. It then discusses common accessibility barriers with JavaScript, including some browsers not supporting JavaScript, lack of knowledge around WAI-ARIA practices, challenges with rich interactive applications using Ajax, and difficulty navigating with only a keyboard. The document provides tips for overcoming these barriers, such as using ARIA landmarks and attributes, semantic HTML, and skip navigation links. The overall message is that accessibility and JavaScript can coexist when the proper techniques are applied.
2. Summary
Throughout history, JS has been pointed out as the villain when the matter is
accessible websites.
By presenting some tricks and techniques, we plan to provoke this
discussion among developers and show that Accessibility and JS may live
together, as long as you take the right steps.
Accessibility and JS: side-by-side
3. Overview
● Why Should I invest on Accessibility?
● What is Accessibility?
● Who needs Accessibility?
● Essential things about the documentation
● User Agents: Do you know them?
● Barriers between Accessibility and JavaScript
● The great secret of accessible applications
11. It´s basically create or turn it accessible
for the largest number of users, mainly
for those with special needs
What would be an accessible application?
Anything isn’t enough
accessible that
couldn’t be improved
17. • W3C (World Wide Web Consortium)
• WAI (Web Accessibility Initiative)
• WCAG (Web Content Accessibility
Guidelines)
• WAI-ARIA(Accessible Rich Internet
Applications)
Alphabet soup
• ATAG (Authoring Tool
Accessibility Guidelines)
• UAAG(User Agent Accessibility
Guidelines)
• eMAG (Brazil´s e-gov model of
accessibility)
Most part of the material is produced by W3C and by institutions interested on
internet development as a whole. The idea is to have internet for all people.
31. Accessibility Barriers
According to the University of Minnesota
● Some browsers may not support JavaScript or may have JavaScript
processing disabled.
● Users may be unaware of dynamically changing page content.
● Some AJAX features (widgets) may be difficult or impossible to navigate
using a keyboard alone.
● Some browsers and browser versions may not support AJAX.
● Some browsers and browser versions may not support ARIA standards.
● Some adaptive Technologies may not support AJAX and ARIA.
32. Accessibility Barriers
According to the University of Minnesota
● Some browsers may not support JavaScript or may have JavaScript
processing disabled.
● Users may be unaware of dynamically changing page content.
● Some AJAX features (widgets) may be difficult or impossible to navigate
using a keyboard alone.
● Some browsers and browser versions may not support AJAX.
● Some browsers and browser versions may not support ARIA standards.
● Some adaptive Technologies may not support AJAX and ARIA.
Summed up in four major problems
01. Browsers do not support JavaScript or it is disabled
02. Developers lack of knowledge in WAI-ARIA practices
03. Rich applications using dynamic content with Ajax
(Asynchronous Javascript and XML)
04. Difficulty or impossibility to navigate using a keyboard
39. What is WAI-ARIA
Accessible Rich Internet Applications (ARIA)
defines ways to make Web content and Web
applications (especially those developed with
Ajax and JavaScript) more accessible to
people with disabilities
44. Asynchronous Javascript and XML
Ajax is a technique for developing
interactive Web Applications
Updating of Web content without
refreshing the whole page
Every modern applications use it
45. Ajax and Accessibility
aria-live=”polite”
How polite the live area is?
The default is ‘polite’ – in that it waits
until all forms of user interaction have
been completed before describing the
updates to the user.
aria-relevant=”additions removals”
Only notify the user about new node additions and removals.
This will give us the appropriate level of updates to make this
possible.
aria-describedby=”users-desc”
A pointer to the element that describes the contents of
the live area. If the user wishes to know more about
what the contents of the field represent this element
can be read to them.
48. Navigations and menus
Users that can´t or don´t want to use the mouse
could use keyboard to navigate on the application!
49. Insert in the link description
On the description we should avoid generic names such as “click here”, “download”
Write texts that make sense. Even when the monitor is turned off!
Preferred
Avoid