テキスト意味要素の理解
HTML5では、文章内の特定の部分に意味を与えるためのテキスト意味要素が用意されています。これらの要素を使うことで、人間には見た目が同じでも、機械には明確な意味を伝えることができます。
実際のブログ記事を例に、よく使われるテキスト意味要素がどのように使われるかを見てみましょう。
これらの要素の最大の利点は、文章の特定の部分に明確な意味を与えることで、機械的に判別できることです。検索エンジンは日付情報を正確に把握でき、スクリーンリーダーは重要な箇所を適切に強調して読み上げ、カレンダーアプリは日時情報を自動認識できるようになります。
HTML5には上記5つ以外にも、<mark>
、<em>
、<small>
、<abbr>
といった多くのセマンティックなテキスト要素があります。
目的に応じて適切な要素を選択することで、より意味豊かなWebコンテンツを作成できます。
日時・重要性を表現する要素
記事の投稿日、イベント日程、重要な情報の強調など、時間や重要性に関わる情報を適切にマークアップする要素群です。
各要素の役割と具体例
要素 | 役割(何のために使うか) | 具体例(中に入れるもの) | 注意点 |
---|---|---|---|
<time> | 日時情報の機械読み取りを可能にし、カレンダーアプリなどが自動認識できるようにします。 | 記事の投稿日、イベント日程、更新日、期限、営業時間 | datetime属性で正確な日時形式(ISO 8601)を必ず指定します。 |
<strong> | 意味的な重要性を示し、装飾的な太字ではなく内容の重要度を表現します。 | 警告文、重要なポイント、キーワード、注意事項 | 単純な装飾目的で使わず、実際に重要な内容にのみ使用します。 |
<mark> | 注目箇所のハイライトを行い、検索結果の強調や文脈上の注目ポイントを示します。 | 検索キーワード、ハイライト箇所、引用の重要部分 | 重要性(strong)とは異なり、注目や関連性を示す用途で使用します。 |
<em> | 発音の強調や語調の変化を表し、読み上げ時のイントネーションを指示します。 | 外国語の単語、読み方の強調、感情的な表現 | 意味的重要性(strong)とは区別して、音声的な強調に使用します。 |
実際のコード例
<!-- 日時と重要性のマークアップ -->
<article>
<p>公開日: <time datetime="2025-01-08">2025年1月8日</time></p>
<p>
HTMLは<strong>非常に重要</strong>な技術で、
<mark>アクセシビリティ</mark>の観点から
<em>意味のあるマークアップ</em>が求められています。
</p>
</article>
インタラクティブプレビュー
- プレビューにはスタイルを追加して見やすくしています。
HTML5では意味を持つセマンティック要素と、装飾目的の要素を明確に区別します。
<strong>
vs<b>
strongは重要性の意味、bは単純な太字装飾(意味なし)<em>
vs<i>
emは発音強調の意味、iは単純な斜体装飾(意味なし)<mark>
vs 背景色CSS markは注目の意味、CSSは見た目のみ- 推奨される使い方 セマンティック要素を優先し、装飾はCSSで調整
例:<b>重要</b>
より <strong>重要</strong>
を使うことで、スクリーンリーダーや検索エンジンに「この部分は重要」と伝わります。
プログラミング関連を表現する要素
HTMLタグ、プログラムコード、ファイル名など、技術文書でよく使用されるプログラミング関連の情報をマークアップする要素群です。
各要素の役割と具体例
要素 | 役割(何のために使うか) | 具体例(中に入れるもの) | 注意点 |
---|---|---|---|
<code> | インラインコードを表現し、プログラムの断片や技術用語を明示します。 | HTMLタグ、JavaScript関数、変数名、ファイル名、コマンド | 複数行のコードには<pre>要素と組み合わせて使用します。 |
<kbd> | キーボード入力を表現し、ユーザーが入力すべきキーやショートカットを示します。 | Ctrl+C、Enter、F12、矢印キー、コマンド入力 | 実際にユーザーが押すキーボードの操作に限定して使用します。 |
<samp> | プログラム出力を表現し、コンソール出力やシステムからの応答を示します。 | エラーメッセージ、コンソール出力、実行結果、ログ出力 | ユーザー入力(kbd)とは区別して、システム出力にのみ使用します。 |
<var> | プログラムの変数や数式の変数を表現し、可変要素であることを示します。 | 変数名、関数の引数、数式の変数、プレースホルダー | 数学的な変数や、一般的な概念としての変数に使用します。 |
<pre> | 整形済みテキストを表現し、空白や改行をそのまま保持します。 | 複数行コード、ASCIIアート、整形済みテキスト、ログ出力 | <code>要素と組み合わせて複数行コードブロックを作成します。 |
実際のコード例
<!-- プログラミング関連のマークアップ -->
<p>
<code><div></code>要素を使い、<kbd>F12</kbd>で開発者ツールを開きます。
エラー: <samp>ReferenceError: undefined</samp>
</p>
<!-- 複数行コードブロック -->
<pre><code>function showMessage(<var>name</var>) {
console.log('Hello, ' + <var>name</var> + '!');
return true;
}</code></pre>
インタラクティブプレビュー
- プレビューにはスタイルを追加して見やすくしています。
インタラクティブ・補足情報を表現する要素
ユーザーとのインタラクションや、補足的な情報を提供するための要素群です。JavaScriptなしでも動作する機能を提供します。
各要素の役割と具体例
要素 | 役割(何のために使うか) | 具体例(中に入れるもの) | 注意点 |
---|---|---|---|
<details> | 折りたたみ式コンテンツを作成し、JavaScriptなしでも展開・収納機能を提供します。 | FAQ、用語解説、補足情報、手順の詳細、技術仕様 | <summary>要素と組み合わせてタイトルを設定します。 |
<address> | 連絡先情報を明示し、記事やセクションの責任者情報を提供します。 | 作成者のメール、電話番号、住所、企業情報、お問い合わせ先 | 物理的な住所に限らず、連絡手段全般に使用できます。 |
<abbr> | 略語や頭字語の正式名称を提供し、title属性で詳細を説明します。 | HTML、CSS、API、URL、企業名の略称、専門用語 | title属性に必ず正式名称や説明を記載します。 |
<dfn> | 用語の定義を示し、その文書内で初めて説明される重要な用語をマークアップします。 | 専門用語、新しい概念、技術仕様、定義される語句 | 一つの文書内で同じ用語には一度だけ使用します。 |
実際のコード例
<!-- インタラクティブ・補足情報のマークアップ -->
<details>
<summary>HTMLの詳細情報</summary>
<p>HTMLは1990年に開発され、現在はHTML5が主流です。</p>
</details>
<address>
<p>記事の作成者:</p>
<p>Email: <a href="mailto:contact@example.com">contact@example.com</a></p>
</address>
<p>
<abbr title="HyperText Markup Language">HTML</abbr>は
Webページの構造を定義する言語です。
</p>
<p>
この記事では<dfn>セマンティック要素</dfn>について学習します。
</p>
インタラクティブプレビュー
- プレビューにはスタイルを追加して見やすくしています。
実践的な使い分けのポイント
テキスト意味要素を効果的に活用するための重要なポイントを整理しました。
<strong>
vs<em>
strongは重要性、emは発音の強調(意味が異なる)<time>
の datetime属性 機械読み取り用の正確な日時形式(ISO 8601)を指定<code>
vs<pre>
codeはインライン、preは整形済みテキスト(複数行コードブロックなど)<mark>
vs<strong>
markは注目、strongは重要性(用途が異なる)<address>
の適切な使用 記事やセクションの責任者情報のみに使用<kbd>
vs<samp>
vs<code>
kbdはユーザー入力、sampはシステム出力、codeはプログラムコード<details>
のネスト 階層的な情報構造を作成する際は適切にネストして使用<abbr>
のtitle属性 略語の正式名称は必ずtitle属性で提供する
理解度チェッククイズ
テキスト意味要素ミニクイズ
①
<p>公開日: <span>2025年1月8日</span></p>
②
<p>公開日: <time>2025年1月8日</time></p>
③
<p>公開日: <time datetime="2025-01-08">2025年1月8日</time></p>
④
<p>公開日: <date>2025-01-08</date></p>
①
<details>
<summary>詳細を表示</summary>
<p>ここに詳細な内容が入ります。</p>
</details>
②
<details open>
詳細を表示
<p>ここに詳細な内容が入ります。</p>
</details>
③
<summary>
<details>詳細を表示</details>
<p>ここに詳細な内容が入ります。</p>
</summary>
④
<collapse>
<header>詳細を表示</header>
<content>ここに詳細な内容が入ります。</content>
</collapse>
①
<p><abbr>HTML</abbr>は簡単です。</p>
②
<p><abbr title="HyperText Markup Language">HTML</abbr>は簡単です。</p>
③
<p><acronym>HTML</acronym>は簡単です。</p>
④
<p><short title="HyperText Markup Language">HTML</short>は簡単です。</p>
まとめ
- 日時情報
<time datetime="">
で機械読み取り可能な形式を併記 - 重要度の使い分け 内容の重要性は
<strong>
、注目箇所は<mark>
を使用 - プログラミング関連
<code>
、<kbd>
、<samp>
、<var>
を用途に応じて使い分け - 略語の明確化
<abbr title="">
で正式名称を必ず提供 - 連絡先情報
<address>
は記事の著者・責任者情報にのみ使用 - インタラクティブ要素
<details>
で情報を整理し、ユーザビリティを向上 - セマンティックな価値 見た目だけでなく、意味を重視したマークアップを心がける
次回は、フォーム要素について学習し、ユーザーとのインタラクションを実現する方法を学んでいきます。