认识ARIA
目前互联网应用日益增强,其中大部分是通过混合技术(AJAX、DHTML、JavaScript 和 SVG)创建或自定义一些模拟桌面GUI程序的的 Web widget 小组件来增强 Web 应用程序的交互,但部分类似Dialog 的对话框、弹出层,模拟select 的下拉菜单等小组件并没能提供所需的语义作支持,残障人士有可能无法读懂当前信息。
屏幕读取器、语音识别软件和屏幕键盘均通过特定的语义标识(title、button~)读取网页组件本质信息,而WAI-ARIA 角色标准在语义化标识约定方面起至关重要的作用。现在不但Firefox、Safari 4.0、Google 早已支持 WAI-ARIA,而且IE8 也开始部分支持,各种的JavaScript库支持WAI-ARIA将会是一个趋势。
图1.0
图1.0是模拟无障碍的JavaScript架构,contarct部分正是WAI-ARIA定义的API标准,通过这些标准,把信息传输到各种辅助读取和显示的AT仪器上。
图2.0
图2.0当JS动态发生交互时,默认设置的语义信息已过时;此时可以通过标蓝的API进行新的语义信息传递
ARIA 用法
ARIA API构建
以下平台均定义了类似的API接口:
Java Accessibility API [JAPI]
Microsoft Active Accessibility [MSAA]
Apple Accessibility for COCOA [AAC]
Gnome Accessibility Toolkit (ATK) [ATK]
UI Automation for Longhorn [UIAUTOMATION]
应用ARIA语境:
1、 应用无语义的XHTML 标签情况;
2、 所应用 XHTML 标签当前状态改变情况;
3、 XHTML 标签需支持键盘索引;
4、 XHTML 标签状态改变时的CSS动态支持;
ARIA role 属性:
ARIA允许开发者为任何HTML元素添加一个简单的属性。ARIA的role根据上下文判断某个元素的作用和性质,也就是说,比如<div>标签并不一定是<div>
以下是代码片段: <div role=”progressbar” aria-valuenow=”5” aria-valuemin=”0” aria-valuemax=”10”>进度条</div> |
以上代码表示:这是一个进度条。
Role 属性值如下:
详细信息:WAI-ARIA Roles.
Role数据模型的类关系图:
其遵循W3C语义模型
ARIA states and properties:
随着网页的动态交互,当 XHTML 元素 states 状态发生变化,与states 对应的properties信息也需要更新,如“cheack”状态改变。
以下是代码片段: <div role=”radio” aria-checked=”true” aria-describedby=” Identifies that describes the object.”>单选</div> <a role=”button” aria-describedby=”winClose” href=”#” onclick=”fakewin.close()”>X</a> 支持动态变化时Css绑定: [aria-checked="true"]:before { background-image: url(checked.gif); } |
ARIA在工作中应用
ARIA通过友好易接受方式传递给正在操作或更新的用户更完整的信息,而不是等用户所有步骤都操作完毕后,才被告知此行为并未如愿执行。
如何在网页中应用ARIA ?
Ex_01:
Ex_02:
注意:
目前只在支持可扩展的网页中使用用ARIA,如果网页没有DTD声明,需要加上xmlns(XHTML namespace)命名声明,如下:
以下是代码片段: xmlns=http://www.w3.org/1999/xhtml |
应用实例:
具体代码:
以下是代码片段: <map id=”menu”> <h2>QQ音乐网站导航_test2</h2> <ul title=”QQ音乐网站导航_test2″ role=”navigation”> <li><a href=”#” id=”menu_index”>首页</a> </li> <li><a href=”#” id=”menu_musicdata”>正版音乐库</a> </li> <li><a href=”#” id=”menu_first”>在线首发</a> </li> <li><a href=”#” id=”menu_hit”>点击榜</a> </li> <li><a href=”#” id=”menu_player”>播放器</a> </li> </ul> </map> |
无障碍软件安装:
http://firefox.cita.uiuc.edu/#install
无障碍网站测试:
http://test.cita.uiuc.edu/aria/nav/nav1.php
http://www.gov.hk/sc/about/accessibility/assistivetools.htm
参考资料:
http://www.w3.org/TR/wai-aria/
http://www.evotech.net/blog/2009/03/wai-aria-accessible-rich-internet-applications-basics/
相关推荐
WAI-ARIA为了让有障碍人士无障碍的获取Web内容和使用Web应用定义了方法。WAI-ARIA可以辅助Ajax、HTML、JavaScript和其他有关主流技术和先进用户界面的开发。WAI-ARIA是由协议和格式工作组(Protocols and Formats ...
BootstrapVue 拥有超过 85 个组件、超过 45 个可用插件、多个指令和 1000 多个图标,提供了适用于 Vue.js v2.6 的 Bootstrap v4.5 组件和网格系统的最全面实现之一,并配有广泛且自动化的 WAI-ARIA 可访问性标记。...
没有任何样式的WAI-ARIA兼容组件,以及较低级别的实用程序组合。 旨在作为构建您自己的组件集合的基础,同时确保一开始就提供可靠的A11y。 警告:实验性 该项目目前正处于开发中的探索/实验阶段。 我们仍在研究模式...
2. **状态(state)和属性(property)**: 状态和属性提供了关于元素当前状态的信息,如`aria-checked="true"`表示复选框被选中,`aria-expanded="false"`表示一个折叠菜单处于关闭状态。 3. **土地标记(landmark ...
WAI-ARIA的例子 本示例是用于创建“ WAI-ARIA案例集”(临时名称)的原始示例代码。 将来的案例手册中尚未发布的示例也将在此处发布。 描述 每个示例均划分文件夹。 “ WAI-ARIA案例簿”的完整代码可以在“包含...
例如,`aria-expanded`属性可以用来指示某个导航菜单是否展开,`aria-current`则可以标记当前页面或章节。 3. **土地标记(Landmark Roles)**:dpub-aria扩展了WAI-ARIA的土地标记角色,如`doc-frontmatter`(前言...
2. `aria-expanded`: 当navicon展开或折叠时,此属性可以指示菜单当前的状态,如`true`表示展开,`false`表示折叠。 3. `aria-controls`: 指定navicon控制的元素ID,比如菜单项的容器,使得辅助技术知道点击navicon...
标题 "wai-aria-examples-svelte" 指向的是一个基于 Svelte 框架的项目,其目的是为了演示和学习无障碍网页应用(Web Accessibility Initiative - Accessible Rich Internet Applications,简称 WAI-ARIA)的应用。...
安装 $ npm install reflected-aria-attributes用法定义 ARIA 属性: import aria from "reflected-aria-attributes" ;var a = document . createElement ( "a" ) ;aria . attachAttributes ( a , [ "aria-pressed" ...
ARIA实践指南 + 常用ARIA属性 (中文版) 该站点基于 构建而成。网站内容在 docs 文件夹内,格式为 Markdown。欢迎 issue 或 pull request。 英文原版文档: 开发 docsify serve docs # 开发服务器地址为 ...
- 应用WAI-ARIA属性来增强可访问性,例如`aria-label`为无文本内容的元素提供描述,`aria-describedby`链接到解释性文本。 - 可能包含一个`<noscript>`标签,为那些不支持JavaScript或禁用JavaScript的用户提供信息...
WAI-ARIA:创作实践指南 该存储库维护《 WAI-ARIA创作实践指南》。 由的制定。 员工联系方式: 。 未经协调,请勿提供对此存储库的提交访问。 工作的组织方式 在我们的工作是计划好的和优先的。 每个里程碑对应于...
降级:racing_car:用于构建简单,灵活,符合WAI-ARIA的React自动完成/下拉/选择/组合框组件的问题问题,您需要自动完成/下拉/选择体验下移:racing_car:原型用于构建简单,灵活,符合WAI-ARIA的React自动完成/下拉/ ...
Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: npm start 在开发模式下运行应用程序。打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。您还将在控制台中看到任何棉绒...
可访问的富Internet应用程序(WAI-ARIA) 该存储库维护可访问的Rich Internet Applications技术套件的规范和相关出版物。 这是由开发的。 工作人员是 。 未经协调,请勿提供对此存储库的提交访问。 默认分支已...
BootstrapVue拥有85个以上的组件,超过45个可用的插件,多个指令和1000多个图标,它提供了可用于Vue.js v2.6的Bootstrap v4.5组件和网格系统的最全面的实现之一,并具有广泛的功能和自动的WAI-ARIA可访问性标记。...
一个有用的实验性Bugzilla客户端,演示了现代Web应用程序技术,例如CSS3,DOM4,HTML5,ECMAScript 6和WAI-ARIA。 集成为子模块 我们在 , 和 更新:我们已经决定放弃BzDeck,而是将所有UX创新带到Bugzilla,以帮助...
这是一个浏览器扩展程序(适用于Firefox,Chrome,Opera和Edge),可通过键盘或弹出菜单导航WAI-ARIA地标。 地标性区域广泛地标记页面区域(例如,导航,搜索,主要内容等)。 对于使用键盘进行导航的人和使用辅助...
降档 :racing_car: 构建简单,灵活,符合WAI-ARIA的React的原语,自动完成,组合框或选择下拉组件。 | |问题您需要在应用程序中具有自动完成功能,组合框或精选体验,并且希望可以对其进行访问。 您还希望它既简单又...
JavaScript弹出框的漂亮,响应快速,可自定义,可访问(WAI-ARIA)替代品。 零依赖性。 :money_bag: :backhand_index_pointing_right: 从v9.x升级到v10.x? 如果要从v8.x,请先 ! 如果要从v7.x,请先 ! 如果要...