abbr必须带非空title才有效,否则等同span;title值须为简洁准确的纯文本全称,首次出现缩写需在正文中写出全称+abbr包裹缩写,以保障可访问性与语义正确性。

abbr 必须带非空 title 才算有效标记
没写 title 的 abbr 和 span 没区别——鼠标悬停不显示、屏幕阅读器跳过、Lighthouse 会报 abbr missing description。浏览器只认 title 属性值,不是标签本身。
常见失效情况:
-
title=""或title=" "(纯空格)会被完全忽略 -
title="API (Application Programming Interface)"含括号和缩写重复,语义混乱 -
title="JavaScript Object Notation (JSON)"混入解释性文字,不符合规范
正确写法只有一个标准:title 值必须是简洁、准确、纯文本的全称,大小写与官方一致:title="Cascading Style Sheets"、title="World Health Organization"。
首次出现缩写时,不能只靠 title
仅靠 abbr[title] 无法保证所有用户理解。WCAG 明确要求:对读者可能陌生的缩写,首次出现必须在正文中自然写出全称 + 缩写,再用 abbr 包裹缩写本身。
例如这样写:
<p>Application Programming Interface (<abbr title="Application Programming Interface">API</abbr>>) enables communication between software systems.</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill7761" title="Article To Html"><img src="https://img.php.cn/upload/skill/000/000/081/179168408018805.jpg" alt="Article To Html" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill7761" title="Article To Html" class="overflowclass">Article To Html</a> <p class="overflowclass">文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。</p> </div> <a rel="nofollow" href="/xiazai/skill7761" title="Article To Html" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>
好处是三重保障:
- 所有用户第一眼看到含义,无需悬停或辅助技术
- 屏幕阅读器朗读顺序合理(先全称后缩写),避免“API Application Programming Interface”式重复
- 搜索引擎更容易理解上下文,提升 SEO 相关性
后续再出现 API,仍建议保留 abbr + title,尤其当内容跨页面复用时——DOM 中每个 abbr 的 title 是独立的,不会自动继承。
title 不是 UI 提示,而是语义信号
title 属性的作用不是做可控 tooltip,而是为辅助技术、搜索引擎和 JS 提供结构化语义。它的行为极不可控:
- Chrome / Edge 自 2025 年起默认禁用
title悬停渲染;Firefox 保留但延迟高、易消失 - iOS Safari 长按最多闪现半秒;Android Chrome 在 WebView 或 PWA 中基本忽略
- 键盘用户无法通过 Tab 聚焦,高对比度模式下系统 tooltip 常被隐藏
真正稳定可用的是:document.querySelector('abbr').title 可被 JS 读取,NVDA/VoiceOver 在多数设置下会朗读该值。所以 title 的价值不在“用户能不能看到”,而在“它是否可被程序解析”。
哪些缩写根本不用 abbr
滥用 abbr 反而损害可访问性。判断标准不是“这个词短”,而是“当前读者是否可能不熟悉其全称”:
- 已成通用词汇的词(如
HTML、URL、HTTP)通常无需标注,除非文档面向零基础人群 - 代码标识符(如变量名
usr、函数名initDB)不是语言学缩写,加abbr会误导辅助技术 - 带版本号的简写(如
APIv3)不属于缩写范畴,应直接写或用code标签 - 中文简称(如“人社部”)不符合 W3C 对
abbr的设计预期,推荐用dfn+ 术语表方式处理
真正难的不是写对 title,而是判断这个缩写“对谁而言需要解释”——用户背景、使用环境、内容复用方式,这些比标签语法更影响效果。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










