SlideShare a Scribd company logo
Developing an
Accessibile Web
     Matt Henry
     Viget Labs
About Me

• Senior Front-End Developer at Viget Labs
• Ex-Yahoo! Mobile
• @greenideas
• Fan of owls
This stuff is important

• More to accessibility than Section 508
• Try to use one of your apps with a screen
  reader and without a mouse.
• Was it awesome? Could it be more
  awesome?
Stop me if you’ve heard
    this one before
• Okay, don’t actually stop me.
• Everything you know about accessibility
  is... probably still right.
• Progressive enhancement and alt tags are as
  important today as they ever were
Progressive
         Enhancement
1. Semantic HTML
2. Web 1.0 interactions--reload required
3. CSS
4. Javascript
Accessibility vs.
         Javascript?
• The good news: screen readers can
  understand Javascript.
• The bad news: your sites still need to work
  without Javascript.
• Site-critical interactions should work with
  and without JS.
Hijax

• Jeremy Keith
• All of your links should be actual links (i.e.
  there should be a real page that exists at
  that href).
• Use JS to “hijack” the link, and do your
  fancy Ajax magic.
Demo
Building for Screen
         Readers
• Alt attributes
• Generated content
• Clean, semantic HTML
• Links are for navigating. Buttons are for
  doing stuff.
Bad


<a href=”#”>Load my Ajax</a>
Better


<a href=”#” role=”button”>Load
my Ajax</a>
Best


<button>Load my Ajax</button>
Input methods

• Accessibility is more than just targeting
  screen readers.
• Keyboards, sip & puff, head/eye trackers
• Is your application usable without a mouse?
Interacting via the
        Keyboard
• Don’t (just) use :hover for interactions (this
  helps make your app mobile-friendly, too)
• Anything you can do with a mouse, you
  should be able to do with the keyboard
• Use tabindex to make elements accessible
  via the keyboard
tabindex
• tabindex      = 0: tab in document order

• tabindex     = 1,2,3... : order by
  tabindex value
• tabindex     = -1: Element can’t be
  tabbed to, but can be given focus
  programmatically
• Explicit ordinal tabindex shouldn’t be
  necessary
Demo
WAI-ARIA

• Web Accessibility Initiative -- Accessible
  Rich Internet Applications
• Label content for screen readers
• Moar semantic
Roles
• Used to describe a document’s structure
• Landmark roles: application, main, section,
  navigation, etc.
• Landmark roles overlap some with HTML5
  elements, but you should still use the role
  (e.g. <section role=”section”>)

• Widget roles: menu, toolbar, dialog,
States & Properties
• Used to describe an application’s state
• Global states: aria-busy, aria-
  activedecendant
• Widget attributes: aria-pressed, aria-
  hidden, aria-autocomplete
• Relationship attributes: aria-labelledby, aria-
  controls
Demo
What does ARIA buy
        you?

• Lots of semantic hooks to describe your
  application’s functionality
• Guidance for how to construct a screen-
  reader-friendly widget
What are you still on
the hook for with ARIA
• ARIA doesn’t give you off the shelf widgets
• You have to roll your own keyboard
  support (unless you rely on what screen
  readers give you)
• It’s your responsibility to manage focus
Why ARIA?

• Provide a non-visual representation of
  complication interactions in your
  application
• Still more semantic
• Easier styling & scripting
ARIA Support
• Good. Not great.
• Support depends on combo of browser +
  screen reader
• Most modern browsers correctly expose at
  least some ARIA roles.
• Like anything, check for support before
  relying on ARIA for anything important.
Testing with Screen
         Readers

• Make screen reader testing part of your
  cross-browser testing routine
• OSX & iOS:VoiceOver is built in
• Windows: NVDA
Summary
• Yes, your app still has to work without
  Javascript. Sorry.
• Hijax for content that you load in via Ajax
• Semantic markup
• Support the Keyboard
• Use ARIA. Be awesome.
Thanks.
           <3
http://spkr8.com/t/5431
Links
• ARIA specification: http://www.w3.org/TR/
  wai-aria/
• ARIA Authoring Practices: http://
  www.w3.org/TR/wai-aria-practices/
• http://www.nvda-project.org/
• Derek Featherstone on ARIA in A List
  Apart: http://www.alistapart.com/articles/
  aria-and-progressive-enhancement/

More Related Content

KEY
Beginning jQuery Mobile
PPTX
Centric - PWA WebCast
PPT
Getting Started with Mobile Websites if You Don't Know Code
PPTX
Mobile native-hacks
PDF
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014
PPTX
The API and APP-ification of the Web
KEY
AJAX & jQuery - City University WAD Module
PDF
27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...
Beginning jQuery Mobile
Centric - PWA WebCast
Getting Started with Mobile Websites if You Don't Know Code
Mobile native-hacks
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014
The API and APP-ification of the Web
AJAX & jQuery - City University WAD Module
27.1.2014, Tampere. Perinteinen mobiilimaailma murroksessa. Petri Niemi: Sing...

What's hot (20)

PDF
Sencha and Spring (Spring 2GX 2013)
PPTX
PDF
はじめてのWKInterfaceController
KEY
Natural Language UI Testing using Behavior Driven Development with Pavlov and...
PDF
Responsive Web Design - Tom Robertshaw
PDF
PDF
jQuery Keynote - Fall 2010
PDF
jQuery UI & Mobile - The Great Merger
ODP
Joomla REST API
PDF
Web app development with Flask
PPTX
Single page applications the basics
PPSX
Web technologies practical guide
PDF
Isomorphic Aplication with Javascript
PDF
Dictionary by phoneGap
PDF
jQuery Chicago 2014 - Next-generation JavaScript Testing
PPT
MobileClient
PPTX
10 Things You Can Do to Speed Up Your Web App Today
PPTX
PPTX
Developing JavaScript Widgets
PDF
4 JavaScript Tools Every Designer Should Know About
Sencha and Spring (Spring 2GX 2013)
はじめてのWKInterfaceController
Natural Language UI Testing using Behavior Driven Development with Pavlov and...
Responsive Web Design - Tom Robertshaw
jQuery Keynote - Fall 2010
jQuery UI & Mobile - The Great Merger
Joomla REST API
Web app development with Flask
Single page applications the basics
Web technologies practical guide
Isomorphic Aplication with Javascript
Dictionary by phoneGap
jQuery Chicago 2014 - Next-generation JavaScript Testing
MobileClient
10 Things You Can Do to Speed Up Your Web App Today
Developing JavaScript Widgets
4 JavaScript Tools Every Designer Should Know About
Ad

Similar to Developing an Accessible Web (20)

PPTX
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
PDF
Html5 aria-css-ibm-csun-2016
PDF
Web Accessibility - We're All In This Together!
PDF
Accessibility and JS: side-by-side
PPTX
Accessible web applications
PDF
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
PPTX
Laughlin Constable Web Accessibility Basics for Web Developers
PDF
Tech Headline - Using WAI-ARIA & HTML5: Techniques to solve accessibility pro...
PPT
Developing an Accessible Web
PPTX
Accessibility with Single Page Apps
PPTX
CSUN The ARIA Technology Stack Browsers and Screen Readers
PPTX
Rich internet application accessibility - a quick overview
PPTX
Accessibility and universal usability
PPT
HTML5 Accessibility CSUN 2012
PPT
An Introduction to WAI-ARIA
PPTX
A Primer on Web Accessibility for Teams
PPTX
Booster 2017 - from accessibility n00b to pro in 1.5 hrs
PDF
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
PDF
Building a better, accessible web
PPT
Making JavaScript Accessible
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Html5 aria-css-ibm-csun-2016
Web Accessibility - We're All In This Together!
Accessibility and JS: side-by-side
Accessible web applications
Modern web development and accessibility (Christina Papadimitriou, Nadia Mark...
Laughlin Constable Web Accessibility Basics for Web Developers
Tech Headline - Using WAI-ARIA & HTML5: Techniques to solve accessibility pro...
Developing an Accessible Web
Accessibility with Single Page Apps
CSUN The ARIA Technology Stack Browsers and Screen Readers
Rich internet application accessibility - a quick overview
Accessibility and universal usability
HTML5 Accessibility CSUN 2012
An Introduction to WAI-ARIA
A Primer on Web Accessibility for Teams
Booster 2017 - from accessibility n00b to pro in 1.5 hrs
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
Building a better, accessible web
Making JavaScript Accessible
Ad

Recently uploaded (20)

PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Getting Started with Data Integration: FME Form 101
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Approach and Philosophy of On baking technology
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
project resource management chapter-09.pdf
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
A Presentation on Touch Screen Technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Encapsulation theory and applications.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Zenith AI: Advanced Artificial Intelligence
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
OMC Textile Division Presentation 2021.pptx
Unlocking AI with Model Context Protocol (MCP)
Getting Started with Data Integration: FME Form 101
A novel scalable deep ensemble learning framework for big data classification...
Programs and apps: productivity, graphics, security and other tools
Heart disease approach using modified random forest and particle swarm optimi...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Approach and Philosophy of On baking technology
gpt5_lecture_notes_comprehensive_20250812015547.pdf
project resource management chapter-09.pdf
Univ-Connecticut-ChatGPT-Presentaion.pdf
A Presentation on Touch Screen Technology
Digital-Transformation-Roadmap-for-Companies.pptx
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Encapsulation theory and applications.pdf
A comparative analysis of optical character recognition models for extracting...
1 - Historical Antecedents, Social Consideration.pdf
Zenith AI: Advanced Artificial Intelligence

Developing an Accessible Web

  • 1. Developing an Accessibile Web Matt Henry Viget Labs
  • 2. About Me • Senior Front-End Developer at Viget Labs • Ex-Yahoo! Mobile • @greenideas • Fan of owls
  • 3. This stuff is important • More to accessibility than Section 508 • Try to use one of your apps with a screen reader and without a mouse. • Was it awesome? Could it be more awesome?
  • 4. Stop me if you’ve heard this one before • Okay, don’t actually stop me. • Everything you know about accessibility is... probably still right. • Progressive enhancement and alt tags are as important today as they ever were
  • 5. Progressive Enhancement 1. Semantic HTML 2. Web 1.0 interactions--reload required 3. CSS 4. Javascript
  • 6. Accessibility vs. Javascript? • The good news: screen readers can understand Javascript. • The bad news: your sites still need to work without Javascript. • Site-critical interactions should work with and without JS.
  • 7. Hijax • Jeremy Keith • All of your links should be actual links (i.e. there should be a real page that exists at that href). • Use JS to “hijack” the link, and do your fancy Ajax magic.
  • 9. Building for Screen Readers • Alt attributes • Generated content • Clean, semantic HTML • Links are for navigating. Buttons are for doing stuff.
  • 13. Input methods • Accessibility is more than just targeting screen readers. • Keyboards, sip & puff, head/eye trackers • Is your application usable without a mouse?
  • 14. Interacting via the Keyboard • Don’t (just) use :hover for interactions (this helps make your app mobile-friendly, too) • Anything you can do with a mouse, you should be able to do with the keyboard • Use tabindex to make elements accessible via the keyboard
  • 15. tabindex • tabindex = 0: tab in document order • tabindex = 1,2,3... : order by tabindex value • tabindex = -1: Element can’t be tabbed to, but can be given focus programmatically • Explicit ordinal tabindex shouldn’t be necessary
  • 16. Demo
  • 17. WAI-ARIA • Web Accessibility Initiative -- Accessible Rich Internet Applications • Label content for screen readers • Moar semantic
  • 18. Roles • Used to describe a document’s structure • Landmark roles: application, main, section, navigation, etc. • Landmark roles overlap some with HTML5 elements, but you should still use the role (e.g. <section role=”section”>) • Widget roles: menu, toolbar, dialog,
  • 19. States & Properties • Used to describe an application’s state • Global states: aria-busy, aria- activedecendant • Widget attributes: aria-pressed, aria- hidden, aria-autocomplete • Relationship attributes: aria-labelledby, aria- controls
  • 20. Demo
  • 21. What does ARIA buy you? • Lots of semantic hooks to describe your application’s functionality • Guidance for how to construct a screen- reader-friendly widget
  • 22. What are you still on the hook for with ARIA • ARIA doesn’t give you off the shelf widgets • You have to roll your own keyboard support (unless you rely on what screen readers give you) • It’s your responsibility to manage focus
  • 23. Why ARIA? • Provide a non-visual representation of complication interactions in your application • Still more semantic • Easier styling & scripting
  • 24. ARIA Support • Good. Not great. • Support depends on combo of browser + screen reader • Most modern browsers correctly expose at least some ARIA roles. • Like anything, check for support before relying on ARIA for anything important.
  • 25. Testing with Screen Readers • Make screen reader testing part of your cross-browser testing routine • OSX & iOS:VoiceOver is built in • Windows: NVDA
  • 26. Summary • Yes, your app still has to work without Javascript. Sorry. • Hijax for content that you load in via Ajax • Semantic markup • Support the Keyboard • Use ARIA. Be awesome.
  • 27. Thanks. <3 http://spkr8.com/t/5431
  • 28. Links • ARIA specification: http://www.w3.org/TR/ wai-aria/ • ARIA Authoring Practices: http:// www.w3.org/TR/wai-aria-practices/ • http://www.nvda-project.org/ • Derek Featherstone on ARIA in A List Apart: http://www.alistapart.com/articles/ aria-and-progressive-enhancement/