SlideShare a Scribd company logo
1 of 45
Download to read offline
ARIA with KISSY




                       承玉
        yiminghe@gmail.com
          Draft 26 May 2011
• WAI ARIA Introduction

• ARIA Essentials

• ARIA with KISSY
• WAI ARIA Introduction
WAI ARIA Intro

• W
• A
• I

•   A
•   R
•   I
•   A
WAI ARIA Intro

• Web
• Accessibility
• Initiative

•   Accessible
•   Rich
•   Internet
•   Application
Problem

• Web >= 2.0 is fancy !
What can we do for the disabled especially blind men ?
MS already does

• MSAA : Microsoft Active Accessibility
Mac also does

• Accessibility Programming Guidelines for
  Cocoa
ARIA comes for web

• Map ARIA attributes to MSAA properties.




• Now in draft , but de facto standard , largely
  supported
How

• Semantic tag with meaning content




                html


• But not enough for complex app
How

• Enhance usability for common people



                  css


                  html


• But not so useful for disabled
How

• Fancy thing comes



                 javascript

                    css

                   html

• But it does not tell disabled
How

• Aria for rescue

                    ARIA


                javascript

                    css

                    html

• More semantics by providing attribute to
  bridge the gap between App and AT.
• Aria essentials
ARIA essentials

• Role : type of ui component ,add semantics
• State/Property : decribe about specific role’s
  attribute

• Tabindex : focus management , control user’s
  navigation
• Keydown/press : event needed to be listened
  for activate actions
Role category


• Document structure

• Landmarks

• Widget role
Document structure Roles

• Organize content in a page ,not usually
  interactive. Similar to html5 tags .

• Contains :
  article columnheader definition directory
  document group heading img list listitem
  math note presentation region row
  rowheader separator toolbar
• Document structure roles in taobao
                        role=‘listitem’




                   Role=‘list’
Live region

• Managing content and presentation changes

• Relation:
  – aria-controls
• Properties
  – aria-live aria-busy aria-atomic aria-relevent
• Special live region
  – alert status timer marquee log
In taobao

• word count notification
                            aria-controls=‘counter’




                                     id=‘counter’
                                   aria-live=‘polite’
Landmark roles

• Navigational regions , need AT’s navigation
  function.

• Contains :
  application banner complementary
  contentinfo form main navigation search
Landmark roles in taobao
Landmark in taobao




     role=‘contentinfo’
Widget roles

• Type of a standalone widget or ui control like
  on desktop.
• Contains :
  alert button dialog gridcell marquee
  menuitem menuitemcheckbox
  menuitemradio option progressbar scrollbar
  slider spinbutton tab tabpanel timer tooltip
  treeitem combobox grid listbox menu
  menubar radiogroup tablist tree …
Widget roles in taobao
Role and keydown

• hint:

  – Keydown on Roles other an ‘application’ or
    widget role will be intercepted by AT.

  – Keydown event fired on element with widget role
    should call stopPropagation and preventDefault
    in order to let web application to handle it.
States/property

• Belongs to specific roles ,name starts with
  “aria-”

• For example :
  aria-label   aria-labelledby aria-live
  aria-hidden        aria-activedescendant
  aria-haspopup aria-controls …
In taobao
  Now : aria-label aria-haspopup @ etao

  Lack : aria-activedescendant aria-hidden




       aria-activedescendant




               aria-hidden
tabindex
   • Manage focus among dom node
Attribute Tabindex               Focusable with mouse or       Tab Navigation
                                 JavaScript via
                                 element.focus()
not present                      Follows default behavior of   Follows default behavior of
                                 element (only form controls   element
                                 and anchors can receive
                                 focus.)
zero - tabindex="0"              yes                           In tab order relative to
                                                               element's position in
                                                               document
Positive - tabindex="X"          yes                           Tabindex value directly
(where X is a positive integer                                 specifies where this element
between 1 and 32768)                                           is positioned in the tab order.

Negative - tabindex="-1"         yes                           No, author must focus it with
                                                               element.focus() as a result of
                                                               arrow or other key press
• Aria with KISSY
overview

• KISSY.Overlay

• KISSY.MenuButton

• KISSY.Tabs

• KISSY.Carousel
• …..
KISSY.Overlay

• role=‘dialog’

• aria-labelledby

• aria-hidden

• Trapping Focus
KISSY.MenuButton

•   role = ‘button’
•   aria-haspopup aria-expanded
•   aria-pressed aria-disabled
•   aria-activedescendant
•   aria-labelledby
KISSY.Menu

•   role = ‘menu’ / ‘menuitem’
•   aria-haspopup
•   aria-activedescendant
•   aria-disabled aria-pressed
Tabs Transform

• Aria in KISSY.Tabs
KISSY.Tabs practice

• 1. Pick role
  – Role=‘tablist’
  – Role=‘tab’
  – Role=‘tabpanel’
• 2. set state/property and tabindex
  – Tabpanel
     • aria-hidden
     • aria-labelledby
  – Tab
     • tabindex , current active = 0 , others = -1
     •
• 3.establish keyboard
navigation
  – Keyboard accessible tab
  by listening keydown/press
• 4.sync states with
 widget logic
 5.tabindex and
 focus management

  – AOP Event-Driven
More

• Waiting ….
tools

• Ie8,9 : http://windows.microsoft.com/en-
  US/internet-explorer/products/ie/home
• Firefox : http://www.mozilla.com/
• Chrome : http://www.google.com/chrome/
• 争渡读屏 : http://www.zdsr.net/
• Nvda screen render : http://www.nvda-project.org/
• firefox accessibility extension :
  http://firefox.cita.uiuc.edu/
• WAVE : http://wave.webaim.org/
Refer

• WAI-ARIA - w3.org/TR/wai-aria
• Overview - w3.org/WAI/intro/aria
• ARIA Primer - www.w3.org/TR/waiaria-primer/
• ARIA Best Practices - www.w3.org/TR/wai-aria-
  practices/
• Gez Lemon's tutorial -
  dev.opera.com/articles/view/introduction-to-wai-
  aria/
• Codetalks - http://wiki.codetalks.org
refer

• Mozilla -
  http://developer.mozilla.org/en/docs/Accessible_DH
  TML
• UIUC tests - http://test.cita.uiuc.edu/aria
• Live regions - http://accessibleajax.clcworld.net
• A List Apart - http://alistapart.com/articles/waiaria
• IBM -
  http://www.csun.edu/cod/conf/2005/proceedings/25
  24.htm
• Webaim - http://webaim.org/
Thanks to WAI

More Related Content

Similar to aria_with_kissy

Developing an Accessible Web
Developing an Accessible WebDeveloping an Accessible Web
Developing an Accessible Webgreenideas
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...Patrick Lauke
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...Patrick Lauke
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuerycolinbdclark
 
The Recipe for Making Accessible Widgets!
The Recipe for Making Accessible Widgets!The Recipe for Making Accessible Widgets!
The Recipe for Making Accessible Widgets!Rabab Gomaa
 
Accessible UIs with jQuery and Infusion
Accessible UIs with jQuery and InfusionAccessible UIs with jQuery and Infusion
Accessible UIs with jQuery and Infusioncolinbdclark
 
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012Steven Faulkner
 
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...Patrick Lauke
 
An Introduction to WAI-ARIA
An Introduction to WAI-ARIAAn Introduction to WAI-ARIA
An Introduction to WAI-ARIAIWMW
 
Real JavaScript Ninjas should know how to role with WAI-ARIA
Real JavaScript Ninjas should know how to role with WAI-ARIAReal JavaScript Ninjas should know how to role with WAI-ARIA
Real JavaScript Ninjas should know how to role with WAI-ARIADylan Barrell
 
Aria a11ycamp-bay-2015
Aria a11ycamp-bay-2015Aria a11ycamp-bay-2015
Aria a11ycamp-bay-2015Dylan Barrell
 
NinjaScript and Mizugumo 2011-02-05
NinjaScript and Mizugumo 2011-02-05NinjaScript and Mizugumo 2011-02-05
NinjaScript and Mizugumo 2011-02-05lrdesign
 
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
 
ARIA and JavaScript Accessibility
ARIA and JavaScript AccessibilityARIA and JavaScript Accessibility
ARIA and JavaScript AccessibilityPaul Bohman
 
Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @...
Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @...Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @...
Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @...Raj Lal
 
Dynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIADynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIAAccess iQ
 
Software Development: Beyond Training wheels
Software Development: Beyond Training wheelsSoftware Development: Beyond Training wheels
Software Development: Beyond Training wheelsNaveenkumar Muguda
 
Rich Internet Applications - How to Make them Accessible
Rich Internet Applications - How to Make them AccessibleRich Internet Applications - How to Make them Accessible
Rich Internet Applications - How to Make them AccessibleDylan Barrell
 
NinjaScript 2010-10-14
NinjaScript 2010-10-14NinjaScript 2010-10-14
NinjaScript 2010-10-14lrdesign
 

Similar to aria_with_kissy (20)

Developing an Accessible Web
Developing an Accessible WebDeveloping an Accessible Web
Developing an Accessible Web
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuery
 
The Recipe for Making Accessible Widgets!
The Recipe for Making Accessible Widgets!The Recipe for Making Accessible Widgets!
The Recipe for Making Accessible Widgets!
 
ARIA Gone Wild
ARIA Gone WildARIA Gone Wild
ARIA Gone Wild
 
Accessible UIs with jQuery and Infusion
Accessible UIs with jQuery and InfusionAccessible UIs with jQuery and Infusion
Accessible UIs with jQuery and Infusion
 
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
Accessibility of HTML5 and Rich Internet Applications - CSUN 2012
 
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
 
An Introduction to WAI-ARIA
An Introduction to WAI-ARIAAn Introduction to WAI-ARIA
An Introduction to WAI-ARIA
 
Real JavaScript Ninjas should know how to role with WAI-ARIA
Real JavaScript Ninjas should know how to role with WAI-ARIAReal JavaScript Ninjas should know how to role with WAI-ARIA
Real JavaScript Ninjas should know how to role with WAI-ARIA
 
Aria a11ycamp-bay-2015
Aria a11ycamp-bay-2015Aria a11ycamp-bay-2015
Aria a11ycamp-bay-2015
 
NinjaScript and Mizugumo 2011-02-05
NinjaScript and Mizugumo 2011-02-05NinjaScript and Mizugumo 2011-02-05
NinjaScript and Mizugumo 2011-02-05
 
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
 
ARIA and JavaScript Accessibility
ARIA and JavaScript AccessibilityARIA and JavaScript Accessibility
ARIA and JavaScript Accessibility
 
Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @...
Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @...Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @...
Accessibility on Windows Phone - Windows Phone Meetup at Nokia - 16 October @...
 
Dynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIADynamic and accessible web content with WAI-ARIA
Dynamic and accessible web content with WAI-ARIA
 
Software Development: Beyond Training wheels
Software Development: Beyond Training wheelsSoftware Development: Beyond Training wheels
Software Development: Beyond Training wheels
 
Rich Internet Applications - How to Make them Accessible
Rich Internet Applications - How to Make them AccessibleRich Internet Applications - How to Make them Accessible
Rich Internet Applications - How to Make them Accessible
 
NinjaScript 2010-10-14
NinjaScript 2010-10-14NinjaScript 2010-10-14
NinjaScript 2010-10-14
 

More from yiming he

kissy at alibaba
kissy at alibabakissy at alibaba
kissy at alibabayiming he
 
kissy modularization part2
kissy modularization part2kissy modularization part2
kissy modularization part2yiming he
 
kissy modularization part1
kissy modularization part1kissy modularization part1
kissy modularization part1yiming he
 
KISSY @ 2013-2
KISSY @ 2013-2KISSY @ 2013-2
KISSY @ 2013-2yiming he
 
KISSY 1.4.0 released
KISSY 1.4.0 releasedKISSY 1.4.0 released
KISSY 1.4.0 releasedyiming he
 
callSuper in kissy
callSuper in kissycallSuper in kissy
callSuper in kissyyiming he
 
KISSY XTemplate
KISSY XTemplateKISSY XTemplate
KISSY XTemplateyiming he
 
Introduction to kissy for adc 2013
Introduction to kissy for adc 2013Introduction to kissy for adc 2013
Introduction to kissy for adc 2013yiming he
 
Kissy component system
Kissy component systemKissy component system
Kissy component systemyiming he
 
KISSY@2013.05
KISSY@2013.05KISSY@2013.05
KISSY@2013.05yiming he
 
kissy@2013.03
kissy@2013.03 kissy@2013.03
kissy@2013.03 yiming he
 
KISSY 1.3-released
KISSY 1.3-releasedKISSY 1.3-released
KISSY 1.3-releasedyiming he
 
Simple kissy1.3
Simple kissy1.3Simple kissy1.3
Simple kissy1.3yiming he
 
Kissy in-progress
Kissy in-progressKissy in-progress
Kissy in-progressyiming he
 
Kissy dpl-practice
Kissy dpl-practiceKissy dpl-practice
Kissy dpl-practiceyiming he
 
编辑器设计2
编辑器设计2编辑器设计2
编辑器设计2yiming he
 
KISSY Editor Design 2
KISSY Editor Design 2KISSY Editor Design 2
KISSY Editor Design 2yiming he
 
KISSY Component API Design
KISSY Component API DesignKISSY Component API Design
KISSY Component API Designyiming he
 

More from yiming he (20)

kissy at alibaba
kissy at alibabakissy at alibaba
kissy at alibaba
 
kissy modularization part2
kissy modularization part2kissy modularization part2
kissy modularization part2
 
kissy modularization part1
kissy modularization part1kissy modularization part1
kissy modularization part1
 
KISSY @ 2013-2
KISSY @ 2013-2KISSY @ 2013-2
KISSY @ 2013-2
 
KISSY 1.4.0 released
KISSY 1.4.0 releasedKISSY 1.4.0 released
KISSY 1.4.0 released
 
callSuper in kissy
callSuper in kissycallSuper in kissy
callSuper in kissy
 
KISSY XTemplate
KISSY XTemplateKISSY XTemplate
KISSY XTemplate
 
Introduction to kissy for adc 2013
Introduction to kissy for adc 2013Introduction to kissy for adc 2013
Introduction to kissy for adc 2013
 
Kissy component system
Kissy component systemKissy component system
Kissy component system
 
KISSY@2013.05
KISSY@2013.05KISSY@2013.05
KISSY@2013.05
 
kissy@2013.03
kissy@2013.03 kissy@2013.03
kissy@2013.03
 
kissy@2013
kissy@2013kissy@2013
kissy@2013
 
KISSY 1.3-released
KISSY 1.3-releasedKISSY 1.3-released
KISSY 1.3-released
 
Simple kissy1.3
Simple kissy1.3Simple kissy1.3
Simple kissy1.3
 
Hujs 总结
Hujs 总结Hujs 总结
Hujs 总结
 
Kissy in-progress
Kissy in-progressKissy in-progress
Kissy in-progress
 
Kissy dpl-practice
Kissy dpl-practiceKissy dpl-practice
Kissy dpl-practice
 
编辑器设计2
编辑器设计2编辑器设计2
编辑器设计2
 
KISSY Editor Design 2
KISSY Editor Design 2KISSY Editor Design 2
KISSY Editor Design 2
 
KISSY Component API Design
KISSY Component API DesignKISSY Component API Design
KISSY Component API Design
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

aria_with_kissy

  • 1. ARIA with KISSY 承玉 yiminghe@gmail.com Draft 26 May 2011
  • 2. • WAI ARIA Introduction • ARIA Essentials • ARIA with KISSY
  • 3. • WAI ARIA Introduction
  • 4. WAI ARIA Intro • W • A • I • A • R • I • A
  • 5. WAI ARIA Intro • Web • Accessibility • Initiative • Accessible • Rich • Internet • Application
  • 6. Problem • Web >= 2.0 is fancy !
  • 7. What can we do for the disabled especially blind men ?
  • 8. MS already does • MSAA : Microsoft Active Accessibility
  • 9. Mac also does • Accessibility Programming Guidelines for Cocoa
  • 10. ARIA comes for web • Map ARIA attributes to MSAA properties. • Now in draft , but de facto standard , largely supported
  • 11. How • Semantic tag with meaning content html • But not enough for complex app
  • 12. How • Enhance usability for common people css html • But not so useful for disabled
  • 13. How • Fancy thing comes javascript css html • But it does not tell disabled
  • 14. How • Aria for rescue ARIA javascript css html • More semantics by providing attribute to bridge the gap between App and AT.
  • 16. ARIA essentials • Role : type of ui component ,add semantics • State/Property : decribe about specific role’s attribute • Tabindex : focus management , control user’s navigation • Keydown/press : event needed to be listened for activate actions
  • 17. Role category • Document structure • Landmarks • Widget role
  • 18. Document structure Roles • Organize content in a page ,not usually interactive. Similar to html5 tags . • Contains : article columnheader definition directory document group heading img list listitem math note presentation region row rowheader separator toolbar
  • 19. • Document structure roles in taobao role=‘listitem’ Role=‘list’
  • 20. Live region • Managing content and presentation changes • Relation: – aria-controls • Properties – aria-live aria-busy aria-atomic aria-relevent • Special live region – alert status timer marquee log
  • 21. In taobao • word count notification aria-controls=‘counter’ id=‘counter’ aria-live=‘polite’
  • 22. Landmark roles • Navigational regions , need AT’s navigation function. • Contains : application banner complementary contentinfo form main navigation search
  • 24. Landmark in taobao role=‘contentinfo’
  • 25. Widget roles • Type of a standalone widget or ui control like on desktop. • Contains : alert button dialog gridcell marquee menuitem menuitemcheckbox menuitemradio option progressbar scrollbar slider spinbutton tab tabpanel timer tooltip treeitem combobox grid listbox menu menubar radiogroup tablist tree …
  • 26. Widget roles in taobao
  • 27. Role and keydown • hint: – Keydown on Roles other an ‘application’ or widget role will be intercepted by AT. – Keydown event fired on element with widget role should call stopPropagation and preventDefault in order to let web application to handle it.
  • 28. States/property • Belongs to specific roles ,name starts with “aria-” • For example : aria-label aria-labelledby aria-live aria-hidden aria-activedescendant aria-haspopup aria-controls …
  • 29. In taobao Now : aria-label aria-haspopup @ etao Lack : aria-activedescendant aria-hidden aria-activedescendant aria-hidden
  • 30. tabindex • Manage focus among dom node Attribute Tabindex Focusable with mouse or Tab Navigation JavaScript via element.focus() not present Follows default behavior of Follows default behavior of element (only form controls element and anchors can receive focus.) zero - tabindex="0" yes In tab order relative to element's position in document Positive - tabindex="X" yes Tabindex value directly (where X is a positive integer specifies where this element between 1 and 32768) is positioned in the tab order. Negative - tabindex="-1" yes No, author must focus it with element.focus() as a result of arrow or other key press
  • 31. • Aria with KISSY
  • 32. overview • KISSY.Overlay • KISSY.MenuButton • KISSY.Tabs • KISSY.Carousel • …..
  • 34. KISSY.MenuButton • role = ‘button’ • aria-haspopup aria-expanded • aria-pressed aria-disabled • aria-activedescendant • aria-labelledby
  • 35. KISSY.Menu • role = ‘menu’ / ‘menuitem’ • aria-haspopup • aria-activedescendant • aria-disabled aria-pressed
  • 36. Tabs Transform • Aria in KISSY.Tabs
  • 37. KISSY.Tabs practice • 1. Pick role – Role=‘tablist’ – Role=‘tab’ – Role=‘tabpanel’
  • 38. • 2. set state/property and tabindex – Tabpanel • aria-hidden • aria-labelledby – Tab • tabindex , current active = 0 , others = -1 •
  • 39. • 3.establish keyboard navigation – Keyboard accessible tab by listening keydown/press
  • 40. • 4.sync states with widget logic 5.tabindex and focus management – AOP Event-Driven
  • 42. tools • Ie8,9 : http://windows.microsoft.com/en- US/internet-explorer/products/ie/home • Firefox : http://www.mozilla.com/ • Chrome : http://www.google.com/chrome/ • 争渡读屏 : http://www.zdsr.net/ • Nvda screen render : http://www.nvda-project.org/ • firefox accessibility extension : http://firefox.cita.uiuc.edu/ • WAVE : http://wave.webaim.org/
  • 43. Refer • WAI-ARIA - w3.org/TR/wai-aria • Overview - w3.org/WAI/intro/aria • ARIA Primer - www.w3.org/TR/waiaria-primer/ • ARIA Best Practices - www.w3.org/TR/wai-aria- practices/ • Gez Lemon's tutorial - dev.opera.com/articles/view/introduction-to-wai- aria/ • Codetalks - http://wiki.codetalks.org
  • 44. refer • Mozilla - http://developer.mozilla.org/en/docs/Accessible_DH TML • UIUC tests - http://test.cita.uiuc.edu/aria • Live regions - http://accessibleajax.clcworld.net • A List Apart - http://alistapart.com/articles/waiaria • IBM - http://www.csun.edu/cod/conf/2005/proceedings/25 24.htm • Webaim - http://webaim.org/