HTML5の概要

HTML5では、これまでと同じようにHTMLタグを使ってHTML文書を作成することができます。 また、CSSによりスタイルを制御する点、XHTML形式で作成すればXMLデータとして扱える点などもHTML4以前と変わっていません。

HTML4からHTML5になって、変更された点

コンテンツ・モデルの概念
HTML5の要素は、ブロック要素、インライン要素という概念は廃止され、コンテンツ・モデルと呼ばれるグループに分類されています。
これはHTML5で定義されている要素を、その機能、振る舞いによりグループに分けられています。
メタデータ・コンテンツ 自身や他の文書との関係を定義
フロー・コンテンツ 子孫にテキストなどを持つもの
セクショニング・コンテンツ 見出しと概要を付けられるもの
ヘッディング・コンテンツ 見出しとなるもの
フレージング・コンテンツ 段落、文節、語句など
エンベッディッド・コンテンツ 外部リソースの埋め込みをするもの
インタラクティブ・コンテンツ ユーザー操作に対応するもの
グローバル属性
HTML5で定義されている、すべての要素で共通に使える属性をグローバル属性と呼びます。
これまでも共通の属性として、よく使われてきたclass属性やid属性などだけでなく、HTML5から新たに定義された属性もあります。
新しい要素や属性が追加
新しく実装された要素としては、次の要素があります。
要素 HTML5の定義
section要素 一般的なドキュメント・セクションやアプリケーション・セクション
nav要素 ナビゲーションのリンクを伴うセクション
article要素 ドキュメント、ページ、アプリケーションなどを定義
aside要素 関連するが本筋とはやや異なる情報
hgroup要素 セクションの見出し
header要素 イントロダクションやナビゲーションの支援となるヘッダ
footer要素 フッター
figure要素 ドキュメントのメインのフローから単独のユニットとして参照されるコンテンツをマークアップ。
figcaption要素 figure要素コンテンツのキャプションや説明文を定義
time要素 24時間表記の時刻、新暦のグレゴリオ暦における正確な日付
mark要素 他のコンテキストとの関連性に起因した、参照用のマーク
video要素 動画を再生
audio要素 音声のURL
source要素 動画や音声などのURLや種類を指定
canvas要素 グラフィックスを提供
datalist要素 入力候補となるデータリスト
keygen要素 フォーム送信時にキーを発行
output要素 計算結果
meter要素 既知の範囲にある数量や、小数値
details要素 備考や操作手段などの詳細情報
summary要素 details要素のキャプション、説明文
command要素 ユーザーが呼び出すことができるコマンドを表します
menu要素 コマンドのリスト
これらにより、より明確に文書構造を示す、フォームの入力補助機能の充実、動画や音声のシンプルな埋め込みができます。
各要素については「タグ・リファレンス」を、ブラウザのサポート状況は「タグ・サポート状況」を参照してください。
既存の要素の利用用途の変更、新たな定義付け
要素はそのまま使えるものの、一部の要素ではHTML4.01から意味が変わったものには、次の要素があります。
要素 HTML4.01の定義 HTML5の定義
i要素 イタリック体 イタリック/斜体文字の範囲
声や気分を表すテキストの範囲や分類上の意味、技術用語、別の言語でいかにもその言語らしいフレーズ、思考、船の名前、そのほか一般的な印刷表現を表します。
em要素 強調 コンテンツの強調
コンテンツの特定の部分が持つ強調のレベルは祖先のemの数で表されます。 つまり囲む数が多ければ多いほど強調されることになります。 em要素では、重要性を伝えることはできません。強調のみです。重要性を伝えるためにはstrong要素が適切です。
strong要素 強い強調 コンテンツの強い重要性
コンテンツの特定の部分が持つ重要性のレベルは祖先のemの数で表されます。 つまり囲む数が多ければ多いほど重要性されることになります。 ※恐らく多く囲ったからといって、SEO的に有利になることはありません。ユーザーに対して重要であることを伝えるために利用するべきです。
small要素 テキストを小さく 細目といった注釈
通常は、免責条項、警告、法的制約、著作権表記などを説明する法律用語のことを指します。 細目は、帰属に使ったり、ライセンス要件を満たすために使うこともあります。 small要素は、短いテキストの範囲のみを想定したものであり、複数の段落、リスト、テキストのセクションなどといった、広範なテキストに使うのは適切とはいえません。
hr要素 水平線 段落レベルのテーマの区切り
hr要素は、段落レベルのテーマの区切りを定義します。 例えば、ストーリーの中でのシーンの区切りや、リファレンス本のセクションの中での他のトピックへの区切りなどです。
一部の要素や属性が廃止
廃止された要素(ブラウザ独自実装も含む)には、次の要素があります。
要素 HTML4.01の定義 代替え方法
acronym要素 略語(頭字語) ※abbr要素で対応
applet要素 JAVAアプレット ※embed要素やobject要素で対応
basefont要素 テキストの基準サイズ・基準色・基準フォントの指定 ※CSSのfontプロパティで指定
bgsound要素 効果音・BGMを鳴らす ※audio要素で対応
big要素 テキストのサイズを大きく ※CSSのfont-sizeプロパティで指定
blink要素 文字を点滅 ※CSSのtext-decoration: blinkで指定
center要素 センタリング ※margin:autoやtext-align: centerで指定
dir要素 リストを表示する ※ul要素に置き換える
font要素 フォントの種類・大きさ・色を指定する ※CSSのfontプロパティで指定
frame要素 フレームの指定 ※iframe要素やCSSで共通指定、またはスクリプト言語(javascriptやPHP)などで代替え
frameset要素 フレームセットの指定 ※iframe要素やCSSで共通指定、またはスクリプト言語(javascriptやPHP)などで代替え
isindex要素 検索キーワードの入力欄 ※form要素、input要素などで対応
listing要素 ソースをそのまま表示する(タグは解釈される) ※pre要素、code要素で対応
marquee要素 文字をスクロールさせる ※CSS3のmarqueeプロパティで指定
nobr要素 改行なしで表示する ※CSSのwhite-spaceプロパティで指定
noembed要素 プラグインが利用できない環境用の表示内容を指定する ※プラグインが利用できない環境用の表示が必要な場合には、embed要素、object要素で複数指定
noframes要素 フレームが表示できない環境用の表示内容を指定する ※iframe要素やCSSで共通指定、またはスクリプト言語(javascriptやPHP)などで代替え
plaintext要素 ソースをそのまま表示する ※MIMEタイプに"text/plain"を指定
rb要素 ルビをふる文字を指定する ※ruby要素内に直接ルビベースを記述、rb要素は省略する
spacer要素 スペースを挿入する ※CSSのmarginやpaddingプロパティで指定
strike要素 打ち消し線を引く ※del要素、またはCSSのtext-decorationプロパティで指定
tt要素 等幅フォントで表示する ※CSSのfont-familyプロパティで指定
u要素 テキストに下線(アンダーライン)を引く ※CSSのtext-decorationプロパティで指定
xmp要素 ソースをそのまま表示する ※pre要素、code要素で対応
APIの追加
APIを利用することで、単純なHTML文書を作成するだけではなく、より高度な機能を持ったウェブアプリケーションを構築することが可能となります。

各主要ブラウザのサポートは?

ブラウザにより、実装の差異がかなりみられます。詳しくは「タグ・サポート状況"」をご確認ください。
傾向としては、Google Chorme、Operaの実装スピードがはやく、IE系の実装が遅れがちになっています。
特にIE9は、windows XPにインストールできないため、今後IE8がひとつの壁となることは確実といえます。(少なくとも数年間は・・・)
とはいえ、いますぐHTML5が利用できないわけではなく、スマートフォン向けで採用するとか、機能が足りないブラウザはCSSやJSで機能を補完して実装することもできます。