HTML ( HyperText Markup Language ) は、Webマシンが配給するコンテンツを Google にとって分かりやすくするためのマークアップタグ。
CSS や JavaScript と併用すればコンテンツの見栄えは芸術の域にまで昇華する。
主な目的
Web文書にタグ付けして文書全体を意味的にキレイに整理する。
- Google など検索エンジンに文書構造を正しく伝える
 - HTMLタグに CSSを適用して文書全体をデザインする
 
文書構造や意味付けがしっかりした(セマンティックな)Web文書を作成すると、そのWeb文書は構造的には W3C標準に準拠した素晴らしいものとなる。
多種多様なコードによって的確な意味付けをすると、そのWeb文書は Googlebot から見て意味の豊富なものとなり、サイバー世界をキレイに整理したがっている Google からも好かれることになる。
加えて、CSS を利用して人間学的にも良いデザインをすると、その Web文書は多くの人たちにとっても素晴らしい印象や説得力を与えるものとなる。
メインルート
html
 | 
HTML文書においてルート(起点)となるトップレベル要素。ルート要素とも呼ばれる。他のすべての要素はこの要素の子孫として配置される | 
|---|
文書メタデータ
meta
 | 
他のメタ要素で表すことができないメタデータを定義。charset、http-equiv、name ( description、author、googlebot、robots を含む ) など | 
|---|---|
title
 | 
ページの題名を定義。ブラウザのタイトルバーやページのタブに表示される | 
base
 | 
ページ内に含まれるすべての相対URL の基点となる URL を定義。アンカータグなどが参照する | 
link
 | 
現在のページと外部リソースとの関係を定義。ナビゲーションの関係構造の定義など。スタイルシートをリンクするためによく利用される | 
style
 | 
ページ全体あるいは一部分のスタイル情報を定義 | 
セクショニングルート
body
 | 
HTML文書のコンテンツを表す。ページ内に一つだけ配置する | 
|---|
コンテンツセクショニング
論理的に大まかなアウトラインを作成するためのタグ。
header
 | 
導入的なコンテンツ、特にロゴやナビゲーションなどのグループを表す。タイトルや <h1>見出し以外に、検索フォーム、作者名なども含めることができる | 
|---|---|
nav
 | 
サイトの主要なナビゲーション機能を提供しているセクションを表す。一般的な例としてはグローバルメニュー、目次、索引など。ページ内で複数利用が可能。ただし <footer> などによく含められるリンク等に使う必要はない | 
main
 | 
そのページの主要な内容を表す。主要な内容とはページの中心的な話題、またはアプリケーションの中心的な機能に関係すること。ゆえに、他ページで繰り返されているものは除くべき。1つのページに1つ | 
article
 | 
ページ内で自己完結しており、フィードなどで個別に配信や再利用できる構成物を表す。例えば、新聞や雑誌の記事、ブログ記事、フォーラムの投稿など。ゆえに、このセクションは見出し情報などを含んでいるべき | 
<h1>~<h6>
 | 
セクションの見出しを6段階で表す。 <h1> が最上位で <h6> が最下位。見出しレベルをスキップしてはいけない | 
aside
 | 
そのページのメインコンテンツと間接的な関係しかない部分を表す | 
footer
 | 
ページの終端を表す。通常はサイト全体あるいは特定のセクションの著者情報、連絡先、関連サイトへのリンク、コピーライト表示などを含める | 
address
 | 
そのページやセクションを提供しいている個人、団体、組織の連絡先(SNSアカウントも可)の提供を表す。タグ内に必ず連絡先の名称を含める。一般的には <footer> 内に配置される。一行利用ではなく  と同じように文章でも利用できる  | 
section
 | 
一つのまとまりを表す。意味的に他に妥当なタグがない場合に利用。例えば、検索結果の一覧、地図の表示など。ゆえに、通常は見出しが含まれる。そのセクション単独で配信して意味がある場合は <article> を利用すべき。スタイル付の目的のみで区切る場合は   を利用すべき
  | 
ブロックコンテンツ
論理的により細かい意味付けをするためのタグ。
p
 | 
段落を表す | 
|---|---|
ul
 | 
順不同リストを表す。普通は黒点などの行頭記号を伴って表示される | 
ol
 | 
順序リストを表す。普通は連番の数字を伴って表示される | 
li
 | 
リスト項目を表す。<ul>、<lo> いずれかの子要素として配置 | 
dl
 | 
定義リストを表す。<dt> と <dd> の組み合わせをリスト化したもの。一般的な使用例として、用語集、キーと値のペアリストなどが挙げられる。<dt> と <dd> が複数ある場合は、デザイン付のためにそれらを <div> で囲んでも良い | 
dt
 | 
用語を表す。<dl> の子要素としてのみ利用できる | 
dd
 | 
<dt> の詳細や定義を表す。<dt> の兄弟要素 | 
blockquote
 | 
引用文であることを表す。cite属性によって引用元URL を明示できる。<p> を囲むように使う | 
hr
 | 
テーマの意味的な区切りを表す。例えば、シーンの移行や話題の区切りなど | 
figure
 | 
画像やグラフ、図表、詩などの自己完結型のコンテンツを表す。多くの場合 <figcaption> を内包するかたちで利用される | 
figcaption
 | 
<figure> の説明、残りのデータやイラストを表す。<figure> の子要素 | 
pre
 | 
整形前テキスト ( preformatted text) を表す | 
div
 | 
ブロックレベルの汎用コンテナ。主に class属性や id属性を利用したデザイン付のために利用される。<article> や <p> など意味的に適切なタグが他にない場合に限り利用。lang属性を利用して他言語で書かれていることを表すこともできる | 
インラインコンテンツ
より細かい意味付けをするために <p> や <pre> などのブロックレベル要素内で利用されるタグ。
a
 | 
同一サイト内、あるいは他サイトへのアンカーリンクを表す。Web を「Web」たらしめている画期的なタグ | 
|---|---|
b
 | 
キーワード、製品名など、読者の注意を引きたいテキストを表す。「重要である」という意味はない。さらに、文字列の装飾のために利用すべきではない。HTMLタグは「あくまで意味付け」が目的 | 
u
 | 
スペルミスの明示など、非言語的な注釈を表す。ハイパーリンクと誤解されるような使用は避けるべきなのでスタイルに「text-decoration: red wavy underline;」などを指定できる | 
i
 | 
外国語のフレーズ、技術用語など、通常の文脈から少し外れるテキストを表す | 
s
 | 
すでに正確あるいは適切ではなくなった事柄を表す。ただし文章を修正する場合は <del> と <ins> を利用 | 
em
 | 
語調による強調を表す。文章内で声による強調を行いたい部分に利用。読み上げソフトなどはその部分を強調して読み上げることになる | 
strong
 | 
重要性、重大性、または緊急性が高いテキストを表す。いくつかの単語が周囲のコンテンツと比較して重要であることを明示できる | 
abbr
 | 
略語や短縮語など、より完全な説明が必要なテキストを表す。title属性に完全な説明を記述するとマウスホバーでそれが表示される。ただし、あまり普及していないので完全な説明は title属性にではなく文章に直接記述することが望ましい | 
q
 | 
引用であることを表す。最近のブラウザは <q> で囲まれたテキストを自動的に引用符で囲む実装がなされている。cite属性によって引用元を明示できる | 
cite
 | 
書籍、エッセー、映画、Webページ、ツイートなどの創作物を表す。人名は含めないのが無難。<blockquote> や <q> タグで出典を記述するときは cite属性を利用できる | 
dfn
 | 
ページ内で定義されている単語であることを表す。<a>タグを利用してページ内の定義場所へアンカーを貼ることもできる。ただし、このタグの利用範囲はかなり限定的なものだと言える | 
small
 | 
コピーライト表示や法的表記のように注釈として小さく表示される文を表す | 
time
 | 
時刻や日付、タイムゾーンを表す。このタグの目的は機械が読める形式を提供すること。明記されている日時を直接このタグで囲んでも良いし、datetime属性によってより詳細な日時を定義しても良い | 
data
 | 
value属性によってそのテキストが何らかのデータを保持していることを明示する。例えば、商品名に対する商品番号など | 
code
 | 
プログラミングコードであることを表す。短い機能名から複数行に渡るコードまでを明示できる | 
var
 | 
プログラミングコード内の変数名や数式の変数名を表す | 
samp
 | 
コンピュータが出力するような文字列を表す。例えば、コンソール画面に表示されるテキストなど | 
kbd
 | 
<samp> で表示されるテキストの中の、特にユーザによるキーボード入力などによるテキストを表す | 
ruby
 | 
東アジアで利用される「漢字」の発音を表す。発音情報は子要素として <rt> に定義する | 
rt
 | 
発音情報を表す。<ruby> に対応しているブラウザの場合、ルビ文字列は該当テキスト上部に小文字で表示される | 
rp
 | 
の上部表示に対応していないブラウザのために発音情報のコンテナを定義する。通常は「()」を利用。<ruby> に対応していないブラウザの場合「()」の中に発音情報が表示されるようになる | 
rtc
 | 
ルビが振られている文字列の意味を表す。 例えば、漢字に対する英語表記など。ただし、多くのブラウザが未対応 | 
sub
 | 
脚注番号や、変数、化学式などに利用される「下付き数字」を表す。小さめの数字をテキストのベースラインより下に表示 | 
sup
 | 
べき乗、序数などに利用される「上付き文字列」を表す。小さめの文字列をテキストより高いベースラインに表示 | 
bdi
 | 
左から右で書かれた文章(日本語など)の中で右から左で書かれた文章(アラビア語など)を表す。スタイル「unicode-bidi: isolate;」でも同様の表示がなされるが <bdi> では意味的にも正しくレンダリングされる | 
bdo
 | 
dir属性によってテキストの書式方向を指定。例えば、rtl(右から左)、ltr(左から右) を指定できる | 
mark
 | 
参照などの目的のためにマーカーで目立たせたいテキストを表す。例えば、検索されたキーワードをハイライトする場合や、引用文の中の特定のテキストをハイライトする場合など | 
br
 | 
文中に改行を生成する。 住所や詩の表記など、改行が重要になる場合に便利 | 
wbr
 | 
文章中のテキスト内でブラウザが改行しても良い場所を指定する | 
span
 | 
インラインレベルの汎用コンテナ。主に class属性や id属性を利用したデザイン付のために利用される。意味的に適切なタグが他にない場合に限り利用。lang属性を利用して他言語で書かれていることを表すこともできる | 
テーブル
table
 | 
行と列によって整理された二次元データを表す | 
|---|---|
caption
 | 
表のタイトルを表す。使用する場合は常に <table> の子要素として配置される | 
thead
 | 
表の項目セクションを表す | 
tbody
 | 
表の本体セクションを表す | 
tfoot
 | 
表の下部項目セクションを表す | 
tr
 | 
表の各行を定義する。通常は <th> や <td> を含む | 
th
 | 
ヘッダーセルを表す | 
td
 | 
スタンダードセルを表す | 
colgroup
 | 
表内にある列をグループ化する | 
col
 | 
表内にある列を定義する。<colgroup> の子要素 | 
編集履歴の明示
del
 | 
ページから削除された文章であることを表す | 
|---|---|
ins
 | 
ページに追加された文章であることを表す | 
フォーム
(Webアプリを作るようになったらまとめる)
スクリプト
script
 | 
ページ内で実行するコードを埋め込んだり参照したりするために利用。普通は JavaScript が埋め込まれる | 
|---|---|
noscript
 | 
閲覧者のブラウザでスクリプトが無効になっている場合に表示するセクションを表す | 
canvas
 | 
CanvasスクリプティングAPI や WebGL API を利用して、グラフィックスやアニメーションを描画できる | 
埋め込みコンテンツ
| picture | 表示デバイスを指定する場合に <img>タグと <source>タグを囲む | 
|---|---|
img
 | 
画像であることを表す。alt属性には必ず画像内容の具体的な説明を入力。画像サイズはピクセルで指定。HTML5 では srcset属性や sizes属性を利用して表示デバイスに合わせた柔軟な画像指定ができる | 
source
 | 
<picture>、<video>、<audio>タグ内で利用され表示デバイスごとに複数のメディアソースを定義できる | 
video
 | 
動画コンテンツであることを表す | 
audio
 | 
音声コンテンツであることを表す | 
track
 | 
<video>、<audio> の子要素として利用。字幕やチャプタータイトルなど、時系列データを kind属性によって複数定義することができる | 
map
 | 
イメージマップ(クリック可能なリンク領域)を作成する。<area> と一緒に利用 | 
area
 | 
<map> の子要素。クリック可能なリンク領域を指定する | 
embed
 | 
外部コンテンツの埋め込みを表す | 
object
 | 
Flash動画など、外部リソースを表す | 
param
 | 
<object> の引数を定義する |