ハイパーテキスト・マークアップ言語(HTML )は、ウェブブラウザで表示される文書の標準マークアップ言語[a]です。ウェブコンテンツの内容と構造を定義します。多くの場合、カスケーディング・スタイル・シート(CSS)などの技術やJavaScriptなどのスクリプト言語が活用されます。
ウェブブラウザは、ウェブサーバーまたはローカルストレージからHTMLドキュメントを受信し、マルチメディアウェブページにレンダリングします。HTMLはウェブページ の構造を意味的に記述し、元々はページの外観に関するヒントを含んでいました。
HTML要素はHTMLページの構成要素です。HTML構造を用いることで、画像やインタラクティブフォームなどのオブジェクトをレンダリングされたページに埋め込むことができます。HTMLは、見出し、段落、リスト、リンク、引用などのテキストの構造的意味を示すことで、構造化文書を作成する手段を提供します。HTML要素は、山括弧で囲まれたタグで区切られます。<!-->や<!-->などのタグは、ページに直接コンテンツを導入します。<!-->や<!-->などのタグは、文書のテキストを囲み、情報を提供します。また、子要素タグを含む場合もあります。ブラウザはHTMLタグを表示しませんが、ページのコンテンツを解釈するために使用します。
<img><input><p></p>
HTMLには、 JavaScriptなどのスクリプト言語で記述されたプログラムを埋め込むことができ、ウェブページの動作やコンテンツに影響を与えます。CSSを組み込むことで、コンテンツの外観とレイアウトが定義されます。かつてHTMLの保守を担当し、現在はCSS標準の保守を担当しているワールド・ワイド・ウェブ・コンソーシアム(W3C)は、 1997年以来、明示的なプレゼンテーションHTMLよりもCSSの使用を推奨しています。[3] HTML5と呼ばれるHTML形式は、主にJavaScriptと要素を用いて、動画や音声の表示に使用されます。
[update]<canvas>

1980年、欧州原子核研究機構(CERN)の契約社員であった物理学者 ティム・バーナーズ=リーは、 CERNの研究者が文書を利用・共有するためのシステムであるENQUIREを提案し、試作しました。1989年、バーナーズ=リーはインターネットベースのハイパーテキストシステムを提案するメモを書きました。[4]バーナーズ=リーはHTMLを仕様化し、1990年後半にブラウザとサーバーソフトウェアを開発しました。同年、バーナーズ=リーとCERNのデータシステムエンジニアであるロバート・カイヨーは共同で資金援助を要請しましたが、このプロジェクトはCERNに正式に採用されませんでした。1990年の個人的なメモの中で、バーナーズ=リーは「ハイパーテキストが使用される多くの分野の一部」を挙げており、その最初の項目として百科事典が挙げられています。 [5]
HTMLの最初の公開された記述は「HTMLタグ」と呼ばれる文書でした[6]。これは1991年後半にティム・バーナーズ=リーによってインターネット上で初めて言及されました[7] [8]。この文書は、初期の比較的シンプルなHTML設計を構成する18個の要素を記述しています。ハイパーリンクタグを除くこれらの要素は、 CERN(欧州原子核研究機構)の社内標準SGML(Standard Generalized Markup Language )ベースの文書フォーマットであるCERN SGMLの影響を強く受けています。これらの要素のうち11個は、現在もHTML 4に残っています[9]。
HTML は、Web ブラウザーがテキスト、画像、その他の資料を解釈して、表示または音声可能な Web ページに構成するために使用するマークアップ言語です。 HTML マークアップのすべての項目のデフォルトの特性はブラウザーで定義され、これらの特性は Web ページ デザイナーがCSSを追加使用することで変更または拡張できます。テキスト要素の多くは、1988 年の ISO 技術レポート TR 9537 Techniques for using SGMLで説明されています。このレポートでは、1960 年代初期にCTSS (Compatible Time-Sharing System) オペレーティング システム用に開発されたRUNOFF コマンドで使用されるものなど、初期のテキスト書式設定言語の機能について説明しています。これらの書式設定コマンドは、タイプセッターが手動でドキュメントを書式設定するために使用するコマンドから派生したものです。ただし、一般化されたマークアップの SGML の概念は、単なる印刷効果ではなく、要素 (属性を持つネストされた注釈付き範囲) に基づいており、構造とマークアップが別々になっています。HTML は、CSS によって徐々にこの方向に進んできました。
バーナーズ=リーはHTMLをSGMLの応用とみなしていました。HTMLは、1993年半ばにインターネット技術タスクフォース(IETF)によって正式に定義され、バーナーズ=リーとダン・コノリーによるHTML仕様の最初の提案である「ハイパーテキスト・マークアップ言語(HTML)」インターネット・ドラフトが公開されました。このドラフトには、構文を定義するSGML文書型定義が含まれていました。 [10] [11]このドラフトは6ヶ月で期限切れとなりましたが、 NCSA Mosaicブラウザのインライン画像埋め込み用カスタムタグを承認したことで注目に値します。これは、成功したプロトタイプに基づいて標準を策定するというIETFの理念を反映しています。同様に、デイブ・ラゲットが1993年後半に発表した競合するインターネット・ドラフト「HTML+(ハイパーテキスト・マークアップ・フォーマット)」では、表や入力フォームといった既に実装されている機能の標準化が提案されました。[12]
1994年初頭にHTMLとHTML+の草案が期限切れとなった後、IETFはHTMLワーキンググループを設立しました。1995年、このワーキンググループは「HTML 2.0」を完成させました。これは、将来の実装の基盤となる標準として扱われることを意図した最初のHTML仕様でした。[13]
IETFの支援下での更なる開発は、利害の対立により停滞しました。1996年以降、[update]HTML仕様は商用ソフトウェアベンダーからの意見を取り入れながら、ワールド・ワイド・ウェブ・コンソーシアム(W3C)によって維持されてきました。[14] 2000年、HTMLは国際標準(ISO / IEC 15445:2000)となりました。HTML 4.01は1999年後半に公開され、2001年まで正誤表が発行されました。2004年、Webハイパーテキスト・アプリケーション・テクノロジー・ワーキンググループ(WHATWG)においてHTML5の開発が開始され、2008年にW3Cとの共同成果物となり、2014年10月28日に完了し標準化されました。[15]

XHTMLは、HTML 4.01をXML 1.0を用いて再定式化したものから始まった独立した言語です。現在ではHTMLのXML構文と呼ばれており、独立した標準として開発されているわけではありません。[59]
2019年5月28日、W3CはWHATWGがHTMLおよびDOM標準の唯一の発行元となることを発表しました。[66] [67] [68] [69] W3CとWHATWGは2012年から競合する標準を発行してきました。2007年にはW3C標準はWHATWGと同一でしたが、その後、設計上の決定の違いにより、標準は徐々に分岐してきました。[70] WHATWGの「リビングスタンダード」は、しばらくの間、事実上のウェブ標準でした。 [71]
HTMLマークアップは、タグ(およびその属性)、文字ベースのデータ型、文字参照、実体参照など、いくつかの主要なコンポーネントで構成されています。HTMLタグは、一般的には と のようにペアになっていますが、空要素を表すタグもあり、例えば のようにペアになっていません。このようなペアの最初のタグは開始タグ、2番目のタグは終了タグです(これらは開始タグ、終了タグとも呼ばれます)。
<h1></h1><img>
もう 1 つの重要なコンポーネントは、標準モードのレンダリングをトリガーするHTMLドキュメント タイプ宣言です。
以下は、古典的な「Hello, World!」プログラムの例です。
<!DOCTYPE html>
< html >
< head >
< title >これはタイトルです</ title >
</ head >
< body >
< div >
< p > Hello world! </ p >
</ div >
</ body >
</ html >
との間のテキストはウェブページの説明であり、との間のテキストはページコンテンツとして表示されます。マークアップテキストはブラウザのタブやウィンドウのタイトルに表示されるページタイトルを定義し、 タグはページ内の区切りとなる部分を定義します。 と の間には、要素を使用してウェブページのメタデータを定義できます。
<html></html><body></body><title>This is a title</title><div><head></head><meta>
文書型宣言<!DOCTYPE html>はHTML5用です。宣言が含まれていない場合、多くのブラウザはレンダリング時に「Quirksモード」に戻ります。[72]

HTML文書は、ネストされたHTML要素の構造を暗示しています。これらは文書内で山括弧で囲まれたHTMLタグによって示されます。 [73] [より適切な出典が必要]
単純で一般的なケースでは、要素の範囲は「開始タグ」と「終了タグ」という2つのタグによって示されます。要素のテキストコンテンツ(存在する場合)は、これらのタグの間に配置されます。
<p></p>
タグは、開始と終了の間に、タグとテキストを混在させた、さらに別のタグマークアップを囲むこともできます。これは、親要素の子として、さらに(ネストされた)要素があることを示します。
開始タグには、要素の属性をタグ内に含めることもできます。これらの属性は、文書内のセクションの識別子、文書の表示スタイル情報と関連付けるために使用される識別子、そして画像を埋め込むために使用されるタグなど、画像リソースへの参照など、他の情報を示します。参照は次の形式になります。<img><img src="example.com/example.jpg">
改行 などの一部の要素には、テキストやその他のタグを埋め込むことはできません。これらの要素には、開始タグに似た空タグが1つだけ必要で、終了タグは不要です。
<br>
多くのタグ、特に非常によく使われる段落要素の終了タグはオプションです。HTMLブラウザやその他のエージェントは、文脈とHTML標準で定義された構造規則から、要素の終了タグを推測することができます。これらの規則は複雑で、ほとんどのHTML作成者にはあまり理解されていません。
<p>
したがって、HTML要素の一般的な形式は次のようになります。一部のHTML要素は空要素として定義され、形式は となります。空要素は、タグやインラインタグのように、内容を持たない場合があります。HTML要素の名前は、タグ内で使用される名前です。終了タグの名前の前にはスラッシュ文字 が付きます。タグに内容がない場合、終了タグは使用できません。属性が指定されていない場合は、それぞれデフォルト値が使用されます。
<tag attribute1="value1" attribute2="value2">''content''</tag><tag attribute1="value1" attribute2="value2"><br><img>/
HTML ドキュメントのヘッダー:タイトルはヘッダーに含まれます。例:
<head>...</head>
< head >
< title >タイトル</ title >
< link rel = "stylesheet" href = "stylebyjimbowales.css" > <!-- スタイルシートをインポート -->
</ head >
HTML の見出しは、H1 が最高レベル (または最も重要なレベル)、H6 が最低レベルの
toタグで定義されます。<h1><h6>
< h1 >見出しレベル 1 </ h1 >
< h2 >見出しレベル 2 </ h2 >
< h3 >見出しレベル 3 </ h3 >
< h4 >見出しレベル 4 </ h4 >
< h5 >見出しレベル 5 </ h5 >
< h6 >見出しレベル 6 </ h6 >
効果は次のとおりです。
CSS はレンダリングを大幅に変更できます。
段落:
< p >段落 1 </ p > < p >段落 2 </ p >
<br>との違いは、はページの意味構造を変えずに行を分割するのに対し、 はページを段落に分割することです。 要素は空要素であるため、属性を持つことができますが、コンテンツは持てず、終了タグも持つことはできません。
<br><p><br> <p><br>
< p >これは< br >改行のある段落です< br > < / p >
これはHTMLのリンクです。リンクを作成するにはタグを使用します。属性にはリンクの
URLアドレスが格納されます。<a>href
< a href = "https://www.wikipedia.org/" > Wikipedia へのリンク! </ a >
ユーザーが入力できる方法は、次のように多数あります。
< input type = "text" > <!-- テキスト入力用 -->
< input type = "file" > <!-- ファイルのアップロード用 -->
< input type = "checkbox" > <!-- チェックボックス用 -->
コメント:
<!-- これはコメントです -->
コメントはマークアップの理解に役立ちますが、Web ページには表示されません。
HTML で使用されるマークアップ要素にはいくつかの種類があります。
<h2>Golf</h2><b>bold text</b><b>bold text</b><i>italic text</i><strong>strong text</strong><em>emphasized text</em>hrefを作成し、その属性はリンク先のURLを設定します。例えば、HTMLマークアップは「 Wikipedia 」という単語をハイパーリンクとしてレンダリングします。画像をハイパーリンクとしてレンダリングするには、要素を 要素のコンテンツとして挿入します。 は、属性を持ちますが、コンテンツや終了タグを持たない空要素です。<a href="https://en.wikipedia.org/">Wikipedia</a>imgabrimg<a href="https://example.org"><img src="image.gif" alt="descriptive text" width="50" height="50" border="0"></a>要素の属性のほとんどは名前と値のペアであり、=要素の開始タグ内で要素名の後に記述されます。値は一重引用符または二重引用符で囲むことができますが、HTML(XHTMLは除く)では特定の文字を含む値は引用符で囲まなくても構いません。[75] [76]属性値を引用符で囲まないことは安全ではないとされています。[77]名前と値のペアの属性とは対照的に、要素の開始タグ内に存在するだけで要素に影響を与える属性もいくつかあります。 [7]ismap要素の属性がこれに該当しますimg。[78]
多くの要素に出現する可能性のある共通属性がいくつかあります。
idは、要素にドキュメント全体で一意の識別子を提供します。この識別子は要素を識別するために使用され、スタイルシートは要素の表示プロパティを変更し、スクリプトは要素の内容や表示を変更、アニメーション化、または削除できます。ページのURLに追加され、要素(通常はページのサブセクション)にグローバルに一意の識別子を提供します。例えば、 の「Attributes」というIDがこれに該当しますhttps://en.wikipedia.org/wiki/HTML#Attributes。classは、類似の要素を分類する方法を提供します。これは、意味論的またはプレゼンテーション的な目的で使用できます。例えば、HTML文書では、意味論的にこの指定を使用することで、このクラス値を持つすべての要素が文書のメインテキストに従属していることを示すことができます。プレゼンテーションにおいては、このような要素は、HTMLソース内の実際の場所に現れるのではなく、まとめてページ上の脚注として提示されることがあります。クラス属性は、マイクロフォーマットで意味論的に使用されます。複数のクラス値を指定することもできます。例えば、 は要素を との両方のクラスに分類します。<class="notation"><class="notation important">notationimportantstyle特定の要素にプレゼンテーションプロパティを割り当てるために属性を使用することができます。スタイルシート内から要素を選択するには、要素の属性idまたは属性を使用する方が望ましいと考えられていますが、単純なスタイル、特定のスタイル、またはアドホックなスタイル設定には煩雑すぎる場合があります。classtitle属性は、要素にサブテキストによる説明を付加するために使用されます。ほとんどのブラウザでは、この属性はツールチップとして表示されます。lang属性は、要素の内容の自然言語を識別します。これは、文書の他の部分とは異なる場合があります。例えば、英語の文書では次のようになります。< p >まあ、フランスで言うように、< span lang = "fr" >それが人生</ span >なわけです。 </ p >
略語要素 をabbr使用すると、次のような属性の一部を示すことができます。
< abbr id = "anId" class = "jargon" style = "color:purple;" title = "ハイパーテキストマークアップ言語" > HTML </ abbr >
この例はHTMLとして表示されます。ほとんどのブラウザでは、略語にカーソルを合わせると、タイトル テキスト「Hypertext Markup Language」が表示されます。
ほとんどの要素は、アラビア語、ペルシャ語、ヘブライ語dirなどの右から左へのテキストの場合は「rtl」などの言語関連属性を使用してテキストの方向を指定します。[79]
HTMLバージョン4.0では、252個の文字実体参照と1,114,050個の数値文字参照が定義されています。どちらも、個々の文字をリテラルではなく、単純なマークアップで記述することを可能にします。リテラル文字とそれに対応するマークアップは同等とみなされ、同じようにレンダリングされます。
このように文字を「エスケープ」できることにより、文字<と(それぞれ とと&書いた場合)を、マークアップではなく文字データとして解釈できるようになります。たとえば、リテラルは通常タグの開始を示し、通常文字実体参照または数値文字参照の開始を示します。これを または または と書くと、要素の内容または属性の値に含めることができます。二重引用符文字( )は、属性値を引用するために使用されていない場合、属性値自体の中に現れるときは または または としてエスケープする必要があります。同様に、一重引用符文字( )は、属性値を引用するために使用されていない場合、属性値自体の中に現れるときはまたは(または HTML5 または XHTML ドキュメント [80] [81] )としてエスケープする必要があります。ドキュメント作成者がこのような文字をエスケープする必要性を見落とした場合でも、一部のブラウザは非常に寛容で、コンテキストを使用してその意図を推測しようとします。結果は依然として無効なマークアップであり、たとえば
検索やインデックス作成の目的でドキュメントを解析しようとする他のブラウザや他のユーザーエージェントがドキュメントにアクセスしにくくなります。<&<&&&&&""""''''
エスケープにより、入力が容易でない文字や、文書の文字エンコーディングで使用できない文字を、要素や属性のコンテンツ内で表現することが可能になります。例えば、西ヨーロッパと南米のキーボードでのみ一般的に使用されているアキュートアクセント付き文字e( )は、すべてのキーボードで使用でき、すべての文字エンコーディングでサポートされている文字を使用して、任意のHTML文書内で実体参照または数値参照または として記述できます。UTF -8などのUnicode文字エンコーディングは、すべての最新ブラウザと互換性があり、世界中の書記体系のほぼすべての文字に直接アクセスできます。[82]éééé
HTMLは、要素コンテンツ用のスクリプトデータやスタイルシートデータなどの様々なデータ型を定義しています。また、属性値用のID、名前、 URI、数値、長さの単位、言語、メディア記述子、色、文字エンコーディング、日付と時刻など、様々な型を定義しています。これらのデータ型はすべて、文字データの特殊化です。
HTML文書は、文書型宣言(非公式には「Doctype」)から始まる必要があります。ブラウザでは、Doctypeはレンダリングモード、特にQuirksモードを使用するかどうかを定義するのに役立ちます。
DOCTYPEの本来の目的は、文書型定義(DTD)に基づくSGMLツールによるHTML文書の解析と検証を可能にすることでした。DOCTYPEが参照するDTDには、そのDTDに準拠する文書において許容されるコンテンツと禁止されるコンテンツを規定する、機械可読な文法が含まれています。一方、ブラウザはHTMLをSGMLのアプリケーションとして実装していないため、DTDを読み込むことができません。
HTML5ではDTDが定義されていないため、HTML5ではDOCTYPE宣言はよりシンプルで短くなります。[83]
<!DOCTYPE html >
HTML 4 の DOCTYPE の例
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd" >
この宣言は、HTML 4.01の「厳密」版のDTDを参照しています。SGMLベースのバリデータは、文書を適切に解析し、検証を実行するためにDTDを読み取ります。最近のブラウザでは、有効なDOCTYPEはQuirksモードではなくStandardsモードを有効にします。
さらに、HTML 4.01は、後述するように、Transitional DTDとFrameset DTDを提供しています。Transitional DTDは最も包括的なDTDで、現行のタグだけでなく、古いタグや「非推奨」タグも組み込んでいます。一方、Strict DTDは非推奨タグを除外しています。Frameset DTDには、Transitional DTDに含まれるタグに加えて、ページ上にフレームを作成するために必要なすべてのタグが含まれています。[84]
セマンティックHTMLとは、HTMLの記述方法の一つで、エンコードされた情報の意味を、見た目よりも重視するものです。HTMLは誕生当初からセマンティックマークアップを含んでいますが[85] 、 <code>、</code>タグなどのプレゼンテーションマークアップも含まれています。また、意味的に中立な<code> div</code>タグや<code>span</code>タグもあります。1990年代後半、カスケーディングスタイルシートがほとんどのブラウザで動作し始めた頃から、ウェブ制作者はコンテンツとプレゼンテーションの分離という観点から、プレゼンテーションHTMLマークアップの使用を避けるように推奨されてきました[86]。<font><i><center>
2001年のセマンティックウェブに関する議論で、ティム・バーナーズ=リーらは、将来、インテリジェントソフトウェア「エージェント」がウェブを自動的にクロールし、以前は関連性のなかった公開済みの事実を人間のユーザーの利益のために発見、フィルタリング、相関させる方法の例を示した。[87]このようなエージェントは今でも一般的ではないが、 Web 2.0、マッシュアップ、価格比較ウェブサイトのアイデアの一部は、これに近づいている可能性がある[要出典]。これらのウェブアプリケーションハイブリッドとバーナーズ=リーのセマンティックエージェントの主な違いは、現在の情報の集約とハイブリッド化は通常、マッシュアップ、比較、結合したい特定のデータのウェブ上の場所とAPIセマンティクスを既に知っているウェブ開発者によって設計されているという点にある。
ウェブエージェントの重要な種類として、ウェブページを自動的にクロールして読み取るものがあり、その内容は事前に知る必要がありません。ウェブクローラーまたは検索エンジンスパイダーは、これらのソフトウェアエージェントがウェブページの意味的な明確さに依存して、様々な技術とアルゴリズムを用いて1日に何百万ものウェブページを読み取り、インデックス化し、ウェブユーザーに検索機能を提供します。検索機能がなければ、ワールドワイドウェブの有用性は大幅に低下してしまうでしょう。
検索エンジンのスパイダーがHTML文書内で見つかったテキストの重要性を評価できるようにするには、また、マッシュアップやその他のハイブリッドを作成する人や、開発されるより自動化されたエージェントのために、公開されたテキストの意味を引き出すために、HTMLに存在する意味構造を広く均一に適用する必要があります。[88]
プレゼンテーションマークアップタグは、現在のHTMLおよびXHTML勧告では非推奨となっています。以前のバージョンのHTMLにあったプレゼンテーション機能の大部分は、アクセシビリティの低下、サイトメンテナンスコストの増加、ドキュメントサイズの増大につながるため、もはや許可されていません。[89]
優れたセマンティックHTMLは、ウェブドキュメントのアクセシビリティも向上させます(ウェブコンテンツアクセシビリティガイドラインも参照)。例えば、スクリーンリーダーや音声ブラウザがドキュメントの構造を正しく理解できれば、正しくマークアップされた情報を繰り返し読み上げたり、無関係な情報を読み上げたりして、視覚障害のあるユーザーの時間を無駄にすることがなくなります。
HTML文書は他のコンピュータファイルと同じ方法で配信できます。ただし、最も一般的には、WebサーバーからのHTTPまたは電子メールで配信されます。
ワールド・ワイド・ウェブは、主にウェブサーバーからウェブブラウザへハイパーテキスト転送プロトコル(HTTP)を用いて送信されるHTML文書で構成されています。しかし、HTTPはHTMLに加えて、画像、音声、その他のコンテンツの提供にも使用されます。ウェブブラウザが受信した各文書の処理方法を判断できるように、文書と共に他の情報が送信されます。このメタデータには通常、MIMEタイプ(例:text/htmlまたはapplication/xhtml+xml)と文字エンコーディング(HTMLの文字エンコーディングを参照)が含まれます。
最新のブラウザでは、HTML文書とともに送信されるMIMEタイプが、文書の初期解釈に影響を与える可能性があります。XHTML MIMEタイプで送信された文書は整形式のXMLであることが期待されるため、構文エラーがあるとブラウザでレンダリングに失敗する可能性があります。同じ文書をHTML MIMEタイプで送信した場合、一部のブラウザはHTMLに対してより寛容であるため、正常に表示される可能性があります。
W3C勧告では、勧告の付録Cに定められたガイドラインに従うXHTML 1.0文書は、どちらのMIMEタイプでもラベル付けできると規定されている。[90] XHTML 1.1でも、XHTML 1.1文書は[91]どちらのMIMEタイプでもラベル付けできると規定されている。 [92]
ほとんどのグラフィカル電子メール クライアントでは、プレーンテキストでは利用できない書式設定や意味的なマークアップを提供するために、HTML のサブセット (多くの場合、明確に定義されていない) を使用できます。これには、色付きの見出し、強調および引用されたテキスト、インライン画像や図表などの印刷情報が含まれる場合があります。このようなクライアントの多くには、HTML 電子メール メッセージを作成するためのGUIエディターと、それを表示するためのレンダリング エンジンの両方が含まれています。電子メールでの HTML の使用は、互換性の問題、フィッシング攻撃の偽装に役立つこと、視覚障害者のアクセシビリティの問題、スパムフィルターを混乱させる可能性があること、およびメッセージ サイズがプレーン テキストよりも大きいことなどの理由で、一部から批判されています。
HTMLを含むファイルの最も一般的なファイル名拡張子は です。この拡張子の一般的な略語は ですが、これは一部のオペレーティングシステムでファイル拡張子が3文字に制限されていることに由来しています。[93].html.htm
HTMLアプリケーション(HTA、ファイル拡張子.hta)は、ブラウザでHTMLとダイナミックHTMLを使用してアプリケーションのグラフィカルインターフェースを提供するMicrosoft Windowsアプリケーションです。通常のHTMLファイルは、 Webブラウザのセキュリティモデルに限定され、Webサーバーとのみ通信し、WebページのオブジェクトとサイトのCookieのみを操作します。HTAは完全に信頼されたアプリケーションとして実行されるため、ファイルやWindowsレジストリエントリの作成、編集、削除など、より多くの権限を持ちます。ブラウザのセキュリティモデルの外で動作するため、HTAはHTTP経由では実行できず、 EXEファイルと同様にローカルファイルシステムからダウンロードして実行する必要があります。
HTMLとその関連プロトコルは、登場以来、比較的急速に普及しました。しかし、この言語の初期には明確な標準は存在しませんでした。開発者は当初、HTMLをプレゼンテーションの詳細を含まないセマンティック言語として構想していましたが、[94]実用化に伴い、主にさまざまなブラウザベンダーの推進により、多くのプレゼンテーション要素と属性が言語に組み込まれました。HTMLを取り巻く最新の標準は、この言語の時に混乱をきたした開発を克服し、 [95]意味があり見栄えの良い文書を作成するための合理的な基盤を構築するための努力を反映しています。HTMLをセマンティック言語としての役割に戻すため、W3Cはプレゼンテーションの負担を担うCSSやXSLなどのスタイル言語を開発しました。これに伴い、HTML仕様ではプレゼンテーション要素が徐々に抑制されてきました。
現在指定されている HTML のさまざまなバリエーションを区別する軸は 2 つあります。1 つの軸は SGML ベースの HTML と XML ベースの HTML (XHTML と呼ばれる)、もう 1 つの軸は厳密と移行的 (緩い) とフレームセットです。
最新の[いつ? ] HTML仕様における違いの一つは、SGMLベースの仕様とXMLベースの仕様の区別にあります。XMLベースの仕様は、従来の定義と明確に区別するために、通常XHTMLと呼ばれます。しかし、XHTMLで規定されたHTMLでも、ルート要素名は「html」のままです。W3Cは、より複雑なSGMLに対するXMLの制限を回避する必要がある場合を除き、XHTML 1.0をHTML 4.01と同一とすることを意図していました。XHTMLとHTMLは密接に関連しているため、並行して文書化されることがあります。そのような場合、一部の著者はこれら2つの名前を(X)HTMLまたはX(HTML)と混同することがあります。
HTML 4.01 と同様に、XHTML 1.0 には、strict、transitional、frameset の 3 つのサブ仕様があります。
文書の開始宣言の違いを除けば、HTML 4.01 文書と XHTML 1.0 文書(それぞれの対応する DTD において)の違いは、主に構文上のものです。HTML の基礎となる構文では、XHTML では認められていない多くの省略形が認められています。例えば、要素に任意の開始タグや終了タグを付けたり、空要素に終了タグを付けたりすることができます。これとは対照的に、XHTML ではすべての要素に開始タグと終了タグが必要です。しかし、XHTML では新たな省略形も導入されています。XHTML タグは、タグの末尾にスラッシュを付けることで、同じタグ内で開始と終了を行うことができます。例:。この省略形は HTML 4.01 の SGML 宣言では使用されていないため、この新しい規則に慣れていない以前のソフトウェアを混乱させる可能性があります。この問題を解決するには、閉じ山括弧の前のスラッシュを削除します。例:。[96]<br/><br>
HTMLとXHTMLの微妙な違いを理解するために、付録C(下記参照)に準拠した、妥当かつ整形式のXHTML 1.0文書を、妥当なHTML 4.01文書に変換することを考えてみましょう。この変換には、以下の手順が必要です。
langXHTMLxml:lang属性ではなく属性で指定します。XHTML は、XML に組み込まれている言語定義機能属性を使用します。xmlns=URI)を削除します。HTMLには名前空間の機能はありません。<?xml version="1.0" encoding="utf-8"?>。text/htmlHTTPヘッダーから取得されます。Content-Type<br/><br>これらは、文書をXHTML 1.0からHTML 4.01に変換するために必要な主な変更点です。HTMLからXHTMLに変換するには、省略されている開始タグまたは終了タグも追加する必要があります。HTMLでコーディングする場合でもXHTMLでコーディングする場合でも、省略可能なタグを覚えておくよりも、HTML文書内に常に省略可能なタグを含める方が賢明でしょう。
整形式のXHTML文書は、XMLのすべての構文要件に準拠しています。有効な文書は、文書構造を記述するXHTMLのコンテンツ仕様に準拠しています。
W3Cは、HTMLとXHTML間の移行を容易にするためにいくつかの規則を推奨しています[97]。以下の手順はXHTML 1.0文書にのみ適用できます。
xml:lang言語を割り当てるすべての要素に、属性と属性の両方を含めますlang。<br><br/>ではなく)。<div />W3Cの互換性ガイドラインに注意深く従うことで、ユーザーエージェントは文書をHTMLとXHTMLの両方として解釈できるようになります。このように互換性が確保されたXHTML 1.0文書については、W3CはHTML(text/html MIMEタイプ)またはXHTML( MIMEタイプapplication/xhtml+xmlまたはapplication/xml)のいずれの形式でも配信することを許可しています。XHTMLとして配信される場合、ブラウザは文書の内容を解析するためにXML仕様に厳密に準拠したXMLパーサーを使用する必要があります。
HTML 4では、Strict、Transitional(かつてはLooseと呼ばれていました)、そしてFramesetという3つの異なる言語バージョンが定義されています。Strictバージョンは新しいドキュメント向けであり、ベストプラクティスと考えられています。一方、TransitionalバージョンとFramesetバージョンは、古いHTML仕様に準拠しているドキュメントや、どの仕様にも準拠していないドキュメントをHTML 4のバージョンに移行しやすくするために開発されました。TransitionalバージョンとFramesetバージョンでは、Strictバージョンでは省略されているプレゼンテーションマークアップが可能です。代わりに、 HTMLドキュメントのプレゼンテーションを向上させるために、カスケーディングスタイルシートが推奨されています。XHTML 1はHTML 4で定義された言語のXML構文のみを定義するため、同じ違いがXHTML 1にも当てはまります。
移行バージョンでは、厳密バージョンには含まれていない次の語彙部分が許可されます。
body、、、、およびで直接使用できます。blockquoteformnoscriptnoframesu) (非推奨。ハイパーリンクと混同する可能性があります。)s)center(非推奨。代わりに CSS を使用してください。)font(非推奨。代わりに CSS を使用してください。)basefont(非推奨。代わりに CSS を使用してください。)background(非推奨。代わりに CSS を使用してください。) およびbgcolor(非推奨。代わりに CSS を使用してください。) 属性はbody、(W3C に従って必須の要素です。) 要素に適用されます。aligndiv(非推奨。代わりに CSS を使用してください。) 、、form段落 ( p)、見出し ( h1... h6) 要素の属性align要素の(非推奨。代わりに CSS を使用してください。)、noshade(非推奨。代わりに CSS を使用してくださいsize。)、width(非推奨。代わりに CSS を使用してください。)hr属性align(非推奨。代わりに CSS を使用してください。)、border、vspaceおよび の属性hspace(注意:要素は Internet Explorer (主要ブラウザ) でのみサポートされています) 要素imgobjectobjectalignlegend(非推奨。代わりにCSSを使用してください。)およびcaption要素の属性align要素の(非推奨。代わりに CSS を使用してください。) およびbgcolor(非推奨。代わりに CSS を使用してください。)tablenowrap(廃止) 、bgcolor(非推奨。代わりに CSS を使用してください。) width、、heightおよび要素tdthbgcolor(非推奨。代わりに CSS を使用してください。)tr要素の属性clear(廃止)br要素の属性compactの属性dl、dirおよびmenu要素type(非推奨。代わりに CSS を使用してください。)、compact(非推奨。代わりに CSS を使用してください。)、start(非推奨。代わりに CSS を使用してください。) の属性olとul要素type要素valueの属性liwidthpre要素の属性menu(非推奨。代わりに CSS を使用してください。) リスト (代替手段はありませんが、順序なしリストが推奨されます)dir(非推奨。代わりに CSS を使用してください。) リスト (代替はありませんが、順序なしリストが推奨されます)isindex(非推奨) (要素はサーバー側のサポートを必要とし、通常はサーバー側でドキュメントに追加され、form要素inputは代替として使用できます)applet(非推奨。object代わりに 要素を使用してください。)languageスクリプト要素の (廃止) 属性 (属性と重複) type。iframenoframestarget( 、 、 要素では非推奨ですmap。link)、クライアント側イメージマップ()、、要素のform属性amaplinkformbaseフレームセット バージョンには、トランジショナル バージョンのすべての内容に加えて、frameset要素 ( の代わりに使用body) とframe要素が含まれます。
上記の移行上の違いに加えて、フレームセット仕様 (XHTML 1.0 または HTML 4.01) では、 を要素、またはオプションで を含むにframeset置き換えた、異なるコンテンツ モデルを指定します。
bodyframenoframesbody
このリストが示すように、この仕様の緩いバージョンはレガシーサポートのために維持されています。しかし、よくある誤解とは異なり、XHTML への移行はレガシーサポートの削除を意味するものではありません。XML の X は拡張可能 (extensible) を意味し、W3C は仕様全体をモジュール化し、独立した拡張に開放しています。XHTML 1.0 から XHTML 1.1 への移行における主な成果は、仕様全体のモジュール化です。厳密なバージョンの HTML は、基本となる XHTML 1.1 仕様に対する一連のモジュール拡張を通じて XHTML 1.1 に導入されています。同様に、緩い (移行) 仕様やフレームセット仕様を探している人も、同様に拡張された XHTML 1.1 サポートを見つけることができます (その多くはレガシーモジュールまたはフレームモジュールに含まれています)。モジュール化により、個別の機能を独自のスケジュールで開発することもできます。たとえば、XHTML 1.1 を使用すると、MathML (XML に基づくプレゼンテーションおよびセマンティック数学言語) やXForms (既存の HTML フォームに代わる新しい高度な Web フォーム テクノロジ) などの新しい XML 標準への移行が迅速になります。
要約すると、HTML 4仕様は主に、様々なHTML実装をSGMLに基づいて明確に記述された単一の仕様にまとめ上げました。XHTML 1.0は、この仕様をそのまま新しいXML定義の仕様に移植しました。次に、XHTML 1.1はXMLの拡張性を活用し、仕様全体をモジュール化しました。XHTML 2.0は、標準化団体ベースのアプローチで仕様に新機能を追加するための第一歩となることを目指していました。
WHATWG によって開発された HTML Living Standard が公式バージョンであり、W3C HTML5 はもはや WHATWG から分離されていません。
WYSIWYGエディタ(What You See Is What You Get、見たままの結果が得られること)と呼ばれるエディタでは、ユーザーはワードプロセッサに似たグラフィカルユーザーインターフェース(GUI)を使用して、 HTMLドキュメントに表示される内容をそのままレイアウトします。エディタはコードを表示するのではなく、ドキュメントをレンダリングするため、作成者はHTMLに関する高度な知識を必要としません。
WYSIWYG編集モデルは、主に生成されたコードの品質が低いという理由で批判されてきました。 [ 98 ] [99]一方、 WYSIWYMモデル(見たままの意味)への変更を主張する声もあります。
WYSIWYG エディタは、次のような欠陥があると考えられているため、依然として議論の的となっています。
<em>
は非常に汎用的です。HTMLは、SGML基本構文をシンプルな構造のハイパーテキスト文書に適用した具体的なアプリケーションです。
ハイパーテキストマークアップ言語であるHTMLは、グローバルなハイパーテキストのためのシンプルで非独占的な配信フォーマットとして開発されました。HTML+は、HTMLのモジュール式拡張機能のセットであり、情報提供者のニーズへの理解の深まりに応じて開発されました。これらの拡張機能には、浮動図、記入フォーム、表、数式などの周囲へのテキストフローが含まれます。
。したがって、この文書はHTML 2.0を定義します(以前の非公式仕様と区別するため)。新機能を備えた将来のHTML(一般的に上位互換性のある)バージョンは、より高いバージョン番号でリリースされます。
この文書は、完成後にHTML 5.0を推奨しています。
注:このワーキンググループは閉鎖されています。
付録C「HTML互換性ガイドライン」に定められたガイドラインに従うXHTML文書は、ほとんどのHTMLブラウザと互換性があるため、インターネットメディアタイプ「text/html」[RFC2854]でラベル付けすることができます。これらの文書、および本仕様に準拠するその他の文書は、[RFC3236]で定義されているインターネットメディアタイプ「application/xhtml+xml」でラベル付けすることもできます。
。3. SHOULD この単語、または形容詞「RECOMMENDED」は、特定の状況では特定の項目を無視する正当な理由が存在する可能性があるが、別の方法を選択する前にその意味を完全に理解し、慎重に検討する必要があることを意味します。
1.1文書は、[RFC2854]で定義されているインターネットメディアタイプtext/html、または[RFC3236]で定義されているapplication/xhtml+xmlでラベル付けされるべきである。