SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
ARIA with TaoBao




                 承玉@淘宝
        yiminghe@gmail.com
起于”投诉”
• 发布页面编辑器更新,控制了焦点
• 1. WCAG

• 2.语音验证码研究

• 3.无障碍实验室

• 4.社会责任部的关注
• WAI ARIA 简介

• ARIA 基础

• ARIA 淘宝实践
问题
问题
盲人需要 AT (可访问性工具)
问题
• 但更需要的是”盲道”
现实
• 你的网站 ”提供” 了么?
• WAI ARIA 简介
WAI ARIA 简介
• W
• A
• I

•   A
•   R
•   I
•   A
WAI ARIA 简介
• Web
• Accessibility
• Initiative

•   Accessible
•   Rich
•   Internet
•   Application
How
• ARIA : web app 与 AT(可访问性工具) 的桥梁.

             ARIA

           javascript

              css

             html
• ARIA 基础
ARIA 基础
• Role : 描述区域作用或组件类型。侧重语义
  信息.

• State/property : 描述状态与属性.

• keydown + tabIndex
role
State/property
国外
国外
ARIA with TaoBao


• 首页实践
路标角色
吊顶 ARIA



aria-haspopup   aria-label   role=‘menu’   aria-hidden=‘false’

1.   Tab 到顶部导航链接
2.   在链接上键盘右键弹出当前链接子菜单
3.   Tab 继续在当前子菜单导航
4.   Esc 关闭子菜单回到当前链接
Search tab ARIA
右侧区域 ARIA
demo
• http://www.flickr.com/photos/yiminghe/5949
  241487/in/set-72157627232043654/
• KISSY 的一些尝试
组件级别
• KISSY.Overlay

• KISSY.MenuButton

• KISSY.Tabs

• KISSY.Carousel
• …..
KISSY.Overlay
• role=‘dialog’

• aria-labelledby

• aria-hidden

• 捕获焦点
demo
• http://www.flickr.com/photos/yiminghe/5949
  799426/in/set-72157627232043654/
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
demo
• http://www.flickr.com/photos/yiminghe/5949
  800438/in/set-72157627232043654/
基础架构
• MVC 分层 : ARIA -> View

                           Controller
                     1
                         -model : Model
                         -view : View
                         +onClick()        1
                         +onKeydown()



                                                1
         1
                                                    View
             Model                        -el
       -data                              +onClick()
       +getValue()                        -updateHtml()
       +setValue()                        -updateClass()
                                          -updateAria()
Tabs Transform
• ARIA in KISSY.Tabs
KISSY.Tabs practice
• 1. 挑选合适的角色
 – Role=‘tablist’
 – Role=‘tab’
 – Role=‘tabpanel’
• 2. 设置 aria 状态(属性)的初始值
 – Tabpanel
   • aria-hidden
   • aria-labelledby
 – Tab
   • tabindex , current active = 0 , others = -1
• 3. 绑定键盘事件,转移
逻辑状态.
 – keydown / keypress
• 4. 同组件逻辑状态
与 aria 状态(属性)
并设置焦点.
 – AOP Event-Driven
ARIA问题
• 兼容性问题:读屏器*浏览器



• ARIA 组件交互规范数量不足
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/2
  524.htm
• Webaim - http://webaim.org/
Thanks to WAI
But

Weitere ähnliche Inhalte

Ähnlich wie ARIA in taobao

Drupal7第三堂
Drupal7第三堂Drupal7第三堂
Drupal7第三堂Hen Chen
 
MariaDB: 新兴的开源大数据引擎
MariaDB: 新兴的开源大数据引擎MariaDB: 新兴的开源大数据引擎
MariaDB: 新兴的开源大数据引擎Colin Charles
 
Introduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 FeaturesIntroduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 FeaturesJeff Chu
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
使用 Sierra API, DNA 初探
使用 Sierra API, DNA 初探使用 Sierra API, DNA 初探
使用 Sierra API, DNA 初探twtw
 
咩星征服計劃 用 Js 征服地球 Part II
咩星征服計劃 用 Js 征服地球 Part II咩星征服計劃 用 Js 征服地球 Part II
咩星征服計劃 用 Js 征服地球 Part II羊 小咩 (lamb-mei)
 
Axure RP Prototyping Tool
Axure RP Prototyping ToolAxure RP Prototyping Tool
Axure RP Prototyping ToolSouyi Yang
 
20120516 axure rp prototype design outline
20120516 axure rp prototype design outline20120516 axure rp prototype design outline
20120516 axure rp prototype design outlineturtleknight
 
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器Chieh Kai Yang
 
Php study.20130110
Php study.20130110Php study.20130110
Php study.20130110bngoogle
 
Axure功能培训
Axure功能培训Axure功能培训
Axure功能培训rosa qin
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎Shengyou Fan
 
小米Hadoop&hbase微实践
小米Hadoop&hbase微实践小米Hadoop&hbase微实践
小米Hadoop&hbase微实践Liang Xie
 
Note app功能介紹
Note app功能介紹Note app功能介紹
Note app功能介紹Json Liang
 

Ähnlich wie ARIA in taobao (19)

Drupal7第三堂
Drupal7第三堂Drupal7第三堂
Drupal7第三堂
 
MariaDB: 新兴的开源大数据引擎
MariaDB: 新兴的开源大数据引擎MariaDB: 新兴的开源大数据引擎
MariaDB: 新兴的开源大数据引擎
 
Introduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 FeaturesIntroduction to ASP.NET MVC and MVC 5 Features
Introduction to ASP.NET MVC and MVC 5 Features
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
使用 Sierra API, DNA 初探
使用 Sierra API, DNA 初探使用 Sierra API, DNA 初探
使用 Sierra API, DNA 初探
 
咩星征服計劃 用 Js 征服地球 Part II
咩星征服計劃 用 Js 征服地球 Part II咩星征服計劃 用 Js 征服地球 Part II
咩星征服計劃 用 Js 征服地球 Part II
 
Axure RP Prototyping Tool
Axure RP Prototyping ToolAxure RP Prototyping Tool
Axure RP Prototyping Tool
 
20120516 axure rp prototype design outline
20120516 axure rp prototype design outline20120516 axure rp prototype design outline
20120516 axure rp prototype design outline
 
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器
 
Eloquent ORM
Eloquent ORMEloquent ORM
Eloquent ORM
 
Php study.20130110
Php study.20130110Php study.20130110
Php study.20130110
 
kissy@2013
kissy@2013kissy@2013
kissy@2013
 
Axure功能培训
Axure功能培训Axure功能培训
Axure功能培训
 
無障礙網頁
無障礙網頁無障礙網頁
無障礙網頁
 
Eloquent ORM
Eloquent ORMEloquent ORM
Eloquent ORM
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 
小米Hadoop&hbase微实践
小米Hadoop&hbase微实践小米Hadoop&hbase微实践
小米Hadoop&hbase微实践
 
Note app功能介紹
Note app功能介紹Note app功能介紹
Note app功能介紹
 

Mehr von yiming he

kissy 1.5 progress
kissy 1.5 progresskissy 1.5 progress
kissy 1.5 progressyiming 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
 

Mehr von yiming he (20)

kissy 1.5 progress
kissy 1.5 progresskissy 1.5 progress
kissy 1.5 progress
 
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 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
 

ARIA in taobao