WAI-ARIA无障碍网页资料

一、ARIA是啥?

WAI-ARIA指无障碍网页应用。主要针对的是视觉缺陷,失聪,行动不便的残疾人以及假装残疾的测试人员。尤其像盲人,眼睛看不到,其浏览网页则需要借助辅助设备,如屏幕阅读器,屏幕阅读机可以大声朗读或者输出盲文。而ARIA就是可以让屏幕阅读器准确识别网页中的内容,变化,状态的技术规范,可以让盲人这类用户也能无障碍阅读!

虽然HTML5的出现大大增强了网页的可访问性和无障碍阅读,但是,其不是万能的,例如无法让盲人知道模拟控件的类型等。所以ARIA才显得更加重要。

其次,ARIA规范一直在更新维护,浏览器方面IE8+以及其他所有现代浏览器都都已支持ARIA, 几乎可以说是全方位支持。流行的JavaScript库jQuery, 以及衍生的jQuery Mobile早已支持了ARIA,国内知名JavaScript库kissy也在11年支持了ARIA并在实际项目中使用了。

二、实际应用的例子

本例来自淘宝首页,示例对象见下截图(淘宝网右上角选项卡):

大家主要到这个部分的地方,F12开启开发人员模式,可以发现,后台有一行代码,如下:

这个就是ARIA在现实应用的例子。

三、属性

以下是整理后的:ARIA属性值表、ARIA属性表、ARIA状态属性表

(1)、  ARIA属性表:

                                                                                                        ARIA Roles值示意及说明表

role属性值 含义 HTML示意 说明
alert 警告

1 <p id="ajax_error_alert" role="alert"></p>

alert 例子代码

例如ajax操作返回错误信息的div标签。
alertdialog 表示警告弹出框

1 <div aria-labelledby="alert_title" aria-hidden="false" tabindex="0"  role="alertdialog" id="alert1">
2     <p id="alert_title">弹出框</p>
3     <p id="alert_message">哥,你输入的时间穿越了,请重新输入!</p>
4     <input type="button" value="关闭" id="alert_close" />
5 </div>

alertdialog例子代码

 application  表示应用

1 <div id="application" role="application">
2     <label id="date_label" for="date">时间</label>:
3     <input id="date" type="text"/>
4     <button id="bn_date">选择日期...</button>
5     <div id="dp1" class="datepicker" aria-hidden="true">
6         <-- 时间选择控件具体 -->
7     </div>
8 </div>

application例子代码

 例如自定义的时间选择器。
button 表示按钮

1 <div role="toolbar" tabindex="0" aria-activedescendant="button1">
2   <img src="btncut.png" id="button1" role="button" alt="cut" />
3   <img src="btncopy.png" id="button2" role="button" alt="copy" />
4   <img src="btnpaste.png" id="button3" role="button" alt="paste" />
5 </div>

button例子代码

就是一个button
checkbox 表示复选框

1 <ul role="group">
2   <li role="checkbox" aria-checked="mixed" tabindex="0">所有姑娘</li>
3       <li role="checkbox" aria-checked="false" tabindex="0">晴川</li>
4       <li role="checkbox" aria-checked="true" tabindex="0">静秋</li>
5       <li role="checkbox" aria-checked="true" tabindex="0">黄小仙</li>
6 </ul>

 combobox  表示下拉列表框

1 <input id="cb1-edit" class="cb_edit" type="text" tabindex="0"
2       role="combobox" aria-autocomplete="inline" aria-owns="cb1-list" />
3
4 <ul id="cb1-list" tabindex="-1" role="listbox" aria-expanded="true">
5     <li id="cb1-opt1" role="option">晴川</li>
6     <li id="cb1-opt2" role="option">静秋</li>
7     <li id="cb1-opt3" role="option">黄小仙</li>
8 </ul>

 

grid 表示网格

 1 <table id="grid1" role="grid" aria-labelledby="grid1_label" aria-readonly="true">
 2   <caption id="grid1_label">美女们</caption>
 3   <thead>
 4     <tr>
 5       <th id="grid1_q" tabindex="-1">晴川</th>
 6       <th id="grid1_j" tabindex="-1">静秋</th>
 7       <th id="grid1_h" tabindex="-1">黄小仙</th>
 8     </tr>
 9   </thead>
10   <tbody id="data"></tbody>
11 </table>

 gridcell  表示网格单元

1 <table role="grid" aria-readonly="true">
2   <tr role="row" aria-selected="false">
3     <td role="gridcell" tabindex="-1">晴川</td>
4     <td role="gridcell" tabindex="-1">静秋</td>
5     <td role="gridcell" tabindex="-1">黄小仙</td>
6   </tr>
7 </table>

 类似于table & table-cell
group 表示组合并

1 <ul role="group">
2   <li role="checkbox" aria-checked="mixed" tabindex="0">所有姑娘</li>
3       <li role="checkbox" aria-checked="false" tabindex="0">晴川</li>
4       <li role="checkbox" aria-checked="true" tabindex="0">静秋</li>
5       <li role="checkbox" aria-checked="true" tabindex="0">黄小仙</li>
6 </ul>

 heading  表示应用程序标题头

1 <div role="heading" aria-live="assertive" aria-atomic="true">2012年 3月</div>

 

 listbox  表示列表框

1 <input id="cb1-edit" class="cb_edit" type="text" tabindex="0"
2       role="combobox" aria-autocomplete="inline" aria-owns="cb1-list" />
3
4 <ul id="cb1-list" tabindex="-1" role="listbox" aria-expanded="true">
5     <li id="cb1-opt1" role="option">晴川</li>
6     <li id="cb1-opt2" role="option">静秋</li>
7     <li id="cb1-opt3" role="option">黄小仙</li>
8 </ul>

 

log 表示日志记录

1 <div role="log" aria-atomic="false" aria-relevant="additions"></div>

类似三国杀右侧记录战事区域;或是比赛文字直播记录区域
menu 表示菜单

 1 <ul role="menubar" title="美女菜单">
 2   <li role="menuitem" tabindex="0" aria-haspopup="true">美女
 3     <ul role="menu" aria-hidden="true">
 4       <li role="menuitemradio" tabindex="-1" aria-checked="true">晴川</li>
 5       <li role="menuitemradio" tabindex="-1" aria-checked="false">静秋</li>
 6       <li role="menuitemradio" tabindex="-1" aria-checked="false">黄小仙</li>
 7     </ul>
 8   </li>
 9   <li role="menuitem" tabindex="-1" aria-haspopup="false">靓女</li>
10   <li role="menuitem" tabindex="-1" aria-haspopup="false">淑女</li>
11   <li role="menuitem" tabindex="-1" aria-haspopup="false">熟女</li>
12 </ul>

 

 menubar  表示菜单栏

 1 <ul role="menubar" title="美女菜单">
 2   <li role="menuitem" tabindex="0" aria-haspopup="true">美女
 3     <ul role="menu" aria-hidden="true">
 4       <li role="menuitemradio" tabindex="-1" aria-checked="true">晴川</li>
 5       <li role="menuitemradio" tabindex="-1" aria-checked="false">静秋</li>
 6       <li role="menuitemradio" tabindex="-1" aria-checked="false">黄小仙</li>
 7     </ul>
 8   </li>
 9   <li role="menuitem" tabindex="-1" aria-haspopup="false">靓女</li>
10   <li role="menuitem" tabindex="-1" aria-haspopup="false">淑女</li>
11   <li role="menuitem" tabindex="-1" aria-haspopup="false">熟女</li>
12 </ul>

 

 menuitem  表示菜单项

 1 <ul role="menubar" title="美女菜单">
 2   <li role="menuitem" tabindex="0" aria-haspopup="true">美女
 3     <ul role="menu" aria-hidden="true">
 4       <li role="menuitemradio" tabindex="-1" aria-checked="true">晴川</li>
 5       <li role="menuitemradio" tabindex="-1" aria-checked="false">静秋</li>
 6       <li role="menuitemradio" tabindex="-1" aria-checked="false">黄小仙</li>
 7     </ul>
 8   </li>
 9   <li role="menuitem" tabindex="-1" aria-haspopup="false">靓女</li>
10   <li role="menuitem" tabindex="-1" aria-haspopup="false">淑女</li>
11   <li role="menuitem" tabindex="-1" aria-haspopup="false">熟女</li>
12 </ul>

 

menuitemcheckbox 表示可复选的菜单项

 1 <ul role="menubar" title="美女菜单">
 2   <li role="menuitem" tabindex="0" aria-haspopup="true">美女
 3     <ul role="menu" aria-hidden="true">
 4       <li role="menuitemcheckbox" tabindex="-1" aria-checked="true">晴川</li>
 5       <li role="menuitemcheckbox" tabindex="-1" aria-checked="true">静秋</li>
 6       <li role="menuitemcheckbox" tabindex="-1" aria-checked="false">黄小仙</li>
 7     </ul>
 8   </li>
 9   <li role="menuitem" tabindex="-1" aria-haspopup="false">靓女</li>
10   <li role="menuitem" tabindex="-1" aria-haspopup="false">淑女</li>
11   <li role="menuitem" tabindex="-1" aria-haspopup="false">熟女</li>
12 </ul>

 menuitemradio  表示只能单选的菜单项

 1 <ul role="menubar" title="美女菜单">
 2   <li role="menuitem" tabindex="0" aria-haspopup="true">美女
 3     <ul role="menu" aria-hidden="true">
 4       <li role="menuitemradio" tabindex="-1" aria-checked="true">晴川</li>
 5       <li role="menuitemradio" tabindex="-1" aria-checked="false">静秋</li>
 6       <li role="menuitemradio" tabindex="-1" aria-checked="false">黄小仙</li>
 7     </ul>
 8   </li>
 9   <li role="menuitem" tabindex="-1" aria-haspopup="false">靓女</li>
10   <li role="menuitem" tabindex="-1" aria-haspopup="false">淑女</li>
11   <li role="menuitem" tabindex="-1" aria-haspopup="false">熟女</li>
12 </ul>

 

option 表示选项

1 <input id="cb1-edit" class="cb_edit" type="text" tabindex="0"
2       role="combobox" aria-autocomplete="inline" aria-owns="cb1-list" />
3
4 <ul id="cb1-list" tabindex="-1" role="listbox" aria-expanded="true">
5     <li role="option">晴川</li>
6     <li role="option">静秋</li>
7     <li role="option">黄小仙</li>
8 </ul>

 presentation  表示称述

1 <div class="slider">
2     <img aria-valuenow="45" aria-valuemax="100" aria-valuemin="0"
3         role="slider" src="slider_control.png" />
4     <div role="presentation" tabindex="0">45</div>
5 </div>

 

 progressbar  表示进度条

1 <div class="progress" role="progressbar"
2     aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" tabindex="0">
3     <div class="progressIndicator" style="width: 23.3333%;"></div>
4     <div class="progressVal" aria-hidden="false">23%</div>
5 </div>

 

radio 表示单选

 1 <h3 id="girl_label">美女们:</h3>
 2 <ul role="radiogroup" aria-labelledby="girl_label">
 3     <li tabindex="-1" role="radio" aria-checked="false">
 4         <img role="presentation" src="radio-unchecked.gif" /> 晴川
 5     </li>
 6     <li tabindex="0" role="radio" aria-checked="true">
 7         <img role="presentation" src="radio-checked.gif" /> 静秋
 8     </li>
 9     <li tabindex="-1" role="radio" aria-checked="false">
10         <img role="presentation" src="radio-unchecked.gif" /> 黄小仙
11     </li>
12 </ul>

 radiogroup  表示单选组

1 nchecked.gif" /> 晴川
2     </li>
3     <li tabindex="0" role="radio" aria-checked="true">
4         <img role="presentation" src="radio-checked.gif" /> 静秋
5     </li>
6     <li tabindex="-1" role="radio" aria-checked="false">
7         <img role="presentation" src="radio-unchecked.gif" /> 黄小仙
8     </li>
9 </ul>

 

 region  表示区域

1 <div role="region" tabindex="-1" aria-expanded="false">
2     我之所以会出现,是因为主人你点击了某个命中注定的按钮。
3 </div>

 

 row  表示行

1 <table role="grid" aria-readonly="true">
2   <tr role="row" aria-selected="false">
3     <td role="gridcell" tabindex="-1">晴川</td>
4     <td role="gridcell" tabindex="-1">静秋</td>
5     <td role="gridcell" tabindex="-1">黄小仙</td>
6   </tr>
7 </table>

 用在表格模拟的行列表上,对应table下面的tr标签。
separator 表示分隔

 1 <ul role="menubar" title="美女菜单">
 2   <li role="menuitem" tabindex="0" aria-haspopup="true">美女
 3     <ul role="menu" aria-hidden="true">
 4       <li role="menuitemradio" tabindex="-1" aria-checked="true">晴川</li>
 5       <li role="separator" tabindex="-1"></li>
 6       <li role="menuitemradio" tabindex="-1" aria-checked="false">静秋</li>
 7       <li role="menuitemradio" tabindex="-1" aria-checked="false">黄小仙</li>
 8     </ul>
 9   </li>
10   <li role="menuitem" tabindex="-1" aria-haspopup="false">靓女</li>
11   <li role="menuitem" tabindex="-1" aria-haspopup="false">淑女</li>
12   <li role="menuitem" tabindex="-1" aria-haspopup="false">熟女</li>
13 </ul>

 slider  表示滑动条

1 <div class="slider">
2     <img aria-valuenow="45" aria-valuemax="100" aria-valuemin="0"
3         role="slider" src="slider_control.png" />
4     <div role="presentation" tabindex="0">45</div>
5 </div>

 

 spinbutton  表示微调

1 <div class="spinbutton" role="spinbutton"
2     aria-valuemin="0" aria-valuemax="100" aria-valuenow="50" tabindex="0">
3 50</div>

 

 tab  表示标签

1 <div class="tabpanel">
2   <ul class="tablist" role="tablist">
3     <li aria-selected="true" role="tab" tabindex="0">美女</li>
4     <li role="tab" aria-selected="false" tabindex="-1">淑女</li>
5     <li role="tab" aria-selected="false" tabindex="-1">熟女</li>
6     <li role="tab" aria-selected="false" tabindex="-1">腐女</li>
7   </ul>
8 </div>

 

 tablist  表示标签列表

1 <div class="tabpanel">
2   <ul class="tablist" role="tablist">
3     <li aria-selected="true" role="tab" tabindex="0">美女</li>
4     <li role="tab" aria-selected="false" tabindex="-1">淑女</li>
5     <li role="tab" aria-selected="false" tabindex="-1">熟女</li>
6     <li role="tab" aria-selected="false" tabindex="-1">腐女</li>
7   </ul>
8 </div>

 

tabpanel 表示标签面板

 1 <div role="tabpanel">
 2   <ul class="tablist" role="tablist"><-- 选项卡 --></ul>
 3   <div id="panel1" aria-labelledby="tab1" role="tabpanel">
 4      <ul class="controlList">
 5         <li><input id="girl1" type="radio" name="girl" value="q" />
 6             <label for="girl1">晴川</label></li>
 7         <li><input id="girl2" type="radio" name="girl" value="j" checked />
 8             <label for="girl2">静秋</label></li>
 9         <li><input id="girl3" type="radio" name="girl" value="h" />
10             <label for="girl3">黄小仙</label></li>
11     </ul>
12   </div>
13   <div id="panel2" aria-labelledby="tab2" role="tabpanel"></div>
14   <div id="panel3" aria-labelledby="tab3" role="tabpanel"></div>
15   <div id="panel4" aria-labelledby="tab4" role="tabpanel"></div>
16 </div>

 timer  表示计数

1 <div role="timer" aria-atomic="true" aria-relevant="all">0</div>

 模拟计数器,使用在动态显示规律数值变化的地方
 toolbar  表示工具栏

1 <div role="toolbar" tabindex="0" aria-activedescendant="button1">
2   <img src="btncut.png" id="button1" role="button" alt="cut" />
3   <img src="btncopy.png" id="button2" role="button" alt="copy" />
4   <img src="btnpaste.png" id="button3" role="button" alt="paste" />
5 </div>

 左边HTML表示一个剪切,复制,粘贴三功能在一起的工具栏。
 tooltip  表示提示文本

1 <div class="text">
2    <label id="name_label" for="name">姓名:</label>
3    <input type="text" id="name" name="name" aria-labelledby="name_label"
4        aria-describedby="tip" aria-required="false" />
5    <div id="tip" role="tooltip" aria-hidden="true">必须是美女姓名哦~~</div>
6 </div>

 

tree 表示树形

 1 <ul role="tree">
 2    <li aria-expanded="true" tabindex="-1" role="treeitem">
 3       <img alt="展开" src="expanded.gif" />美女
 4       <ul role="group"></ul>
 5    </li>
 6    <li aria-expanded="false" tabindex="0" role="treeitem">
 7       <img alt="收起" src="contracted.gif" />淑女
 8       <ul role="group"></ul>
 9    </li>
10 </ul>

效果见下面treeitem中的图。
treeitem 表示树结构选项

 1 <ul role="tree">
 2    <li aria-expanded="true" tabindex="-1" role="treeitem">
 3       <img alt="展开" src="expanded.gif" />美女
 4       <ul role="group">
 5          <li tabindex="-1" role="treeitem">晴川</li>
 6          <li tabindex="-1" role="treeitem">静秋</li>
 7          <li tabindex="-1" role="treeitem">黄小仙</li>
 8       </ul>
 9    </li>
10    <li aria-expanded="false" tabindex="0" role="treeitem">
11       <img alt="收起" src="contracted.gif" />淑女
12       <ul role="group"></ul>
13    </li>
14 </ul>

(2)、  ARIA属性值:

                                                                                                        ARIA  属性值示意及说明表

属性名 属性值 HTML代码示例 说明
 aria-activedescendant  字符串。表示后代元素的id值。

1 <div role="toolbar" tabindex="0" aria-activedescendant="button1">
2   <img src="btncut.png" id="button1" role="button" alt="cut" />
3   <img src="btncopy.png" id="button2" role="button" alt="copy" />
4   <img src="btnpaste.png" id="button3" role="button" alt="paste" />
5 </div>


aria-activedescendant 属性定义了当

工具栏获取焦点时,哪一个工具栏的子控

件获取了焦点。在此HTML示例中,工具

栏的第一个控件(拥有id“button1″)是

能获取焦点的子控件。

 aria-atomic
字符串。表示区域内容是否完整

播报。值可以为truefalse。当

true时,表示辅助设备需要把

整个区域内容都通报给使用者;

如果为false则表示只需要通报

修改的部分。

1 <div role="heading" aria-live="assertive" aria-atomic="true">2012年 3月</div>


还是这个时间选择器年月标题的例子。这

里的aria-atomictrue则表示当时间改变

的时候,这里的年月日期要完整播放,不

要只改了月份就只报月份内容。

 aria-autocomplete
字符串。表示用户的文本框的

自动提示是否提供。可选值有:

inlinelistbothnone.

1 <input id="cb1-edit" class="cb_edit" type="text" tabindex="0"
2       role="combobox" aria-autocomplete="inline" aria-owns="list" />
3
4 <ul id="list" tabindex="-1" role="listbox" aria-expanded="true">
5     <li id="cb1-opt1" role="option">晴川</li>
6     <li id="cb1-opt2" role="option">静秋</li>
7     <li id="cb1-opt3" role="option">黄小仙</li>
8 </ul>


目前,该属性对于inlinelist两个值

的含义暂不清楚。不过可以确定的是该

属性对应HTML5中autocomplete属性。

需要注意的是,如果aria-autocomplete

="list"aria-autocomplete="inline"

aria-autocomplete="both"被设置在

支持autocomplete的元素上,则

autocomplete的属性值需要设成

"on", 如果是aria-autocomplete

="none",则需要设成"off"

aria-busy
字符串。表当前区域的忙碌状

态。默认为false, 表清除busy

状态;可选为true, 表该区域

正在加载;或为error, 表示该

区域验证无效。


1 <ul aria-atomic="true" aria-busy="true" aria-live="polite">


如果某个区域内(如这里ul)有多个地

方需要修改,需要全部修改完毕再通

知使用者的话,就可以先将aria-busy

设为true, 等到全部内容更新完毕后

再设成false. 该属性可以避免辅助

工具在区域内容更新完毕前不断即

时提醒使用者。

aria-controls
字符串。空格分隔的id属性值

列表。


1 <h3 id="tab1" aria-selected="true" aria-controls="panel1"
2     aria-expanded="true" role="tab" tabindex="0">姑娘们</h3>
3
4 <div id="panel1" aria-labelledby="tab1" aria-hidden="false" role="tabpanel">
5     <h3 tabindex="0">请选择你中意的美女……</h3>
6 </div>


该属性定义了元素间不能通过文档

结构决定的关联关系。ariaControls

属性主要被rolegroupregion,

widget的元素使用

aria-describedby
字符串。空格分隔的id属性值

列表。


1 <ul role="group">
2   <li role="checkbox" aria-checked="mixed" tabindex="0">所有姑娘</li>
3       <li role="checkbox" aria-checked="false"
4         aria-describedby="desc1" tabindex="0">晴川</li>
5 </ul>
6 <p id="desc1">杨幂饰演的穿越女王~~</p>


同样的,该属性定义了文档结构表

现不出来的的元素间的相互关联性。

该属性旨在通过标签提供更多用户

可能需要的信息。如果指定了不只

一个id, 所有元素会合并在一起共

同创建一条单独的描述。

aria-dropeffect
字符串。表示拖拽效果。可选

值有:copymovereference,

executepopupnone, 依次表

示:复制,移动,参照,执行

,弹出以及没有效果。

  该属性用在拖拽上。
aria-flowto 字符串。空格分隔的id值们。  
如果该属性值对应的是单独的id,

辅助技术会恢复目标元素的阅读;

如果对应的是多个id, 则辅助技

术会让用户去选择、导航到目标

元素。

aria-grabbed
字符串。拖拽中元素的捕获状

态。可选值有:truefalse,

undefined. 默认为undefined

表示元素捕获状态未知。

true表示元素可以捕获;

false表示不能被捕获。

 
该属性用在拖拽上。类似于

HTML5中的draggable属性。

 aria-haspopup
字符串。true表示点击

的时候会出现菜单或是

浮动元素; false表示

没有pop-up效果。

 1 <ul role="menubar" title="美女菜单">
 2   <li role="menuitem" tabindex="0" aria-haspopup="true">
 3       美女<ul role="menu" aria-hidden="true">
 4       <li role="menuitemradio" tabindex="-1" aria-checked="true">晴川</li>
 5       <li role="menuitemradio" tabindex="-1" aria-checked="false">静秋</li>
 6       <li role="menuitemradio" tabindex="-1" aria-checked="false">黄小仙</li>
 7     </ul>
 8   </li>
 9   <li role="menuitem" tabindex="-1" aria-haspopup="false">靓女</li>
10   <li role="menuitem" tabindex="-1" aria-haspopup="false">淑女</li>
11   <li role="menuitem" tabindex="-1" aria-haspopup="false">熟女</li>
12 </ul>

 

 aria-label  字符串。    定义一个字符串值标记当前元素。
 aria-labelledby  字符串。空格分隔的id

1 <div aria-labelledby="title" role="alertdialog"><h3 id="title">标题</h3></div>


aria-labelledby一般用在区域元素上,

对于的id一般为对应的标题或是标签

元素的id.关系型属性。

aria-level 数值。表示等级。

1 <div aria-level="2">次标题</div>

上面的HTML类似于<h2>次标题</h2>
aria-live
字符串。可选值有:off,

politeassertiverude

默认为off, 表示不宣布更新;

polite表示只有用户闲时宣布;

assertive表示尽快对用户宣布;

rude表示即时提醒用户,必

要的时候甚至中断用户。


1 <div role="heading" aria-live="assertive" aria-atomic="true">2012年 3月</div>


绝大多数的更新应该在用户闲

暇的时候告知,即时提示对用

户是一种干扰。如果希望内容

完全更新后再提示,可以使用

上面提到的aria-busy.

左侧的HTML为时间选择控件

的年月标题部分,aria-live=

"assertive"表示的是当用户

选择了新的时间的时候,尽

快通知用户时间发生了变更。

aria-multiselectable
字符串。表示是否可多选。

默认为false, 表示一次只

能选择一个项。true表示

一次可以选择多个项。

 
例如手风琴展开收起效果,

我们可以使用aria-

multiselectable来告

知辅助设备,一次可以

展开多个项还是只有一个展开。

aria-owns 字符串。值为目标元素id.

1 <input id="cb1-edit" class="cb_edit" type="text" tabindex="0"
2       role="combobox" aria-autocomplete="inline" aria-owns="list" />
3
4 <ul id="list" tabindex="-1" role="listbox" aria-expanded="true">
5     <li id="cb1-opt1" role="option">晴川</li>
6     <li id="cb1-opt2" role="option">静秋</li>
7     <li id="cb1-opt3" role="option">黄小仙</li>
8 </ul>

 aria-posinset  数值。表示当前位置    用在设置和获取一个集合内某项的当前位置
 aria-readonly

字符串。表示是否只读。

默认为false, 表示元素

值可以被修改;true

表示元素指不能被改变。

1 <table id="grid1" role="grid" aria-labelledby="girl_label" aria-readonly="true">
2   <caption id="girl_label">美女们</caption>
3     <tr>
4       <th id="grid1_q" tabindex="-1">晴川</th>
5       <th id="grid1_j" tabindex="-1">静秋</th>
6       <th id="grid1_h" tabindex="-1">黄小仙</th>
7     </tr>
8 </table>

 

 aria-relevant
字符串。表示区域内哪

些操作行为需要做出反应。

可选值有:additions,

removalstextall

可以空格分隔多个一起

显示. additions表示新

增节点的时候做出反应;

removals表示删除节点

时重要操作;text表示

文本改变是值得重视的;

all等同于同时使用上

面三个属性值。

1 <div role="log" aria-atomic="false" aria-relevant="additions"></div>

 左边的HTML表示当日志内容有添加的时候做出反应。
 aria-required
字符串。元素值是否必

需。默认为false, 表示

元素值可以为空;true

表示元素值是必需的。

1 <div class="text">
2    <label id="name_label" for="name">* 姓名:</label>
3    <input type="text" id="name" name="name" aria-labelledby="name_label"
4        aria-describedby="tip" aria-required="true" />
5    <div id="tip" role="tooltip" aria-hidden="true">姓名不能为空</div>
6 </div>

 多半用在表单控件中。对应HTML5中required属性。
aria-secret
字符串。表示机密状态。

  具体含义不详
aria-setsize 数值。设置的尺寸大小值。   顾名思意
aria-sort

字符串。表示表格或格

栅中的项是以升序排列

还是降序排列。可选值:

ascending(↑),

descending(↓), none,

other.

  Widget组件应用属性。
aria-valuemax 数值。表允许的最大值。

1 <div class="slider">
2     <img aria-valuenow="45" aria-valuemax="100" aria-valuemin="0"
3         role="slider" src="slider_control.png" />
4     <div role="presentation" tabindex="0">45</div>
5 </div>


用在范围组件上。对应

于HTML5中的max属性。

aria-valuemin 数值。表示允许的最小值。

1 <div class="slider">
2     <img aria-valuenow="45" aria-valuemax="100" aria-valuemin="0"
3         role="slider" src="slider_control.png" />
4     <div role="presentation" tabindex="0">45</div>
5 </div>


用在范围组件上。对应

于HTML5中的min属性。

aria-valuenow 数值。表示当前值。

1 <div class="slider">
2     <img aria-valuenow="45" aria-valuemax="100" aria-valuemin="0"
3         role="slider" src="slider_control.png" />
4     <div role="presentation" tabindex="0">45</div>
5 </div>


用在范围组件上。对

应于value属性。

aria-valuetext
字符串。定义等同于

aria-valuenow人可读

的文本。

  用在范围组件上。

(3)、  ARIA属性值:

                                                                                                        ARIA  状态值示意及说明表

属性状态 属性值 HTML示意 说明
aria-checked
字符串。表示检查的状态。

true表示元素被选择;

false表示元素未被选择;

mixed表示元素同时有选

择和为选择状态。


1 <ul role="group">
2   <li role="checkbox" aria-checked="mixed" tabindex="0">所有姑娘</li>
3       <li role="checkbox" aria-checked="false" tabindex="0">晴川</li>
4       <li role="checkbox" aria-checked="true" tabindex="0">静秋</li>
5       <li role="checkbox" aria-checked="true" tabindex="0">黄小仙</li>
6 </ul>

该属性用来表明用户是

否选择了某些项(如上边

这个截图所示)。

 aria-disabled
字符串。表禁用状态,

true表示当前是非激活

状态;false表示清除

非激活状态。

1 <div role="button" tabindex="0" title="添加个姑娘" aria-pressed="false"
2   aria-disabled="false">添加</div>


对应单复选框等控件的

disabled属性,一般用在

自定义模拟控件中。

 aria-expanded
字符串。表示展开状态。

默认为undefined, 表示

当前展开状态未知。

其它可选值:true

表示元素是展开的;

false表示元素不是展开的。

 1 <h3 id="tab1" aria-selected="true" aria-controls="panel1"
 2     aria-expanded="true" role="tab" tabindex="0">姑娘们</h3>
 3
 4 <div id="panel1" aria-labelledby="tab1" aria-hidden="false" role="tabpanel">
 5     <h3 tabindex="0">请选择你中意的:</h3>
 6     <ul class="controlList">
 7         <li><input id="p1_1" type="radio" name="girl" value="q" />
 8             <label for="p1_1">晴川</label></li>
 9         <li><input id="p1_2" type="radio" name="girl" value="j" checked />
10             <label for="p1_2">静秋</label></li>
11         <li><input id="p1_3" type="radio" name="girl" value="h" />
12             <label for="p1_3">黄小仙</label></li>
13     </ul>
14 </div>

 

例如在手风琴交互效果中标示展开

与否的状态。该属性对应HTML5

open属性。

aria-hidden
字符串。可选值为true

falsetrue表示元素隐藏

(不可见),false表示元素

可见。


1 <div aria-hidden="false">23%</div>


该属性使用非常普遍。几乎所

有涉及到显示与隐藏这类交互

或没有交互的地方都可以应用

该属性。左边的示例HTML代

码来自进度条进度值显示的

div, 当前aria-hiddenfalse,

表示该进度值是可见的。

aria-invalid
字符串。表示元素值是否

错误的。默认为false,

表示是OK的,如果为true,

则表示值验证不通过。


1 <input type="text" size="3" aria-labelledby="valid" aria-invalid="false" />

 
aria-pressed
字符串。表示按下的状态,

可选值有:truefalse,

mixedundfined.默认为

undfined, 表示按下状态

未知;true表示元素往下

(按钮按下);false

示元素抬起;mixed表示

元素同时有按下和没有

按下的状态。


1 <div role="button" tabindex="0" title="添加个姑娘" aria-pressed="false"
2   aria-disabled="false">添加</div>


左边HTML表示按钮已经按

下,同时处于禁用状态。

aria-selected
字符串。表示选择状态。

可选值有:truefalse,

undefined. 默认为

undefined,表示元素

选择状态未知。true

表示元素已选择;

false表示未被选中。


1 <div class="tabpanel">
2   <ul class="tablist" role="tablist">
3     <li role="tab" aria-selected="true" tabindex="0">美女</li>
4     <li role="tab" aria-selected="false" tabindex="-1">淑女</li>
5     <li role="tab" aria-selected="false" tabindex="-1">熟女</li>
6     <li role="tab" aria-selected="false" tabindex="-1">腐女</li>
7   </ul>
8 </div>

注意:为了跨浏览器兼容,总是使用WAI-ARIA属性解析来访问和修改ARIA属性,例如object.setAttribute("aria-valuenow", newValue).

四、附录

ARIA属性关系图:

时间: 2024-09-29 20:31:25

WAI-ARIA无障碍网页资料的相关文章

译文 对无障碍网页应用(ARIA)的选择

//本文编辑格式为Markdown,译文同时发布在众成翻译 对无障碍网页应用(ARIA)的选择 让网站对每个人都能访问是一件相当艰难的工作,尤其是在我们使用自定义标记解决方案(custom markup solutions)的那些日子.我很高兴#a11y(可访问性的简称)的话题最近获得了越来越多的关注,因为#a11y没有什么好的,但是正如James Williamson今天发布的twitter: 我们对提高可访问性最大的误解是认为那是在帮别人,但是你错了,这是你的职责.(The biggest

无障碍网页设计(WCAG2.0)

无障碍化是指无论健全人还是残疾人,年轻人还是老年人都可以平等地获取互联网上的信息和服务.无障碍化网站建设不单可以增加网站的受益群体,更是一个有情怀.有担当的互联网企业的责任,也是一个互联网从业人员应该关注到的一个方面. 无障碍化受益人群: 普通人 普通网站用户:文化背景和习惯与主流用户不同的用户:老年人或儿童等用户:无障碍化可使得用户更轻松地使用网站服务,降低使用.学习和理解的成本. 视力障碍用户 主要包括盲人.低视力.色盲.色弱等用户.针对这部分用户所做的信息无障碍化是最通用和最具有代表性的,

WAI-ARIA无障碍网页应用属性完全展示

一.你至少应该知道ARIA是什么东西! WAI-ARIA指无障碍网页应用.主要针对的是视觉缺陷,失聪,行动不便的残疾人以及假装残疾的测试人员.尤其像盲人,眼睛看不到,其浏览网页则需要借助辅助设备,如屏幕阅读器,屏幕阅读机可以大声朗读或者输出盲文. 而ARIA就是可以让屏幕阅读器准确识别网页中的内容,变化,状态的技术规范,可以让盲人这类用户也能无障碍阅读! 二.为什么需要ARIA? 回答标题问题前我先问其他几个问题? 如何让盲人用户知道当前浏览区域就是网站主导航? 如果让盲人用户知道点击某个按钮后

无障碍网页应用技术了解

一.概述 引自下百度百科的定义: WAI-ARIA, 是Web Accessibility Initiative - Accessible Rich Internet Applications 的缩写,指无障碍网页应用技术.她主要解决的一个问题:让残障人士能无障碍地访问网页上的动态内容. 概括性的描述下就是 ARIA是W3C的一个独立规范,帮助Web应用程序和Web页面变得更具可访问性 ARIA主要是为了提升网页的可用性,网页对残疾人士的无障碍化 HTML5已经开始使用ARIA,并且W3C发布的

Bootstrap学习遇到的role属性--- 无障碍网页应用属性

以前接触过Bootstrap,但也只是仅仅接触,现在重新学习下,今天看到一个例子中的属性有一个role, 查阅资料发现这个是--WAI-ARIA无障碍设计属性: 通俗说是该设计为了一些盲人,失聪,残疾人士而设计的: 深入了解: http://www.zhangxinxu.com/wordpress/?p=2277 --感慨: 大神整理出来的东西好全..... Ps: https://w3c.github.io/html/ w3c html -->   3.2.7.4. Allowed ARIA

linux网页资料链接

http://lab.xmirror.cn/  玄镜官网 https://blog.csdn.net/zxgmdzz/article/details/79207944      Navicat Premium 12.0.23安装与激活 https://www.server110.com/nginx/201312/4409.html          Nginx 502错误原因和解决方法总结 https://www.cnblogs.com/klb561/p/8660264.html  OpenSt

使用ARIA角色增强可访问性

ARIA角色,关系,状态和属性可用于WEB应用定义出能够被屏幕阅读器这样的辅助技术理解的工作方式. 因为学习到了这个技术,所以好不容易搜索到类似的信息加以收藏.以下内容转载自张鑫旭学长的博客:http://www.zhangxinxu.com/wordpress/2012/03/wai-aria-%E6%97%A0%E9%9A%9C%E7%A2%8D%E9%98%85%E8%AF%BB/ 一.你至少应该知道ARIA是什么东西! WAI-ARIA指无障碍网页应用.主要针对的是视觉缺陷,失聪,行动不

无障碍阅读

WAI-ARIA无障碍网页应用属性完全展示 by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2277 一.你至少应该知道ARIA是什么东西! WAI-ARIA指无障碍网页应用.主要针对的是视觉缺陷,失聪,行动不便的残疾人以及假装残疾的测试人员.尤其像盲人,眼睛看不到,其浏览网页则需要借助辅助设备,如屏幕阅读器,屏幕阅读机可以大声朗读或者输出盲文. 而ARIA就是可以让屏

java_zlib_资料

1.网页资料 1.1.http://bbs.csdn.net/topics/190020986 1.2. http://cdn.verydemo.com/demo_c89_i166794.html http://blog.csdn.net/hexingyeyun/article/details/8678154 1.3. http://www.lai18.com/content/2088054.html http://www.jb51.net/article/95073.htm 1.4.Delph