Web 可访问性/应用无障碍
H5 新标签–标签语义化
HTML5 添加了诸如main
、header
、footer
、nav
、article
、section
等新标签,它们为开发人员提供更多的选择和辅助特性。(能够辅助屏幕阅读器工作)
section、div、article
的区别:article
用于独立的、完整的内容section
用于对与主题相关的内容进行分组。它们可以根据需要嵌套着使用。- 举个例子:如果一本书是一个
article
的话,那么每个章节就是section
。当内容组之间没有联系时,可以使用div
。- 内容组- 有联系的内容组 - 独立完整的内容 nav
:主导航链接
- 使用它:用该标签将音频源
- HTML5 的
audio
标签用于呈现音频内容,可以在audio
上下文中为音频内容添加文字说明或者字幕链接,使听觉障碍用户也能获取音频中的信息。 audio
的controls
属性:使浏览器为音频提供具有开始、暂停等功能的播放控件。controls
是一个布尔属性,只要这个属性出现在audio
标签中,浏览器就会开启播放控件。
举个例子:
使用 figure 元素提高图表的可访问性
- HTML5 引入了
figure
标签以及与之相关的figcaption
标签。 - 它们一起用于展示可视化信息(如:图片、图表)及其标题。
- 这样通过语义化对内容进行分组并配以用于解释
figure
的文字,可以极大的提升内容的可访问性。
对于图表之类的可视化数据,标题可以为屏幕阅读器用户提供简要的说明。但是这里有一个难点,如何处理那些超出屏幕可视范围(使用 CSS )的表格版本的图表数据,以使屏幕阅读器用户也可以获取信息。
举个例子——注意figcaption
包含在figure
标签中,并且可以与其他标签组合使用:
语义化呈现单选按钮组
使用<fieldset>
包裹单选按钮组
还可使用<legend>
来为单选按钮组提供文字说明。(屏幕阅读器会读取该标签中文字)
举个栗子:
1 | <form> |
: 日期选择器
input
标签的type
属性指定了标签类,如text
与submit
类型的input
标签- HTML5 引入了
date
类型来创建时间选择器。以供用户通过点击来填写日期 - 当点击
input
标签时,依赖于浏览器的支持,时间选择器会显示出来,这可以让用户填写表单更加容易。 - 对于旧版本的浏览器,
type
属性的默认值是text
。这种情况下,可以利用label
标签或者占位文本来提示用户input
标签的输入类型为日期。- 举个栗子:
1 | <input type="date" id="pickdate" name="date"> |
点击它。。
H5 的 datatime 属性:标准化时间
- HTML5 还引入了
time
标签与datetime
属性来标准化时间。 <time>
是一个行内标签,用于在页面中呈现日期或时间,而datetime
属性保存了日期的有效格式,辅助设备可以访问这个值。- 通过标准化时间格式,即使时间在文本中是以非正式的或口语化的形式编写,辅助设备依然可以获取准确的时间和日期。
举个例子:
<p>Master Camper Cat officiated the cage match between Goro and Scorpion <time datetime="2013-02-13">last Wednesday</time>, which ended in a draw.</p>
自定义 CSS 让元素仅对屏幕阅读器可见
当信息以可视化形式(如:图表)展示,而屏幕阅读器用户需要一种替代方式(如:表格)来获取信息时,该如何做呢?
CSS 被用来将这些仅供屏幕阅读器使用的信息,定位到浏览器可见区域之外。
举个雷子:
1 | .sr-only { |
注意:
下面的 CSS 代码与上面的结果不同:
display: none;
或visibility: hidden;
会把内容彻底隐藏起来,对于屏幕阅读器也不例外- 如果把值设置为 0px,如
width: 0px; height: 0px;
,意味着让元素脱离文档流,这样做也会让元素被屏幕阅读器忽略。
accesskey 属性:指定快捷键
- HTML 提供 accesskey 属性,用于指定激活标签或者使标签获得焦点的快捷键,这可以使键盘用户在链接之间快速导航
- HTML5 允许在任何标签上使用这个属性。该属性对于交互类标签(如链接、按钮、表单控件等)十分有用。”
举个例子:
<button accesskey="b">Important Button</button
使用 tabindex 将键盘焦点添加到元素中
当用户在页面中使用 tab 键时,有些标签,如:链接、表单控件,可以自动获得焦点。它们获得焦点的顺序与它们出现在文档流中的顺序一致。
我们可以通过将tabindex
属性值设为 0,来给其他标签赋予相同的功能,如:div
、span
、p
等。举个例子:
<div tabindex="0">I need keyboard focus!</div>
注意:
tabindex
属性值为负整数(通常为 -1)的标签也是有焦点的,只是不可以通过 tab 键来获得焦点。这种方法通常用于以编程的方式使内容获得焦点(如:激活用于弹出框的div
标签)
使用tabindex
属性可以使 CSS 伪类:focus
在标签上生效
评论