SlideShare a Scribd company logo
1 of 22
Download to read offline
HTML5 and WAI-ARIA
HTML5 Study Groupt/ Tokyo / 18 November 2010
Bruce Lawson, Opera Software
HTML5 hates accessibility?
Accessible Rich Internet Applications
WAI-ARIA is intended to be a bridging technology. It clarifies
semantics to assistive technologies when authors create
new types of objects, via style and script, that are not yet
directly supported by the language of the page.
http://www.w3.org/TR/wai-aria/complete
How assistive technology works
roles, states, properties
●
Role is what something is. <div role="navigation">,
“tooltip”
●
State is how something is at the moment (from pre-
defined list): aria-checked = “true”, aria-required=”true”
● Property: aria-valuenow (of a slider), aria-describedby
(points to a description)
HTML attributes don't validate in HTML4
<div role="navigation">
<input aria-required="true">
(but validate in HTML5!)
Built-in always beats bolt-on
It is not appropriate to create objects with style and script
when the host language provides a semantic element for
that type of objects.
While WAI-ARIA can improve the accessibility of these
objects, accessibility is best provided by allowing the user
agent to handle the object natively.
Remains useful for legacy content
When native semantics for a given feature become
available, it is appropriate for authors to use the native
feature and stop using WAI-ARIA for that feature. Legacy
content may continue to use WAI-ARIA
HTML5 has "built-in" ARIA
HTML Implied ARIA information
<hr> separator
<a href=".."> role=link
<input required> aria-required=true
<nav> role=navigation
<textarea> role=textbox aria-multiline=true
<article> role=article (document/
application / main)
<body> role=document / application
<address> role=contentinfo
<output> aria-live=polite
Full list: http://dev.w3.org/html5/spec/content-models.html#annotations-for-assistive-technology-products-aria
Gotcha!
●
Multiple <header>s allowed, but only one role=banner
per page
●
Multiple <footer>s allowed, multiple <address> allowed
but only one role=contentinfo per page
●
No <main> element
●Some screen reader naughtiness
Not everything is native to HTML5
WAI-ARIA is intended to be used as a supplement for native
language semantics, not a replacement. When the host
language provides a feature that provides equivalent
accessibility to the WAI-ARIA feature, use the host language
feature.
WAI-ARIA should only be used in cases where the host
language lacks the needed role, state, and property
indicators.
Validator knows about ARIA
<nav role=main>
Fix ARIA roles in browsers (transitional)
https://github.com/yatil/accessifyhtml5.js
tabindex=-1
Previously doubly illegal, valid HTML5
<h3 tabindex="-1">Destination</h3>
動画 アクセシビリティ
video accessibility
<video controls autoplay poster=… width=… height=…>
<source src=movie.webm type=video/webm>
<source src=movie.mp4 type=video/mp4>
<source src=movie.ogv type=video/ogg>
<track src=subtitles.srt kind=subtitles srclang=ja>
<!-- fallback content -->
</video>
www.bit.ly/websrt - <track> element faked in JavaScript
http://www.delphiki.com/websrt/ - webSRT formal explained
http://www.delphiki.com/html5/playr/ - very nice video and <track> player
http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-track-element
Essential reading
●
WAI-ARIA 導入(日本語訳)
http://d.hatena.ne.jp/aratako0/20090709/p1
●
HTML5 and the myth of WAI-ARIA redundance (ARIA roles
and properties not available in HTML5)
http://www.paciellogroup.com/blog/?p=585
●
ARIA spec http://www.w3.org/TR/wai-aria/complete
www.opera.com/developer
bruce.lawson@opera.com
www.brucelawson.co.uk
twitter.com/brucel

More Related Content

Viewers also liked

Html5 oslo-code-camp
Html5 oslo-code-campHtml5 oslo-code-camp
Html5 oslo-code-campbrucelawson
 
HTML5 Who what where when why how
HTML5 Who what where when why howHTML5 Who what where when why how
HTML5 Who what where when why howbrucelawson
 
HTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're goingHTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're goingbrucelawson
 
W3C Widgets: Apps made with Web Standards
W3C Widgets: Apps made with Web StandardsW3C Widgets: Apps made with Web Standards
W3C Widgets: Apps made with Web Standardsbrucelawson
 
Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.brucelawson
 
HTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingHTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingbrucelawson
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan PolandBruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Polandbrucelawson
 
HTML5 Multimedia Accessibility
HTML5 Multimedia AccessibilityHTML5 Multimedia Accessibility
HTML5 Multimedia Accessibilitybrucelawson
 
Web Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScript
Web Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScriptWeb Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScript
Web Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScriptbrucelawson
 
Leveraging HTML 5.0
Leveraging HTML 5.0Leveraging HTML 5.0
Leveraging HTML 5.0brucelawson
 
Bruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of AppsBruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of Appsbrucelawson
 

Viewers also liked (12)

Html5 oslo-code-camp
Html5 oslo-code-campHtml5 oslo-code-camp
Html5 oslo-code-camp
 
HTML5 Who what where when why how
HTML5 Who what where when why howHTML5 Who what where when why how
HTML5 Who what where when why how
 
HTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're goingHTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're going
 
HTML5 and CSS 3
HTML5 and CSS 3HTML5 and CSS 3
HTML5 and CSS 3
 
W3C Widgets: Apps made with Web Standards
W3C Widgets: Apps made with Web StandardsW3C Widgets: Apps made with Web Standards
W3C Widgets: Apps made with Web Standards
 
Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.
 
HTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingHTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're going
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan PolandBruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
 
HTML5 Multimedia Accessibility
HTML5 Multimedia AccessibilityHTML5 Multimedia Accessibility
HTML5 Multimedia Accessibility
 
Web Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScript
Web Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScriptWeb Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScript
Web Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScript
 
Leveraging HTML 5.0
Leveraging HTML 5.0Leveraging HTML 5.0
Leveraging HTML 5.0
 
Bruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of AppsBruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of Apps
 

Similar to Bruce lawson-html5-aria-japan

WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...Patrick Lauke
 
HTML5 & WAI-ARIA - Happy Families
HTML5 & WAI-ARIA - Happy FamiliesHTML5 & WAI-ARIA - Happy Families
HTML5 & WAI-ARIA - Happy FamiliesSteven Faulkner
 
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012Steven Faulkner
 
Web Accessibility - We're All In This Together!
Web Accessibility - We're All In This Together!Web Accessibility - We're All In This Together!
Web Accessibility - We're All In This Together!Andrew Ronksley
 
Dynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIADynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIAAccess iQ
 
A Practical Guide To Hypermedia APIs - Philly.rb
A Practical Guide To Hypermedia APIs - Philly.rbA Practical Guide To Hypermedia APIs - Philly.rb
A Practical Guide To Hypermedia APIs - Philly.rbSmartLogic
 
HTML5 Accessibility CSUN 2012
HTML5 Accessibility CSUN 2012HTML5 Accessibility CSUN 2012
HTML5 Accessibility CSUN 2012Steven Faulkner
 
usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)
usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)
usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)javier ramirez
 
Creating Rajanikant Powered Site
Creating Rajanikant Powered SiteCreating Rajanikant Powered Site
Creating Rajanikant Powered Sitemarkandey
 
Usable REST APIs. BCNdevcon edition.
Usable REST APIs. BCNdevcon edition. Usable REST APIs. BCNdevcon edition.
Usable REST APIs. BCNdevcon edition. javier ramirez
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Commit University
 
Accessible web applications
Accessible web applications Accessible web applications
Accessible web applications Steven Faulkner
 
An Introduction to WAI-ARIA
An Introduction to WAI-ARIAAn Introduction to WAI-ARIA
An Introduction to WAI-ARIAIWMW
 
Apache Shindig, from Server Side Portlets to Open Social Gadgets
Apache Shindig, from Server Side Portlets to Open Social GadgetsApache Shindig, from Server Side Portlets to Open Social Gadgets
Apache Shindig, from Server Side Portlets to Open Social GadgetsTyrell Perera
 
Microservice Websites – Micro CPH
Microservice Websites – Micro CPHMicroservice Websites – Micro CPH
Microservice Websites – Micro CPHGustaf Nilsson Kotte
 
How To Build An Accessible Web Application
How To Build An Accessible Web ApplicationHow To Build An Accessible Web Application
How To Build An Accessible Web ApplicationDennis Lembree
 

Similar to Bruce lawson-html5-aria-japan (20)

WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
 
HTML5 & WAI-ARIA - Happy Families
HTML5 & WAI-ARIA - Happy FamiliesHTML5 & WAI-ARIA - Happy Families
HTML5 & WAI-ARIA - Happy Families
 
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
 
Web Accessibility - We're All In This Together!
Web Accessibility - We're All In This Together!Web Accessibility - We're All In This Together!
Web Accessibility - We're All In This Together!
 
Dynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIADynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIA
 
A Practical Guide To Hypermedia APIs - Philly.rb
A Practical Guide To Hypermedia APIs - Philly.rbA Practical Guide To Hypermedia APIs - Philly.rb
A Practical Guide To Hypermedia APIs - Philly.rb
 
HTML5 Accessibility CSUN 2012
HTML5 Accessibility CSUN 2012HTML5 Accessibility CSUN 2012
HTML5 Accessibility CSUN 2012
 
usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)
usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)
usable rest apis, by Javier Ramirez from teowaki (Apidays Mediterranea)
 
Creating Rajanikant Powered Site
Creating Rajanikant Powered SiteCreating Rajanikant Powered Site
Creating Rajanikant Powered Site
 
wtf is aria landmarks
wtf is aria landmarkswtf is aria landmarks
wtf is aria landmarks
 
Usable REST APIs. BCNdevcon edition.
Usable REST APIs. BCNdevcon edition. Usable REST APIs. BCNdevcon edition.
Usable REST APIs. BCNdevcon edition.
 
UX ARIA Presentation
UX ARIA PresentationUX ARIA Presentation
UX ARIA Presentation
 
Html5
Html5Html5
Html5
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta
 
Accessible web applications
Accessible web applications Accessible web applications
Accessible web applications
 
An Introduction to WAI-ARIA
An Introduction to WAI-ARIAAn Introduction to WAI-ARIA
An Introduction to WAI-ARIA
 
Apache Shindig, from Server Side Portlets to Open Social Gadgets
Apache Shindig, from Server Side Portlets to Open Social GadgetsApache Shindig, from Server Side Portlets to Open Social Gadgets
Apache Shindig, from Server Side Portlets to Open Social Gadgets
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
Microservice Websites – Micro CPH
Microservice Websites – Micro CPHMicroservice Websites – Micro CPH
Microservice Websites – Micro CPH
 
How To Build An Accessible Web Application
How To Build An Accessible Web ApplicationHow To Build An Accessible Web Application
How To Build An Accessible Web Application
 

More from brucelawson

You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011brucelawson
 
HTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a treeHTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a treebrucelawson
 
Bruce lawson Stockholm Geek Meet
Bruce lawson Stockholm Geek MeetBruce lawson Stockholm Geek Meet
Bruce lawson Stockholm Geek Meetbrucelawson
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-airbrucelawson
 
Bruce Lawson HTML5 South By SouthWest presentation
Bruce Lawson HTML5 South By SouthWest presentationBruce Lawson HTML5 South By SouthWest presentation
Bruce Lawson HTML5 South By SouthWest presentationbrucelawson
 
Practical Tips for Mobile Widget development
Practical Tips for Mobile Widget developmentPractical Tips for Mobile Widget development
Practical Tips for Mobile Widget developmentbrucelawson
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesiabrucelawson
 
Standards.next: HTML - Are you mything the point?
Standards.next: HTML - Are you mything the point?Standards.next: HTML - Are you mything the point?
Standards.next: HTML - Are you mything the point?brucelawson
 

More from brucelawson (9)

You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
You too can be a bedwetting antfucker: Bruce Lawson, Opera, Fronteers 2011
 
HTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a treeHTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a tree
 
Disruptive code
Disruptive codeDisruptive code
Disruptive code
 
Bruce lawson Stockholm Geek Meet
Bruce lawson Stockholm Geek MeetBruce lawson Stockholm Geek Meet
Bruce lawson Stockholm Geek Meet
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 
Bruce Lawson HTML5 South By SouthWest presentation
Bruce Lawson HTML5 South By SouthWest presentationBruce Lawson HTML5 South By SouthWest presentation
Bruce Lawson HTML5 South By SouthWest presentation
 
Practical Tips for Mobile Widget development
Practical Tips for Mobile Widget developmentPractical Tips for Mobile Widget development
Practical Tips for Mobile Widget development
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesia
 
Standards.next: HTML - Are you mything the point?
Standards.next: HTML - Are you mything the point?Standards.next: HTML - Are you mything the point?
Standards.next: HTML - Are you mything the point?
 

Bruce lawson-html5-aria-japan

  • 1. HTML5 and WAI-ARIA HTML5 Study Groupt/ Tokyo / 18 November 2010 Bruce Lawson, Opera Software
  • 3. Accessible Rich Internet Applications WAI-ARIA is intended to be a bridging technology. It clarifies semantics to assistive technologies when authors create new types of objects, via style and script, that are not yet directly supported by the language of the page. http://www.w3.org/TR/wai-aria/complete
  • 5. roles, states, properties ● Role is what something is. <div role="navigation">, “tooltip” ● State is how something is at the moment (from pre- defined list): aria-checked = “true”, aria-required=”true” ● Property: aria-valuenow (of a slider), aria-describedby (points to a description)
  • 6. HTML attributes don't validate in HTML4 <div role="navigation"> <input aria-required="true"> (but validate in HTML5!)
  • 7. Built-in always beats bolt-on It is not appropriate to create objects with style and script when the host language provides a semantic element for that type of objects. While WAI-ARIA can improve the accessibility of these objects, accessibility is best provided by allowing the user agent to handle the object natively.
  • 8. Remains useful for legacy content When native semantics for a given feature become available, it is appropriate for authors to use the native feature and stop using WAI-ARIA for that feature. Legacy content may continue to use WAI-ARIA
  • 9.
  • 10.
  • 11.
  • 12. HTML5 has "built-in" ARIA HTML Implied ARIA information <hr> separator <a href=".."> role=link <input required> aria-required=true <nav> role=navigation <textarea> role=textbox aria-multiline=true <article> role=article (document/ application / main) <body> role=document / application <address> role=contentinfo <output> aria-live=polite Full list: http://dev.w3.org/html5/spec/content-models.html#annotations-for-assistive-technology-products-aria
  • 13.
  • 14.
  • 15. Gotcha! ● Multiple <header>s allowed, but only one role=banner per page ● Multiple <footer>s allowed, multiple <address> allowed but only one role=contentinfo per page ● No <main> element ●Some screen reader naughtiness
  • 16. Not everything is native to HTML5 WAI-ARIA is intended to be used as a supplement for native language semantics, not a replacement. When the host language provides a feature that provides equivalent accessibility to the WAI-ARIA feature, use the host language feature. WAI-ARIA should only be used in cases where the host language lacks the needed role, state, and property indicators.
  • 17. Validator knows about ARIA <nav role=main>
  • 18. Fix ARIA roles in browsers (transitional) https://github.com/yatil/accessifyhtml5.js
  • 19. tabindex=-1 Previously doubly illegal, valid HTML5 <h3 tabindex="-1">Destination</h3>
  • 20. 動画 アクセシビリティ video accessibility <video controls autoplay poster=… width=… height=…> <source src=movie.webm type=video/webm> <source src=movie.mp4 type=video/mp4> <source src=movie.ogv type=video/ogg> <track src=subtitles.srt kind=subtitles srclang=ja> <!-- fallback content --> </video> www.bit.ly/websrt - <track> element faked in JavaScript http://www.delphiki.com/websrt/ - webSRT formal explained http://www.delphiki.com/html5/playr/ - very nice video and <track> player http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-track-element
  • 21. Essential reading ● WAI-ARIA 導入(日本語訳) http://d.hatena.ne.jp/aratako0/20090709/p1 ● HTML5 and the myth of WAI-ARIA redundance (ARIA roles and properties not available in HTML5) http://www.paciellogroup.com/blog/?p=585 ● ARIA spec http://www.w3.org/TR/wai-aria/complete