SlideShare a Scribd company logo
Making JavaScript Accessible BayJax - The Bay Area Ajax and JavaScript Meetup June 15, 2010 Yahoo! HQ - Sunnyvale, CA
Agenda About Me Misconceptions Issues with JavaScript and Accessibility Progressive Enhancement WAI-ARIA About HTML5 Links
About Me Author of Web Axe, blog and podcast on web accessibility. Author of AccessibleTwitter.com. Done work for a variety of companies including Ford, Google, Disney, and RIM. I like motorcycling, Star Wars, espresso, Woody Allen movies, and playing guitar.
Mis conceptions All users have a mouse. JavaScript is always available. Screen readers don't support JavaScript. Making it accessible is too difficult.
Issues with JavaScript and Accessibility Keyboard access Content changes Appropriate usage Unavailable
Issues - Keyboard Access Must provide keyboard access to support non-mouse input devices. Keyboards and alternative keyboards Sip-and-puff systems Wands and sticks Electronic tracking devices (eye, brain) Joysticks Trackballs Touch screens
Issues - Keyboard Access alternative keyboard trackball headstick
Issues - Keyboard Access The following screenshot shows an example of core functionality that is not available with a keyboard.
 
Issues - Keyboard Access The following screenshot shows an example of links which can be accessed with a keyboard, but a sighted user has no clue of the cursor location.
 
Issues - Keyboard Access Tips If you use the onMouseOver and onMouseOut JavaScript handlers, you must also use onFocus and onBlur. Make the focus clear & visible. Do no use the double-click handler (onDblClick). Use tabindex=0 and tabindex=-1 to make normally keyboard inaccessible links accessible.
Issues - Content Changes What It Is When page content is updated without a page refresh. Usually Ajax.
Issues - Content Changes How To Help "Yellow gradient flash" convention for sighted users. ARIA for screen readers (more coming). The trusty JavaScript alert.
 
Issues - Appropriate Usage Only use JavaScript: when necessary to enhance behavior
 
Issues - Unavailable Surprise! Users may not have JavaScript available in their user agent. Approximately 4% of users, but difficult to track.
Issues - Unavailable Mobile browsers and other devices (Kindle). Older browsers. Blind users who can't afford the expensive JAWS screen reader. Corporate users that sit behind a firewall that blocks JavaScript at the source. Those who turn it off purposely (security, speed, preference).
Progressive Enhancement Progressive Enhancement is a method of implementing web technologies in a layered fashion that allows everyone to access the basic content and functionality of a web page. Build basic content and functionality  first . Not "graceful degradation". Plan Ajax from the start, implement at the end.
Progressive Enhancement Content - Semantic HTML Presentation - CSS Behavior - JavaScript
Progressive Enhancement Core principles basic content should be accessible to all browsers basic functionality should be accessible to all browsers sparse, semantic markup contains all content enhanced layout is provided by externally linked CSS *enhanced behavior is provided by unobtrusive, externally linked JavaScript end user browser preferences are respected http://en.wikipedia.org/wiki/Progressive_enhancement
 
 
 
WAI-ARIA A W3C draft Accessible Rich Internet Applications Suite "roles, states, and properties to make widgets, navigation, and behaviors accessible"
WAI-ARIA Landmark Roles Labeling and Describing States and Properties Live Regions Form Properties Controls Drag-and-Drop Support
WAI-ARIA Live Regions - Great for Ajax! aria-live="off" aria-live="polite" - updates announced if the user is not currently doing anything. aria-live="assertive" - updates announced as soon as possible, but it is not necessary to immediately interrupt the user.
 
WAI-ARIA aria-atomic="false" This is the default.  Change can be presented on its own; the AT should not present the entire region.  Reduces repetitive information that has not changed. Ensure content can be understood by the user. aria-atomic="true" When there is a change, the AT should present the entire region, not just the change. For context.
WAI-ARIA aria-busy="true" Suppresses AT presentation changes while a region is updating.
About HTML5 HTML5 will make many complex JavaScript (and Flash) features inherently accessible by integrating them natively with the browser. Audio/video controls Input elements  Date picker, color picker Validation (required attribute) Formatting i.e. URL, email Drag-and-drop
Links Hijax: Progressive Enhancement with Ajax Understanding Progressive Enhancement Accessible Javascript with and without WAI ARIA Unintentional Discrimination - Custom Built Applications Introduction to WAI ARIA Future Web Accessibility: New <input> Types in HTML5 Dennis on Twitter: @DennisL, @AccessibleTwitr, @WebAxe

More Related Content

PDF
Web Accessibility Gone Wild (Now Even MORE Wilder!)
PDF
Testing For Web Accessibility
PPTX
PDF
Progressive Web Apps - Bringing the web front and center
PDF
Rubbing the Sankara Stones the wrong way - From the Front 2014
PDF
Testing PWAs - Testbash 2019
PDF
PPTX
Ecosistemas Mobile - eCommerce Day Argentina 2016
Web Accessibility Gone Wild (Now Even MORE Wilder!)
Testing For Web Accessibility
Progressive Web Apps - Bringing the web front and center
Rubbing the Sankara Stones the wrong way - From the Front 2014
Testing PWAs - Testbash 2019
Ecosistemas Mobile - eCommerce Day Argentina 2016

What's hot (20)

PPTX
Permissions api
PDF
Smart Design
PPTX
Progressive web apps
PDF
Keyboard and Interaction Accessibility Techniques
PDF
Wai Aria - An Intro
PDF
Progressive Web Apps
KEY
Responsive UX - One size fits all @BigDesign conference #BigD12
PDF
Responsive design
PPT
An Introduction to WAI-ARIA
PDF
6 things every developer should know about accessibility
PDF
Web Push API
PDF
Web Performance Optimierung - DWX13
PDF
Ionic: The Web SDK for Develop Mobile Apps.
PDF
Progressive Web Apps and WordPress
PDF
Building JavaScript Apps on Top of Popular CMSes
PDF
Mobile tech briefing 2013
PDF
IconFonts
PPT
PPTX
Webworks
PDF
Mat Marquis - JQuery Mobile
Permissions api
Smart Design
Progressive web apps
Keyboard and Interaction Accessibility Techniques
Wai Aria - An Intro
Progressive Web Apps
Responsive UX - One size fits all @BigDesign conference #BigD12
Responsive design
An Introduction to WAI-ARIA
6 things every developer should know about accessibility
Web Push API
Web Performance Optimierung - DWX13
Ionic: The Web SDK for Develop Mobile Apps.
Progressive Web Apps and WordPress
Building JavaScript Apps on Top of Popular CMSes
Mobile tech briefing 2013
IconFonts
Webworks
Mat Marquis - JQuery Mobile
Ad

Viewers also liked (20)

PDF
Strategic Approach to IT Accessibility
PPTX
Accessible Video in The Enterprise
PDF
[Access U 2010] HTML5 & Accessibility
PPTX
Anatomy of an accessible carousel: everyone's responsible!
PDF
Open Web Camp 2014: On Fireproof, Future-Proof, Failure-Proof Things.
PPTX
HTML5's ARIA and a Web-Accessible Dropdown Widget
PPT
How To Build An Accessible Web Application - a11yBos
PPTX
Getting Things Done for Technical Communicators at TCUK14
PPTX
HTML5 Accessibility - Is it ready yet?
PPTX
Usability meets accessibility
PDF
Getting Things Done for Technical Communicators
PPT
How To Build An Accessible Web Application
PDF
Designing with Empathy [Reasons to be Creative 2013]
PDF
Responsible Design: Accountable Accessibility
PDF
Teach your Browser new tricks
ODP
AccessU 2011 Keynote
PDF
Create Accessible Infographics
PPTX
Introduction To Web Accessibility
PPTX
A Web for Everyone: Accessibility as a design challenge
ZIP
The 5 Layers of Web Accessibility
Strategic Approach to IT Accessibility
Accessible Video in The Enterprise
[Access U 2010] HTML5 & Accessibility
Anatomy of an accessible carousel: everyone's responsible!
Open Web Camp 2014: On Fireproof, Future-Proof, Failure-Proof Things.
HTML5's ARIA and a Web-Accessible Dropdown Widget
How To Build An Accessible Web Application - a11yBos
Getting Things Done for Technical Communicators at TCUK14
HTML5 Accessibility - Is it ready yet?
Usability meets accessibility
Getting Things Done for Technical Communicators
How To Build An Accessible Web Application
Designing with Empathy [Reasons to be Creative 2013]
Responsible Design: Accountable Accessibility
Teach your Browser new tricks
AccessU 2011 Keynote
Create Accessible Infographics
Introduction To Web Accessibility
A Web for Everyone: Accessibility as a design challenge
The 5 Layers of Web Accessibility
Ad

Similar to Making JavaScript Accessible (20)

PDF
Accessibility and JS: side-by-side
PDF
Open and Accessible UI
PPT
Accessibility Geek Upv2
PDF
Developing an Accessible Web
PDF
Mike Davies - Ajax And Accessibility
PPTX
Accessibility with Single Page Apps
PPT
Accessibility Geek Up
PPTX
Accessible web applications
PDF
OSDC - Open and Accessible
PPT
ajax
PPT
Ajax Y Accesibilidad
PPT
Using Ajax to improve your user experience at Web Directions South 2009
PPTX
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
PPTX
Selfish Accessibility: HTML5 Developer Conference 2014
KEY
the 5 layers of web accessibility - Open Web Camp II
PDF
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
PDF
jQuery: Accessibility, Mobile und Responsive
PPT
Enabling an Accessible Web 2.0
KEY
Making your jQuery Plugins More Accessible
PDF
Georgia Tech hacking Accessibility
Accessibility and JS: side-by-side
Open and Accessible UI
Accessibility Geek Upv2
Developing an Accessible Web
Mike Davies - Ajax And Accessibility
Accessibility with Single Page Apps
Accessibility Geek Up
Accessible web applications
OSDC - Open and Accessible
ajax
Ajax Y Accesibilidad
Using Ajax to improve your user experience at Web Directions South 2009
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Selfish Accessibility: HTML5 Developer Conference 2014
the 5 layers of web accessibility - Open Web Camp II
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
jQuery: Accessibility, Mobile und Responsive
Enabling an Accessible Web 2.0
Making your jQuery Plugins More Accessible
Georgia Tech hacking Accessibility

More from Dennis Lembree (11)

PPTX
SVG Icons and Screen Reader Accessibility
PPT
Networking with Twitter, Part 2
PPT
Networking with Twitter, Part 1
PPT
Twitter and Web Accessibility (EASI Webinar)
PPT
Accessible Twitter Update at CSUN11 Tweetup
PPT
"Twitter and Web Accessibility" INDATA Conference 2010
PPT
Accessible Twitter CSUN Tweetup 2010
PPT
EASI Webinar: Twitter And Web Accessibility
PPT
Twitter and Web Accessibility AHG 2009 Nov12
PPT
Accessible Twitter at Open Web Camp
PPT
Accessible Twitter : ACCESS-IT@Web 2.0
SVG Icons and Screen Reader Accessibility
Networking with Twitter, Part 2
Networking with Twitter, Part 1
Twitter and Web Accessibility (EASI Webinar)
Accessible Twitter Update at CSUN11 Tweetup
"Twitter and Web Accessibility" INDATA Conference 2010
Accessible Twitter CSUN Tweetup 2010
EASI Webinar: Twitter And Web Accessibility
Twitter and Web Accessibility AHG 2009 Nov12
Accessible Twitter at Open Web Camp
Accessible Twitter : ACCESS-IT@Web 2.0

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Machine learning based COVID-19 study performance prediction
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
cuic standard and advanced reporting.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Encapsulation theory and applications.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Big Data Technologies - Introduction.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Unlocking AI with Model Context Protocol (MCP)
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Advanced methodologies resolving dimensionality complications for autism neur...
Review of recent advances in non-invasive hemoglobin estimation
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Machine learning based COVID-19 study performance prediction
Chapter 3 Spatial Domain Image Processing.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Building Integrated photovoltaic BIPV_UPV.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
The AUB Centre for AI in Media Proposal.docx
cuic standard and advanced reporting.pdf
A Presentation on Artificial Intelligence
Encapsulation theory and applications.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Big Data Technologies - Introduction.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Spectroscopy.pptx food analysis technology
Unlocking AI with Model Context Protocol (MCP)

Making JavaScript Accessible

  • 1. Making JavaScript Accessible BayJax - The Bay Area Ajax and JavaScript Meetup June 15, 2010 Yahoo! HQ - Sunnyvale, CA
  • 2. Agenda About Me Misconceptions Issues with JavaScript and Accessibility Progressive Enhancement WAI-ARIA About HTML5 Links
  • 3. About Me Author of Web Axe, blog and podcast on web accessibility. Author of AccessibleTwitter.com. Done work for a variety of companies including Ford, Google, Disney, and RIM. I like motorcycling, Star Wars, espresso, Woody Allen movies, and playing guitar.
  • 4. Mis conceptions All users have a mouse. JavaScript is always available. Screen readers don't support JavaScript. Making it accessible is too difficult.
  • 5. Issues with JavaScript and Accessibility Keyboard access Content changes Appropriate usage Unavailable
  • 6. Issues - Keyboard Access Must provide keyboard access to support non-mouse input devices. Keyboards and alternative keyboards Sip-and-puff systems Wands and sticks Electronic tracking devices (eye, brain) Joysticks Trackballs Touch screens
  • 7. Issues - Keyboard Access alternative keyboard trackball headstick
  • 8. Issues - Keyboard Access The following screenshot shows an example of core functionality that is not available with a keyboard.
  • 9.  
  • 10. Issues - Keyboard Access The following screenshot shows an example of links which can be accessed with a keyboard, but a sighted user has no clue of the cursor location.
  • 11.  
  • 12. Issues - Keyboard Access Tips If you use the onMouseOver and onMouseOut JavaScript handlers, you must also use onFocus and onBlur. Make the focus clear & visible. Do no use the double-click handler (onDblClick). Use tabindex=0 and tabindex=-1 to make normally keyboard inaccessible links accessible.
  • 13. Issues - Content Changes What It Is When page content is updated without a page refresh. Usually Ajax.
  • 14. Issues - Content Changes How To Help &quot;Yellow gradient flash&quot; convention for sighted users. ARIA for screen readers (more coming). The trusty JavaScript alert.
  • 15.  
  • 16. Issues - Appropriate Usage Only use JavaScript: when necessary to enhance behavior
  • 17.  
  • 18. Issues - Unavailable Surprise! Users may not have JavaScript available in their user agent. Approximately 4% of users, but difficult to track.
  • 19. Issues - Unavailable Mobile browsers and other devices (Kindle). Older browsers. Blind users who can't afford the expensive JAWS screen reader. Corporate users that sit behind a firewall that blocks JavaScript at the source. Those who turn it off purposely (security, speed, preference).
  • 20. Progressive Enhancement Progressive Enhancement is a method of implementing web technologies in a layered fashion that allows everyone to access the basic content and functionality of a web page. Build basic content and functionality first . Not &quot;graceful degradation&quot;. Plan Ajax from the start, implement at the end.
  • 21. Progressive Enhancement Content - Semantic HTML Presentation - CSS Behavior - JavaScript
  • 22. Progressive Enhancement Core principles basic content should be accessible to all browsers basic functionality should be accessible to all browsers sparse, semantic markup contains all content enhanced layout is provided by externally linked CSS *enhanced behavior is provided by unobtrusive, externally linked JavaScript end user browser preferences are respected http://en.wikipedia.org/wiki/Progressive_enhancement
  • 23.  
  • 24.  
  • 25.  
  • 26. WAI-ARIA A W3C draft Accessible Rich Internet Applications Suite &quot;roles, states, and properties to make widgets, navigation, and behaviors accessible&quot;
  • 27. WAI-ARIA Landmark Roles Labeling and Describing States and Properties Live Regions Form Properties Controls Drag-and-Drop Support
  • 28. WAI-ARIA Live Regions - Great for Ajax! aria-live=&quot;off&quot; aria-live=&quot;polite&quot; - updates announced if the user is not currently doing anything. aria-live=&quot;assertive&quot; - updates announced as soon as possible, but it is not necessary to immediately interrupt the user.
  • 29.  
  • 30. WAI-ARIA aria-atomic=&quot;false&quot; This is the default.  Change can be presented on its own; the AT should not present the entire region.  Reduces repetitive information that has not changed. Ensure content can be understood by the user. aria-atomic=&quot;true&quot; When there is a change, the AT should present the entire region, not just the change. For context.
  • 31. WAI-ARIA aria-busy=&quot;true&quot; Suppresses AT presentation changes while a region is updating.
  • 32. About HTML5 HTML5 will make many complex JavaScript (and Flash) features inherently accessible by integrating them natively with the browser. Audio/video controls Input elements  Date picker, color picker Validation (required attribute) Formatting i.e. URL, email Drag-and-drop
  • 33. Links Hijax: Progressive Enhancement with Ajax Understanding Progressive Enhancement Accessible Javascript with and without WAI ARIA Unintentional Discrimination - Custom Built Applications Introduction to WAI ARIA Future Web Accessibility: New <input> Types in HTML5 Dennis on Twitter: @DennisL, @AccessibleTwitr, @WebAxe