html 里面的 role 属性是什么意思和用途

html-css011

html 里面的 role 属性是什么意思和用途,第1张

所谓的role 就是角色, 在既有的HTML 网页当中, 额外描述这段HTML 的功能. 例如:

如果一个网页中有两个同样的role, 就要进一步用不同的(aria-)label 来区隔.

除了role 之外, 另外一个特色是多了 state (状态) 和property (属性). 重要的有下面这些:

state 的好处是, 让使用者可以知道这个控制项的状态, 例如aria-checked 的状态有true, false, mixed 三种, 我们就知道checkbox 点了没有? 至于propoerty 可以描述一个栏位允许的最大值,最小值. 这的确也是很重要. State 和property 的细节, 以及略过不提的其他特点等等, 可多参考中文的[5], 这里就先略过了.

最后来看一眼和我们工作有关的部分. 增加了WAI-ARA 的支援之后, 它需要强大的底层支援, 如果要把文字叙述念出来给视障的人听, 系统就要具备文字转语音(TTS – Text to Speech) 的能力. 这些基础建设相当于下图(来自[2]) 最右边的方块, 这个Assistive Technology 就是系统要提供的了.

html 里面的 role 本质上是增强语义性,当现有的 HTML标签 不能充分表达语义性的时候,就可以借助role来说明。通常这种情况出现在一些自定义的组件上,这样可增强组件的可访问性、 可用性 和可 交互性 。

role的作用是描述一个非标准的tag的实际作用。比如用div做button,那么设置div 的 role=“button”,辅助工具就可以认出这实际上是个button。

比如:

HTML5的标签属性,可以用于标识一个普通的标签,使之语义化,方便浏览器对其具体功能进行识别。

例如div容器制作的导航栏,加上role="navigation",就可以让浏览器知晓这是一个导航容器而不是一个普通的容器,从而在面对一些特殊人群的时候可以做出正确的反应(例如盲人)……

-来自知乎(Blueve)