HyperText Markup Language dfn element.
The <dfn> tag stands for the "definition element", and it specifies a term that is going to be defined within the content.
The nearest parent of the <dfn> tag must also contain the definition/explanation for the term.
dfn要素は、「definition」の略で定義語を表します。何らかの用語の意味を定義(解説)する際、文章中に出てくるその定義用語の部分に対してこの要素を使用します。定義用語が何度も出る場合には、最初の用語だけ <dfn>タグで囲むのが一般的です。定義語である以上、dfn要素を含んでいる段落や記述リストやセクションの中に、その説明を入れる必要があります。定義語の説明がないのであれば、dfn要素を使うべきではありません。
dfn要素のマークアップ例
<p>本コラムでは、<dfn id="html5">HTML5</dfn> を、W3Cの仕様である <cite>HTML5 A vocabulary and associated APIs for HTML and XHTML</cite> で規定されている範囲を表します。Web Workersや Web Storageのように、この仕様に書かれていない APIについては、<a href="dfn.html#html5">HTML5</a> に含まないものとして使います。</p>
<p><a href="dfn.html#html5">HTML5</a> は、当初、...</p>
dfn要素のマークアップ例のサンプル
本コラムでは、HTML5 を、W3Cの仕様である HTML5 A vocabulary and associated APIs for HTML and XHTML で規定されている範囲を表します。Web Workersや Web Storageのように、この仕様に書かれていない APIについては、HTML5 に含まないものとして使います。
HTML5 は、当初、...
このように、dfn要素でマークアップした用語と同じ段落もしくはセクションに説明を入れて使うのが通例です。dfn要素に id属性をセットして、2度目以降に用語が登場する箇所では、a要素を使って最初に用語が登場した箇所へリンクすることで、同じ用語であることを明確に示すことができます。
記述リストによる用語定義なら、次のようにマークアップします。
記述リストによる用語定義のマークアップ例
<section>
<h2 class="smp">用語</h2>
<dl>
<dt><dfn id="url">URL</dfn></dt>
<dd>リソースを特定するために使う文字列</dd>
<dt><dfn id="valid-url">妥当な URL</dfn></dt>
<dd><a href="http://www.w3.org/html/wg/href/draft">Web address 仕様</a>で定義された妥当な Web address</dd>
<dt><dfn id="absolute-url">絶対 URL</dfn></dt>
<dd><a href="http://www.w3.org/html/wg/href/draft">Web address 仕様</a>で定義された絶対 Web address</dd>
</dl>
</section>
記述リストによる用語定義のマークアップ例のサンプル
dfn {
font-style: italic;
}
dfn要素で表す定義語は、次のいずれかのパターンでマークアップしなければいけません。
定義語のマークアップのパターン①
<dfn title="HyperText Markup Language">HTML</dfn>
定義語のマークアップのパターン②
<dfn><abbr title="HyperText Markup Language">HTML</abbr></dfn>
定義語のマークアップのパターン③
<dfn>HyperText Markup Language</dfn>
これら 3パターンのいずれも、定義語として "HyperText Markup Language" を表すことになります。"HTML" ではない点に注意してください。セマンティクス上、dfn要素でマークアップされた定義語は、次の順番で解釈されます。
title属性は様々な要素で使用できる汎用的な属性ですが、dfn要素に title属性を指定した場合には特別な意味を持ちます。dfn要素の title属性には、定義される用語の正式な名称を指定します。また、<dfn>~</dfn>の直下に <abbr>タグを配置した場合には、<abbr>の title属性の値が定義される用語の正式な名称を表すことになります。
dfn要素の祖先となる要素に title属性を指定しても、dfn要素には影響を与えません。
dfn要素に abbr要素とテキストを入れたマークアップ例
<dfn><abbr title="HyperText Markup Language">HTML</abbr>シリアライゼーション</dfn>
このマークアップが表す定義語は "HTMLシリアライゼーション" となります。なぜなら、dfn要素の中に title属性が指定された abbr要素がありますが、それ以外にもテキストを含んでいるためです。そのため、前述の定義語の解釈の手順で言えば②には相当せず、③に相当することになります。したがって、この場合、dfn要素の中にあるコンテンツのテキスト部分だけを抽出したものが定義語として解釈されることになるのです。このテキスト部分とは、W3C DOM Level 3 で規定されている textContentIDL属性に相当するものです。