HyperText Markup Language
![]() HTMLコードの例。 | |
拡張子 | .html, .htm |
---|---|
MIMEタイプ | text/html |
タイプコード | TEXT HTML |
UTI | public.html |
開発者 | W3C WHATWG |
種別 | マークアップ言語 |
派生元 | SGML |
拡張 | XHTML |
国際標準 | ISO/IEC 15445:2000 |
HTML |
---|
![]() |
HyperText Markup Language(ハイパーテキスト マークアップ ランゲージ)は、ハイパーテキストを記述するためのマークアップ言語の1つで、主にWorld Wide Web(WWW)において、ウェブページを表現するために用いられる。略してHTML(エイチティーエムエル)と呼ばれることが多い。ハイパーリンクや画像等のマルチメディアを埋め込むハイパーテキストとしての機能、見出しや段落といったドキュメントの抽象構造、フォントや文字色の指定などの見た目の指定、などといった機能がある。
ティム・バーナーズ=リーによってSGMLを元に開発された。1993年に最初の仕様が公開され、2022年現在も機能の拡張や改良が続けられている。最初期においてはIETFが、1996年以降はW3Cが、2019年以降はWHATWGが規格の策定、仕様公開を行なっている[1][2]。
特徴
HTMLは木構造(入子構造)のマークアップ言語であり、形式言語である。「プレーンテキストの文書を要素で括って意味付け」という一般的な説明[3]は間違いである。「『タグ』と『タグ』で括られたもの全体」が「要素」(element)であり、タグすなわち要素ではない。マークアップ言語としての特徴は、先祖であるSGMLや、兄弟のXMLと共通しているため、以下ではWWWというシステムにおける「ハイパーテキスト記述言語」としての側面についてのみ記述する。
HTMLの要素には、文書を表現するものとしてごく一般的なものである見出し(ヘッドライン、h1〜)、段落(パラグラフ、p)、ハイパーテキストとして特徴的な「アンカー」(a)に関係するもの、画像など(imgなど)の電子メディア的なもの、などがある。また文字色の指定などといった、意味ではなく直接見た目のみを指定するようなものは、近年ではスタイルシートなどに分離するべきとされているが、歴史的事情、及び、スタイルシートよりもこの、HTMLでの記述が簡便になる場合が度々あること[注釈 1]から現在でもしばしば使われている。その他主要な要素は、HTMLの要素の記事で解説している。
形式言語として見た場合「構文規則」(あるいは文法)に相当する「スキーマ」は、HTML4まではDTDとして公開され要素ごとに記載することの出来る属性、内容に含むことの出来る要素などが定められていた。HTML 4.01では厳密なもの[注釈 2]、HTML 3.2からの移行過渡期のためのもの[注釈 3]、フレームを用いた文書のためのもの[注釈 4]といった3つのDTDが定義されていた。
HTML 3.2では見た目を左右する要素や属性が追加されたがHTMLは本来文書構造を示すためだけにその存在意義があり、それらの要素は目的に反するものとされた。そのため視覚的・感覚的効果を定義する手段としてスタイルシート(一般にはその中のCSS)が考案された。見た目を左右する要素や属性の一部はHTML4以降では非推奨とされており、HTML 4.01 Strictでは定義されていないので使用できない。ただしHTML 4.01 Strictで定義され、非推奨とされない要素や属性の一部にも見た目を左右するものがある。装飾的な視覚表現のためにそれらの要素や属性を用いているのであればその内容に適する要素を用いた上で、スタイルシートで表現を指定するのが望ましい。
HTML文書
HTMLで書かれた文書をHTML文書と言い、HTMLでは、まず文書型宣言を書く。文書型宣言が無いものは、HTMLの規格に従っているとはいえない。HTML5以降の規格における文書型宣言は以下のようなものである。
<!DOCTYPE html>
次にHTML文書の例を挙げる。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<link rel="author" href="mailto:mail@example.com">
<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"
で、言語コードjaの言語が使われていることの明示。<head>
:head要素(この文書のヘッダ情報の明示)<meta ... />
:meta要素(文書のメタ情報)。ここでは、charset="UTF-8"
で、文字コードが、「UTF-8」であることを示す。<link ... />
要素(他のリソースとの関連を明示。この場合、作者の明示)<title lang="en">
:title要素(この文書のタイトル)の明示。また、この部分はenの言語が使われていることの明示。
<body>
:body要素(この文書の内容の明示)<article>
:article要素(この要素が、記事であることを明示)<h1 lang="en">
:h1要素(第一レベル)の見出しを明示。また、lang="en">
で、この部分の見出しは enの言語が使われていることを明示。<p>
:p(段落)要素の明示。<a href="/wiki/SGML/">SGML</a>
:a(アンカー)要素(他のリソースへのアンカー)であることの明示。href
で、「""
」内にリンク先のURLを記述する。ちなみに、このURLの場合は、ウィキペディア日本語版のSGMLの記事。<strong>
:strong要素(強い強調であることの明示)
タグによって文字列を括ることによりその文字列の意味付けがなされる。ユーザーエージェントはそれを解釈して、例えば h1
要素で括られたテキストは「その文書中で最も重要な見出し」という意味を持つようになり、 GUI によるウェブブラウザであれば大きく太字で表示するなどする。また、スタイルシートを用いることで見た目などを指定することができるようになっている。
なお、通常はマークアップ中に改行文字を挿入してもウェブブラウザ上では描画されない。改行を行う場合はbr
要素を用いる必要があるが、br
要素は本来見た目のためではなく、詩や住所のように実際にコンテンツの一部である改行のためにのみに使用されなければならない[4]。
要素
W3C勧告のHTML4.01 仕様書で、要素はタグではない[注釈 5]としている[5]。「タグ」とは、文字「<
」で始まり、文字「>
」で終わっている部分(マークアップ)のみを指し、「要素」(エレメント)は開始タグ~終了タグに囲まれた全体を指す概念である。 <br/>
のように、開始タグと終了タグを兼ねる一つのタグのみで一つの要素を構成する場合もあるが、あくまでタグと要素の概念は別物である。
属性
要素にid、class、styleなどの属性を付与することができる。
歴史
1989年、CERNのティム・バーナーズ=リーは、オリジナルのHTML(および多くの関連したプロトコル、HTTPなど)のメモを提案し、1990年5月にコード化した[6]。NEXTSTEPの動作するNeXTcubeワークステーション上で開発された。当時のHTMLは仕様ではなく、直面していた問題を解決するためのツール群であった。直面していた問題とは、ティム・バーナーズ=リーやその同僚たちがどのように情報や進行中の研究を共有するかということである。彼の成果は後に国際的かつ公開のネットワークの出現として結実し、世界的な注目を集めることになった。
HTMLの初期のバージョンはゆるい文法規則によって定義されており、ウェブ技術になじみのない層に受け入れられる助けとなった。ウェブブラウザはウェブページの意図を推測し、レンダリングを実行するのが一般的であった。やがて公式規格においては厳格な言語構文を作ることを志向するようになっていったが、それに加え、ウェブブラウザの挙動を元に構文エラーの取り扱いも規格に含めることで、既存のウェブページに対する互換性の維持が図られている[7]。
HTMLが公式な仕様として定義されたのは1990年代からである。それは従来のマークアップ言語であるSGMLに、インターネットのためのハイパーテキストの機能を取り入れるというティム・バーナーズ=リーの提案に大きく影響を受けたものだった。
1993年にはIETFからHTML仕様書バージョン1.0が公開され、SGMLからの拡張として文法定義のDTDを持つようになった。また1994年にIETFのHTMLワーキンググループが発足した。しかし、2.0以降のIETFの元での開発は他の開発との競合から停滞した。1996年からはW3Cによって商用ソフトウェア・ベンダーからの支援も受け、HTMLの仕様が標準化されている[8]。また2000年からは国際標準ともなった(ISO/IEC 15445:2000)。W3Cから勧告された最新のHTML仕様はHTML 5.2である。
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 1866 (日本語訳)として仕様が発表された。下記の補助的なRFCもリリースされた。HTML 2.0はRFC 2854によって廃止されHTMLはIETFではなくW3Cが管理することとなった。
- 1995年11月:フォームベースのファイルアップロード。RFC 1867
- 1996年5月:テーブル。RFC 1942
- 1996年8月:クライアントサイドイメージマップ。RFC 1980
- 1997年1月:HTMLの国際化。RFC 2070(非公式な日本語訳)。「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日に仕様が改訂[注釈 6]された。この仕様にいくらかのマイナーな修正が加えられたHTML 4.01は1999年12月24日にW3C勧告となった。Strict DTDの他にHTML 3.2からの移行過渡期のためのTransitional DTDとフレームを使うことのできる Frameset DTDの3つのスキーマを持つ。
この後、HTML 4.01をベースとしてXHTML 1.0が策定されることになる。
2018年3月28日に代替された勧告に指定され、最新の勧告を参照することを推奨されている。
ISO/IEC 15445:2000
ISO/IEC JTC 1による規格。HTML 4.01を参考にし、より厳密に規格化された。これは2000年に翻訳されJIS X 4156:2000というJIS規格になった。
ISO/IEC 15445:2000は2003年に訂正版[注釈 7]が発行された(ただし訂正なので、その後も名称はISO/IEC 15445:2000のまま)。JIS X 4156は2005年に改正され、JIS X 4156:2005(日本産業標準調査会、経済産業省)となっている。
HTML5、HTML 5.1、HTML 5.2

その後、HTMLの改良にW3Cが興味を示さなかったことから、2004年にWHATWGが開発を開始した[9]。2007年には、W3Cもワーキンググループを設立し[10]、WHATWGと共同での開発が始まった。しかし、2012年7月、両者は別個に作業する体制となった[11]。WHATWGの仕様策定はHTML Living Standardとして継続している。
2014年10月28日にHTML5がW3Cより勧告された[12]。ブログや記事向けの「article」要素やマルチメディアのための「audio」および「video」要素などをはじめとした新要素・属性が追加され、以前は見た目を規定していた要素の殆どは変更または削除された。2016年11月1日に HTML 5.1が勧告され[13]、2017年12月14日に HTML 5.2が勧告された[14]。
W3CによるHTML5~HTML 5.2は、WHATWGのHTML Living Standardを元に編集が加えられたものであり、HTML Living Standardとの差異が発生している状態となっていた。これについてWHATWGのIan HicksonがW3C側を強く非難する事態となっている[15]。W3CはHTML 5.3への作業を進められていたものの、2019年のWHATWGとの合意により、取りやめている[1]。
HTML Living Standard
HTML Living Standard[16]は WHATWGが更新し続けている HTMLの最新仕様。2019年まではW3CのHTML5~HTML 5.2と並行して仕様策定が進められている状態だった。これを元にしてW3Cの勧告が作られていた。
HTML形式の電子メール
脚注
注釈
出典
- ^ a b “HTML標準仕様の策定についてW3CとWHATWGが合意発表。今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に”. ITmedia (2019年6月10日). 2020年1月19日閲覧。
- ^ “HTML REVIEW DRAFT — PUBLISHED 29 JANUARY 2020 IS A W3C RECOMMENDATION”. W3C. 2021年5月21日閲覧。
- ^ ビレッジセンターHTML&SGML研究チーム『正しいHTML4.0リファレンス&作法』ビレッジセンター出版局、1998年3月20日。ISBN 4-89436-111-6。
- ^ “HTML Standard”. html.spec.whatwg.org. whatwg.org. 2021年5月30日閲覧。
- ^ W3C "HTML 4.01 Specification" 3.2.1 Elements、1999年12月24日
- ^ Tim Berners-Lee. “Information Management: A Proposal”. CERN (March 1989, May 1990). 2012年11月28日閲覧。
- ^ 矢倉 (2009年7月21日). “HTML5の構文解析がもたらすもの”. Web標準Blog | ミツエーリンクス. 2020年1月19日閲覧。
- ^ Raggett, Dave (1998). Raggett on HTML 4. Addison-Wesley. pp. chap. 2: A history of HTML. ISBN 0-201-17805-2
- ^ WHATWG; Mondo (2017年7月14日). “HTML Standard 日本語訳 1.6 歴史”. 2017年7月15日閲覧。
- ^ W3C (2007年3月8日). “HTML 標準の更新に着手”. 2017年7月15日閲覧。
- ^ “HTML5仕様をめぐるW3CとWHATWGについて、Ian Hickson氏がメーリングリストに書いたこと”. Publickey (2012年7月24日). 2017年7月15日閲覧。
- ^ HTML5勧告–オープン・ウェブ・プラットフォームの重要なマイルストーンを達成
- ^ HTML 5.1 is a W3C Recommendation | W3C News
- ^ HTML 5.2 is done, HTML 5.3 is coming | W3C Blog
- ^ 渡邉卓 (2017年1月1日). “2017年のWeb標準:WEB+DESIGN STAGE新春特別企画”. gihyo.jp. 2020年1月19日閲覧。 “この事態を,WHATWG側のエディターであるIan Hickson氏は,「剽窃」(Plagiarism)という強い語を用いて非難しています。”
- ^ HTML Living Standard
関連項目
- Standard Generalized Markup Language - SGML。汎用マークアップ言語。
- Extensible HyperText Markup Language - XHTML。XMLで作ったHTML。
- Handheld Device Markup Language - HDML。携帯端末用のHTML。
- Accelerated Mobile Pages - AMP。Googleらによる、モバイル(携帯)端末でのウェブページの表示の高速化を目指すプロジェクト。HTMLのサブセットとなるAMP HTMLを規定している。
- Cascading Style Sheets - CSS。表示方法・音声化方法を定義する設定ファイル。
- ダイナミックHTML - ユーザの操作で内容が変化するHTML文書。
- ユーザビリティ - 利便性。
- アクセシビリティ - 環境に依存しないアクセス容易性。
- ウェブブラウザ - HTML文書を表示するシステム。
- HTMLレンダリングエンジン - HTML文書を表示・音声化・点字化するシステムの核。
- 文字参照 - 特殊な文字を表現する符号。
- Hypertext Transfer Protocol - 通信規約。
- Webオーサリングツール - ウェブ文書を視覚的に作成するシステム。
- Another HTML-lint - HTML文書を検証するソフトウェア。