SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
HTML5 and ARIA
ಪ"#ೕ%&'( )*ಯ,-
Ted Drake, Intuit Accessibility
Bengaluru, 2013
Wednesday, May 22, 13
Goddess Durga, Shri Hanuman, Goddess Kali and Shiva Family
Accessibility Warriors
In the good ol’ days...
Wednesday, May 22, 13
ancient funfare by abrinsky
We had text
Wednesday, May 22, 13
Original internet pages were text based and accessible.
Images were introduced and pages were still easy to read.
Yahoo! circa 197
Then came design
Wednesday, May 22, 13
“Geocities 1996” a tribute to Geocities web designs on CSS Zen Garden
animated gifs, clashing colors, flashing images, and more
“Creating Killer Web Sites” released in 1997 by David Siegel introduces the spacer gif, table-
based layout, and so much more
Salvation Arrived
Wednesday, May 22, 13
Jeffrey Zeldman and friends introduce web standards
Return to semantic, structural markup.
design and interactions are separated from markup.
“Design” returned
Some rights reserved by DanCentury on Flickr
Wednesday, May 22, 13
Web 2.0 introduced application-like web sites.
AJAX for dynamic content changes, drag and drop interfaces, semantic elements transform
into forms
elements no longer behave naturally.
Take a deep breath
Wednesday, May 22, 13
photo: truck stop By Meanest Indian
What is HTML5?
Wednesday, May 22, 13
Accessibility	
  support:	
  www.HTML5accessibility.com
a reality check
Wednesday, May 22, 13
HTML5 is the result of recognizing web sites were moving from documents to web
applications.
Initial spec written by WHATWG
Combine best of XHTML with HTML
Enthusiasts began lumping the various elements under the HTML5 moniker
HTML5 includes
• More powerful
forms
• CSS3
• Canvas and SVG
• Audio and Video
• JavaScript tools
• Device Integration
• Semantic structure
• WAI-ARIA
Wednesday, May 22, 13
XForms became HTML5 forms
CSS3 has been under development for years, browsers are rapidly adopting it.
Canvas and SVG are not new, browser support is allowing them to replace flash
Audio and Video specs are still devloping.
JavaScript enhanced with web workers, sockets, local storage, browser api
Good Stuff
• Native Interactions
• Enhanced Form Elements
• Semantic Structure
• Universal Mobile Platform
Wednesday, May 22, 13
browsers handle interactions natively, no need for JS
improved form structure
new tags
Native Support
• Browsers replace plugins and
JavaScript
• Consistency
• Extensible
• Device specific
Wednesday, May 22, 13
consistent interactions across the web as browsers replace adhoc js and plugins
browsers provide hooks for extending experience via CSS and JS
Super Forms
Wednesday, May 22, 13
• New input types: email, url, date, number...
• New attributes: placeholder, autofocus, required...
• Combine with ARIA: aria-required, aria-describedby...
• Backwards compatible
Super Forms
Wednesday, May 22, 13
• New input types: email, url, date, number...
• New attributes: placeholder, autofocus, required...
• Combine with ARIA: aria-required, aria-describedby...
• Backwards compatible
No More ‘Divitis’!
Wednesday, May 22, 13
the generic div and span tags have been abused. HTML5 introduces new semantic containers
to avoid a page filled with nothing but divs.
Semantic Tags
• New containers: article, section, aside,
footer, header, nav, and now main
• New & improved tags: dl, time, datalist,
ruby
• Shift from document to modular design
Wednesday, May 22, 13
ARIA and new elements can be combined for fallback. Avoid wrapping element in a div with
the same role, <div role=”navigation”><nav>
http://diveintohtml5.org/semantics.html#new-elements
time also uses datetime and optional pubdate attributes for expanding publish date in
machine readable timestamp.
Support for Tags
• Most browsers will treat them as inline.
Use display:block
• Firefox 4 = IAccessible2
• Internet Explorer needs JS
<script>document.createElement("header")</script>
• Safe to mix with ARIA
<nav role=”navigation”>
Wednesday, May 22, 13
<script>document.createElement("header")</script>
IAccessible2 is an engineered accessibility interface allowing application developers to leverage their investment in MSAA while also providing an Assistive Technology (AT) access to rich document
applications such as the IBM Workplace productivity editors and web browsers such as Firefox. The additional functionality includes support for rich text, tables, spreadsheets, Web 2.0 applications, and other
large mainstream applications.
New Attributes
• Custom data attribute:
• data-dosa=”paneer”
• Timestamps: datetime=”2011-03-16”
• Microdata
Wednesday, May 22, 13
the data-foo pattern avoids placing related information in hidden divs, rel/rev/title
attributes.
http://html5doctor.com/microdata/ - similar to microformats, uses itemtype, itemprop,
itemscope
add pubdate to the time tag to show this was a published event <time datetime=”” pubdate>
Native drag and drop, integrate with aria http://html5doctor.com/accessibility-native-drag-
and-drop/
Use Today
• Geolocation
• Form attributes
• ARIA
• CSS3
• Offline storage
• Web Workers, Web Sockets
• Audio, Video (with fallback)
Wednesday, May 22, 13
Accessible Rich Internet Applications
Bridge for Accessibility
Wednesday, May 22, 13
ARIA best practices 	
  http://www.w3.org/TR/wai-­‐aria-­‐practices/	
  	
  
photo: Krishnarajapuram Bridge By sravi_in (Busy at work)
ARIA Rules
1. Don’t use ARIA if
native tag is available.
2. See #1
Wednesday, May 22, 13
The best user experience is created with the semantic HTML tags. ARIA is meant to fix areas
that cannot use existing native elements.
Use <button> instead of role=”button”
Use <table> instead of role=”grid”
Use <img> instead of role=”img”
ARIA... the tag snatcher
Wednesday, May 22, 13
ARIA trumps the value of anything it is applied to.
role attribute changes the host tag to the role’s value
aria-label will replace the inline text or alt value
aria-describedby, depending on the use, replaces the title attribute value.
invasion of the body snatchers: http://www.youtube.com/watch?v=WFnSxeDfENk
ARIA... the tag snatcher
Wednesday, May 22, 13
ARIA trumps the value of anything it is applied to.
role attribute changes the host tag to the role’s value
aria-label will replace the inline text or alt value
aria-describedby, depending on the use, replaces the title attribute value.
invasion of the body snatchers: http://www.youtube.com/watch?v=WFnSxeDfENk
ARIA
• Web application functionality
• Landmark structure: navigation, banner,
search, main
• Meta information: aria-hidden, aria-label
• Live regions for dynamic content
• Attributes placed on HTML tags
Wednesday, May 22, 13
W3C Web Accessibility Initiative: Accessible Rich Internet Applications
ARIA Landmarksrole=”banner” | role=”search” | role=”main” | role=”complementary”
Wednesday, May 22, 13
role=”banner” | role=”search” | role=”main” | role=”complementary”
Don’t over-use complementary and section
Roles Restore Semantics
• <div role=”img”></div>
• <a role=”button”></div>
• <div role=”grid”></div>
• <ul role=”navigation”></ul>
• <p role=”header” aria-level=”3”></p>
Wednesday, May 22, 13
ARIA roles restore semantics when HTML tags are used incorrectly.
Developers should use the correct tag before adding ARIA roles
http://www.w3.org/TR/wai-aria/roles
roles may be better supported than HTML5 tags
States
• <iframe aria-hidden=”true”></iframe>
• <input aria-invalid=”true”>
• <a aria-selected=”true”>Home</a>
• <input aria-disabled=”true”>
Wednesday, May 22, 13
Use aria-hidden on iframes that contain beacons and other non-content
place aria-invalid on inputs that have been determined are invalid. combine with aria-
describedby, which points to an error message
aria-selected=”true” is helpful for showing the selected option in navigation or for pseudo
inputs.
aria-disabled replicates the disabled attribute on an input.
• <input aria-label=”Search”>
• <h3 id=”addressHome”>Home</h3>
<input aria-labelledby=”addressHome”>
• <input aria-invalid=”true” aria-
describedby=”pwordError”>
Wednesday, May 22, 13
aria-label provides a label to assistive technology.
aria-labelledby and aria-describedby point to an element on the page that provides a label or description. This element can be
hidden with display:none.
aria-label and aria-labelledby may not satisfy automated accessibility testing. The standard label is still preferred.
photo: Taj Mahal Palace Hotel, Bombay By born1945
Widgets
ARIA announces widget purpose,
JavaScript is needed for interaction
• <a role=”slider”>Volume</a>
• <div role=”alert”></div>
• <ul role=”tree”></ul>
• <input role=”combobox”>
Wednesday, May 22, 13
These widget roles let the user know what to expect from complex interactions.
User experience should match desktop software usage
ARIA does not provide the functionality, developer must create this with JavaScript
DHML Style Guide is good start for interaction behavior http://dev.aol.com/
dhtml_style_guide/
http://www.w3.org/TR/wai-aria/roles#widget_roles
Live Regions
Announce content when there are changes
• aria-live=”polite” - waits until user stops typing
• aria-live=”assertive” - immediately spoken
• role=”alert” - implicitly sets aria-live=”assertive”
• Other roles:
• “alertdialog”
• “timer”
• “log”
• “marquee”
• “status”
Wednesday, May 22, 13
aria-atomic=”true|false” - speak the whole content or just what changed
aria-relevant=”additions | removals | text | all” what to announce
aria-busy=”true” - announces a loading, false is default
ARIA Quick Fixes
• <a href=”#” role=”button”>
• <input aria-label=”enter search
term” ...>
• <input aria-describedby=”error” ...>
• <table role=”presentation>
Wednesday, May 22, 13
Use role=”button” on links that trigger an action, not take the user to a new page
aria-label for adding a label to an input that has no label.
aria-describedby points to invalid input alert. points to a section of content with id
role=”presentation” on layout table tells the screen reader its not for data.
Form with table layout
aria-describedby restores fieldset/legend
semantics
Wednesday, May 22, 13
aria-describedby points to the header’s id. This adds the text after the radio button’s label.
Form with table layout
aria-describedby restores fieldset/legend
semantics
Wednesday, May 22, 13
aria-describedby points to the header’s id. This adds the text after the radio button’s label.
Fix Pseudo-Table
Wednesday, May 22, 13
The ARIA grid roles allow us to re-define the table structure and provides accessibility when
the display is comprised of multiple tables, divs, and other markup
Fix Pseudo-Table
Wednesday, May 22, 13
The ARIA grid roles allow us to re-define the table structure and provides accessibility when
the display is comprised of multiple tables, divs, and other markup
Wednesday, May 22, 13
Use aria-describedby to point to the error message
use aria-invalid to define which inputs are invalid.
Wednesday, May 22, 13
Use aria-describedby to point to the error message
use aria-invalid to define which inputs are invalid.
Wednesday, May 22, 13
This progress bar was previously not available to screen reader, but had a title attribute to
clarify the progress information.
This was fixed via tabindex and ARIA
Wednesday, May 22, 13
This progress bar was previously not available to screen reader, but had a title attribute to
clarify the progress information.
This was fixed via tabindex and ARIA
Combining
HTML5 & ARIA
Wednesday, May 22, 13
specification for HTML5 + ARIA http://www.w3.org/html/wg/drafts/html/master/dom.html#wai-aria
photo: Durga riding her lion, preceded by Hanuman
When to Choose
• Use ARIA when HTML5 element is not
well supported <ul role=”navigation”>
• Use HTML5 when it provides more
functionality and equally supported
<input required>
• Use both: <nav role=”navigation”>
• ARIA trumps native semantics
Wednesday, May 22, 13
the required attribute will be announced by assistive technology. It also triggers browser
based validation and valid/invalid states can be targeted via CSS and JS.
Place ARIA attribute on the HTML5 tag that it matches, not on a child.
ARIA is meant to replace the semantics of a tag. It’s like !important
• <div id=”maincontent” role=”main”>
<main id=”maincontent” role=”main”>
• Good: <form role=”search”>
Wrong: <input type=”search” role=”search”>
• <nav>
<ul role=”navigation”>
• <input required aria-required=”true”>
Wednesday, May 22, 13
The main tag was added to HTML5 in 2013. Safe to combine with role=”main”. Continue to
use id for skip link.
The search role defines the form’s purpose. input type=”search” has its own semantics.
required attribute is well enough supported that you do not need to duplicate with aria-
required.
Wednesday, May 22, 13
•Invalid code
•no text
•mouse only
• <div role=”button” tabindex=”0”>
• <div role=”application”>
• <canvas>[text]</canvas>
• <img role=”presentation”>
Wednesday, May 22, 13
Common problems:
role=”button” should be for elements that trigger an action, i.e. javascript link.
It is not needed for keyboard focus.
Don’t place tabindex=”0” on elements that should not be in keyboard flow.
Use a link or button instead of div or span
Don’t use role=”application” unless you know what you are doing. It is very complex.
Text nodes are not surfaced via canvas. Starting to be supported http://
Ted DRAKE
Sr. Accessibility Engineer
Intuit Accessibility, CTO
ted_drake@intuit.com
h: last-child.com
t: @ted_drake
s: slideshare.net/7mary4
f: flickr.com/draket
Wednesday, May 22, 13
I am always available for questions and advice. Do not hesitate to send emails with questions,
I will try to answer, possibly with sample code, as soon as possible.
Follow me on twitter and slideshare

Contenu connexe

Tendances

[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 RefresherIvano Malavolta
 
SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014Mark Rackley
 
jQuery Mobile and JavaScript
jQuery Mobile and JavaScriptjQuery Mobile and JavaScript
jQuery Mobile and JavaScriptGary Yeh
 
Skb web2.0
Skb web2.0Skb web2.0
Skb web2.0animove
 
What is SharePoint Development??
What is SharePoint Development??What is SharePoint Development??
What is SharePoint Development??Mark Rackley
 
HTML5 & WAI ARIA for online banking
HTML5 & WAI ARIA for online bankingHTML5 & WAI ARIA for online banking
HTML5 & WAI ARIA for online bankingAdesis Netlife
 
jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5Todd Anderson
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web DesignMike Wilcox
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery GuideMark Rackley
 

Tendances (10)

[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher
 
What is jQuery?
What is jQuery?What is jQuery?
What is jQuery?
 
SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014
 
jQuery Mobile and JavaScript
jQuery Mobile and JavaScriptjQuery Mobile and JavaScript
jQuery Mobile and JavaScript
 
Skb web2.0
Skb web2.0Skb web2.0
Skb web2.0
 
What is SharePoint Development??
What is SharePoint Development??What is SharePoint Development??
What is SharePoint Development??
 
HTML5 & WAI ARIA for online banking
HTML5 & WAI ARIA for online bankingHTML5 & WAI ARIA for online banking
HTML5 & WAI ARIA for online banking
 
jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5jQuery Mobile: Progressive Enhancement with HTML5
jQuery Mobile: Progressive Enhancement with HTML5
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide
 

Similaire à HTML5 and ARIA accessibility - Bangalore 2013

Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
HTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsHTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsIvano Malavolta
 
Website Accessibility: The Internet is for Everyone
Website Accessibility: The Internet is for EveryoneWebsite Accessibility: The Internet is for Everyone
Website Accessibility: The Internet is for EveryoneCarie Fisher, MS, CPWA
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf
 
Devon 2011-f-1 반응형 웹 디자인
Devon 2011-f-1  반응형 웹 디자인Devon 2011-f-1  반응형 웹 디자인
Devon 2011-f-1 반응형 웹 디자인Daum DNA
 
Introduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for AllIntroduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for AllMarc Grabanski
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and moreYan Shi
 
Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
HTML5: An Overview
HTML5: An OverviewHTML5: An Overview
HTML5: An OverviewNagendra Um
 
Experience Ajax - Workshop For Designers
Experience Ajax - Workshop For DesignersExperience Ajax - Workshop For Designers
Experience Ajax - Workshop For Designersshank
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User ExperienceMahbubur Rahman
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Sadaaki HIRAI
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointMark Rackley
 
A brief introduction on HTML5 and responsive layouts
A brief introduction on HTML5 and responsive layoutsA brief introduction on HTML5 and responsive layouts
A brief introduction on HTML5 and responsive layoutsTim Wray
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformAntonio Peric-Mazar
 

Similaire à HTML5 and ARIA accessibility - Bangalore 2013 (20)

Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
HTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsHTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile apps
 
Website Accessibility: The Internet is for Everyone
Website Accessibility: The Internet is for EveryoneWebsite Accessibility: The Internet is for Everyone
Website Accessibility: The Internet is for Everyone
 
J query resh
J query reshJ query resh
J query resh
 
Web Design Trends: 2018 Edition
Web Design Trends: 2018 EditionWeb Design Trends: 2018 Edition
Web Design Trends: 2018 Edition
 
GR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with GrailsGR8Conf 2011: Building Progressive UIs with Grails
GR8Conf 2011: Building Progressive UIs with Grails
 
Devon 2011-f-1 반응형 웹 디자인
Devon 2011-f-1  반응형 웹 디자인Devon 2011-f-1  반응형 웹 디자인
Devon 2011-f-1 반응형 웹 디자인
 
Introduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for AllIntroduction to jQuery Mobile - Web Deliver for All
Introduction to jQuery Mobile - Web Deliver for All
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
HTML5 Refresher
HTML5 RefresherHTML5 Refresher
HTML5 Refresher
 
HTML5: An Overview
HTML5: An OverviewHTML5: An Overview
HTML5: An Overview
 
Experience Ajax - Workshop For Designers
Experience Ajax - Workshop For DesignersExperience Ajax - Workshop For Designers
Experience Ajax - Workshop For Designers
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User Experience
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
 
A brief introduction on HTML5 and responsive layouts
A brief introduction on HTML5 and responsive layoutsA brief introduction on HTML5 and responsive layouts
A brief introduction on HTML5 and responsive layouts
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Html5
Html5Html5
Html5
 

Plus de Ted Drake

Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Ted Drake
 
Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023Ted Drake
 
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessInclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessTed Drake
 
Inclusive design for Long Covid
 Inclusive design for Long Covid  Inclusive design for Long Covid
Inclusive design for Long Covid Ted Drake
 
Covid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive designCovid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive designTed Drake
 
Customer obsession and accessibility
Customer obsession and accessibilityCustomer obsession and accessibility
Customer obsession and accessibilityTed Drake
 
The Saga of Accessible Colors
The Saga of Accessible ColorsThe Saga of Accessible Colors
The Saga of Accessible ColorsTed Drake
 
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11yArtificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11yTed Drake
 
Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program Ted Drake
 
Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating Ted Drake
 
Accessibility First Innovation
Accessibility First InnovationAccessibility First Innovation
Accessibility First InnovationTed Drake
 
Inclusive customer interviews make it your friday task
Inclusive customer interviews  make it your friday taskInclusive customer interviews  make it your friday task
Inclusive customer interviews make it your friday taskTed Drake
 
Coaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsCoaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsTed Drake
 
Accessibility statements and resource publishing best practices csun 2019
Accessibility statements and resource publishing best practices   csun 2019Accessibility statements and resource publishing best practices   csun 2019
Accessibility statements and resource publishing best practices csun 2019Ted Drake
 
Raising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitRaising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitTed Drake
 
Trickle Down Accessibility
Trickle Down AccessibilityTrickle Down Accessibility
Trickle Down AccessibilityTed Drake
 
Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Ted Drake
 
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Ted Drake
 
Mystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessibleMystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessibleTed Drake
 
React Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native MeetupReact Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native MeetupTed Drake
 

Plus de Ted Drake (20)

Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
 
Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023
 
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessInclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illness
 
Inclusive design for Long Covid
 Inclusive design for Long Covid  Inclusive design for Long Covid
Inclusive design for Long Covid
 
Covid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive designCovid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive design
 
Customer obsession and accessibility
Customer obsession and accessibilityCustomer obsession and accessibility
Customer obsession and accessibility
 
The Saga of Accessible Colors
The Saga of Accessible ColorsThe Saga of Accessible Colors
The Saga of Accessible Colors
 
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11yArtificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
 
Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program
 
Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating
 
Accessibility First Innovation
Accessibility First InnovationAccessibility First Innovation
Accessibility First Innovation
 
Inclusive customer interviews make it your friday task
Inclusive customer interviews  make it your friday taskInclusive customer interviews  make it your friday task
Inclusive customer interviews make it your friday task
 
Coaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsCoaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility Champions
 
Accessibility statements and resource publishing best practices csun 2019
Accessibility statements and resource publishing best practices   csun 2019Accessibility statements and resource publishing best practices   csun 2019
Accessibility statements and resource publishing best practices csun 2019
 
Raising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitRaising Accessibility Awareness at Intuit
Raising Accessibility Awareness at Intuit
 
Trickle Down Accessibility
Trickle Down AccessibilityTrickle Down Accessibility
Trickle Down Accessibility
 
Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018
 
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
 
Mystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessibleMystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessible
 
React Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native MeetupReact Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native Meetup
 

Dernier

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Dernier (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

HTML5 and ARIA accessibility - Bangalore 2013

  • 1. HTML5 and ARIA ಪ"#ೕ%&'( )*ಯ,- Ted Drake, Intuit Accessibility Bengaluru, 2013 Wednesday, May 22, 13 Goddess Durga, Shri Hanuman, Goddess Kali and Shiva Family Accessibility Warriors
  • 2. In the good ol’ days... Wednesday, May 22, 13 ancient funfare by abrinsky
  • 3. We had text Wednesday, May 22, 13 Original internet pages were text based and accessible. Images were introduced and pages were still easy to read. Yahoo! circa 197
  • 4. Then came design Wednesday, May 22, 13 “Geocities 1996” a tribute to Geocities web designs on CSS Zen Garden animated gifs, clashing colors, flashing images, and more “Creating Killer Web Sites” released in 1997 by David Siegel introduces the spacer gif, table- based layout, and so much more
  • 5. Salvation Arrived Wednesday, May 22, 13 Jeffrey Zeldman and friends introduce web standards Return to semantic, structural markup. design and interactions are separated from markup.
  • 6. “Design” returned Some rights reserved by DanCentury on Flickr Wednesday, May 22, 13 Web 2.0 introduced application-like web sites. AJAX for dynamic content changes, drag and drop interfaces, semantic elements transform into forms elements no longer behave naturally.
  • 7. Take a deep breath Wednesday, May 22, 13 photo: truck stop By Meanest Indian
  • 8. What is HTML5? Wednesday, May 22, 13 Accessibility  support:  www.HTML5accessibility.com
  • 9. a reality check Wednesday, May 22, 13 HTML5 is the result of recognizing web sites were moving from documents to web applications. Initial spec written by WHATWG Combine best of XHTML with HTML Enthusiasts began lumping the various elements under the HTML5 moniker
  • 10. HTML5 includes • More powerful forms • CSS3 • Canvas and SVG • Audio and Video • JavaScript tools • Device Integration • Semantic structure • WAI-ARIA Wednesday, May 22, 13 XForms became HTML5 forms CSS3 has been under development for years, browsers are rapidly adopting it. Canvas and SVG are not new, browser support is allowing them to replace flash Audio and Video specs are still devloping. JavaScript enhanced with web workers, sockets, local storage, browser api
  • 11. Good Stuff • Native Interactions • Enhanced Form Elements • Semantic Structure • Universal Mobile Platform Wednesday, May 22, 13 browsers handle interactions natively, no need for JS improved form structure new tags
  • 12. Native Support • Browsers replace plugins and JavaScript • Consistency • Extensible • Device specific Wednesday, May 22, 13 consistent interactions across the web as browsers replace adhoc js and plugins browsers provide hooks for extending experience via CSS and JS
  • 13. Super Forms Wednesday, May 22, 13 • New input types: email, url, date, number... • New attributes: placeholder, autofocus, required... • Combine with ARIA: aria-required, aria-describedby... • Backwards compatible
  • 14. Super Forms Wednesday, May 22, 13 • New input types: email, url, date, number... • New attributes: placeholder, autofocus, required... • Combine with ARIA: aria-required, aria-describedby... • Backwards compatible
  • 15. No More ‘Divitis’! Wednesday, May 22, 13 the generic div and span tags have been abused. HTML5 introduces new semantic containers to avoid a page filled with nothing but divs.
  • 16. Semantic Tags • New containers: article, section, aside, footer, header, nav, and now main • New & improved tags: dl, time, datalist, ruby • Shift from document to modular design Wednesday, May 22, 13 ARIA and new elements can be combined for fallback. Avoid wrapping element in a div with the same role, <div role=”navigation”><nav> http://diveintohtml5.org/semantics.html#new-elements time also uses datetime and optional pubdate attributes for expanding publish date in machine readable timestamp.
  • 17. Support for Tags • Most browsers will treat them as inline. Use display:block • Firefox 4 = IAccessible2 • Internet Explorer needs JS <script>document.createElement("header")</script> • Safe to mix with ARIA <nav role=”navigation”> Wednesday, May 22, 13 <script>document.createElement("header")</script> IAccessible2 is an engineered accessibility interface allowing application developers to leverage their investment in MSAA while also providing an Assistive Technology (AT) access to rich document applications such as the IBM Workplace productivity editors and web browsers such as Firefox. The additional functionality includes support for rich text, tables, spreadsheets, Web 2.0 applications, and other large mainstream applications.
  • 18. New Attributes • Custom data attribute: • data-dosa=”paneer” • Timestamps: datetime=”2011-03-16” • Microdata Wednesday, May 22, 13 the data-foo pattern avoids placing related information in hidden divs, rel/rev/title attributes. http://html5doctor.com/microdata/ - similar to microformats, uses itemtype, itemprop, itemscope add pubdate to the time tag to show this was a published event <time datetime=”” pubdate> Native drag and drop, integrate with aria http://html5doctor.com/accessibility-native-drag- and-drop/
  • 19. Use Today • Geolocation • Form attributes • ARIA • CSS3 • Offline storage • Web Workers, Web Sockets • Audio, Video (with fallback) Wednesday, May 22, 13
  • 20. Accessible Rich Internet Applications Bridge for Accessibility Wednesday, May 22, 13 ARIA best practices  http://www.w3.org/TR/wai-­‐aria-­‐practices/     photo: Krishnarajapuram Bridge By sravi_in (Busy at work)
  • 21. ARIA Rules 1. Don’t use ARIA if native tag is available. 2. See #1 Wednesday, May 22, 13 The best user experience is created with the semantic HTML tags. ARIA is meant to fix areas that cannot use existing native elements. Use <button> instead of role=”button” Use <table> instead of role=”grid” Use <img> instead of role=”img”
  • 22. ARIA... the tag snatcher Wednesday, May 22, 13 ARIA trumps the value of anything it is applied to. role attribute changes the host tag to the role’s value aria-label will replace the inline text or alt value aria-describedby, depending on the use, replaces the title attribute value. invasion of the body snatchers: http://www.youtube.com/watch?v=WFnSxeDfENk
  • 23. ARIA... the tag snatcher Wednesday, May 22, 13 ARIA trumps the value of anything it is applied to. role attribute changes the host tag to the role’s value aria-label will replace the inline text or alt value aria-describedby, depending on the use, replaces the title attribute value. invasion of the body snatchers: http://www.youtube.com/watch?v=WFnSxeDfENk
  • 24. ARIA • Web application functionality • Landmark structure: navigation, banner, search, main • Meta information: aria-hidden, aria-label • Live regions for dynamic content • Attributes placed on HTML tags Wednesday, May 22, 13 W3C Web Accessibility Initiative: Accessible Rich Internet Applications
  • 25. ARIA Landmarksrole=”banner” | role=”search” | role=”main” | role=”complementary” Wednesday, May 22, 13 role=”banner” | role=”search” | role=”main” | role=”complementary” Don’t over-use complementary and section
  • 26. Roles Restore Semantics • <div role=”img”></div> • <a role=”button”></div> • <div role=”grid”></div> • <ul role=”navigation”></ul> • <p role=”header” aria-level=”3”></p> Wednesday, May 22, 13 ARIA roles restore semantics when HTML tags are used incorrectly. Developers should use the correct tag before adding ARIA roles http://www.w3.org/TR/wai-aria/roles roles may be better supported than HTML5 tags
  • 27. States • <iframe aria-hidden=”true”></iframe> • <input aria-invalid=”true”> • <a aria-selected=”true”>Home</a> • <input aria-disabled=”true”> Wednesday, May 22, 13 Use aria-hidden on iframes that contain beacons and other non-content place aria-invalid on inputs that have been determined are invalid. combine with aria- describedby, which points to an error message aria-selected=”true” is helpful for showing the selected option in navigation or for pseudo inputs. aria-disabled replicates the disabled attribute on an input.
  • 28. • <input aria-label=”Search”> • <h3 id=”addressHome”>Home</h3> <input aria-labelledby=”addressHome”> • <input aria-invalid=”true” aria- describedby=”pwordError”> Wednesday, May 22, 13 aria-label provides a label to assistive technology. aria-labelledby and aria-describedby point to an element on the page that provides a label or description. This element can be hidden with display:none. aria-label and aria-labelledby may not satisfy automated accessibility testing. The standard label is still preferred. photo: Taj Mahal Palace Hotel, Bombay By born1945
  • 29. Widgets ARIA announces widget purpose, JavaScript is needed for interaction • <a role=”slider”>Volume</a> • <div role=”alert”></div> • <ul role=”tree”></ul> • <input role=”combobox”> Wednesday, May 22, 13 These widget roles let the user know what to expect from complex interactions. User experience should match desktop software usage ARIA does not provide the functionality, developer must create this with JavaScript DHML Style Guide is good start for interaction behavior http://dev.aol.com/ dhtml_style_guide/ http://www.w3.org/TR/wai-aria/roles#widget_roles
  • 30. Live Regions Announce content when there are changes • aria-live=”polite” - waits until user stops typing • aria-live=”assertive” - immediately spoken • role=”alert” - implicitly sets aria-live=”assertive” • Other roles: • “alertdialog” • “timer” • “log” • “marquee” • “status” Wednesday, May 22, 13 aria-atomic=”true|false” - speak the whole content or just what changed aria-relevant=”additions | removals | text | all” what to announce aria-busy=”true” - announces a loading, false is default
  • 31. ARIA Quick Fixes • <a href=”#” role=”button”> • <input aria-label=”enter search term” ...> • <input aria-describedby=”error” ...> • <table role=”presentation> Wednesday, May 22, 13 Use role=”button” on links that trigger an action, not take the user to a new page aria-label for adding a label to an input that has no label. aria-describedby points to invalid input alert. points to a section of content with id role=”presentation” on layout table tells the screen reader its not for data.
  • 32. Form with table layout aria-describedby restores fieldset/legend semantics Wednesday, May 22, 13 aria-describedby points to the header’s id. This adds the text after the radio button’s label.
  • 33. Form with table layout aria-describedby restores fieldset/legend semantics Wednesday, May 22, 13 aria-describedby points to the header’s id. This adds the text after the radio button’s label.
  • 34. Fix Pseudo-Table Wednesday, May 22, 13 The ARIA grid roles allow us to re-define the table structure and provides accessibility when the display is comprised of multiple tables, divs, and other markup
  • 35. Fix Pseudo-Table Wednesday, May 22, 13 The ARIA grid roles allow us to re-define the table structure and provides accessibility when the display is comprised of multiple tables, divs, and other markup
  • 36. Wednesday, May 22, 13 Use aria-describedby to point to the error message use aria-invalid to define which inputs are invalid.
  • 37. Wednesday, May 22, 13 Use aria-describedby to point to the error message use aria-invalid to define which inputs are invalid.
  • 38. Wednesday, May 22, 13 This progress bar was previously not available to screen reader, but had a title attribute to clarify the progress information. This was fixed via tabindex and ARIA
  • 39. Wednesday, May 22, 13 This progress bar was previously not available to screen reader, but had a title attribute to clarify the progress information. This was fixed via tabindex and ARIA
  • 40. Combining HTML5 & ARIA Wednesday, May 22, 13 specification for HTML5 + ARIA http://www.w3.org/html/wg/drafts/html/master/dom.html#wai-aria photo: Durga riding her lion, preceded by Hanuman
  • 41. When to Choose • Use ARIA when HTML5 element is not well supported <ul role=”navigation”> • Use HTML5 when it provides more functionality and equally supported <input required> • Use both: <nav role=”navigation”> • ARIA trumps native semantics Wednesday, May 22, 13 the required attribute will be announced by assistive technology. It also triggers browser based validation and valid/invalid states can be targeted via CSS and JS. Place ARIA attribute on the HTML5 tag that it matches, not on a child. ARIA is meant to replace the semantics of a tag. It’s like !important
  • 42. • <div id=”maincontent” role=”main”> <main id=”maincontent” role=”main”> • Good: <form role=”search”> Wrong: <input type=”search” role=”search”> • <nav> <ul role=”navigation”> • <input required aria-required=”true”> Wednesday, May 22, 13 The main tag was added to HTML5 in 2013. Safe to combine with role=”main”. Continue to use id for skip link. The search role defines the form’s purpose. input type=”search” has its own semantics. required attribute is well enough supported that you do not need to duplicate with aria- required.
  • 43. Wednesday, May 22, 13 •Invalid code •no text •mouse only
  • 44. • <div role=”button” tabindex=”0”> • <div role=”application”> • <canvas>[text]</canvas> • <img role=”presentation”> Wednesday, May 22, 13 Common problems: role=”button” should be for elements that trigger an action, i.e. javascript link. It is not needed for keyboard focus. Don’t place tabindex=”0” on elements that should not be in keyboard flow. Use a link or button instead of div or span Don’t use role=”application” unless you know what you are doing. It is very complex. Text nodes are not surfaced via canvas. Starting to be supported http://
  • 45. Ted DRAKE Sr. Accessibility Engineer Intuit Accessibility, CTO ted_drake@intuit.com h: last-child.com t: @ted_drake s: slideshare.net/7mary4 f: flickr.com/draket Wednesday, May 22, 13 I am always available for questions and advice. Do not hesitate to send emails with questions, I will try to answer, possibly with sample code, as soon as possible. Follow me on twitter and slideshare