HTML5中的aria与role

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dearcode/article/details/52218689
这些都是HTML5针对html tag增加的属性,一般是为不方便的人士提供的功能,比如屏幕阅读器。
role的作用是描述一个非标准的tag的实际作用。比如用div做button,那么设置div 的 role="button",辅助工具就可以认出这实际上是个button。
aria的意思是Accessible Rich Internet Application,aria-*的作用就是描述这个tag在可视化的情境中的具体信息。比如:
<div role="checkbox" aria-checked="checked"></div>
辅助工具就会知道,这个div实际上是个checkbox的角色,为选中状态。

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>

表单区添加了role="form",当跳转到该区域时,不仅会读出"表单区",也会读出"使用手机号码注册"。

如果一个元素同时有aria-labelledby和aria-label,读屏软件会优先读出aria-labelledby的内容。

没有更多推荐了,返回首页