SlideShare a Scribd company logo
Accessibility
+ YUI
Sarbbottam | Ted Drake
YUI Conf 2013

This presentation was created for the YUI Conference, November 2013 by Sarbbottam and Ted Drake.
Sample code is available at https://github.com/sarbbottam/a11y/
Bruce Lee toy photos courtesy [CC] images by Shaun Wong on Flickr.
This page: http://www.flickr.com/photos/shaunwong/3227840657/
“Mistakes are always
forgivable, if one has the
courage to admit them.”

― Bruce Lee

Inaccessible web sites are usually caused by ignorance rather than bad intentions. This presentation will introduce
what is needed for accessibility and how Sarbbottam used ARIA, JavaScript, Progressive Enhancement, and
semantic HTML to create a truly accessible and dynamic form. This will help you with your projects as well.
http://www.flickr.com/photos/shaunwong/3228685330/
Perceivable
Operable
Understandable
Robust
The WCAG 2.0 accessibility specifications focus on the user’s experience. It distills this to 4 key factors.
Essentially, the user needs to know
•what is on the page,
•be able to focus on the content,
•interact with the objects, and
•the product should work with all combinations of browsers, devices, and assistive technology.
ARIA Today

•
Labels
•
Roles
•
Descriptions
•

Live Regions

aria-live http://www.w3.org/TR/wai-aria/states_and_properties#aria-live
aria-labelledby http://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby
role=”” http://www.w3.org/TR/wai-aria/roles#roletype
aria-describedby http://www.w3.org/TR/wai-aria/states_and_properties#aria-describedby
http://www.flickr.com/photos/shaunwong/3122449102/
Action

Now that we have the basics for accessibility, let’s look at how Sarbottam created a visually dynamic form that
provides ample feedback for screen reader users.
This form includes:
progressive enhancement (works without javascript).
Everything is keyboard accessible
Works in multi-language/direction/keyboard
Let’s look at how a screen reader interprets our sample form.
http://www.flickr.com/photos/shaunwong/3122450484/
Watch for the following elements in this video:
•Each form input has clearly defined label, state, and properties, i.e required.
•The screen reader lets the user know how to interact with dropdown components
•Screen changes are announced to the user.
This video shows the complete form experience.
http://sarbbottam.github.io/a11y/html/accessible-form.html
It is on YouTube: http://youtu.be/etPAG-Ij10o
Watch for the following elements in this video:
•Each form input has clearly defined label, state, and properties, i.e required.
•The screen reader lets the user know how to interact with dropdown components
•Screen changes are announced to the user.
This video shows the complete form experience.
http://sarbbottam.github.io/a11y/html/accessible-form.html
It is on YouTube: http://youtu.be/etPAG-Ij10o
Drop Down

This dropdown button uses background images for the flag and triangle. The only text node is the country code
value. But is this enough for a user?
This dropdown updates the button’s aria-label to let the user know the button’s intention. Further, after the user
has chosen a country, the aria-label is updated to show it’s selected value.
What is this button?
This button includes a flag, a triangle, and the text “+81”.
The flag and triangle are using spans with background images.
What does the +81 mean?
How can the user know exactly what this will do?
<a
href="#foo"
role="button"
aria-haspopup="true"
aria-label="Hong Kong (+852) Country Code
for optional recovery phone number">
<span class="flag-hk"></span>&nbsp;
<span class="drop-down-arrow-container">
<span class="drop-down-arrow"></span>
</span>&nbsp;+852
</a>
Many times people assume their background image is providing enough information. However, this is just a blank
span for the screen reader user.
The dropdown button is clearly labeled with the country name, the phone number extension, and the context
(optional phone number).
Further, the user knows this will generate a menu via the aria-haspopup=”true” attribute.
The aria-label attribute is updated when the user selects a new value.
This video shows how the dropdown button is announced as a pupup button with the full information.
This interaction uses onkeydown to grab the arrow keys. onkeypress was exact character code of the key pressed.
This was a problem with international keyboards.
Escape key closes the drop down and is announced as the help text. See the aria practices: #focus_tabindex
This video shows how the dropdown button is announced as a pupup button with the full information.
This interaction uses onkeydown to grab the arrow keys. onkeypress was exact character code of the key pressed.
This was a problem with international keyboards.
Escape key closes the drop down and is announced as the help text. See the aria practices: #focus_tabindex
Live Regions

ARIA live regions trigger screen readers to announce content when it changes on the screen. This could be when
an object is given display:block, when content is inserted via innerHTML, or similar moments.
Live region documentation: http://www.w3.org/WAI/PF/aria-practices/#liveprops
http://www.flickr.com/photos/shaunwong/3122447886/
<p
id="password-validation-message"
aria-live="polite"
aria-atomic="false"
aria-relevant="all"></p>

The password field connects to a paragraph that displays the password’s strength with aria-live=”polite”.
This means the new content will be announced after the user stops typing.
Use assertive to interrupt the user.
Nothing is announced while it is empty.
<p
id="password-validation-message"
aria-live="polite"
aria-atomic="false"
aria-relevant="all">
Password must contain 8 characters.
</p>

The paragraph now includes text. This will be announced when the user pauses.
ARIA live regions can be triggered via innerHTML content changes.
<p
id="password-validation-message"
aria-live="polite"
aria-atomic="false"
aria-relevant="all">
Not bad, but you can make it better.
</p>

Every time the content changes, the user will be notified.
You are already doing the presentation changes, the aria attributes just surface that content to the assistive
technology.
This video shows how the password strength indicator is announced as the user enters their
password.
This video shows how the password strength indicator is announced as the user enters their
password.
Username
Suggestions

The username suggestions dropdown uses aria to define the label and possible error messages.
The suggestions have the menu role.
Using live regions, a hidden div is used to surface suggested usernames as the user arrows through the choices.
http://www.flickr.com/photos/shaunwong/3122449436/
<input
type="text"
id="user-name"
autocomplete="off"
aria-required="true"
aria-describedby="validation"
placeholder="Username"
aria-labelledby="user-name-label">

The username text input turns off HTML5 autocomplete
uses aria-required for required status
aria-describedby points to potential error message
aria-labelledby points to the label.
<p
class="clipped"
id="suggestions-read-out-container"
aria-live="polite"
aria-atomic="false"
aria-relevant="all"></p>

the class hides this paragraph visually.
aria-live forces the changes to be announced immediately
aria-atomic announces changed content, not the entire paragraph each time
aria-relevant announces all additions and removals.
highlightSuggestion : function(suggestion) {
      var readOutText = suggestion.get('innerHTML');
      suggestion && suggestion.addClass('suggestions-hovered');
      if(this.selectedIndex === this.list.length - 1) {
        readOutText += this.endOfsuggestionsMessage;
      }
      this.suggestionsReadOutContainer.set('innerHTML',
readOutText);
    },

This JS snippet shows how the content is inserted into the live region via innerHTML.
<p
class="clipped"
id="suggestions-read-out-container"
aria-live="polite"
aria-atomic="false"
aria-relevant="all">
bruce.ninjamaster.lee
</p>

the class hides this paragraph visually.
aria-live forces the changes to be announced immediately
aria-atomic announces changed content, not the entire paragraph each time
aria-relevant announces all additions and removals.
This video shows how the username suggestions give the user information on available
options and how to navigate
This video shows how the username suggestions give the user information on available
options and how to navigate
Validation

This form includes some basic form validation.
When an input has been defined as invalid, we will add the aria-invalid=”true” attribute
<input
	

 type="text"
	

 aria-required="true"
	

 aria-describedby="name-message"
	

 placeholder="First name"
	

 aria-labelledby="first-name-label">
<p
	

 id="name-message"
	

 aria-live="polite"
	

 aria-atomic="false"
	

 aria-relevant="all"></p>

The input is connected to the error message container via aria-describedby.
The paragraph container has aria-live=”assertive” to announce the error message when it is
populated.
<input
	

 type="text"
	

 aria-required="true"
	

 aria-describedby="name-message"
	

 placeholder="First name"
	

 aria-invalid= "true"
	

 aria-labelledby="first-name-label">
<p
	

 id="name-message"
	

 aria-live="polite"
	

 aria-atomic="false"
	

 aria-relevant="all">
	

 	

 Enter Name
</p>
Add aria-invalid=”true” to the input when it is defined as invalid.
The error message will be announced as soon as it is populated due to the aria-live attribute.
The error message will also be announced when the user places focus in the input.
This video shows the First and last name inputs.
The initial focus announces the placeholder, label, and the required state.
It also shows the error state inputs are announced as invalid and the error message is read as the help text.
NVDA and JAWS on windows will announce the error message without the delay.
This video shows the First and last name inputs.
The initial focus announces the placeholder, label, and the required state.
It also shows the error state inputs are announced as invalid and the error message is read as the help text.
NVDA and JAWS on windows will announce the error message without the delay.
Accessibility is built into
all YUI widgets

All YUI widgets include ARIA, Keyboard accessibility, and HTML best practices.
Use these with confidence. http://yuilibrary.com/
Please note: 3rd party components within the gallery may not be accessible.

More Related Content

Viewers also liked

Somemainonnan tehokurssi 02_2016
Somemainonnan tehokurssi 02_2016Somemainonnan tehokurssi 02_2016
Somemainonnan tehokurssi 02_2016
Grapevine Media Oy
 
Lean for Social Good 101
Lean for Social Good 101Lean for Social Good 101
Lean for Social Good 101
Leah Neaderthal
 
Saimaan amk
Saimaan amkSaimaan amk
Saimaan amk
akorhonen
 
Studentervæksthus Aarhus, TEMA: Snapchat. Speaker v. onsdagsmorgenmøde 01.06...
 Studentervæksthus Aarhus, TEMA: Snapchat. Speaker v. onsdagsmorgenmøde 01.06... Studentervæksthus Aarhus, TEMA: Snapchat. Speaker v. onsdagsmorgenmøde 01.06...
Studentervæksthus Aarhus, TEMA: Snapchat. Speaker v. onsdagsmorgenmøde 01.06...
AU INCUBATOR
 
Strategi - implementert (Yggdrasil 2014)
Strategi - implementert (Yggdrasil 2014)Strategi - implementert (Yggdrasil 2014)
Strategi - implementert (Yggdrasil 2014)
Eirik Hafver Rønjum
 
Zece etaje de strategie pentru campaniile PPC in imobiliare
Zece etaje de strategie pentru campaniile PPC in imobiliareZece etaje de strategie pentru campaniile PPC in imobiliare
Zece etaje de strategie pentru campaniile PPC in imobiliare
Dragos Smeu
 
Πολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθους
Πολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθουςΠολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθους
Πολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθους
Theresa Giakoumatou
 
Street Fighting Data Science
Street Fighting Data ScienceStreet Fighting Data Science
Street Fighting Data Science
Benedikt Köhler
 
Child Rights in School
Child Rights in SchoolChild Rights in School
Bagaimana memanfaatkan status Anda sebagai Influencer?
Bagaimana memanfaatkan status Anda sebagai Influencer?Bagaimana memanfaatkan status Anda sebagai Influencer?
Bagaimana memanfaatkan status Anda sebagai Influencer?
Emeraldo Faris Aufar
 
Motivarea si evaluarea angajaților
Motivarea si evaluarea angajațilorMotivarea si evaluarea angajaților
Motivarea si evaluarea angajaților
OdooRomania
 
Spot'it- 3.5-7.5 -שבוע ראשון
Spot'it- 3.5-7.5 -שבוע ראשוןSpot'it- 3.5-7.5 -שבוע ראשון
Spot'it- 3.5-7.5 -שבוע ראשון
Spot'it & More! By McCANN TEL AVIV
 
Bénédicte du BOULLAY
Bénédicte du BOULLAYBénédicte du BOULLAY
Bénédicte du BOULLAY
Cursus Management
 
WMHDAY SCHIZOPRHENIA MALAYALAM
WMHDAY SCHIZOPRHENIA MALAYALAMWMHDAY SCHIZOPRHENIA MALAYALAM
WMHDAY SCHIZOPRHENIA MALAYALAM
Krishnan Sivasubramoney
 
IN RE 3DCAD, EDA, PLM/PDM sprendimai Lietuvoje
IN RE 3DCAD, EDA, PLM/PDM sprendimai LietuvojeIN RE 3DCAD, EDA, PLM/PDM sprendimai Lietuvoje
IN RE 3DCAD, EDA, PLM/PDM sprendimai Lietuvoje
IN RE UAB
 
CV - Jen Campbell, Data Storyteller and Chart/graph lover
CV - Jen Campbell, Data Storyteller and Chart/graph loverCV - Jen Campbell, Data Storyteller and Chart/graph lover
CV - Jen Campbell, Data Storyteller and Chart/graph lover
Jen Campbell
 
Bluehost vs Godaddy Infographic
Bluehost vs Godaddy InfographicBluehost vs Godaddy Infographic
Bluehost vs Godaddy Infographic
pideals
 
Social business or out of business
Social business or out of businessSocial business or out of business
Social business or out of business
Hans-Petter Nygård-Hansen
 

Viewers also liked (20)

Somemainonnan tehokurssi 02_2016
Somemainonnan tehokurssi 02_2016Somemainonnan tehokurssi 02_2016
Somemainonnan tehokurssi 02_2016
 
Lean for Social Good 101
Lean for Social Good 101Lean for Social Good 101
Lean for Social Good 101
 
Saimaan amk
Saimaan amkSaimaan amk
Saimaan amk
 
Studentervæksthus Aarhus, TEMA: Snapchat. Speaker v. onsdagsmorgenmøde 01.06...
 Studentervæksthus Aarhus, TEMA: Snapchat. Speaker v. onsdagsmorgenmøde 01.06... Studentervæksthus Aarhus, TEMA: Snapchat. Speaker v. onsdagsmorgenmøde 01.06...
Studentervæksthus Aarhus, TEMA: Snapchat. Speaker v. onsdagsmorgenmøde 01.06...
 
Strategi - implementert (Yggdrasil 2014)
Strategi - implementert (Yggdrasil 2014)Strategi - implementert (Yggdrasil 2014)
Strategi - implementert (Yggdrasil 2014)
 
Թեմա 3․1
Թեմա 3․1Թեմա 3․1
Թեմա 3․1
 
Zece etaje de strategie pentru campaniile PPC in imobiliare
Zece etaje de strategie pentru campaniile PPC in imobiliareZece etaje de strategie pentru campaniile PPC in imobiliare
Zece etaje de strategie pentru campaniile PPC in imobiliare
 
Πολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθους
Πολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθουςΠολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθους
Πολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθους
 
Street Fighting Data Science
Street Fighting Data ScienceStreet Fighting Data Science
Street Fighting Data Science
 
Child Rights in School
Child Rights in SchoolChild Rights in School
Child Rights in School
 
Moments...
Moments...Moments...
Moments...
 
Bagaimana memanfaatkan status Anda sebagai Influencer?
Bagaimana memanfaatkan status Anda sebagai Influencer?Bagaimana memanfaatkan status Anda sebagai Influencer?
Bagaimana memanfaatkan status Anda sebagai Influencer?
 
Motivarea si evaluarea angajaților
Motivarea si evaluarea angajațilorMotivarea si evaluarea angajaților
Motivarea si evaluarea angajaților
 
Spot'it- 3.5-7.5 -שבוע ראשון
Spot'it- 3.5-7.5 -שבוע ראשוןSpot'it- 3.5-7.5 -שבוע ראשון
Spot'it- 3.5-7.5 -שבוע ראשון
 
Bénédicte du BOULLAY
Bénédicte du BOULLAYBénédicte du BOULLAY
Bénédicte du BOULLAY
 
WMHDAY SCHIZOPRHENIA MALAYALAM
WMHDAY SCHIZOPRHENIA MALAYALAMWMHDAY SCHIZOPRHENIA MALAYALAM
WMHDAY SCHIZOPRHENIA MALAYALAM
 
IN RE 3DCAD, EDA, PLM/PDM sprendimai Lietuvoje
IN RE 3DCAD, EDA, PLM/PDM sprendimai LietuvojeIN RE 3DCAD, EDA, PLM/PDM sprendimai Lietuvoje
IN RE 3DCAD, EDA, PLM/PDM sprendimai Lietuvoje
 
CV - Jen Campbell, Data Storyteller and Chart/graph lover
CV - Jen Campbell, Data Storyteller and Chart/graph loverCV - Jen Campbell, Data Storyteller and Chart/graph lover
CV - Jen Campbell, Data Storyteller and Chart/graph lover
 
Bluehost vs Godaddy Infographic
Bluehost vs Godaddy InfographicBluehost vs Godaddy Infographic
Bluehost vs Godaddy Infographic
 
Social business or out of business
Social business or out of businessSocial business or out of business
Social business or out of business
 

Similar to YUI + Accessibility: Welcome the whole world

Web accessibility - WAI-ARIA a small introduction
Web accessibility - WAI-ARIA a small introductionWeb accessibility - WAI-ARIA a small introduction
Web accessibility - WAI-ARIA a small introduction
Geoffroy Baylaender
 
Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in Rails
Jim Jeffers
 
jQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und ResponsivejQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und Responsive
Peter Rozek
 
Testing For Web Accessibility
Testing For Web AccessibilityTesting For Web Accessibility
Testing For Web Accessibility
Hagai Asaban
 
Build a video chat application with twilio, rails, and javascript (part 1)
Build a video chat application with twilio, rails, and javascript (part 1)Build a video chat application with twilio, rails, and javascript (part 1)
Build a video chat application with twilio, rails, and javascript (part 1)
Katy Slemon
 
If Hemingway Wrote JavaDocs
If Hemingway Wrote JavaDocsIf Hemingway Wrote JavaDocs
If Hemingway Wrote JavaDocs
VMware Tanzu
 
Accessiblity 101 and JavaScript Frameworks
Accessiblity 101 and JavaScript Frameworks Accessiblity 101 and JavaScript Frameworks
Accessiblity 101 and JavaScript Frameworks
Aimee Maree Forsstrom
 
Live Source - an Agile Toolkit
Live Source - an Agile ToolkitLive Source - an Agile Toolkit
Live Source - an Agile Toolkit
Alline Oliveira
 
Reinventing Identity and Social Graphs with Digits
Reinventing Identity and Social Graphs with DigitsReinventing Identity and Social Graphs with Digits
Reinventing Identity and Social Graphs with Digits
Romain Huet
 
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
Patrick Lauke
 
Rails Plugins - Linux For You, March 2011 Issue
Rails Plugins - Linux For You, March 2011 IssueRails Plugins - Linux For You, March 2011 Issue
Rails Plugins - Linux For You, March 2011 Issue
Sagar Arlekar
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
Patrick Lauke
 
Mobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptMobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScript
franksvalli
 
Alexa and AI global meetup
Alexa and AI global meetupAlexa and AI global meetup
Alexa and AI global meetup
Jun Ichikawa
 
Embedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStart
Embedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStartEmbedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStart
Embedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStart
Scott DeLoach
 
10x10 presentation tag
10x10 presentation tag10x10 presentation tag
10x10 presentation tag
lesley90
 
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
Patrick Lauke
 
Creating a Simple, Accessible On/Off Switch
Creating a Simple, Accessible On/Off SwitchCreating a Simple, Accessible On/Off Switch
Creating a Simple, Accessible On/Off Switch
Russ Weakley
 
Building Accessible Web Components
Building Accessible Web ComponentsBuilding Accessible Web Components
Building Accessible Web Components
Russ Weakley
 
A deep dive into accessible names
A deep dive into accessible namesA deep dive into accessible names
A deep dive into accessible names
Russ Weakley
 

Similar to YUI + Accessibility: Welcome the whole world (20)

Web accessibility - WAI-ARIA a small introduction
Web accessibility - WAI-ARIA a small introductionWeb accessibility - WAI-ARIA a small introduction
Web accessibility - WAI-ARIA a small introduction
 
Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in Rails
 
jQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und ResponsivejQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und Responsive
 
Testing For Web Accessibility
Testing For Web AccessibilityTesting For Web Accessibility
Testing For Web Accessibility
 
Build a video chat application with twilio, rails, and javascript (part 1)
Build a video chat application with twilio, rails, and javascript (part 1)Build a video chat application with twilio, rails, and javascript (part 1)
Build a video chat application with twilio, rails, and javascript (part 1)
 
If Hemingway Wrote JavaDocs
If Hemingway Wrote JavaDocsIf Hemingway Wrote JavaDocs
If Hemingway Wrote JavaDocs
 
Accessiblity 101 and JavaScript Frameworks
Accessiblity 101 and JavaScript Frameworks Accessiblity 101 and JavaScript Frameworks
Accessiblity 101 and JavaScript Frameworks
 
Live Source - an Agile Toolkit
Live Source - an Agile ToolkitLive Source - an Agile Toolkit
Live Source - an Agile Toolkit
 
Reinventing Identity and Social Graphs with Digits
Reinventing Identity and Social Graphs with DigitsReinventing Identity and Social Graphs with Digits
Reinventing Identity and Social Graphs with Digits
 
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
 
Rails Plugins - Linux For You, March 2011 Issue
Rails Plugins - Linux For You, March 2011 IssueRails Plugins - Linux For You, March 2011 Issue
Rails Plugins - Linux For You, March 2011 Issue
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
WAI-ARIA An introduction to Accessible Rich Internet Applications / AccessU 2018
 
Mobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptMobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScript
 
Alexa and AI global meetup
Alexa and AI global meetupAlexa and AI global meetup
Alexa and AI global meetup
 
Embedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStart
Embedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStartEmbedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStart
Embedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStart
 
10x10 presentation tag
10x10 presentation tag10x10 presentation tag
10x10 presentation tag
 
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
 
Creating a Simple, Accessible On/Off Switch
Creating a Simple, Accessible On/Off SwitchCreating a Simple, Accessible On/Off Switch
Creating a Simple, Accessible On/Off Switch
 
Building Accessible Web Components
Building Accessible Web ComponentsBuilding Accessible Web Components
Building Accessible Web Components
 
A deep dive into accessible names
A deep dive into accessible namesA deep dive into accessible names
A deep dive into accessible names
 

More from 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 2024
Ted 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 2023
Ted 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 illness
Ted 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 design
Ted Drake
 
Customer obsession and accessibility
Customer obsession and accessibilityCustomer obsession and accessibility
Customer obsession and accessibility
Ted Drake
 
The Saga of Accessible Colors
The Saga of Accessible ColorsThe Saga of Accessible Colors
The Saga of Accessible Colors
Ted 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 A11y
Ted 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 Innovation
Ted 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 task
Ted Drake
 
Coaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsCoaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility Champions
Ted 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 2019
Ted Drake
 
Raising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitRaising Accessibility Awareness at Intuit
Raising Accessibility Awareness at Intuit
Ted Drake
 
Trickle Down Accessibility
Trickle Down AccessibilityTrickle Down Accessibility
Trickle Down Accessibility
Ted Drake
 
Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018
Ted 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 accessible
Ted 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 Meetup
Ted Drake
 

More from 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
 

Recently uploaded

How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 

Recently uploaded (20)

How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 

YUI + Accessibility: Welcome the whole world

  • 1. Accessibility + YUI Sarbbottam | Ted Drake YUI Conf 2013 This presentation was created for the YUI Conference, November 2013 by Sarbbottam and Ted Drake. Sample code is available at https://github.com/sarbbottam/a11y/ Bruce Lee toy photos courtesy [CC] images by Shaun Wong on Flickr. This page: http://www.flickr.com/photos/shaunwong/3227840657/
  • 2. “Mistakes are always forgivable, if one has the courage to admit them.” ― Bruce Lee Inaccessible web sites are usually caused by ignorance rather than bad intentions. This presentation will introduce what is needed for accessibility and how Sarbbottam used ARIA, JavaScript, Progressive Enhancement, and semantic HTML to create a truly accessible and dynamic form. This will help you with your projects as well. http://www.flickr.com/photos/shaunwong/3228685330/
  • 3. Perceivable Operable Understandable Robust The WCAG 2.0 accessibility specifications focus on the user’s experience. It distills this to 4 key factors. Essentially, the user needs to know •what is on the page, •be able to focus on the content, •interact with the objects, and •the product should work with all combinations of browsers, devices, and assistive technology.
  • 4. ARIA Today • Labels • Roles • Descriptions • Live Regions aria-live http://www.w3.org/TR/wai-aria/states_and_properties#aria-live aria-labelledby http://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby role=”” http://www.w3.org/TR/wai-aria/roles#roletype aria-describedby http://www.w3.org/TR/wai-aria/states_and_properties#aria-describedby http://www.flickr.com/photos/shaunwong/3122449102/
  • 5. Action Now that we have the basics for accessibility, let’s look at how Sarbottam created a visually dynamic form that provides ample feedback for screen reader users. This form includes: progressive enhancement (works without javascript). Everything is keyboard accessible Works in multi-language/direction/keyboard Let’s look at how a screen reader interprets our sample form. http://www.flickr.com/photos/shaunwong/3122450484/
  • 6. Watch for the following elements in this video: •Each form input has clearly defined label, state, and properties, i.e required. •The screen reader lets the user know how to interact with dropdown components •Screen changes are announced to the user. This video shows the complete form experience. http://sarbbottam.github.io/a11y/html/accessible-form.html It is on YouTube: http://youtu.be/etPAG-Ij10o
  • 7. Watch for the following elements in this video: •Each form input has clearly defined label, state, and properties, i.e required. •The screen reader lets the user know how to interact with dropdown components •Screen changes are announced to the user. This video shows the complete form experience. http://sarbbottam.github.io/a11y/html/accessible-form.html It is on YouTube: http://youtu.be/etPAG-Ij10o
  • 8. Drop Down This dropdown button uses background images for the flag and triangle. The only text node is the country code value. But is this enough for a user? This dropdown updates the button’s aria-label to let the user know the button’s intention. Further, after the user has chosen a country, the aria-label is updated to show it’s selected value.
  • 9. What is this button? This button includes a flag, a triangle, and the text “+81”. The flag and triangle are using spans with background images. What does the +81 mean? How can the user know exactly what this will do?
  • 10. <a href="#foo" role="button" aria-haspopup="true" aria-label="Hong Kong (+852) Country Code for optional recovery phone number"> <span class="flag-hk"></span>&nbsp; <span class="drop-down-arrow-container"> <span class="drop-down-arrow"></span> </span>&nbsp;+852 </a> Many times people assume their background image is providing enough information. However, this is just a blank span for the screen reader user. The dropdown button is clearly labeled with the country name, the phone number extension, and the context (optional phone number). Further, the user knows this will generate a menu via the aria-haspopup=”true” attribute. The aria-label attribute is updated when the user selects a new value.
  • 11. This video shows how the dropdown button is announced as a pupup button with the full information. This interaction uses onkeydown to grab the arrow keys. onkeypress was exact character code of the key pressed. This was a problem with international keyboards. Escape key closes the drop down and is announced as the help text. See the aria practices: #focus_tabindex
  • 12. This video shows how the dropdown button is announced as a pupup button with the full information. This interaction uses onkeydown to grab the arrow keys. onkeypress was exact character code of the key pressed. This was a problem with international keyboards. Escape key closes the drop down and is announced as the help text. See the aria practices: #focus_tabindex
  • 13. Live Regions ARIA live regions trigger screen readers to announce content when it changes on the screen. This could be when an object is given display:block, when content is inserted via innerHTML, or similar moments. Live region documentation: http://www.w3.org/WAI/PF/aria-practices/#liveprops http://www.flickr.com/photos/shaunwong/3122447886/
  • 14. <p id="password-validation-message" aria-live="polite" aria-atomic="false" aria-relevant="all"></p> The password field connects to a paragraph that displays the password’s strength with aria-live=”polite”. This means the new content will be announced after the user stops typing. Use assertive to interrupt the user. Nothing is announced while it is empty.
  • 15. <p id="password-validation-message" aria-live="polite" aria-atomic="false" aria-relevant="all"> Password must contain 8 characters. </p> The paragraph now includes text. This will be announced when the user pauses. ARIA live regions can be triggered via innerHTML content changes.
  • 16. <p id="password-validation-message" aria-live="polite" aria-atomic="false" aria-relevant="all"> Not bad, but you can make it better. </p> Every time the content changes, the user will be notified. You are already doing the presentation changes, the aria attributes just surface that content to the assistive technology.
  • 17. This video shows how the password strength indicator is announced as the user enters their password.
  • 18. This video shows how the password strength indicator is announced as the user enters their password.
  • 19. Username Suggestions The username suggestions dropdown uses aria to define the label and possible error messages. The suggestions have the menu role. Using live regions, a hidden div is used to surface suggested usernames as the user arrows through the choices. http://www.flickr.com/photos/shaunwong/3122449436/
  • 20. <input type="text" id="user-name" autocomplete="off" aria-required="true" aria-describedby="validation" placeholder="Username" aria-labelledby="user-name-label"> The username text input turns off HTML5 autocomplete uses aria-required for required status aria-describedby points to potential error message aria-labelledby points to the label.
  • 21. <p class="clipped" id="suggestions-read-out-container" aria-live="polite" aria-atomic="false" aria-relevant="all"></p> the class hides this paragraph visually. aria-live forces the changes to be announced immediately aria-atomic announces changed content, not the entire paragraph each time aria-relevant announces all additions and removals.
  • 22. highlightSuggestion : function(suggestion) {       var readOutText = suggestion.get('innerHTML');       suggestion && suggestion.addClass('suggestions-hovered');       if(this.selectedIndex === this.list.length - 1) {         readOutText += this.endOfsuggestionsMessage;       }       this.suggestionsReadOutContainer.set('innerHTML', readOutText);     }, This JS snippet shows how the content is inserted into the live region via innerHTML.
  • 23. <p class="clipped" id="suggestions-read-out-container" aria-live="polite" aria-atomic="false" aria-relevant="all"> bruce.ninjamaster.lee </p> the class hides this paragraph visually. aria-live forces the changes to be announced immediately aria-atomic announces changed content, not the entire paragraph each time aria-relevant announces all additions and removals.
  • 24. This video shows how the username suggestions give the user information on available options and how to navigate
  • 25. This video shows how the username suggestions give the user information on available options and how to navigate
  • 26. Validation This form includes some basic form validation. When an input has been defined as invalid, we will add the aria-invalid=”true” attribute
  • 27. <input type="text" aria-required="true" aria-describedby="name-message" placeholder="First name" aria-labelledby="first-name-label"> <p id="name-message" aria-live="polite" aria-atomic="false" aria-relevant="all"></p> The input is connected to the error message container via aria-describedby. The paragraph container has aria-live=”assertive” to announce the error message when it is populated.
  • 28. <input type="text" aria-required="true" aria-describedby="name-message" placeholder="First name" aria-invalid= "true" aria-labelledby="first-name-label"> <p id="name-message" aria-live="polite" aria-atomic="false" aria-relevant="all"> Enter Name </p> Add aria-invalid=”true” to the input when it is defined as invalid. The error message will be announced as soon as it is populated due to the aria-live attribute. The error message will also be announced when the user places focus in the input.
  • 29. This video shows the First and last name inputs. The initial focus announces the placeholder, label, and the required state. It also shows the error state inputs are announced as invalid and the error message is read as the help text. NVDA and JAWS on windows will announce the error message without the delay.
  • 30. This video shows the First and last name inputs. The initial focus announces the placeholder, label, and the required state. It also shows the error state inputs are announced as invalid and the error message is read as the help text. NVDA and JAWS on windows will announce the error message without the delay.
  • 31. Accessibility is built into all YUI widgets All YUI widgets include ARIA, Keyboard accessibility, and HTML best practices. Use these with confidence. http://yuilibrary.com/ Please note: 3rd party components within the gallery may not be accessible.