aria-hidden读屏

图标的可访问性
现代的辅助技术能够识别并朗读由 CSS 生成的内容和特定的 Unicode 字符。为了避免 屏幕识读设备抓取非故意的和可能产生混淆的输出内容(尤其是当图标纯粹作为装饰用途时),我们为这些图标设置了 aria-hidden="true" 属性。
如果你使用图标是为了表达某些含义(不仅仅是为了装饰用),请确保你所要表达的意思能够通过被辅助设备识别,例如,包含额外的内容并通过 .sr-only 类让其在视觉上表现出隐藏的效果。
如果你所创建的组件不包含任何文本内容(例如, <button> 内只包含了一个图标),你应当提供其他的内容来表示这个控件的意图,这样就能让使用辅助设备的用户知道其作用了。这种情况下,你可以为控件添加 aria-label 属相。

aria-label及aria-labelledby应用

aria-label属性
正常情况下,会在表单里给input组件指定对应的label,当用户tab到输入框时,读屏软件就会读出相应label里的文本。
如:<label for=”username”>用户名:</label><input type=”text” id=”username”/>
当没有给输入框设计对应的label文本的位置时,aria-label属性为组件指定内置的文本标签。它不在视觉上呈现。
如:<input type=”text” aria-label=”用户名”/>
此时,当焦点落到该输入框时,读屏软件就会读出aria-label里的内容,即“用户名”。
经测试,aria-label只有加在可被tab到的元素上,读屏才会读出其中的内容。
以下情况,也是可以读出的:<span tabindex=”0″ aria-label=”标签提示内容”>可被tab的span标签</span>
 
aria-labelledby属性
当想要的标签文本已在其他元素中存在时,可以将其值为该元素的id。

<div role=”form” aria-labelledby=”form-title”>
<span id=” form-title”>使用手机号码注册</span>
<form>……</form>
</div>
表单区添加了landmark标识role=”form”,在争渡中使用字母”D“键会在lankmark标识之间跳转。
当跳转到该区域时,不仅会读出”表单区“,也会读出”使用手机号码注册“。
如果一个元素同时有aria-labelledby和aria-label,读屏软件会优先读出aria-labelledby的内容。

posted @ 2017-08-04 12:38  丨逸仙  阅读(693)  评论(0编辑  收藏  举报