The HTML header element is a tag used to group the title, logo, navigation links and other introductory content at the top “header” area of a page or section.
HTMLのheader要素(HTMLヘッダー)は、ページや記事のタイトル・ロゴ・ナビゲーションなど、画面の「顔」になる導入部分をひとまとめにするためのタグです。
<header> 要素は、いわゆる「HTMLヘッダー」と呼ばれる、ページやセクションの導入部分を表すために使います。ここには見出し(<h1>~<h6>)、ロゴ、ナビゲーション、検索フォームなど、そのページやセクションを理解するための手がかりとなる情報をまとめます。
多くの場合、ページやセクションの先頭に配置されますが、重要なのは「位置」ではなく「導入部」であることです。
<header> は直近のセクショニング要素(例:<section>, <article>)やセクショニング・ルート(例:<body>, <dialog>)の導入部を表します。
例えば、ページ全体のヘッダーとして使うこともできますし、記事ごとに個別の <header> を用意することも可能です。
<h1>~<h6>)HTMLまわりでは、「ヘッダー」という言葉がいくつかの意味で使われますが、このページで扱っているのは <header> 要素(HTMLヘッダー)です。
<head> 要素は、タイトルやメタ情報など「ブラウザーや検索エンジン向けの設定」を書く場所で、画面上のヘッダーとは別物です。また、「CSSでページ上部にヘッダーを配置するレイアウト」や「HTTPヘッダー」とも役割が違います。
画面に表示される「ページの上部分」をマークアップしたいときは、ページ全体やセクションの導入部として <header> を使う、というイメージで捉えておくと混乱しにくくなります。
<header> は 見出しを必ず含む必要はありませんが、見出しと一緒に使うことが推奨される場合が多いです。見出しなしで、概要やナビゲーションだけをまとめても問題ありません。
ページの中で複数の <header> を使うことができます。ページ全体のものと、各記事やセクション専用のものを併用できます。
禁止されている配置があります。<header> は以下の要素の内側に入れてはいけません:
<address><footer><header><header> 自体にはランドマークロールは付きません。
ページ全体の共通ヘッダーをランドマーク化したい場合は、1 ページに 1 つだけ role="banner" を付けることを検討してください。
記事やセクションごとの <header> には通常ランドマークは不要です。
HTML
<body>
<header role="banner">
<h1>私のブログ</h1>
<nav>
<a href="/">ホーム</a>
<a href="/about">プロフィール</a>
</nav>
<form action="/search" role="search">
<input name="q" aria-label="サイト内検索">
</form>
</header>
<main>
<!-- ページ本文 -->
</main>
</body>
HTML
<article>
<header>
<h2>最新のお知らせ</h2>
<p>イベントやアップデートの概要をまとめています。</p>
<nav>
<a href="#events">イベント一覧</a>
<a href="#updates">更新情報</a>
</nav>
</header>
<p>…本文がここに続きます…</p>
</article>
<header> はページやセクションの導入部分を表す要素<address> / <footer> / 別の <header> の中には置けないrole="banner" を利用初心者の方はまず「ページや記事の“顔”を作る要素」と覚えるとわかりやすいです。
<header> を付けないといけませんか?<head> と <header> の違いは何ですか?<head> はタイトルやメタ情報など「ページ設定」を書く場所、<header> は画面上に見える「導入部分」をまとめる要素です。役割も表示場所も別物です。<header> は1つだけにした方が良いですか?<header> を置いてかまいません。role="banner" を付けることがよくあります。記事内の <header> には通常ランドマークは付けません。<footer> の中に <header> を入れてしまう<header> ではなく <nav> や <div> を使いましょう。role="banner" を付けてしまうrole="banner" は 1 ページに 1 箇所だけにします。サイト共通のヘッダーのみに付けるようにしましょう。<head> の中に <header> を書いてしまう<header> は本文側(<body> の中)に書きます。<head> の中にはメタ情報やタイトルなどだけを入れます。<header> を使ってしまう<header> はあくまで「導入部分」のための要素です。サイドバーや単なる装飾の囲み枠は、<aside> や <div> など別の要素を使いましょう。