SlideShare a Scribd company logo
The 5 Layers of
Web Accessibility
 Open Web Camp II 07/17/2010
       Dirk Ginader

       http://ginader.com
   http://twitter.com/ginader
Common Frontend
Development knows
     3 Layers
the 5 layers of web accessibility - Open Web Camp II
the 5 layers of web accessibility - Open Web Camp II
the 5 layers of web accessibility - Open Web Camp II
The Markup
 is the first and most
important Layer of all
Source order
      =
  tab order
Best matching HTML
Element for the job?
Have you really found
an awesome new use
     for a <dl>?
    think again...
Is the page
understandable and
usable without CSS?
Interaction is done
using links, forms and
        reloads
the 5 layers of web accessibility - Open Web Camp II
the 5 layers of web accessibility - Open Web Camp II
CSS can make
inaccessible too
display:none
          and
  visibility:hidden
hide from everyone
:hover
 only works
with a mouse
:focus to the rescue!
always use them combined:
   a:hover, a:focus{
      /*awesome CSS*/
   }
CSS is for Design
not for Interaction
the 5 layers of web accessibility - Open Web Camp II
the 5 layers of web accessibility - Open Web Camp II
Javascript is the icing
     on the cake
Does anything, you need
 the user to do, work
  without Javascript?
then we can
add some Magic
hijack existing
interaction elements
create new buttons for
  JS only interactions
Screenreaders do know
JS. They often just don’t
 know what happens...
focus() to the rescue!
mind the tab order
focus() to the rescue!
tabindex=0
makes even a <div>
keyboard accessible
tabindex=-1
for JS only tab access
yeah focus()
Ajax = delays
 = tricky to
communicate
inform about what
     happens!
you guessed it:
   focus()
Screenreaders update
 their Virtual Buffer
     “regularly”
while in Forms Mode
they update in realtime
use the Forms Mode to
update the Buffer when
      you need to
Make sure the Element
you want to focus() is
 already in the Buffer
Position offscreen
buffers, display:none
      does not
.hideOffscreen{

 position: absolute;

 left: -999em;
}
Problems in right-to-left
       Layouts!

  Marcel Duran found
       Solution:
.hideVisually{ 
 
 

 overflow: hidden;

 position: absolute;

 text-indent: -999em;
}
the 5 layers of web accessibility - Open Web Camp II
the 5 layers of web accessibility - Open Web Camp II
another layer:
   different CSS if
Javascript is available
Change the interface
 for the JS version
CSS is much faster than
       Javascript
Tell CSS that there’s JS:
document.documentElement.className += ” js”;
.module{
    /* nice CSS for the non JS Layout */
}
.js .module{
    /* awesome CSS for the JS Layout */
}
How does your Design
 react when the text
    size changes?
It should survive
  3x text zoom
Screen Magnifiers only
show a very small part
    of the screen
make sure everybody
knows what happens
     right now
focus() + “yellow fade”
   help to find and
      understand
the top Layer
the new Hotness
the 5 layers of web accessibility - Open Web Camp II
the 5 layers of web accessibility - Open Web Camp II
WAI-ARIA maps existing
   and well known OS
   concepts to custom
Elements in the Browser
Adds semantics to non
  semantic Markup
provides instant
  updates and
  notifications
Roles
• alert
• banner
• button
• menuitem
• slider
Document Landmark
     Roles
• application
• banner
• complementary
• contentinfo
• main
• navigation
• search
States and Properties
• aria-valuemin
• aria-valuemax
• aria-valuenow
• aria-valuetext
• aria-labelledby
Live Regions
informing about
     changes
• off
• polite
• assertive
You can use it today!
• it does no validate
• you can simply add the properties using
  Javascript as it depends on it anyway
• everybody can add Landmark roles now
• aria-required=”true” makes a dream come
  true
Don’t rely on it
• There are no stats but we know that still a
  lot of Screenreader users are stuck on old
  versions without ARIA support

• Progressive Enhancement all over again...
the 5 layers of web accessibility - Open Web Camp II
the 5 layers of web accessibility - Open Web Camp II
Examples
without Javascript




 http://finance.yahoo.com/currency-converter
without Javascript




 http://finance.yahoo.com/currency-converter
without Javascript




 http://finance.yahoo.com/currency-converter
with Javascript




http://finance.yahoo.com/currency-converter
with Javascript




http://finance.yahoo.com/currency-converter
with Javascript




http://finance.yahoo.com/currency-converter
http://uk.tv.yahoo.com/
with Javascript




     http://finance.yahoo.com/news
with Javascript




     http://finance.yahoo.com/news
without CSS




    http://finance.yahoo.com/news
without Javascript




       http://finance.yahoo.com/news
without anything




      http://finance.yahoo.com/news
Easy Youtube




    http://icant.co.uk/easy-youtube/
with Javascript




            http://ginader.com
without CSS




         http://ginader.com
without anything




            http://ginader.com
http://ginader.com
http://twitter.com/ginader

More Related Content

What's hot (20)

PDF
Netvibes UWA workshop at ParisWeb 2007
Netvibes
 
PDF
HTML 5 - Overview
Marcelio Leal
 
PDF
Odoo - Create themes for website
Odoo
 
KEY
[Coscup 2012] JavascriptMVC
Alive Kuo
 
PPTX
FuncUnit
Brian Moschel
 
PDF
jQuery Proven Performance Tips & Tricks
Addy Osmani
 
PDF
Bootstrap과 UI-Bootstrap
WebFrameworks
 
PPT
High Performance Ajax Applications
Julien Lecomte
 
PDF
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Jeado Ko
 
PDF
HTML5와 오픈소스 기반의 Web Components 기술
Jeongkyu Shin
 
PDF
How to make Ajax Libraries work for you
Simon Willison
 
KEY
#NewMeetup Performance
Justin Cataldo
 
PDF
jQuery: Nuts, Bolts and Bling
Doug Neiner
 
PDF
Webapps without the web
Remy Sharp
 
PDF
JavaScript
tutorialsruby
 
PDF
Meetup Performance
Greg Whalin
 
PDF
Jacob Waller: Webifying Titanium Development
Axway Appcelerator
 
KEY
The Inclusive Web: hands-on with HTML5 and jQuery
colinbdclark
 
PDF
The DOM is a Mess @ Yahoo
jeresig
 
PDF
Rails Girls: Programming, Web Applications and Ruby on Rails
DonSchado
 
Netvibes UWA workshop at ParisWeb 2007
Netvibes
 
HTML 5 - Overview
Marcelio Leal
 
Odoo - Create themes for website
Odoo
 
[Coscup 2012] JavascriptMVC
Alive Kuo
 
FuncUnit
Brian Moschel
 
jQuery Proven Performance Tips & Tricks
Addy Osmani
 
Bootstrap과 UI-Bootstrap
WebFrameworks
 
High Performance Ajax Applications
Julien Lecomte
 
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Jeado Ko
 
HTML5와 오픈소스 기반의 Web Components 기술
Jeongkyu Shin
 
How to make Ajax Libraries work for you
Simon Willison
 
#NewMeetup Performance
Justin Cataldo
 
jQuery: Nuts, Bolts and Bling
Doug Neiner
 
Webapps without the web
Remy Sharp
 
JavaScript
tutorialsruby
 
Meetup Performance
Greg Whalin
 
Jacob Waller: Webifying Titanium Development
Axway Appcelerator
 
The Inclusive Web: hands-on with HTML5 and jQuery
colinbdclark
 
The DOM is a Mess @ Yahoo
jeresig
 
Rails Girls: Programming, Web Applications and Ruby on Rails
DonSchado
 

Viewers also liked (20)

PPTX
ARIA and JavaScript Accessibility
Paul Bohman
 
PPT
Managing the Process of Providing an Inclusive Institutional Web Presence: Wo...
David Sloan
 
PDF
Practical Web Accessibility
Jenn Dandle
 
PPTX
Accessibility update since beginning of 2016
Srinivasu Chakravarthula
 
KEY
Web Standards, HTML 5 & Accessibility - What makes a site accessible today?
Ted Drake
 
PDF
Tech Headline - Using WAI-ARIA & HTML5: Techniques to solve accessibility pro...
Rodrigo Castilho
 
PPTX
Accessible design with html5 JS Everywhere 2012 Oct 26 Fairmont Hotel San Jos...
Raj Lal
 
PPT
Accessibility and the importance of user testing
Russ Weakley
 
PDF
October 2014 | A211y - An Exploration into Accessibility, Agile & WCAG 2.0
UXPA MN
 
PDF
Top Mistakes in Web Accessibility
Wojtek Zając
 
PPTX
Affordable Communication Aids_Techshare India 2014
BarrierBreak
 
PPT
BS8878 Web Accessibility Code of Practice
Nomensa
 
PPTX
Building in Accessibility Throughout Your Project Lifecycle
Angela M. Hooker
 
PPTX
Inclusive ICTs in Education_Techshare India 2014
BarrierBreak
 
PDF
Jared Smith - Introduction to Web Accessibility
Plain Talk 2015
 
PPTX
How HTML5 and WAI-ARIA Can Improve Virtual Space of Universities
Radek Pavlíček
 
PDF
Web Accessibility for Developers
Jenn Dandle
 
PPTX
Accessibility as Innovation: Creating accessible user experiences
Whitney Quesenbery
 
PPTX
Are You at Risk? Identifying Web Accessibility Gaps at Your Organization
3Play Media
 
PDF
Three quick accessibility tips for HTML5
Russ Weakley
 
ARIA and JavaScript Accessibility
Paul Bohman
 
Managing the Process of Providing an Inclusive Institutional Web Presence: Wo...
David Sloan
 
Practical Web Accessibility
Jenn Dandle
 
Accessibility update since beginning of 2016
Srinivasu Chakravarthula
 
Web Standards, HTML 5 & Accessibility - What makes a site accessible today?
Ted Drake
 
Tech Headline - Using WAI-ARIA & HTML5: Techniques to solve accessibility pro...
Rodrigo Castilho
 
Accessible design with html5 JS Everywhere 2012 Oct 26 Fairmont Hotel San Jos...
Raj Lal
 
Accessibility and the importance of user testing
Russ Weakley
 
October 2014 | A211y - An Exploration into Accessibility, Agile & WCAG 2.0
UXPA MN
 
Top Mistakes in Web Accessibility
Wojtek Zając
 
Affordable Communication Aids_Techshare India 2014
BarrierBreak
 
BS8878 Web Accessibility Code of Practice
Nomensa
 
Building in Accessibility Throughout Your Project Lifecycle
Angela M. Hooker
 
Inclusive ICTs in Education_Techshare India 2014
BarrierBreak
 
Jared Smith - Introduction to Web Accessibility
Plain Talk 2015
 
How HTML5 and WAI-ARIA Can Improve Virtual Space of Universities
Radek Pavlíček
 
Web Accessibility for Developers
Jenn Dandle
 
Accessibility as Innovation: Creating accessible user experiences
Whitney Quesenbery
 
Are You at Risk? Identifying Web Accessibility Gaps at Your Organization
3Play Media
 
Three quick accessibility tips for HTML5
Russ Weakley
 
Ad

Similar to the 5 layers of web accessibility - Open Web Camp II (20)

ZIP
The 5 Layers of Web Accessibility
Dirk Ginader
 
ZIP
Accessible Javascript with and without WAI ARIA
Dirk Ginader
 
PDF
Developing an Accessible Web
greenideas
 
PDF
Web Accessibility - We're All In This Together!
Andrew Ronksley
 
PDF
Accessibility and JS: side-by-side
Felipe de Albuquerque
 
PPTX
Accessible web applications
Steven Faulkner
 
PPT
How To Build An Accessible Web Application
Dennis Lembree
 
PPTX
Web accessibility
Afif Alfiano
 
PDF
How Accessibility Made Me a Better Developer
Billy Gregory
 
PDF
Keyboard and Interaction Accessibility Techniques
Jared Smith
 
PDF
Accessibility - A feature you can build
Monika Piotrowicz
 
PPTX
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Steven Faulkner
 
PPT
Making JavaScript Accessible
Dennis Lembree
 
PDF
P.S. I love you
Oleksandr Strikha
 
PDF
Html5 aria-css-ibm-csun-2016
Maureen (Moe) Kraft
 
PDF
Web Accessibility Gone Wild (Now Even MORE Wilder!)
Jared Smith
 
PDF
Accessibility - A feature you can build
Monika Piotrowicz
 
PPTX
Website development accessibility
Ilesh Mistry
 
PPTX
Accessibility with Single Page Apps
Ross Mullen
 
PPT
Opera Accessibility SXSW 09
Henny Swan
 
The 5 Layers of Web Accessibility
Dirk Ginader
 
Accessible Javascript with and without WAI ARIA
Dirk Ginader
 
Developing an Accessible Web
greenideas
 
Web Accessibility - We're All In This Together!
Andrew Ronksley
 
Accessibility and JS: side-by-side
Felipe de Albuquerque
 
Accessible web applications
Steven Faulkner
 
How To Build An Accessible Web Application
Dennis Lembree
 
Web accessibility
Afif Alfiano
 
How Accessibility Made Me a Better Developer
Billy Gregory
 
Keyboard and Interaction Accessibility Techniques
Jared Smith
 
Accessibility - A feature you can build
Monika Piotrowicz
 
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Steven Faulkner
 
Making JavaScript Accessible
Dennis Lembree
 
P.S. I love you
Oleksandr Strikha
 
Html5 aria-css-ibm-csun-2016
Maureen (Moe) Kraft
 
Web Accessibility Gone Wild (Now Even MORE Wilder!)
Jared Smith
 
Accessibility - A feature you can build
Monika Piotrowicz
 
Website development accessibility
Ilesh Mistry
 
Accessibility with Single Page Apps
Ross Mullen
 
Opera Accessibility SXSW 09
Henny Swan
 
Ad

More from Dirk Ginader (16)

PDF
Making your Angular.js Application accessible
Dirk Ginader
 
PDF
Teach your Browser new tricks
Dirk Ginader
 
PDF
Let Grunt do the work, focus on the fun! [Open Web Camp 2013]
Dirk Ginader
 
PDF
Let Grunt do the work, focus on the fun!
Dirk Ginader
 
KEY
HTML5 Dev Conf - Sass, Compass & the new Webdev tools
Dirk Ginader
 
KEY
Sass, Compass and the new tools - Open Web Camp IV
Dirk Ginader
 
KEY
Javascript done right - Open Web Camp III
Dirk Ginader
 
KEY
The accessibility features of Yahoo! Finance
Dirk Ginader
 
PDF
Javascript done right
Dirk Ginader
 
PDF
Javascript auf Client und Server mit node.js - webtech 2010
Dirk Ginader
 
PDF
Das Web Als Datenbank Mit Yql Und Pipes
Dirk Ginader
 
PDF
Die 5 Ebenen Barriererfreier Web Entwicklung
Dirk Ginader
 
ZIP
Avoiding common Accessibility mistakes
Dirk Ginader
 
ZIP
Accessible Javascript using Frameworks - Barcamp London 5
Dirk Ginader
 
ZIP
Accessible Javascript mit Frameworks - Best of Accessibility 2008
Dirk Ginader
 
PDF
Accessible Javascript - Barcamp Brighton 2
Dirk Ginader
 
Making your Angular.js Application accessible
Dirk Ginader
 
Teach your Browser new tricks
Dirk Ginader
 
Let Grunt do the work, focus on the fun! [Open Web Camp 2013]
Dirk Ginader
 
Let Grunt do the work, focus on the fun!
Dirk Ginader
 
HTML5 Dev Conf - Sass, Compass & the new Webdev tools
Dirk Ginader
 
Sass, Compass and the new tools - Open Web Camp IV
Dirk Ginader
 
Javascript done right - Open Web Camp III
Dirk Ginader
 
The accessibility features of Yahoo! Finance
Dirk Ginader
 
Javascript done right
Dirk Ginader
 
Javascript auf Client und Server mit node.js - webtech 2010
Dirk Ginader
 
Das Web Als Datenbank Mit Yql Und Pipes
Dirk Ginader
 
Die 5 Ebenen Barriererfreier Web Entwicklung
Dirk Ginader
 
Avoiding common Accessibility mistakes
Dirk Ginader
 
Accessible Javascript using Frameworks - Barcamp London 5
Dirk Ginader
 
Accessible Javascript mit Frameworks - Best of Accessibility 2008
Dirk Ginader
 
Accessible Javascript - Barcamp Brighton 2
Dirk Ginader
 

Recently uploaded (20)

PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 

the 5 layers of web accessibility - Open Web Camp II

Editor's Notes

  • #63: over 90 different roles to map existing OS concepts onto your Markup
  • #65: article Content that makes sense in its own right, such as a complete blog post, a comment on a blog, a post in a forum, and so on. banner Site-orientated content, such as the title of the page and the logo. complementary Supporting content for the main content, but meaningful in its own right when separated from the main content. For example, the weather listed on a portal. contentinfo Child content, such as footnotes, copyrights, links to privacy statement, links to preferences, and so on. main Content that is directly related to or expands on the central content of the document. navigation Content that contains the links to navigate this document and/or related documents. search This section contains a search form to search the site.
  • #67: aria-valuemin Stores the lowest value a range may have. aria-valuemax Stores the highest value a range may have. aria-valuenow Stores the current value in a range. aria-valuetext Stores readable text to help the user understand the context. For example, &quot;30 dollars&quot;. aria-labelledby Stores the id attribute of a text label containing an appropriate prompt for this widget.
  • #69: off This is the default value, and indicates that the region is not live. &lt;ul aria-live=&quot;off&quot;&gt; polite This is normal operation and the expected behaviour for live regions. A value of polite indicates that it is not necessary to respond until user completes their current activity. &lt;ul aria-live=&quot;polite&quot;&gt; assertive This value is a higher priority than normal but does not necessarily interrupt the user immediately. &lt;ul aria-live=&quot;assertive&quot;&gt;
  • #71: off This is the default value, and indicates that the region is not live. &lt;ul aria-live=&quot;off&quot;&gt; polite This is normal operation and the expected behaviour for live regions. A value of polite indicates that it is not necessary to respond until user completes their current activity. &lt;ul aria-live=&quot;polite&quot;&gt; assertive This value is a higher priority than normal but does not necessarily interrupt the user immediately. &lt;ul aria-live=&quot;assertive&quot;&gt;
  • #72: off This is the default value, and indicates that the region is not live. &lt;ul aria-live=&quot;off&quot;&gt; polite This is normal operation and the expected behaviour for live regions. A value of polite indicates that it is not necessary to respond until user completes their current activity. &lt;ul aria-live=&quot;polite&quot;&gt; assertive This value is a higher priority than normal but does not necessarily interrupt the user immediately. &lt;ul aria-live=&quot;assertive&quot;&gt;