HyperText Markup Language

出典: フリー百科事典『ウィキペディア(Wikipedia)』
HTMLから転送)
HTML
Html-source-code3.png
HTMLコードの例。
拡張子.html, .htm
MIMEタイプtext/html
タイプコードTEXT
HTML
UTIpublic.html
開発者W3C
WHATWG
種別マークアップ言語
派生元SGML
拡張XHTML
国際標準ISO/IEC 15445:2000

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は要素Element)の木構造を扱う。各要素は以下の3つから構成される。

  • 要素名
  • 属性attribute): 0個以上。属性名と値のペア、値は文字列に限定[4]
  • 子要素: 0個以上

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

構文[編集]

HTMLを表現するための構文としてHTML構文HTML Syntax)がある[5]

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

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

ただし、HTML自体はHTML構文と切り離されているため、XML構文を用いたHTMLの表現も存在する(XHTML)。

機能[編集]

HTMLは異なる意味をもつ様々な要素を定義する[7]。各要素では受け入れ可能な属性が定義され、要素の振る舞いを調整できるようになっている。ほとんどの要素では、要素名が機能を指し、属性が自身の特性を指し、子要素が収納される別コンテンツを指す。

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

HTMLは要素のセマンティクスを定義しているに過ぎないので、それを具体的にどう表現・利用するかは利用側に委ねられている[8]。通常はウェブブラウザでの利用が想定されているが、音声対話エージェントが利用するケースもあり得る。

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="http://ja.wikipedia.org/wiki/SGML/">SGML</a>:a(アンカー)要素(他のリソースへのアンカー)であることの明示。hrefで、「""」内にリンク先のURLを記述する。ちなみに、このURLの場合は、ウィキペディア日本語版SGMLの記事。
          • <strong>:strong要素(強い強調であることの明示)

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

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

歴史[編集]

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

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

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

1993年にはIETFからHTML仕様書バージョン1.0が公開され、SGMLからの拡張として文法定義のDTDを持つようになった。また1994年にIETFのHTMLワーキンググループが発足した。しかし、2.0以降のIETFの元での開発は他の開発との競合から停滞した。1996年からはW3Cによって商用ソフトウェア・ベンダーからの支援も受け、HTMLの仕様が標準化されている[12]。また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日に仕様が改訂[注釈 5]された。この仕様にいくらかのマイナーな修正が加えられた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年に訂正版[注釈 6]が発行された(ただし訂正なので、その後も名称はISO/IEC 15445:2000のまま)。JIS X 4156は2005年に改正され、JIS X 4156:2005日本産業標準調査会経済産業省)となっている。

HTML5、HTML 5.1、HTML 5.2[編集]

HTML5のロゴ

その後、HTMLの改良にW3Cが興味を示さなかったことから、2004年にWHATWGが開発を開始した[13]。2007年には、W3Cもワーキンググループを設立し[14]、WHATWGと共同での開発が始まった。しかし、2012年7月、両者は別個に作業する体制となった[15]。WHATWGの仕様策定はHTML Living Standard英語版として継続している。

2014年10月28日にHTML5がW3Cより勧告された[16]。ブログや記事向けの「article」要素やマルチメディアのための「audio」および「video」要素などをはじめとした新要素・属性が追加され、以前は見た目を規定していた要素の殆どは変更または削除された。2016年11月1日に HTML 5.1が勧告され[17]2017年12月14日に HTML 5.2が勧告された[18]

W3CによるHTML5~HTML 5.2は、WHATWGのHTML Living Standardを元に編集が加えられたものであり、HTML Living Standardとの差異が発生している状態となっていた。これについてWHATWGのIan Hickson英語版がW3C側を強く非難する事態となっている[19]。W3CはHTML 5.3への作業を進められていたものの、2019年のWHATWGとの合意により、取りやめている[1]

HTML Living Standard[編集]

HTML Living Standard[20]WHATWGが更新し続けている HTMLの最新仕様。2019年まではW3CのHTML5~HTML 5.2と並行して仕様策定が進められている状態だった。これを元にしてW3Cの勧告が作られていた。

HTML形式の電子メール[編集]

脚注[編集]

[脚注の使い方]

注釈[編集]

  1. ^ 例えば、太字指定の「<b></b>
  2. ^ : Strict
  3. ^ : Transitional
  4. ^ : Frameset
  5. ^ : revised
  6. ^ : corrected version

出典[編集]

  1. ^ a b HTML標準仕様の策定についてW3CとWHATWGが合意発表。今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に”. ITmedia (2019年6月10日). 2020年1月19日閲覧。
  2. ^ HTML REVIEW DRAFT — PUBLISHED 29 JANUARY 2020 IS A W3C RECOMMENDATION”. W3C. 2021年5月21日閲覧。
  3. ^ ビレッジセンターHTML&SGML研究チーム 『正しいHTML4.0リファレンス&作法』ビレッジセンター出版局、1998年3月20日。ISBN 4-89436-111-6 
  4. ^ "3.2.4.1 Attributes An attribute value is a string." WHATWG. (2023). HTML Living Standard - Last Updated 11 January 2023.
  5. ^ "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.
  6. ^ W3C "HTML 4.01 Specification" 3.2.1 Elements、1999年12月24日
  7. ^ "Elements, attributes, and attribute values in HTML are defined ... to have certain meanings (semantics)." WHATWG. (2023). HTML Living Standard - Last Updated 11 January 2023.
  8. ^ "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.
  9. ^ HTML Standard”. html.spec.whatwg.org. whatwg.org. 2021年5月30日閲覧。
  10. ^ Tim Berners-Lee. “Information Management: A Proposal”. CERN (March 1989, May 1990). 2012年11月28日閲覧。
  11. ^ 矢倉 (2009年7月21日). “HTML5の構文解析がもたらすもの”. Web標準Blog | ミツエーリンクス. 2020年1月19日閲覧。
  12. ^ Raggett, Dave (1998). Raggett on HTML 4. Addison-Wesley. pp. chap. 2: A history of HTML. ISBN 0-201-17805-2. http://www.w3.org/People/Raggett/book4/ch02.html 
  13. ^ WHATWG; Mondo (2017年7月14日). “HTML Standard 日本語訳 1.6 歴史”. 2017年7月15日閲覧。
  14. ^ W3C (2007年3月8日). “HTML 標準の更新に着手”. 2017年7月15日閲覧。
  15. ^ HTML5仕様をめぐるW3CとWHATWGについて、Ian Hickson氏がメーリングリストに書いたこと”. Publickey (2012年7月24日). 2017年7月15日閲覧。
  16. ^ HTML5勧告–オープン・ウェブ・プラットフォームの重要なマイルストーンを達成
  17. ^ HTML 5.1 is a W3C Recommendation | W3C News
  18. ^ HTML 5.2 is done, HTML 5.3 is coming | W3C Blog
  19. ^ 渡邉卓 (2017年1月1日). “2017年のWeb標準:WEB+DESIGN STAGE新春特別企画”. gihyo.jp. 2020年1月19日閲覧。 “この事態を,WHATWG側のエディターであるIan Hickson氏は,「⁠剽窃」(⁠Plagiarism)という強い語を用いて非難しています。”
  20. ^ HTML Living Standard

関連項目[編集]

外部リンク[編集]