dfn 标签仅在术语首次出现且紧邻明确定义语句时有效,必须嵌套于语义化块级元素中,优先通过 title 属性指定定义内容,嵌套 abbr 仅限首次定义缩写。

dfn 标签不是“加斜体”或“高亮术语”的视觉开关,它只在术语**首次出现且紧邻明确定义语句**时才有效;用错等于向屏幕阅读器和搜索引擎发送错误信号。
dfn 必须紧邻定义语句,不能单独存在
浏览器和辅助技术只识别“dfn + 紧随其后的自然语言解释”这一组合。单独写 <dfn>fetch()</dfn> 而不接说明,语义即失效。
- ✅ 正确:
<p><dfn>DOM</dfn> 是文档对象模型的缩写,表示 HTML 文档的编程接口。</p> - ❌ 错误:
<ul><li><dfn>viewport</dfn></li></ul>(后面没解释) - ❌ 错误:
<h2><dfn>Accessibility</dfn></h2>(定义在下一段才出现)
title 属性决定“被定义的是什么”,顺序不能反
dfn 提取定义内容有严格优先级:先看 title 属性值,再看子元素的 title,最后才取自身文本。这个顺序直接影响语义是否准确。
- ✅ 缩写场景:
<dfn title="Document Object Model">DOM</dfn>→ 定义的是 “Document Object Model” - ❌ 反向写法:
<dfn title="DOM">Document Object Model</dfn>→ 实际定义的是字符串 "DOM",语义反转 - ⚠️ 注意:
<dfn title="HTTP"></dfn>内部为空 → 辅助技术读不出可见词,违反可访问性底线
父容器必须是语义化块级元素
dfn 的定义上下文依赖最近的块级祖先是否构成“可承载定义的环境”。规范明确要求该祖先必须是 <p></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>、<section></section>、<dt></dt> 或 <figcaption></figcaption>。
- ❌ 错误:
<div> <dfn>baseline</dfn> 是 CSS 中行内对齐的参考线。</div>——<div> 无定义语义 <li>❌ 错误:<code><td><dfn>viewport</dfn></td>—— 表格单元格不是定义容器 - ✅ 正确:
<p><dfn>URI</dfn> 是统一资源标识符,用于标识某一互联网资源。</p> - ✅ 合理嵌套:
<p>HTML,即 <abbr title="HyperText Markup Language"><dfn>HTML</dfn></abbr>,是网页的标准标记语言。</p> - ❌ 错误:
<dfn title="Application Programming Interface">API</dfn>——API是缩写,应由abbr承担展开职责 - ⚠️ 关键限制:嵌套时
abbr必须带title,而dfn不应设title,否则冲突
嵌套 dfn + abbr 仅限首次定义缩写术语
只有当某个缩写词在文档中第一次出现,且你要同时完成「标记它是缩写」+「声明这是它的定义位置」两件事时,嵌套才成立。
最容易被忽略的一点:你写的 dfn 是否真正在文档中「首次出现」?如果同一术语已在前文某处定义过(哪怕没套 dfn),这次再用就属于语义污染——比不用更糟。










