SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Andere mochten auch

Somemainonnan tehokurssi 02_2016
Somemainonnan tehokurssi 02_2016Somemainonnan tehokurssi 02_2016
Somemainonnan tehokurssi 02_2016Grapevine Media Oy
 
Lean for Social Good 101
Lean for Social Good 101Lean for Social Good 101
Lean for Social Good 101Leah Neaderthal
 
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 imobiliareDragos Smeu
 
Πολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθους
Πολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθουςΠολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθους
Πολιτιστικά προγράμματα . Νησίδες μαθησιακού ήθουςTheresa Giakoumatou
 
Street Fighting Data Science
Street Fighting Data ScienceStreet Fighting Data Science
Street Fighting Data ScienceBenedikt Köhler
 
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țilorOdooRomania
 
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 LietuvojeIN 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 loverJen Campbell
 
Bluehost vs Godaddy Infographic
Bluehost vs Godaddy InfographicBluehost vs Godaddy Infographic
Bluehost vs Godaddy Infographicpideals
 

Andere mochten auch (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
 

Ähnlich wie 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 introductionGeoffroy Baylaender
 
Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsJim Jeffers
 
jQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und ResponsivejQuery: Accessibility, Mobile und Responsive
jQuery: Accessibility, Mobile und ResponsivePeter Rozek
 
Testing For Web Accessibility
Testing For Web AccessibilityTesting For Web Accessibility
Testing For Web AccessibilityHagai 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 JavaDocsVMware 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 ToolkitAlline 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 DigitsRomain 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.2010Patrick 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 IssueSagar 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 2018Patrick Lauke
 
Mobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptMobile HTML, CSS, and JavaScript
Mobile HTML, CSS, and JavaScriptfranksvalli
 
Alexa and AI global meetup
Alexa and AI global meetupAlexa and AI global meetup
Alexa and AI global meetupJun 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, ClickStartScott DeLoach
 
10x10 presentation tag
10x10 presentation tag10x10 presentation tag
10x10 presentation taglesley90
 
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 SwitchRuss Weakley
 
Building Accessible Web Components
Building Accessible Web ComponentsBuilding Accessible Web Components
Building Accessible Web ComponentsRuss Weakley
 
A deep dive into accessible names
A deep dive into accessible namesA deep dive into accessible names
A deep dive into accessible namesRuss Weakley
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Kürzlich hochgeladen (20)

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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

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.