SlideShare une entreprise Scribd logo
1  sur  81
WAI-ARIA is more
than Accessibility
   othree @ COSCUP 2011
Who am I
Member of Happy Designer
          MozTW
          HTML5-IG-ZH

    Work PhD Candidate on Civil
          F2E at HTC
The History
Web 2.0
Age ofRich Internet Applications
       RIA
Custom Widgets
AJAX
Problems

• Custom Widgets
 • No Semantic, Browser/AT didn’t realize
 • Can’t get focus
Problem


• AJAX
 • AT didn’t know when the content
    changes, and where is it.
WAI-ARIA
WAI-ARIA

• Proposed by Richard Schwerdtfeger from
  IBM and Becky Gibson from W3C
• W3C Candidate Recommendation at
  2011/01/18
• You can use it TODAY

                          http://www.alistapart.com/articles/waiaria
Components of ARIA

• role → browser knows meaning
• states and properties → browser knows
• redefine tabindex → possible to focus
• liveregion → notice when content changes
Mapping to Problems

• role → browser knows meaning
• states and properties → browser knows
• redefine tabindex → possible to focus
• liveregion → notice when content changes
Mapping to Problems

• role → define new rolesmeaning
           browser knows

• states and properties → browser knows
• redefine tabindex → possible to focus
• liveregion → notice when content changes
Mapping to Problems

• role → define new rolesmeaning
           browser knows

• states and properties → store states
                          browser knows

• redefine tabindex → possible to focus
• liveregion → notice when content changes
Mapping to Problems

• role → define new rolesmeaning
           browser knows

• states and properties → store states
                          browser knows

• redefine tabindex → possible to focus
• liveregion → notice when content changes
Mapping to Problems

• role → define new rolesmeaning
           browser knows

• states and properties → store states
                          browser knows

• redefine tabindex → possible to focus
• liveregion → notice when content changes
Role
Role, role of element
•   alert      •   scrollbar

•   button     •   slider

•   checkbox   •   tab

•   dialog     •   timer

•   link       •   tooltip

•   menuitem   •   ...
Slider
<span
     tabindex="0"
     role="slider"
     aria-valuenow="33"
     aria-valuemin="0"
     aria-valuemax="50"
     id="slider1" title="My slider"
     onkeydown="return handleSliderKey(this, event)">
  --
</span>
Slider
<span
     tabindex="0"
     role="slider"
     aria-valuenow="33"
     aria-valuemin="0"
     aria-valuemax="50"
     id="slider1" title="My slider"
     onkeydown="return handleSliderKey(this, event)">
  --
</span>
Role, more than widget

• Widgets Roles
• Document Structure
• Landmark
Document Structure
        Landmark
•   article        •   banner

•   heading        •   complementary

•   img            •   contentinfo

•   list           •   main

•   note           •   navigation

•   presentation   •   search
HTML5 Semantic Tag
       <header>
         <nav>




                  <aside>
     <article>
ARIA Document Structure
         banner
        navigation




                     complementary
        main
Difference
         ARIA                 HTML5
          Banner for
banner                  <header>    Head of section
          entire site


     Main content of
main                    <article>     An article
          page
HTML5 + ARIA
   <div role=”banner”>
          <nav>


<div role=”main”>



                         <aside>
  <article>
</div>
ARIA can help
HTML5 document
 more semantic
States & Properties
<div id="master" style=".." class="..">
  <div class=".." style="width: 60%;"></div>
  <a class=".." href="#" style="left: 60%;"></a>
</div>
<div id="master" style=".." class="..">
  <div class=".." style="width: 60%;"></div>
  <a class=".." href="#" style="left: 60%;"></a>
</div>
<div id="master" style=".." class="..">
  <div class=".." style="width: 60%;"></div>
  <a class=".." href="#" style="left: 60%;"></a>
</div>
Store Methods

• Use DOM Node property
• Use custom class
• Use custom attribute
• Use Widget controller
• Use centralized storage system
ARIA slider
<span
     tabindex="0"
     role="slider"
     aria-valuenow="33"
     aria-valuemin="0"
     aria-valuemax="50"
     id="slider1" title="My slider"
     onkeydown="return handleSliderKey(this, event)">
  --
</span>
ARIA slider
<span
     tabindex="0"
     role="slider"
     aria-valuenow="33"
     aria-valuemin="0"
     aria-valuemax="50"
     id="slider1" title="My slider"
     onkeydown="return handleSliderKey(this, event)">
  --
</span>
ARIA slider
<span
     tabindex="0"
     role="slider"
     aria-valuenow="33"
     aria-valuemin="0"
     aria-valuemax="50"
     id="slider1" title="My slider"
     onkeydown="return handleSliderKey(this, event)">
  --
</span>
ARIA slider
<span
     tabindex="0"
     role="slider"
     aria-valuenow="33"
     aria-valuemin="0"
     aria-valuemax="50"
     id="slider1" title="My slider"
     onkeydown="return handleSliderKey(this, event)">
  --
</span>
Also for Relationships


• label, describe
• owns, controlls
?
?

    ?
label, describe
<a href="http://yahoo.com" id="yahoo-link-2"
  aria-describedby="tooltip">Link to yahoo1</a>

.
.
.

<div id="tooltip" aria-labelledby="yahoo-link-2">
    <h3>Yahoo doo2</h3>
    <div class="body">wohooo</div>
    <div class="url" style="display: none; "></div>
</div>
label, describe
<a href="http://yahoo.com" id="yahoo-link-2"
  aria-describedby="tooltip">Link to yahoo1</a>

.
.
.

<div id="tooltip" aria-labelledby="yahoo-link-2">
    <h3>Yahoo doo2</h3>
    <div class="body">wohooo</div>
    <div class="url" style="display: none; "></div>
</div>
Live Region
Live Region

• Monitor DOM change
• How?
 • aria-live=”polite”
Polite Level

• off
• polite
• assertive
• rude
Tabindex
Redefine Tabindex

• Available for all visible elements
• Three values
 • >0
 • 0→
 • -1 →
Redefine Tabindex

• Available for all visible elements
• Three values
 • >0
 • 0 → in native order
 • -1 →
Redefine Tabindex

• Available for all visible elements
• Three values
 • >0
 • 0 → in native order
 • -1 → need .focus()
←START
1
                       Tab Order
2      3   4   5   6




7...
1
    Ideal Tab Order
2




3
Move to Other Tab
→
Move to Other Tab
←   →
Tabindex Value
0   -1   -1   -1   -1
Tabindex Value
-1   0   -1   -1   -1
Not automatically
More than Accessibility
SEO

• Document Structure & Landmark Role
 • Yahoo! supports
 • Google use role too
Standard Way to Store
   Property & State

• Avoid pollute DOM Node & className
• Build relationship between nodes
Use WAI-ARIA Today!!
Thank You
Questions?

Contenu connexe

Tendances

SPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsSPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsMark Rackley
 
Introduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopIntroduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopMark Rackley
 
Be nice to your designers
Be nice to your designersBe nice to your designers
Be nice to your designersPai-Cheng Tao
 
SharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuerySharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQueryMark Rackley
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5Ron Reiter
 
Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)Marc Grabanski
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)Doris Chen
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointMark Rackley
 
Intro to jQuery for Drupal
Intro to jQuery for DrupalIntro to jQuery for Drupal
Intro to jQuery for Drupaljhamiltoorion
 
NOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need itNOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need itMark Rackley
 
What is SharePoint Development??
What is SharePoint Development??What is SharePoint Development??
What is SharePoint Development??Mark Rackley
 
2022 HTML5: The future is now
2022 HTML5: The future is now2022 HTML5: The future is now
2022 HTML5: The future is nowGonzalo Cordero
 
HTML5, just another presentation :)
HTML5, just another presentation :)HTML5, just another presentation :)
HTML5, just another presentation :)François Massart
 
The SharePoint & jQuery Guide
The SharePoint & jQuery GuideThe SharePoint & jQuery Guide
The SharePoint & jQuery GuideMark Rackley
 
Styling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS EditionStyling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS Editionbensmithett
 
Styling components with JavaScript
Styling components with JavaScriptStyling components with JavaScript
Styling components with JavaScriptbensmithett
 
Plone Interactivity
Plone InteractivityPlone Interactivity
Plone InteractivityEric Steele
 

Tendances (20)

SPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsSPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentials
 
Introduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopIntroduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint Workshop
 
Be nice to your designers
Be nice to your designersBe nice to your designers
Be nice to your designers
 
SharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuerySharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuery
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
 
Challenges going mobile
Challenges going mobileChallenges going mobile
Challenges going mobile
 
Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)Whirlwind Tour of SVG (plus RaphaelJS)
Whirlwind Tour of SVG (plus RaphaelJS)
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
Intro to jQuery for Drupal
Intro to jQuery for DrupalIntro to jQuery for Drupal
Intro to jQuery for Drupal
 
NOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need itNOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need it
 
What is SharePoint Development??
What is SharePoint Development??What is SharePoint Development??
What is SharePoint Development??
 
2022 HTML5: The future is now
2022 HTML5: The future is now2022 HTML5: The future is now
2022 HTML5: The future is now
 
HTML5, just another presentation :)
HTML5, just another presentation :)HTML5, just another presentation :)
HTML5, just another presentation :)
 
The SharePoint & jQuery Guide
The SharePoint & jQuery GuideThe SharePoint & jQuery Guide
The SharePoint & jQuery Guide
 
Styling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS EditionStyling Components with JavaScript: MelbCSS Edition
Styling Components with JavaScript: MelbCSS Edition
 
Styling components with JavaScript
Styling components with JavaScriptStyling components with JavaScript
Styling components with JavaScript
 
Apex & jQuery Mobile
Apex & jQuery MobileApex & jQuery Mobile
Apex & jQuery Mobile
 
Css
CssCss
Css
 
Plone Interactivity
Plone InteractivityPlone Interactivity
Plone Interactivity
 

En vedette

ADA compliance visuals 1
ADA compliance visuals 1ADA compliance visuals 1
ADA compliance visuals 1Barbara DeBord
 
ADA compliance visuals 2
ADA compliance visuals 2ADA compliance visuals 2
ADA compliance visuals 2Barbara DeBord
 
ADA compliance visuals W3C
ADA compliance visuals W3CADA compliance visuals W3C
ADA compliance visuals W3CBarbara DeBord
 
Why ARIA? [DevChatt 2010]
Why ARIA? [DevChatt 2010]Why ARIA? [DevChatt 2010]
Why ARIA? [DevChatt 2010]Aaron Gustafson
 
Entrepreneurship In The News
Entrepreneurship In The NewsEntrepreneurship In The News
Entrepreneurship In The NewsChad Blenkin
 
Introduction to ARIA
Introduction to ARIAIntroduction to ARIA
Introduction to ARIAVinod Tiwari
 
Ada Compliance What It Is And Why You Should Care
Ada Compliance   What It Is And Why You Should CareAda Compliance   What It Is And Why You Should Care
Ada Compliance What It Is And Why You Should CareEzio E Magarotto
 

En vedette (8)

ADA compliance visuals 1
ADA compliance visuals 1ADA compliance visuals 1
ADA compliance visuals 1
 
ADA compliance visuals 2
ADA compliance visuals 2ADA compliance visuals 2
ADA compliance visuals 2
 
ADA compliance visuals W3C
ADA compliance visuals W3CADA compliance visuals W3C
ADA compliance visuals W3C
 
Why ARIA? [DevChatt 2010]
Why ARIA? [DevChatt 2010]Why ARIA? [DevChatt 2010]
Why ARIA? [DevChatt 2010]
 
Entrepreneurship In The News
Entrepreneurship In The NewsEntrepreneurship In The News
Entrepreneurship In The News
 
2016-10-05 New FLSA Overtime Changes
2016-10-05 New FLSA Overtime Changes2016-10-05 New FLSA Overtime Changes
2016-10-05 New FLSA Overtime Changes
 
Introduction to ARIA
Introduction to ARIAIntroduction to ARIA
Introduction to ARIA
 
Ada Compliance What It Is And Why You Should Care
Ada Compliance   What It Is And Why You Should CareAda Compliance   What It Is And Why You Should Care
Ada Compliance What It Is And Why You Should Care
 

Similaire à WAI-ARIA is More Than Accessibility

aria_with_kissy
aria_with_kissyaria_with_kissy
aria_with_kissyyiming he
 
Frontend for developers
Frontend for developersFrontend for developers
Frontend for developersHernan Mammana
 
Darwin web standards
Darwin web standardsDarwin web standards
Darwin web standardsJustin Avery
 
Html5 Brown Bag
Html5 Brown BagHtml5 Brown Bag
Html5 Brown Bagstuplum
 
Getting the most out of Radiant
Getting the most out of RadiantGetting the most out of Radiant
Getting the most out of Radiantjomz83
 
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5Cengage Learning
 
CUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsCUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsAlfresco Software
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)jeresig
 
Grok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateGrok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateLaura Scott
 
HTML5 Hacking - Yahoo! Open Hack Day
HTML5 Hacking - Yahoo! Open Hack DayHTML5 Hacking - Yahoo! Open Hack Day
HTML5 Hacking - Yahoo! Open Hack DayTed Drake
 
Html5 Whats around the bend
Html5 Whats around the bendHtml5 Whats around the bend
Html5 Whats around the bendRaj Lal
 
Advanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & EfficiencyAdvanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & EfficiencyDenise Jacobs
 
Diazo: Bridging Designers and Programmers
Diazo: Bridging Designers and ProgrammersDiazo: Bridging Designers and Programmers
Diazo: Bridging Designers and ProgrammersTsungWei Hu
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)jeresig
 

Similaire à WAI-ARIA is More Than Accessibility (20)

aria_with_kissy
aria_with_kissyaria_with_kissy
aria_with_kissy
 
HTML5: Introduction
HTML5: IntroductionHTML5: Introduction
HTML5: Introduction
 
Frontend for developers
Frontend for developersFrontend for developers
Frontend for developers
 
Darwin web standards
Darwin web standardsDarwin web standards
Darwin web standards
 
Html5 Brown Bag
Html5 Brown BagHtml5 Brown Bag
Html5 Brown Bag
 
Getting the most out of Radiant
Getting the most out of RadiantGetting the most out of Radiant
Getting the most out of Radiant
 
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
Course Tech 2013, Sasha Vodnik, A Crash Course in HTML5
 
DirectToWeb 2.0
DirectToWeb 2.0DirectToWeb 2.0
DirectToWeb 2.0
 
CUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsCUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension Points
 
Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)Introduction to jQuery (Ajax Exp 2007)
Introduction to jQuery (Ajax Exp 2007)
 
Grok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateGrok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb update
 
HTML5 Hacking - Yahoo! Open Hack Day
HTML5 Hacking - Yahoo! Open Hack DayHTML5 Hacking - Yahoo! Open Hack Day
HTML5 Hacking - Yahoo! Open Hack Day
 
Html5 Whats around the bend
Html5 Whats around the bendHtml5 Whats around the bend
Html5 Whats around the bend
 
Advanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & EfficiencyAdvanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & Efficiency
 
Diazo: Bridging Designers and Programmers
Diazo: Bridging Designers and ProgrammersDiazo: Bridging Designers and Programmers
Diazo: Bridging Designers and Programmers
 
Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)Introduction to jQuery (Ajax Exp 2006)
Introduction to jQuery (Ajax Exp 2006)
 
Intro to HTML 5 / CSS 3
Intro to HTML 5 / CSS 3Intro to HTML 5 / CSS 3
Intro to HTML 5 / CSS 3
 
Html5 public
Html5 publicHtml5 public
Html5 public
 
Html5
Html5Html5
Html5
 
A Practical Guide to HTML5
A Practical Guide to HTML5A Practical Guide to HTML5
A Practical Guide to HTML5
 

Plus de 偉格 高

Mobile web application
Mobile web applicationMobile web application
Mobile web application偉格 高
 
Web Developer Tools for ICOS 2013
Web Developer Tools for ICOS 2013Web Developer Tools for ICOS 2013
Web Developer Tools for ICOS 2013偉格 高
 
Functional programming using underscorejs
Functional programming using underscorejsFunctional programming using underscorejs
Functional programming using underscorejs偉格 高
 
Module, AMD, RequireJS
Module, AMD, RequireJSModule, AMD, RequireJS
Module, AMD, RequireJS偉格 高
 
Javascript essential-pattern
Javascript essential-patternJavascript essential-pattern
Javascript essential-pattern偉格 高
 
Vim Plugin Deployment
Vim Plugin DeploymentVim Plugin Deployment
Vim Plugin Deployment偉格 高
 
Html5 New Features
Html5 New FeaturesHtml5 New Features
Html5 New Features偉格 高
 

Plus de 偉格 高 (12)

node ffi
node ffinode ffi
node ffi
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
 
Web Component
Web ComponentWeb Component
Web Component
 
Mobile web application
Mobile web applicationMobile web application
Mobile web application
 
this
thisthis
this
 
Web Developer Tools for ICOS 2013
Web Developer Tools for ICOS 2013Web Developer Tools for ICOS 2013
Web Developer Tools for ICOS 2013
 
Functional programming using underscorejs
Functional programming using underscorejsFunctional programming using underscorejs
Functional programming using underscorejs
 
Module, AMD, RequireJS
Module, AMD, RequireJSModule, AMD, RequireJS
Module, AMD, RequireJS
 
Javascript essential-pattern
Javascript essential-patternJavascript essential-pattern
Javascript essential-pattern
 
Vim Plugin Deployment
Vim Plugin DeploymentVim Plugin Deployment
Vim Plugin Deployment
 
Html5 New Features
Html5 New FeaturesHtml5 New Features
Html5 New Features
 
Base2
Base2Base2
Base2
 

Dernier

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 

Dernier (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

WAI-ARIA is More Than Accessibility

  • 1. WAI-ARIA is more than Accessibility othree @ COSCUP 2011
  • 2. Who am I Member of Happy Designer MozTW HTML5-IG-ZH Work PhD Candidate on Civil F2E at HTC
  • 5. Age ofRich Internet Applications RIA
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. AJAX
  • 13.
  • 14.
  • 15.
  • 16. Problems • Custom Widgets • No Semantic, Browser/AT didn’t realize • Can’t get focus
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Problem • AJAX • AT didn’t know when the content changes, and where is it.
  • 23. WAI-ARIA • Proposed by Richard Schwerdtfeger from IBM and Becky Gibson from W3C • W3C Candidate Recommendation at 2011/01/18 • You can use it TODAY http://www.alistapart.com/articles/waiaria
  • 24. Components of ARIA • role → browser knows meaning • states and properties → browser knows • redefine tabindex → possible to focus • liveregion → notice when content changes
  • 25. Mapping to Problems • role → browser knows meaning • states and properties → browser knows • redefine tabindex → possible to focus • liveregion → notice when content changes
  • 26. Mapping to Problems • role → define new rolesmeaning browser knows • states and properties → browser knows • redefine tabindex → possible to focus • liveregion → notice when content changes
  • 27. Mapping to Problems • role → define new rolesmeaning browser knows • states and properties → store states browser knows • redefine tabindex → possible to focus • liveregion → notice when content changes
  • 28. Mapping to Problems • role → define new rolesmeaning browser knows • states and properties → store states browser knows • redefine tabindex → possible to focus • liveregion → notice when content changes
  • 29. Mapping to Problems • role → define new rolesmeaning browser knows • states and properties → store states browser knows • redefine tabindex → possible to focus • liveregion → notice when content changes
  • 30. Role
  • 31. Role, role of element • alert • scrollbar • button • slider • checkbox • tab • dialog • timer • link • tooltip • menuitem • ...
  • 32.
  • 33. Slider <span tabindex="0" role="slider" aria-valuenow="33" aria-valuemin="0" aria-valuemax="50" id="slider1" title="My slider" onkeydown="return handleSliderKey(this, event)"> -- </span>
  • 34. Slider <span tabindex="0" role="slider" aria-valuenow="33" aria-valuemin="0" aria-valuemax="50" id="slider1" title="My slider" onkeydown="return handleSliderKey(this, event)"> -- </span>
  • 35. Role, more than widget • Widgets Roles • Document Structure • Landmark
  • 36. Document Structure Landmark • article • banner • heading • complementary • img • contentinfo • list • main • note • navigation • presentation • search
  • 37. HTML5 Semantic Tag <header> <nav> <aside> <article>
  • 38. ARIA Document Structure banner navigation complementary main
  • 39. Difference ARIA HTML5 Banner for banner <header> Head of section entire site Main content of main <article> An article page
  • 40. HTML5 + ARIA <div role=”banner”> <nav> <div role=”main”> <aside> <article> </div>
  • 41. ARIA can help HTML5 document more semantic
  • 43.
  • 44. <div id="master" style=".." class=".."> <div class=".." style="width: 60%;"></div> <a class=".." href="#" style="left: 60%;"></a> </div>
  • 45. <div id="master" style=".." class=".."> <div class=".." style="width: 60%;"></div> <a class=".." href="#" style="left: 60%;"></a> </div>
  • 46. <div id="master" style=".." class=".."> <div class=".." style="width: 60%;"></div> <a class=".." href="#" style="left: 60%;"></a> </div>
  • 47. Store Methods • Use DOM Node property • Use custom class • Use custom attribute • Use Widget controller • Use centralized storage system
  • 48. ARIA slider <span tabindex="0" role="slider" aria-valuenow="33" aria-valuemin="0" aria-valuemax="50" id="slider1" title="My slider" onkeydown="return handleSliderKey(this, event)"> -- </span>
  • 49. ARIA slider <span tabindex="0" role="slider" aria-valuenow="33" aria-valuemin="0" aria-valuemax="50" id="slider1" title="My slider" onkeydown="return handleSliderKey(this, event)"> -- </span>
  • 50. ARIA slider <span tabindex="0" role="slider" aria-valuenow="33" aria-valuemin="0" aria-valuemax="50" id="slider1" title="My slider" onkeydown="return handleSliderKey(this, event)"> -- </span>
  • 51. ARIA slider <span tabindex="0" role="slider" aria-valuenow="33" aria-valuemin="0" aria-valuemax="50" id="slider1" title="My slider" onkeydown="return handleSliderKey(this, event)"> -- </span>
  • 52. Also for Relationships • label, describe • owns, controlls
  • 53.
  • 54.
  • 55. ?
  • 56. ? ?
  • 57. label, describe <a href="http://yahoo.com" id="yahoo-link-2" aria-describedby="tooltip">Link to yahoo1</a> . . . <div id="tooltip" aria-labelledby="yahoo-link-2"> <h3>Yahoo doo2</h3> <div class="body">wohooo</div> <div class="url" style="display: none; "></div> </div>
  • 58. label, describe <a href="http://yahoo.com" id="yahoo-link-2" aria-describedby="tooltip">Link to yahoo1</a> . . . <div id="tooltip" aria-labelledby="yahoo-link-2"> <h3>Yahoo doo2</h3> <div class="body">wohooo</div> <div class="url" style="display: none; "></div> </div>
  • 60. Live Region • Monitor DOM change • How? • aria-live=”polite”
  • 61. Polite Level • off • polite • assertive • rude
  • 63. Redefine Tabindex • Available for all visible elements • Three values • >0 • 0→ • -1 →
  • 64. Redefine Tabindex • Available for all visible elements • Three values • >0 • 0 → in native order • -1 →
  • 65. Redefine Tabindex • Available for all visible elements • Three values • >0 • 0 → in native order • -1 → need .focus()
  • 66.
  • 68. 1 Tab Order 2 3 4 5 6 7...
  • 69. 1 Ideal Tab Order 2 3
  • 70. Move to Other Tab →
  • 71. Move to Other Tab ← →
  • 72.
  • 73. Tabindex Value 0 -1 -1 -1 -1
  • 74. Tabindex Value -1 0 -1 -1 -1
  • 77. SEO • Document Structure & Landmark Role • Yahoo! supports • Google use role too
  • 78. Standard Way to Store Property & State • Avoid pollute DOM Node & className • Build relationship between nodes

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n