dfn 标签是词汇表中术语首次定义的语义锚点,须嵌套在 dt 内、配 title 提供标准全称,支持 id 锚点引用,且需处于合法语义上下文中。

dfn 标签在大型网站词汇表模块中,不是“展示术语”的装饰工具,而是承担语义锚点与结构化入口的关键角色。它不负责罗列全部术语,也不替代术语表整体结构,而是精准标记“该术语首次被赋予明确定义”的那个瞬间——这个点,是机器可识别、辅助技术可响应、SEO可提取的语义起点。
定义点必须落在词汇表主干结构内
大型网站的词汇表通常采用 <dl><dt><dd></dl> 组织。此时, 应包裹在 <dt> 内部的术语词本身,而非整个 <dt> 或 <dd>:
- ✅ 推荐:
<dt><dfn title="Cascading Style Sheets">CSS</dfn></dt><dd>一种用于描述HTML文档外观的样式语言。</dd> - ❌ 避免:
<dt><dfn>CSS 是层叠样式表。</dfn></dt>(dfn 不能包裹解释) - ❌ 避免:
<dt><dfn>CSS</dfn></dt><dd><dfn>层叠样式表</dfn></dd>(重复使用 dfn,且次级出现无定义行为)
title 属性是术语语义的权威来源
在词汇表中,每个 的 title 属性应提供该术语的标准全称或规范释义,而非说明性文字或跳转提示:
- ✅ 正确:
<dfn title="Application Programming Interface">API</dfn>—— 搜索引擎和屏幕阅读器将提取 “Application Programming Interface” 作为该术语的定义值 - ❌ 错误:
<dfn title="see section 4.2">API</dfn>—— 提取结果为空语义,破坏结构化数据质量 - ✅ 函数/语法类术语可省略 title:
<dfn>querySelector()</dfn>,因其本体即为规范标识符
与全局术语引用机制协同工作
词汇表模块常需支持站内术语交叉引用。此时 可配合 id 属性,为后续 <a href="#term-id"> 提供精确锚点:
<dt><dfn id="dom" title="Document Object Model">DOM</dfn></dt>- 其他页面中可写:
浏览器通过 <a href="#dom"><dfn>DOM</dfn></a> 暴露网页结构—— 点击跳转到词汇表定义位置,同时保持术语语义连续 - 注意:链接中的 不再需要 title 或再次定义,仅作可访问性强化
避免干扰词汇表的可访问性流
dfn 在词汇表中生效的前提,是它处于具有定义语境的容器中。以下结构会削弱其作用:
- 放在
<h3>或<span>中,而定义内容在下一个<p>—— 缺失紧邻性,屏幕阅读器无法关联 - 嵌套在
<pre>、<code>或表格单元格中 —— 违反内联元素语义环境要求 - 多个 套用,如
<dfn><dfn>HTTP</dfn>状态码</dfn>—— 外层 dfn 无法提取有效术语值,解析失败

















