html 里面的 role 本质上是增强语义性,当现有的HTML标签不能充分表达语义性的时候,就可以借助role来说明。通常这种情况出现在一些自定义的组件上,这样可增强组件的可访问性、可用性和可交互性。
role的作用是描述一个非标准的tag的实际作用。比如用div做button,那么设置div 的 role=“button”,辅助工具就可以认出这实际上是个button
比如,
| 代码如下 | 复制代码 |
辅助工具就会知道,这个div实际上是个checkbox的角色,为选中状态。
role是无障碍阅读,是给有阅读障碍的人设置的属性,有阅读障碍的人可以用读屏软件来解析,跟正常人没多大关系。可以不设置,不设置的话读屏软件就无法解析,有阅读障碍的人也就"看"不了了。
既然是个良好的编程习惯,那么是不是所有标签都写role比较好呢?
比如
| 代码如下 | 复制代码 |
正常的文本本来就可以读,但是表单中有时候输入密码框前面并没有密码的提示,提示在框内用Placeholder写的,正常人知道这里输入密码,可是读不出来,这时候这个东西就起作用了。
属性role的存在,是为了告诉Accessibility类应用(比如屏幕朗读程序,为盲人提供的访问网络的便利程序),这是一个按钮。在html5元素内,标签本身就是有语义的,因此role是不必添加的,至少是不推荐的,但是bootstrap的案例内很多都是有类似的属性和声明的,目的是为了兼容老版本的浏览器(用户代理),如果你的代码使用了html5标签,并且不准备支持老版本的浏览器,不妨不使用role标签。
AI能否生成证件照?用DeepSeek和即梦AI生成专业级证件照
最强开源视频模型?本地部署阿里万象2.1(Wan2.1)文生视频
software-ai-life/Awesome-PPT-Design-Skills 本地安装使用教程(新手)
用AI复活历史名人视频:AI还原历史名人画像视频教程来了
AI编程工具Claude3.7 震撼来袭:程序员离失业又近了一步
《艾尔登法环:黑夜君临》超有用的小知识分享