ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
dfn 要素とは
Definition Element。文中で用語が定義される箇所を意味的にマークアップするインライン要素です。
<p>
<dfn>HTTP</dfn> は Web 上で HTML 等のリソースを転送する
プロトコルです。サーバとクライアントが通信する際の規則を定めています。
</p>
<p>
<dfn>REST</dfn>(Representational State Transfer)は Web API の
設計原則の 1 つです。
</p>
<p>
<dfn title="Cascading Style Sheets">CSS</dfn> で Web ページの
見た目を定義できます。
</p>
デフォルトの見た目
ブラウザのデフォルト CSS は次のとおり:
/* ブラウザ標準 (UA stylesheet) */
dfn {
font-style: italic;
}
カスタマイズも自由:
dfn {
font-style: normal;
font-weight: bold;
background: #fffbea;
padding: 0 0.2em;
border-bottom: 2px solid #f4c430;
cursor: help;
}
/* hover で title 属性を強調 */
dfn[title]:hover {
background: #fff3e0;
}
意味論: なぜ <b> や <em> ではなく <dfn> なのか
HTML5 では「意味(semantic)に応じたタグ」を使うことが推奨されます:
| タグ | 意味 | 使い所 |
|---|---|---|
<dfn> | 用語が定義される箇所 | 「○○とは××です」の○○ |
<em> | 強調(emphasis) | 文の中で語調を上げる |
<strong> | 重要性 | 「警告: 必ず読んで」等 |
<b> | 装飾的な太字(意味なし) | 製品名など慣習的に太字 |
<i> | 装飾的なイタリック | 外国語、思考表現 |
<abbr> | 略語の展開 | 「<abbr title="HyperText Markup Language">HTML</abbr>」 |
abbr 要素との使い分け
<!-- ❌ 混同しやすい -->
<p>
<abbr title="HyperText Transfer Protocol">HTTP</abbr> は
Web の通信プロトコルです。
</p>
<!-- ✅ 用語の最初の定義箇所 → dfn -->
<p>
<dfn>HTTP</dfn> は HyperText Transfer Protocol の略で、
Web 上で HTML 等のリソースを転送するプロトコルです。
</p>
<!-- ✅ 同じ語が後で出てくるとき → abbr で略語と分かる形 -->
<p>
<abbr title="HyperText Transfer Protocol">HTTP</abbr> リクエストには
GET と POST 等の種類があります。
</p>
<!-- 組み合わせも可 -->
<p>
<dfn><abbr title="Cascading Style Sheets">CSS</abbr></dfn> は
Web ページの見た目を制御します。
</p>
aria-describedby で定義文を関連付け
用語と定義文が離れている場合、ARIA で紐付けできます:
<p>
Web の仕組みを学ぶには
<dfn aria-describedby="def-http">HTTP</dfn> の理解が必要です。
</p>
<aside>
<h3 id="def-http">HTTP とは</h3>
<p>Web 上でリソースを転送するためのプロトコル...</p>
</aside>
<!-- スクリーンリーダーが「HTTP(定義: Web 上でリソースを...)」のように読む -->
title 属性の活用
<p>
<dfn title="アプリケーション プログラミング インタフェース">
API
</dfn>
は他のソフトウェアから機能を呼び出すための窓口です。
</p>
<!-- マウスホバーで title が tooltip 表示 -->
<!-- ただしモバイル / キーボードユーザは見えないので
本文中にも定義を書くのが推奨 -->
用語集ページでの活用
<dl class="glossary">
<dt><dfn>API</dfn></dt>
<dd>アプリケーション間で機能を呼び出すための仕組み...</dd>
<dt><dfn>REST</dfn></dt>
<dd>HTTP を用いた Web API の設計原則...</dd>
<dt><dfn>GraphQL</dfn></dt>
<dd>Facebook 発のクエリ言語。REST に代わる API 設計...</dd>
</dl>
<dt>(用語)と組み合わせると、用語集ページとして機械可読になります。
id 属性とアンカーリンク
dfn に id を付けると、用語の定義箇所へ直接リンクできます:
<!-- 定義箇所 -->
<p>
<dfn id="dfn-rest">REST</dfn> は Web API の設計原則です。
</p>
<!-- 別ページや本文中からリンク -->
<p>
詳細は <a href="/glossary.html#dfn-rest">REST の定義</a> をご覧ください。
</p>
<!-- スクロール位置調整 -->
<style>
dfn[id] {
scroll-margin-top: 80px;
}
</style>
Wikipedia 風の活用
Wikipedia の各記事の冒頭は <b>(実装上)で太字表示されますが、これは「用語の定義」を示すパターンの典型です。HTML5 の意味論に従うなら <dfn> の方が適切:
<article>
<h1>レーザー</h1>
<p>
<dfn>レーザー</dfn>(laser)は、
<q>Light Amplification by Stimulated Emission of Radiation</q>
の頭字語で、誘導放出による光の増幅を意味する...
</p>
</article>
JavaScript で動的に用語集を生成
// ページ内のすべての dfn を集めて目次を作る
const terms = document.querySelectorAll('dfn');
const toc = document.querySelector('#term-index');
terms.forEach(dfn => {
if (!dfn.id) dfn.id = 'dfn-' + dfn.textContent.toLowerCase().replace(/\s+/g, '-');
const li = document.createElement('li');
li.innerHTML = `<a href="#${dfn.id}">${dfn.textContent}</a>`;
toc.appendChild(li);
});
SEO とアクセシビリティ
- SEO: 検索エンジンは「この語の定義はここ」という意味情報として活用する可能性。リッチスニペット候補
- スクリーンリーダー: 一部の SR は
<dfn>を「定義」と読み上げる。aria-describedbyと組み合わせると効果的 - Reader Mode: ブラウザのリーダーモードで強調表示されることがある
FAQ
Q: 用語が同じページに何度も出てくる場合、毎回 <dfn> でマークアップする?
A: いいえ。最初に定義する箇所だけ <dfn>、それ以降は通常テキストまたは <abbr> です。
Q: イタリック表示が嫌い
A: CSS で dfn { font-style: normal; } に上書き OK。意味論は維持されます。
Q: <dfn> 自体に title 属性を付けるとき、ホバー表示の挙動は?
A: 通常のツールチップ表示。title が長い場合は aria-describedby で本文中の説明と紐付ける方が a11y 的に良いです。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?