使用 ARIA 改善网页可访问性
来源:互联网 发布:exit code 0 python 编辑:程序博客网 时间:2024/06/05 12:08
WAI-ARIA(Web Accessibilty Initiative’s Accessible Rich Internet Application,无障碍网页倡议-无障碍的富互联网应用,也简称 ARIA)是一种技术规范,自称“有桥梁作用的技术”。之所以这样说,是因为在 HTML 提供相应的语义功能之前,它会使用属性来填补一些语义上的空白。
无障碍访问的意义是让所有的访问者都能获取网站的内容。网站的一部分访问者可能需要借助辅助设备(如屏幕阅读器)访问我们的页面内容。让网站具备无障碍访问功能是成为严肃负责的 Web 公民的重要方面。而且,这样做对我们也是有好处的———为什么不让访问者能够获取网站的内容呢?
在大多数情况下,让页面具有无障碍访问功能并不难。只要对内容使用最恰当的 HTML 标记,就能改进网站的可访问性。然而,仅仅依靠恰当的 HTML 标记并不能做到所有情况下都让页面具有无障碍访问功能。
地标角色
ARIA 填补了 HTML 的语义空白。
例如,如果想让屏幕阅读器用户知道如何跳至页面级的页脚,应该使用什么 HTML 标记呢?标记为 footer 还不够,要知道页面可以包含多个 footer。对此,HTML 没有解决方案,而 ARIA 的地标角色(landmark role)则可以满足需求。地标角色让屏幕阅读器用户可以直接跳到这些区域。通常,对这些区域制指定 role 属性就可以了。
如下表所示,地标角色和 HTML5 元素之间有一些重合,但目前屏幕阅读器对 ARIA 的支持更多。因此我们可以继续按既有的方式创建 HTML (包括使用新元素),同时添加一些 ARIA 角色提升页面的可访问性。
上表引用了一些 ARIA 规范中对地标角色的定义及推荐用法。但表中没有包含另外三种地标角色:对表单元素来说,form 角色是多余的;search 用于标记搜索表单;application 则属于高级用法。
使用地标角色很简单,如下例:
<!DOCTYPE HTML><html lang="en"><head> <meta charset="UTF-8"> <title>使用地标示例</title></head><body> <!-- 开始页面容器 --> <div class="container"> <header class="container" role="banner"> ... <nav role="navigation"> ... <!-- 包含多个链接的无序链表 --> </nav> </header> <!-- 应用CSS后的第一栏 --> <main role="main"> <article> ... </article> <article> ... </article> ... <!-- 其它区块 --> </main> <!-- 结束第一栏 --> <!-- 应用CSS后的第二栏 --> <div class="sidebar"> <aside role="complementary"> ... </aside> <aside role=""> ... </aside> ... <!-- 其他区块 --> </div> <!-- 结束第二栏 --> <footer role="contentinfo"> ... </footer> </div> <!-- 结束页面容器 --></body></html>
事实上,即使不使用 ARIA 地标角色,页面看起来也没有任何差别,但是使用它们可以提升辅助设备的用户的体验。由于这个理由,推荐使用它们。但注意不要在页面上过多地使用地标角色,因为过多的地标角色会让屏幕阅读器用户感到累赘,从而降低了地标的初衷作用,影响整体体验。
- 使用 ARIA 改善网页可访问性
- 利用CSS改善网站可访问性
- 利用CSS改善网站可访问性
- W3C发布WAI-ARIA 1.0正式推荐标准 增强开放万维网平台可访问性
- 改善C#程序的50种方法 条款1:使用属性代替可访问的数据成员
- 百度是怎么衡量网页的可访问性
- 提高网页可访问性的十条建议
- ARIA
- WAI-ARIA无障碍网页应用
- 使用新浪云SAE建立一个公网可访问的网页应用
- C#高手必须掌握的4个要点:访问修饰符/可访问性级别/可访问域/可访问性级别的使用限制
- ARIA 使用 Hokuyo URG 04-LX
- 可访问性
- 可访问性不一致
- 可访问性级别
- 可访问性级别
- 可访问性不一致
- 可访问性总结
- Xcode 真机调试中"There was an internal API error"错误解决方法
- Ubuntu开启Mod_rewrite模块
- 5-14 求整数段和
- Python爬虫入门-Beautiful Soup的用法
- MySQL学习笔记16:子查询
- 使用 ARIA 改善网页可访问性
- You can't specify target table for update in FROM clause
- 逆元逆元
- JAVA中,文件的输入输出(1)
- 为什么互联网大佬中,马化腾挨骂最多?
- 让ImageView的图片全屏填充
- MySQL学习笔记17:别名
- Linux 用命令行打开doc pdf
- 5-15 计算圆周率