セマンティックHTML設計テンプレ
「とりあえずdiv」から卒業するための実務フレーム
HTMLは「見た目を作る言語」ではありません。
本質は、
意味を設計する言語
です。
しかし実務では、
- とりあえず
<div> - とりあえず
<section> - とりあえず
<article>
となりがち。
そこで今回は、
迷わず設計できるセマンティックHTMLテンプレ
を体系化します。
まず前提:設計は上から考える
HTMLは「外側 → 内側」の順で設計します。
① ページ構造
② メインコンテンツ
③ セクション分割
④ 独立コンテンツ
⑤ 補足情報
この順番で考えれば迷いません。
基本テンプレ(汎用サイト)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ページタイトル</title>
</head>
<body> <header>
<h1>サイト名</h1>
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
</ul>
</nav>
</header> <main> <section>
<h2>ヒーローエリア</h2>
</section> <section>
<h2>サービス紹介</h2> <article>
<h3>サービスA</h3>
<p>説明文</p>
</article> <article>
<h3>サービスB</h3>
<p>説明文</p>
</article>
</section> <aside>
<h2>関連情報</h2>
</aside> </main> <footer>
<address>
株式会社〇〇<br>
info@example.com
</address>
</footer></body>
</html>
各要素の役割
<header>
- ページまたはセクションの導入部
- ナビやロゴを含む
<main>
- そのページ固有のメインコンテンツ
- ページに1つだけ
<section>
- テーマごとの区切り
- 見出しが必要
<article>
- 単体で完結するコンテンツ
- 再利用可能
<aside>
- 補足情報
- サイドバー
- 関連記事
- 広告など
<footer>
- ページやセクションの締め
設計の判断フロー
迷ったらこの順で考えます:
- これはページ全体か? →
<main> - 独立して配信できる? →
<article> - テーマの区切り? →
<section> - 補足情報? →
<aside> - ただのレイアウト? →
<div>
ブログ記事用テンプレ
<main> <article> <header>
<h1>記事タイトル</h1>
<p>公開日</p>
</header> <section>
<h2>見出し1</h2>
<p>本文</p>
</section> <section>
<h2>見出し2</h2>
<p>本文</p>
</section> <footer>
<address>
著者:山田 太郎
</address>
</footer> </article></main>
これが最も自然な構造です。
LP(ランディングページ)テンプレ
<main> <section>
<h1>キャッチコピー</h1>
</section> <section>
<h2>課題提示</h2>
</section> <section>
<h2>解決策</h2>
</section> <section>
<h2>料金</h2>
</section> <section>
<h2>お問い合わせ</h2>
</section></main>
LPは基本的に「章構造」。
よくあるNG設計
div地獄
<div class="wrap">
<div class="inner">
<div class="box">
意味がありません。
見出しなし section
<section> は見出しが前提。
なんでも article
独立性がなければ使わない。
なぜこれが重要?
正しく設計すると:
- SEOが安定
- スクリーンリーダーが理解しやすい
- アウトラインが整理される
- チーム開発で読みやすい
- 保守が楽
実務での黄金ルール
① 見た目ではなく意味で考える
② レイアウトはCSSに任せる
③ セクションには必ず見出し
④ articleは独立コンテンツのみ
⑤ divは最後の手段
超簡易チェックリスト
- mainは1つ?
- 見出し階層は飛んでいない?
- sectionに見出しある?
- articleは独立している?
- addressの使い方は正しい?
まとめ
セマンティックHTML設計とは、
見た目を作ることではなく
意味を設計すること
です。
テンプレを持つだけで、
長期運用が楽になる
コードの質が上がる
SEOが安定する
アクセシビリティが向上する


