HyperText Markup Language

HTMLという名前は従来はHyperText Markup Languageの略称だったが、2023年4月現在最新の規格であるWHATWGのHTML Living Standardには「HyperText Markup Language」という名前の記載はなく、単にそのままHTMLと呼ばれている。または（ハイパーテキスト マークアップ ランゲージ）廃止された従来の規格（HTML5.2まで）で使われていた呼称。現在でもISO/IEC 15445:2000で使用されている。は、ハイパーテキストを記述するためのマークアップ言語の1つで、プログラミング言語ではない。主にWorld Wide Web（WWW）において、ウェブページを表現するために用いられる。ハイパーリンクや画像等のマルチメディアを埋め込むハイパーテキストとしての機能、見出しや段落といったドキュメントの抽象構造、フォントや文字色の指定などの見た目の指定、などといった機能がある。

ティム・バーナーズ＝リーによってSGMLを元に開発された。1993年に最初のドラフトが公開され、最初期においてはIETFが、1996年以降はW3Cが、2019年以降はWHATWGが規格の策定、仕様公開を行なっている。

 特徴 
HTMLは木構造（入子構造）のマークアップ言語であり、形式言語である。「プレーンテキストの文書を要素で括って意味付け」という一般的な説明は間違いである。「『タグ』と『タグ』で括られたもの全体」が「要素」（element）であり、タグすなわち要素ではない。マークアップ言語としての特徴は、先祖であるSGMLや、兄弟のXMLと共通しているため、以下ではWWWというシステムにおける「ハイパーテキスト記述言語」としての側面についてのみ記述する。

HTMLの要素には、文書を表現するものとしてごく一般的なものである見出し（ヘッドライン、h1〜）、段落（パラグラフ、p）、ハイパーテキストとして特徴的な「アンカー」（a）に関係するもの、画像など（imgなど）の電子メディア的なもの、などがある。また文字色の指定などといった、意味ではなく直接見た目のみを指定するようなものは、近年ではスタイルシートなどに分離するべきとされているが、歴史的事情、及び、スタイルシートよりもこの、HTMLでの記述が簡便になる場合が度々あること例えば、太字指定の<b></b>等。から現在でもしばしば使われている。その他主要な要素は、HTMLの要素の記事で解説している。

形式言語として見た場合「構文規則」（あるいは文法）に相当する「スキーマ」は、HTML4まではDTDとして公開され要素ごとに記載することの出来る属性、内容に含むことの出来る要素などが定められていた。HTML 4.01では厳密なもの、HTML 3.2からの移行過渡期のためのもの、フレームを用いた文書のためのものといった3つのDTDが定義されていた。

HTML 3.2では見た目を左右する要素や属性が追加されたがHTMLは本来文書構造を示すためだけにその存在意義があり、それらの要素は目的に反するものとされた。そのため視覚的・感覚的効果を定義する手段としてスタイルシート（一般にはその中のCSS）が考案された。見た目を左右する要素や属性の一部はHTML4以降では非推奨とされており、HTML 4.01 では定義されていないので使用できない。ただしHTML 4.01 で定義され、非推奨とされない要素や属性の一部にも見た目を左右するものがある。装飾的な視覚表現のためにそれらの要素や属性を用いているのであればその内容に適する要素を用いた上で、スタイルシートで表現を指定するのが望ましいとされている。

 標準仕様 
+ HTMLの有効な標準仕様（2023年4月現在） 文書  策定者  構文 説明  開発時期 HTML Living Standard WHATWG   現在のデファクトスタンダード。HTML文書だけでなく、DOMなどのAPIも含む仕様となっている。2021年にはHTML5の勧告が廃止され、新たなW3C勧告となった。  2004年～現在 ISO/IEC 15445:2000(ISO-HTML) ISO/IEC JTC 1/SC 34  SGML 2000年に発表され、2003年に改訂された訂正なので、改定版も名称はISO/IEC 15445:2000のまま。HTML 4.01 Strictを元に、より厳密に規格化された。日本語に翻訳されたものが、JIS規格の「JIS X 4156:2000」「JIS X 4156:2005」となっている。  2000年～2003年5年毎にレビューと承認が行われており、手続き上は現在も有効なISO規格である。最も新しい日付は2023年のもの。ただし2004年以降、文書の改訂はない。

+ 失効済みのかつての標準仕様（またはドラフト）の一覧 名称 策定者  文書  発効日  失効日 HTMLバージョン番号はないが「HTML 1.0」などとも呼ばれるIETF  Hypertext Markup Language (HTML)  -ドラフトのみ  - HTML+ HTML+ (Hypertext markup format)  -  -HTML 2.0   1995年11月24日 2000年6月   1995年11月25日   1996年5月   1996年8月   1997年1月 HTML 3.0 HTML 3.0 Draft  -ドラフトのみ  -HTML 3.2W3C  HTML 3.2 Reference Specification現在はリダイレクト。Internet Archive参照。  1997年1月13日 1997年12月Introducing HTML 3.2 には「HTML 3.2 was superseded by HTML 4.0 in December, 1997.」とあり、仕様書には「Superseded 15-March-2018」とある。前者はHTML 4.0を、後者はHTML5を後継仕様として案内している。 HTML 3.2 Reference Specification修正版。現在はリダイレクト。Internet Archive参照。  1997年1月14日HTML 4.0 HTML 4.0 Specification  1997年12月18日 2018年3月27日HTML 4.0 Specification(superseded) HTML 4.0 Specificationrevised（改訂版）  1998年4月24日 HTML 4.01 HTML 4.01 Specification  1999年12月24日  2018年3月27日HTML 4.01 Specification(superseded) HTML5 HTML5  2014年10月28日  2018年3月27日HTML5(superseded)HTML 5.1 HTML 5.1  2016年11月1日 2021年1月28日HTML 5.1 2nd Edition(superseded)HTML 5.1 2nd Edition  2017年10月3日 HTML 5.2 HTML 5.2  2017年12月14日  2021年1月28日HTML 5.2(superseded) HTML 5.3HTML 5.3  -ワーキングループノートとして公開-

以下、言語仕様については歴史的な経緯など特別な事情がない限り、WHATWGの策定する「HTML Living Standard」を基準に説明を行う。失効済みの仕様については下記「#歴史」の項も参照。

 言語仕様 

HTMLはドキュメント構造（モデル）、各要素の役割/意味（セマンティクス）、表現する構文（シンタックス）を定義する。

 構造 
HTMLは要素（Element）の木構造を扱う。各要素は以下の3つから構成される。

 要素名
 属性（attribute）: 0個以上。属性名と値のペア、値は文字列に限定"3.2.4.1 Attributes    An attribute value is a string." WHATWG. (2023). HTML Living Standard - Last Updated 11 January 2023.
 子要素: 0個以上

要素が子要素をもつため、総体として要素の木構造でモデル化される。

 構文 
HTMLを表現するための構文としては、HTML構文（HTML Syntax）およびXML構文（XML Syntax）が存在する。XML構文で記述されたHTMLはかつてXHTMLと呼ばれていたが、現在の仕様ではそのような呼び分けは行わない"The XML syntax for HTML was formerly referred to as "XHTML", but this specification does not use that term (among other reasons, because no such term is used for the HTML syntaxes of MathML and SVG)." WHATWG. (2023). HTML Living Standard - Last Updated 2 May 2023.。また、現在の仕様ではHTML構文の使用が推奨されている"HTML vs XML syntax ... There are various concrete syntaxes that can be used to transmit resources that use this abstract language, two of which are defined in this specification." WHATWG. (2023). HTML Living Standard - Last Updated 11 January 2023.。

HTML文書は文書型宣言とHTML要素、そして（任意の）BOM、コメント、空白文字からなるXML構文の場合は任意の処理命令も記述可能。

HTML構文の場合、要素は<要素名 属性名="値">コンテンツ</要素名>というテキスト形式で記述される。コンテンツを挟む<要素名></要素名>はタグと呼ばれ、前方部分は開始タグ、後方部分は終了タグと呼ばれる。コンテンツ部に子要素をもつことで総体としての木構造が表現される。

また、子要素をもたない単一の構文<要素名 />は単一/単独タグ英語表記ではSingle tagsと記載される。またHTML5では空要素MDN Web Docs - Void elements、2024年3月12日閲覧。と呼ばれる(例：<br /><img src="something.jpg" />)。これらはしばしば / が省略されることがある(例：<br><hr>)。

注意点として、要素はタグではない、1999年12月24日。要素は構造上規定される存在であり、構文上の表現であるタグと併記されるものではない。また要素はタグ+コンテンツで表現されるため、タグは要素を表現するものの一部に過ぎない。

 機能 
HTMLは異なる意味をもつ様々な要素を定義する"Elements, attributes, and attribute values in HTML are defined ... to have certain meanings (semantics)." WHATWG. (2023). HTML Living Standard - Last Updated 11 January 2023.。各要素では受け入れ可能な属性が定義され、要素の振る舞いを調整できるようになっている。ほとんどの要素では、要素名が機能を指し、属性が自身の特性を指し、子要素が収納される別コンテンツを指す。

例えば<title>はタイトルを意味し、<a>はハイパーテキストアンカーを意味する。<a href="https://example.com">ではhref属性によってリンク先が指定されている。

HTMLは要素のセマンティクスを定義しているに過ぎないので、それを具体的にどう表現・利用するかは利用側に委ねられている"These definitions allow HTML processors ... to present and use documents and applications in a wide variety of contexts that the author might not have considered. ... HTML conveys meaning, rather than presentation" WHATWG. (2023). HTML Living Standard - Last Updated 11 January 2023.。通常はウェブブラウザでの利用が想定されているが、音声対話エージェントが利用するケースもあり得る。

HTML文書
HTMLで書かれた文書をHTML文書と言い、HTMLでは、まず文書型宣言を書く。HTML構文を用いる場合は文書型宣言を以下の通り書かなければならない古いバージョンのHTML、またはXML構文を用いる場合はこの限りではない。

<!DOCTYPE html>

次に基本的なHTML文書の例を挙げる。

<!DOCTYPE html>
<html lang="ja">
 <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width">
  <title lang="en">HyperText Markup Language - Wikipedia</title>
 </head>
 <body>
  <article>
   <h1 lang="en">HyperText Markup Language</h1>
   <p>HTMLは、<a href="http://ja.wikipedia.org/wiki/SGML">SGML</a>
      アプリケーションの一つで、ハイパーテキストを利用してワールド
      ワイドウェブ上で情報を発信するために作られ、
      ワールドワイドウェブの<strong>基幹的役割</strong>をなしている。
      情報を発信するための文書構造を定義するために使われ、
      ある程度機械が理解可能な言語で、
      写真の埋め込みや、フォームの作成、
      ハイパーテキストによるHTML間の連携が可能である。</p>
  </article>
 </body>
</html>

このHTML文書は次のような構造を示している。

<!DOCTYPE html>:文書型宣言。このテキストが最新のHTMLであることを示す。
<html lang="ja">:html要素。また、lang="ja"で、言語コードの言語が使われていることの明示。
<head>:head要素（この文書のヘッダ情報の明示）
<meta ... (/)>:meta要素（文書のメタ情報）。ここでは、charset="UTF-8"で、文字コードが、「UTF-8」であることを示す。
<meta ... (/)>:meta要素。name="viewport"で、ビューポートの設定であることを示し、content="width=device-width"で、設定は、幅を画面の幅に合わせることを示している(Googleは推奨)。
<title lang="en">:title要素（この文書のタイトル)の明示。また、この部分はの言語が使われていることの明示。
<body>:body要素（この文書の内容の明示）
<article>:article要素（この要素が、記事であることを明示）
<h1 lang="en">:h1要素（第一レベル)の見出しを明示。また、lang="en"で、この部分の見出しはの言語が使われていることを明示。
<p>:p(段落)要素の明示。
<a href="http://ja.wikipedia.org/wiki/SGML/">SGML</a>:a(アンカー)要素（他のリソースへのアンカー)であることの明示。hrefで、「""」内にリンク先のURLを記述する。
<strong>:strong要素（強い強調であることの明示）

タグによって文字列を括ることによりその文字列の意味付けがなされる。ユーザーエージェントはそれを解釈して、例えば h1要素で括られたテキストは「その文書中で最も重要な見出し」という意味を持つようになり、 GUI によるウェブブラウザであれば大きく太字で表示するなどする。また、スタイルシートを用いることで見た目などを指定することができるようになっている。

なお、通常はマークアップ中に改行文字を挿入してもウェブブラウザ上では描画されない。改行を行う場合は<br>要素を用いる必要があるが、<br>要素は本来見た目のためではなく、詩や住所のように実際にコンテンツの一部である改行のためにのみに使用されなければならない。

歴史
1989年、CERNのティム・バーナーズ＝リーは、オリジナルのHTML（および多くの関連したプロトコル、HTTPなど）のメモを提案し、1990年5月にコード化した。NEXTSTEPの動作するNeXTcubeワークステーション上で開発された。当時のHTMLは仕様ではなく、直面していた問題を解決するためのツール群であった。直面していた問題とは、ティム・バーナーズ＝リーやその同僚たちがどのように情報や進行中の研究を共有するかということである。彼の成果は後に国際的かつ公開のネットワークの出現として結実し、世界的な注目を集めることになった。

HTMLの初期のバージョンはゆるい文法規則によって定義されており、ウェブ技術になじみのない層に受け入れられる助けとなった。ウェブブラウザはウェブページの意図を推測し、レンダリングを実行するのが一般的であった。やがて公式規格においては厳格な言語構文を作ることを志向するようになっていったが、それに加え、ウェブブラウザの挙動を元に構文エラーの取り扱いも規格に含めることで、既存のウェブページに対する互換性の維持が図られている。

HTMLが公式な仕様として定義されたのは1990年代からである。それは従来のマークアップ言語であるSGMLに、インターネットのためのハイパーテキストの機能を取り入れるというティム・バーナーズ＝リーの提案に大きく影響を受けたものだった。

1993年にはIETFからHTML仕様書バージョン1.0が公開され、SGMLからの拡張として文法定義のDTDを持つようになった。また1994年にIETFのHTMLワーキンググループが発足した。しかし、2.0以降のIETFの元での開発は他の開発との競合から停滞した。1996年からはW3Cによって商用ソフトウェア・ベンダーからの支援も受け、HTMLの仕様が標準化されている。また2000年からは国際標準ともなった（ISO/IEC 15445:2000）。2017年のHTML 5.2をもってW3CによるHTML仕様の勧告は終了し、2019年からはW3Cに代わりWHATWGが仕様の策定を行うようになった。以降は仕様が随時更新されるようになり、バージョン番号は廃止されている。

HTML 1.0、HTML+
1993年6月に、IETFのIIIR Workingグループより提出されたHTML仕様書がインターネット・ドラフトとして発表された。本来はバージョン番号が付いていないが通常HTML 1.0と呼ぶ。このドラフトはティム・バーナーズ＝リーおよびダニエル・コノリーによって、ティム・バーナーズ＝リーの出したHTML Design Constraintsに極力従うように書かれた。

1993年11月に、HTMLの上位互換な HTML+が発表された。テーブルなどが追加になっている。HTML+仕様書。

HTML 2.0

1995年11月に、IETFのHTMLワーキンググループによって （日本語訳）として仕様が発表された。下記の補助的なRFCもリリースされた。HTML 2.0はによって廃止されHTMLはIETFではなくW3Cが管理することとなった。
 1995年11月：フォームベースのファイルアップロード。
 1996年5月：テーブル。
 1996年8月：クライアントサイドイメージマップ。
 1997年1月：HTMLの国際化。（非公式な日本語訳）。「HTML i18n」とも呼ばれる。日本語を扱えるHTMLのバージョンとしては、最も古い。

HTML 3.0、HTML 3.2
HTML 3.0は策定作業が行われたが、ドラフトの段階で策定途中に破棄された。HTML 3.0仕様書。

1997年1月14日に、HTML 3.2がW3C勧告として仕様が発表された。HTML 3.2 Reference Specification（非公式な日本語訳）。

HTML 4.0、HTML 4.01
1997年12月18日に、W3C勧告としてHTML 4.0の仕様が発表された。HTML 4.0は1998年4月24日に仕様が改訂された。この仕様にいくらかのマイナーな修正が加えられたHTML 4.01は1999年12月24日にW3C勧告となった。の他にHTML 3.2からの移行過渡期のためのとフレームを使うことのできる の3つのスキーマを持つ。

2018年3月28日に代替された勧告に指定され、最新の勧告を参照することを推奨されている。

日本規格協会による和訳を原案とする経済産業省の標準情報 TR X 0033:2002

内田明らによる和訳

XHTML

HTML 4.01をベースに文法をXML構文化した派生言語。HTMLではないが、HTMLに代わる次世代言語として開発された。2000年にXHTML 1.0、XHTML 1.1がW3C勧告となったが、その後開発が始まったXHTML 2.0はHTMLとの互換性を廃したことでブラウザ開発者やウェブ開発者から大きな反発を受けた。このことがW3Cに対抗して設立されたWHATWGに後年HTMLの管理が移される遠因にもなった。XHTML 2は結局完成しないままXHTML自体の開発が2009年に終了。ただしXHTML 2.0に搭載予定だった一部の新要素はHTML5に引き継がれている。

ISO/IEC 15445:2000
ISO/IEC JTC 1による規格。HTML 4.01 Strictをベースにさらに厳格化したサブセット規格で、スクリプト機能が取り除かれている。日本国内では同様の規格がJIS X 4156:2000というJIS規格にもなっている。

ISO/IEC 15445:2000は2003年に訂正版が発行された（ただし訂正なので、その後も名称はISO/IEC 15445:2000のまま）。JIS X 4156は2005年に改正され、JIS X 4156:2005となっている。

HTML5およびHTML Living Standard
サムネイル|HTML5のロゴ

前述のXHTML 2への対抗規格として2004年に発案され、新たに設立されたWHATWGが開発を始めた仕様で、当初は「Web Applications 1.0」という名称だった。XHTML 2が失敗に終わったため、2007年にはW3Cも開発に合流し、HTMLの正式な後継規格として「HTML5」と呼ばれるようになった。しかしWHATWGとW3Cの共同開発は両者の開発方針の違いにより短期間で終了する。WHATWGは仕様書は必要に応じて随時更新していく方針で、一方W3Cはある程度固定された仕様書を公開する方針だった。共同開発が終了した2011年、WHATWG側のHTML5仕様は「HTML Living Standard」に名称変更され、W3CはHTML Living Standardに独自の修正を加え、規格としてまとめたものを「HTML5」等のバージョン番号を付けて勧告するという体制になった。その後しばらくHTML Living StandardとHTML5は並行して存在していが、結局この開発体制も破綻し、2019年にHTML5の開発は終了しHTML仕様はHTML Living Standardに一本化されることになった。

HTML5およびHTML Living Standardでは、XHTML 2で追加予定だった「section」要素、ブログや記事向けの「article」要素、マルチメディアのための「audio」および「video」要素など、さまざまな新要素・属性が追加され、以前は見た目を規定していた要素の殆どは変更または削除された。

HTML5、HTML 5.1、HTML 5.2

W3Cによって策定されたHTML5は2014年10月28日HTML5勧告–オープン・ウェブ・プラットフォームの重要なマイルストーンを達成、HTML 5.1は2016年11月1日HTML 5.1 is a W3C Recommendation | W3C News、HTML 5.2は2017年12月14日に勧告されたHTML 5.2 is done, HTML 5.3 is coming | W3C Blog。いずれもWHATWGのHTML Living Standardを元にW3Cが編集を加えたものだが、W3Cの仕様は独自に書き加えた文章に整合性がなかったり、逆にWHATWGの文章を丸写しにした部分まで著作権を主張するなど非常に杜撰な出来栄えだった。WHATWGのはW3Cの行いを「剽窃」として強く非難した。2019年、WHATWGはW3Cと合意し、W3CはHTML 5.3を開発中止。HTML Living StandardがHTMLの唯一の規格となり、W3CはHTMLの管理から撤退することになった。規格として勧告済みのHTML5、HTML 5.1、HTML 5.2も2021年1月28日に正式に廃止された。

 HTML Living Standard 
WHATWGが開発と更新を続けている仕様で、HTML5の元となり、また2021年のHTML5の廃止以降は唯一となっているHTML仕様HTML Living Standard。HTML5やそれ以前のHTMLとは異なり、その名の通り随時更新される規格となっており、特定のバージョン番号を設けず、「更新日」のみが規格に記載される。

HTML形式の電子メール

脚注

 注釈 

 出典 

関連項目
 - SGML。汎用マークアップ言語。
 - XHTML。XMLで作ったHTML。
 - HDML。携帯端末用のHTML。
 - AMP。Googleらによる、モバイル（携帯）端末でのウェブページの表示の高速化を目指すプロジェクト。HTMLのサブセットとなるAMP HTMLを規定している。
 - CSS。表示方法・音声化方法を定義する設定ファイル。
ダイナミックHTML - ユーザの操作で内容が変化するHTML文書。
ユーザビリティ - 利便性。
アクセシビリティ - 環境に依存しないアクセス容易性。
ウェブブラウザ - HTML文書を表示するシステム。
HTMLレンダリングエンジン - HTML文書を表示・音声化・点字化するシステムの核。
文字参照 - 特殊な文字を表現する符号。
 - 通信規約。
オーサリングツール - ウェブ文書を視覚的に作成するシステム。
 - HTML文書を検証するソフトウェア。

外部リンク

 英語
 HTML Living Standard
 HTML: HyperText Markup Language - MDN
 W3C Markup Validation Service - W3Cによる構文チェック
 日本語
 HTML: HyperText Markup Language - MDN
 ごく簡単なHTMLの説明
 KEEPCOOL

Category:マークアップ言語
*
Category:World Wide Web
Category:W3C勧告
Category:オープンフォーマット
Category:ティム・バーナーズ＝リー