HTML 速習チュートリアル

HTML セマンティック要素

セマンティック要素とは、ブラウザと開発者の両方に対して、その要素が持つ「意味」を明確に伝える要素のことです。

1. セマンティック要素とは?

HTMLには、大きく分けて2種類の要素が存在します。

  • 非セマンティック要素 (Non-semantic elements): その内容について何も伝えない要素。(例: <div><span>
  • セマンティック要素 (Semantic elements): その内容を明確に定義する要素。(例: <form><table><article>

HTML5が登場する前、開発者はレイアウトを作成するために idclass を付けた大量の div 要素(例: <div class="header">)を使用していました。しかし、HTML5では専用のタグが導入され、より構造的で分かりやすいマークアップが可能になりました。

2. 主要なセマンティック要素の役割

HTML5で導入された代表的なセマンティック要素と、その用途を以下の表にまとめました。

要素説明
<header>ドキュメントやセクションの導入部、またはナビゲーションリンクの集合を定義します。
<nav>ナビゲーションリンク(メニュー)の主要なセットを定義します。
<main>ドキュメントのメインコンテンツ(主要な内容)を指定します。ページ内に1つだけ存在すべきです。
<section>ドキュメント内の「節(セクション)」を定義します。通常、見出しが含まれます。
<article>それ自体で独立して完結しているコンテンツ(ブログ記事、ニュース等)を定義します。
<aside>メインコンテンツとは別の、補足的な情報(サイドバー等)を定義します。
<footer>ドキュメントやセクションのフッター(著作権情報、連絡先等)を定義します。
<details>ユーザーが表示/非表示を切り替えられる追加の詳細情報を定義します。
<summary><details> 要素の可視見出しを定義します。
<figure>イラスト、図表、写真、コードリストなどの自己完結したコンテンツを定義します。
<figcaption><figure> 要素に対するキャプション(説明文)を定義します。
<time>日付や時刻を定義します。

3. <section> と <article> の使い分け

この2つは混同されやすいですが、以下の基準で使い分けるのが一般的です。

  • <article>: その部分だけを切り取って他のサイトに転載しても、内容が成立する独立したコンテンツ(ニュース、投稿、記事)。
  • <section>: ドキュメントを論理的に分割する単位。一つの記事の中に「概要」「詳細」「結論」といった章(セクション)がある場合などに適しています。

4. なぜセマンティック要素を使うのか?

プロフェッショナルなWeb制作において、セマンティック要素の使用はもはや義務と言えます。

  1. アクセシビリティ (Accessibility): スクリーンリーダーを使用するユーザーが、ページの構造(どこがナビゲーションで、どこがメインか)を正しく理解できるようになります。
  2. SEO (Search Engine Optimization): Googleなどの検索エンジンが、ページのどの部分が重要であるかを判断しやすくなり、検索順位の向上に寄与します。
  3. メンテナンス性: コードを読んだだけで「ここがフッターだ」「ここが記事だ」と直感的にわかるため、チーム開発での効率が上がります。

5. 実装例:セマンティックなページ構造

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>セマンティックHTMLの例</title>
</head>
<body>

    <header>
        <h1>テックブログ</h1>
        <nav>
            <ul>
                <li><a href="#">ホーム</a></li>
                <li><a href="#">記事一覧</a></li>
            </ul>
        </nav>
    </header>

    <main>
        <article>
            <h2>セマンティックHTMLの重要性</h2>
            <p>公開日: <time datetime="2026-04-12">2026年4月12日</time></p>
            <section>
                <h3>1. SEOへの影響</h3>
                <p>検索エンジンは意味のあるタグを好みます...</p>
            </section>
        </article>
    </main>

    <aside>
        <h3>おすすめ記事</h3>
        <ul>
            <li>CSS Gridの使いかた</li>
        </ul>
    </aside>

    <footer>
        <p>© 2026 Tech Blog Inc.</p>
    </footer>

</body>
</html>

セマンティック要素を正しく使うことで、見た目は同じでも「中身の質」が全く異なる、モダンで堅牢なWebサイトを構築することができます。