HTML的title属性是否无害?除悬停提示外有何应用价值?
关于HTML
title 属性的无障碍使用说明 首先直接给核心结论:单纯给元素添加title属性本身不会对用户造成使用障碍,真正的问题是错误地将关键信息完全寄托在title上传递——毕竟title的原生触发机制天生存在覆盖盲区。
你提到的几类受影响用户,本质问题出在title默认只有鼠标悬停在元素上时才会弹出原生提示:
- 触控设备不存在悬停交互,用户完全看不到
title内容 - 纯键盘导航的用户无法触发悬停状态,除非手动切到非常冷门的屏幕阅读器配置,否则根本拿不到
title里的信息 - 多数屏幕阅读器默认不会主动读取
title属性内容,依赖辅助技术的用户大概率会漏掉这部分信息 - 有精细运动障碍的用户很难稳定把鼠标悬停在指定元素上触发提示,有认知障碍的用户也很难意识到悬停才能看到隐藏信息
如果你把操作必须的关键信息(比如按钮的真实功能、输入框的填写规则、错误提示说明)全放在title里,对上面这些用户来说就是实打实的使用障碍,但如果title里放的是可有可无的补充信息,完全不会有负面影响。
至于title除了给鼠标用户做悬停提示之外的合理使用场景,目前公认合规的用法主要有3种:
- 配合
<abbr>缩写标签标注完整全称,比如给缩写的专有名词加title写全名称,这是HTML规范明确推荐的用法,屏幕阅读器对这个场景的title支持度也普遍较好 - 给纯图标按钮、纯图标控件做补充提示,前提是你已经给这类无文本控件加了正确的
aria-label或者内部屏幕阅读器可识别的替代文本,title在这里只是额外给鼠标用户多一层提示,不承担唯一的语义传递作用 - 给被截断省略的非关键文本做完整内容补充,比如列表里过长的次要信息做了单行省略,鼠标悬停时可以通过
title看到完整内容,注意这类信息必须是不影响核心操作的次要内容,关键信息绝对不能靠截断后藏在title里。
如果你要做到最优的UX和无障碍水平,记住一个核心原则就行:
所有用户完成操作必须知道的关键信息,永远放在元素本身或者紧邻的可见区域里,绝对不要只放在
title中。title永远只能做锦上添花的非必要补充,就算用户完全看不到title的内容,也应该能顺畅完成所有页面操作。
最后提几个常见的错误用法避坑:
- 不要给链接、按钮加
title重复已经显示的文本,会导致屏幕阅读器重复朗读内容,反而干扰辅助技术用户 - 不要用
title替代表单的可见提示文本、校验规则说明,这类内容必须直接展示在输入框旁边 - 不要把
title当成语义补全的首选方案,优先用原生HTML元素、aria属性、可见关联文本解决语义问题,title永远是最后考虑的补充项。
内容的提问来源于stack exchange,提问作者Kalnode
相关产品推荐
相关产品推荐

