| HTML | |
|---|---|
| ファイル名拡張子 |
|
| インターネットメディアの 種類 | テキスト/html |
| タイプコード | 文章 |
| 統一型識別子 (UTI) | public.html |
| 開発元 |
|
| 初回リリース | 1993年 (1993年) |
| 最新リリース | 生活水準 |
| フォーマットの種類 | ドキュメントファイル形式 |
| コンテナ | HTML要素 |
| 含ま れる | ウェブブラウザ |
| 拡張 | SGML |
| 拡張 | XHTML |
| オープンフォーマット? | はい |
| Webサイト | html |
ハイパーテキストマークアップ言語(HTML )は、 Webブラウザでの表示を目的としたドキュメントの標準マークアップ言語です。Webコンテンツの内容と構造を定義します。多くの場合、カスケーディングスタイルシート(CSS)やJavaScriptなどのスクリプト言語といった技術によって補完されます。
ウェブブラウザは、ウェブサーバーまたはローカルストレージからHTMLドキュメントを受信し、それをマルチメディアウェブページとしてレンダリングします。HTMLはウェブページの構造を意味的に記述し、当初は外観に関する手がかりも含まれていました。
HTML要素はHTMLページの構成要素です。HTML構造を用いることで、画像やインタラクティブフォームなどのオブジェクトをレンダリングされたページに埋め込むことができます。HTMLは、見出し、段落、リスト、リンク、引用などのテキストの構造的意味を規定することで、構造化されたドキュメントを作成する手段を提供します。HTML要素は、山括弧で囲まれたタグによって区切られます。<p>や<p>などのタグは、ページに直接コンテンツを挿入します。<p>や<p>などの他のタグは、<p>や<p>を囲み、ドキュメントのテキストに関する情報を提供し、サブ要素タグを含めることができます。ブラウザはHTMLタグを表示しませんが、ページコンテンツを解釈するために使用します。"},"parts":[{"template":{"target":{"wt":"code","href":"./Template:Code"},"params":{"lang":{"wt":"html"},"code":{"wt":""}},"i":0}}]}"><img>
<input><p></p>
HTMLはJavaScriptなどのスクリプト言語で記述されたプログラムを埋め込むことができ、これによりWebページの動作やコンテンツが変わります。CSSを組み込むことで、コンテンツの外観とレイアウトが定義されます。かつてHTMLの保守を担当し、現在はCSS標準の保守を担当しているWorld Wide Web Consortium (W3C)は、 1997年以来、明示的なプレゼンテーション用HTMLよりもCSSの使用を推奨しています。。[ 3 ] HTML5と呼ばれる HTML の一種は要素と JavaScript を使用してビデオやオーディオを表示するために使用されます<canvas>

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

XHTMLは、 XML 1.0を使用してHTML 4.01を再構築することから始まった独立した言語です。現在ではHTMLのXML構文と呼ばれており、独立した標準として開発されることはなくなりました。[ 59 ]
2019 年 5 月 28 日、W3C は WHATWG が HTML および DOM 標準の唯一の発行者となることを発表した。[ 66 ] [ 67 ] [ 68 ] [ 69 ] W3C と WHATWG は 2012 年以来、競合する標準を発行してきた。2007 年の時点では W3C 標準は WHATWG 標準と同一であったが、その後、設計上の決定の違いにより、標準は徐々に乖離していった。[ 70 ] WHATWG の「リビング スタンダード」はしばらくの間、事実上のウェブ標準であった。 [ 71 ] W3C は定期的に WHATWG HTML 仕様のスナップショットを W3C 勧告としてレビューおよび公開している。[ 72 ]
HTML マークアップは、タグ(およびその属性)、文字ベースのデータ型、文字参照、エンティティ参照など、いくつかの主要な構成要素から成り立っています。HTML タグは、通常、<p>や<p> のようにペアになっていますが、<p> のように空の要素を表すものもあり、ペアになっていないものもあります (例: <p>) 。このようなペアの最初のタグは開始タグ、2 番目のタグは終了タグです (開始タグと終了タグとも呼ばれます)。<h1></h1>"},"parts":[{"template":{"target":{"wt":"code","href":"./Template:Code"},"params":{"lang":{"wt":"html"},"code":{"wt":""}},"i":0}}]}"><img>
もう一つの重要な要素は、標準モードのレンダリングをトリガーするHTML文書型宣言です。
以下は、古典的な「Hello, World!」プログラムの例です。
< ! DOCTYPE html > <html> <head> <title>これはタイトルです</title> </head> <body> <div> <p>こんにちは世界!</p> </div> </body> </html>との間のテキストはウェブページの説明であり、との間のテキストは表示されるページコンテンツです。マークアップテキストは、ブラウザのタブやウィンドウのタイトルに表示されるブラウザページのタイトルを定義し、タグは、スタイリングを容易にするために使用されるページの分割を定義します。と の間には、要素を使用してウェブページのメタデータを定義できます。<html></html><body></body><title>This is a title</title><div><head></head><meta>
ドキュメントタイプ宣言<!DOCTYPE html>はHTML5用です。宣言が含まれていない場合、さまざまなブラウザはレンダリングのために「互換モード」に戻ります。[ 73 ]

HTMLドキュメントは、入れ子になったHTML要素の構造を暗示しています。これらは、山括弧で囲まれたHTMLタグによってドキュメント内で示されます。 [ 74 ]
単純な一般的なケースでは、要素の範囲は「開始タグ」と「終了タグ」という一対のタグによって示されます。要素のテキストコンテンツ(存在する場合)は、これらのタグの間に配置されます。<p></p>
タグは、開始と終了の間に、タグとテキストの組み合わせを含む、さらに別のタグマークアップを囲むこともできます。これは、親要素の子要素として、さらに(ネストされた)要素が存在することを示します。
開始タグには、タグ内に要素の属性を含めることもできます。これらは、ドキュメント内のセクションの識別子、ドキュメントの表示にスタイル情報をバインドするために使用される識別子、および画像を埋め込むために使用されるタグなど、一部のタグでは次のような形式で画像リソースへの参照など、その他の情報を示します。"},"parts":[{"template":{"target":{"wt":"code","href":"./Template:Code"},"params":{"lang":{"wt":"html"},"code":{"wt":""}},"i":0}}]}"><img>
"},"parts":[{"template":{"target":{"wt":"code","href":"./Template:Code"},"params":{"lang":{"wt":"html"},"code":{"wt":"
"}},"i":0}}]}"><imgsrc="example.com/example.jpg">
改行 などの一部の要素は、テキストや追加のタグといった埋め込みコンテンツを許可しません。これらの要素には、開始タグに似た空のタグが1つだけ必要で、終了タグは使用しません。<br>
多くのタグ、特に非常によく使われる段落要素の閉じタグは省略可能です。HTMLブラウザなどのエージェントは、コンテキストとHTML標準で定義された構造規則から要素の終了を示す閉じタグを推測できます。これらの規則は複雑で、ほとんどのHTML作成者には十分に理解されていません。<p>
HTML要素の一般的な形式は次のとおりです。 。一部のHTML要素は空要素として定義され、 の形式をとります。空要素は、たとえばタグやインラインタグのように、コンテンツを囲むことができません。 HTML要素の名前は、タグで使用される名前です。終了タグの名前の前にはスラッシュ文字 が付きます。タグにコンテンツがない場合、終了タグは許可されません。属性が指定されていない場合は、それぞれの場合でデフォルト値が使用されます。<tagattribute1="value1"attribute2="value2">''content''</tag><tagattribute1="value1"attribute2="value2"><br>"},"parts":[{"template":{"target":{"wt":"code","href":"./Template:Code"},"params":{"lang":{"wt":"html"},"code":{"wt":""}},"i":0}}]}"><img>
/
HTMLドキュメントのヘッダー:。タイトルはヘッダーに含まれます。例:<head>...</head>
<head> <title>タイトル</title> < link rel = " stylesheet" href = " stylebyjimbowales.css " > < ! -- スタイルシートをインポート -- > </head>HTMLの見出しは<h1>タグで定義され、H1が最高レベル(または最も重要)で、H6が最も重要度が低いレベルです。<h1><h6>
<h1>見出しレベル1 </h1> <h2>見出しレベル2 </h2> <h3>見出しレベル3 </h3> <h4>見出しレベル4 </h4> <h5>見出しレベル5 </h5> <h6>見出しレベル6 </h6>その影響は以下のとおりです。
見出しレベル1見出しレベル2見出しレベル3見出しレベル4見出しレベル5見出しレベル6
CSSはレンダリングを大幅に変更できる。
段落:
<p>段落1 </p> <p>段落2 </p><br>との違いは、 はページのセマンティック構造を変更せずに改行するのに対し、 はページを段落に分割することです。 要素は空の要素であり、属性を持つことはできますが、コンテンツを持つことはできず、終了タグも持つことができません。<br><p><br><p><br>
<p>これは<br>改行を含む段落です</p>これはHTMLのリンクです。リンクを作成するには、タグを使用します。属性には、リンクのURLアドレスが格納されます。<a>href
<a href="https://www.wikipedia.org/">ウィキペディアへのリンク!</a>ユーザーが入力を行う方法は数多くあります。例えば、以下のような方法です。
< input type = "text" > <!-- これはテキスト入力用です --> < input type = "file" > <!-- これはファイルのアップロード用です --> < input type = "checkbox" > <!-- これはチェックボックス用です -->コメント:
<!-- これはコメントです -->コメントはマークアップの理解を助けるものであり、ウェブページには表示されません。
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 」という単語をハイパーリンクとしてレンダリングします。画像をハイパーリンクとしてレンダリングするには、要素を要素のコンテンツとして挿入します。 は、属性はありますがコンテンツや閉じタグのない空の要素です。<ahref="https://en.wikipedia.org/">Wikipedia</a>imgabrimg"},"parts":[{"template":{"target":{"wt":"code","href":"./Template:Code"},"params":{"lang":{"wt":"html"},"code":{"wt":"
"}},"i":0}}]}"><ahref="https://example.org"><imgsrc="image.gif"alt="descriptive text"width="50"height="50"border="0"></a>要素の属性のほとんどは、名前と値のペアであり、=要素名の後、要素の開始タグ内に記述されます。値はシングルクォートまたはダブルクォートで囲むことができますが、特定の文字で構成される値は HTML では引用符なしで残すことができます (ただし XHTML ではできません)。[ 76 ] [ 77 ]属性値を引用符なしで残すことは安全ではないと考えられています。[ 78 ]名前と値のペアの属性とは対照的に、要素の開始タグに存在するだけで要素に影響を与える属性もあります。 [ 7 ]ismap要素の属性などがそうですimg。[ 79 ]
多くの要素に共通して現れる属性がいくつかあります。
id属性は、要素のドキュメント全体で一意の識別子を提供します。これは、スタイルシートが要素の表示プロパティを変更したり、スクリプトが要素の内容や表示を変更、アニメーション化、または削除したりできるように、要素を識別するために使用されます。ページの URL に追加されると、通常はページのサブセクションである要素のグローバルに一意の識別子を提供します。たとえば、 の ID "Attributes" などですhttps://en.wikipedia.org/wiki/HTML#Attributes。class属性は、類似する要素を分類する方法を提供します。これは、意味論的または表示上の目的で使用できます。たとえば、HTML ドキュメントでは、このクラス値を持つすべての要素がドキュメントの本文に従属していることを示すために、この指定を意味論的に使用できます。表示上は、このような要素は、HTML ソースで出現する場所に表示されるのではなく、ページ上の脚注としてまとめて表示される場合があります。クラス属性は、マイクロフォーマットで意味論的に使用されます。複数のクラス値を指定できます。たとえば、 は、要素をと の両方のクラスに分類します。<class="notation"><class="notationimportant">notationimportantstyle属性を使用して、特定の要素に表示プロパティを割り当てることができます。スタイルシート内で要素を選択するには、要素の属性をid使用するのがより良い方法とされていますが、単純なスタイル設定や特定のスタイル設定、あるいは臨時のスタイル設定には、この方法が煩雑すぎる場合があります。classtitle属性は、要素にサブテキストによる説明を付加するために使用されます。ほとんどのブラウザでは、この属性はツールチップとして表示されます。lang属性は、要素の内容の自然言語を識別します。これは、文書の他の部分の言語とは異なる場合があります。たとえば、英語の文書では次のようになります。<p>まあ、フランスで言うところの「人生ってこんなものさ」ってことですね。</p>省略形要素 はabbr、これらの属性の一部を示すために使用できます。
< abbr id = "anId" class = " jargon" style = " color:purple;" title = "Hypertext Markup Language" > HTML </abbr>この例はHTMLとして表示されます。ほとんどのブラウザでは、略語にカーソルを合わせると「ハイパーテキストマークアップ言語」というタイトルテキストが表示されます。
ほとんどの要素は、テキストの方向を指定するために言語関連の属性を受け取りますdir。たとえば、アラビア語、ペルシア語、ヘブライ語などの右から左へのテキストには「rtl」が使用されます。[ 80 ]
HTMLバージョン4.0以降、252個の文字実体参照と1,114,050個の数値文字参照が定義されており、これらによって文字をそのまま記述するのではなく、シンプルなマークアップで記述することが可能になります。文字そのものと、それに対応するマークアップは同等とみなされ、同じように表示されます。
このように文字を「エスケープ」できる機能により、文字<と(それぞれ とと と&記述した場合) はマークアップではなく文字データとして解釈されます。たとえば、リテラル は通常タグの開始を示し、 は通常文字実体参照または数値文字参照の開始を示します。これを または または と記述すると、 を要素の内容または属性の値に含めることができます。二重引用符 ( ) は、属性値を引用するために使用されていない場合、属性値自体の中に現れる場合は、またはまたはとしてエスケープする必要があります。同様に、単一引用符 ( ) は、属性値を引用するために使用されていない場合、属性値自体の中に現れる場合は、 または(またはHTML5 または XHTML ドキュメント[ 81 ] [ 82 ]のように)としてエスケープする必要があります。ドキュメントの作成者がこのような文字のエスケープの必要性を見落とした場合、一部のブラウザは非常に寛容で、コンテキストを使用して意図を推測しようとします。その結果、依然として無効なマークアップが生成され、他のブラウザや、検索やインデックス作成などの目的でドキュメントを解析しようとする他のユーザーエージェントにとって、ドキュメントへのアクセス性が低下します。<&<&&&&&""""''''
エスケープ処理によって、入力しにくい文字や、ドキュメントの文字エンコーディングで使用できない文字を、要素や属性の内容内に表現することもできます。たとえば、通常は西ヨーロッパや南アメリカのキーボードにしかないアキュートアクセント付き文字e( )は、すべてのキーボードで使用可能で、すべての文字エンコーディングでサポートされている文字を使用して、任意の HTML ドキュメントでエンティティ参照または数値参照またはとして記述できます。UTF -8などのUnicode文字エンコーディングは、すべての最新のブラウザと互換性があり、世界のほぼすべての文字に直接アクセスできます。[ 83 ]éééé
HTMLは、スクリプトデータやスタイルシートデータなど、要素コンテンツ用のいくつかのデータ型を定義しており、属性値用のID、名前、 URI、数値、長さの単位、言語、メディア記述子、色、文字エンコーディング、日付と時刻など、膨大な数の型を定義しています。これらのデータ型はすべて、文字データの特殊化です。
HTMLドキュメントは、文書型宣言(非公式には「doctype」)で始まる必要があります。ブラウザでは、doctypeはレンダリングモード、特に互換モードを使用するかどうかを定義するのに役立ちます。
DOCTYPEの本来の目的は、文書型定義(DTD)に基づいてSGMLツールによるHTML文書の解析と検証を可能にすることでした。DOCTYPEが参照するDTDには、そのDTDに準拠する文書で許可される内容と禁止される内容を規定する機械可読な文法が含まれています。一方、ブラウザはHTMLをSGMLのアプリケーションとして実装していないため、DTDを読み取りません。
HTML5 はDTD を定義していないため、HTML5 では doctype 宣言がよりシンプルで短くなっています。[ 84 ]
<!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 は、互換モードではなく標準モードを有効にします。
さらに、HTML 4.01 では、以下で説明するようにTransitional と Frameset DTD が提供されています。transitional タイプは最も包括的で、現在のタグだけでなく、古い、または「非推奨」のタグも含まれています。一方、Strict DTD は非推奨のタグを除外しています。frameset には、transitional タイプに含まれるタグに加えて、ページ上にフレームを作成するために必要なすべてのタグが含まれています。[ 85 ]
セマンティック HTML は、エンコードされた情報の意味をプレゼンテーション (見た目) よりも重視する HTML の記述方法です。HTML は当初からセマンティック マークアップを含んでいましたが[ 86 ] 、 <p>、<p> 、<span>タグなどのプレゼンテーション マークアップも含まれていました。意味的に中立なdiv タグと spanタグもあります。1990 年代後半、カスケード スタイル シートがほとんどのブラウザで動作し始めた頃から、Web 作成者はコンテンツとプレゼンテーションの分離を考慮してプレゼンテーション HTML マークアップの使用を避けるよう推奨されてきました。[ 87 ]<font><i><center>
2001年のセマンティックWebに関する議論で、ティム・バーナーズ=リーらは、知能ソフトウェア「エージェント」がいつか自動的にWebをクロールし、これまで無関係だった公開された事実を見つけてフィルタリングし、関連付けて人間のユーザーに役立つようにする方法の例を挙げた。[ 88 ]このようなエージェントは今でも一般的ではないが、 Web 2.0、マッシュアップ、価格比較Webサイトのアイデアの一部はそれに近いものになっているかもしれない。これらのWebアプリケーションハイブリッドとバーナーズ=リーのセマンティックエージェントの主な違いは、現在の情報の集約とハイブリッド化は通常、 Web開発者によって設計されており、開発者はマッシュ、比較、結合したい特定のデータのWebの場所とAPIセマンティクスをすでに知っているという事実にある。
ウェブページを自動的にクロールして読み込む重要なタイプのウェブエージェントとして、ウェブクローラーまたは検索エンジンスパイダーがあります。これらのソフトウェアエージェントは、さまざまな技術とアルゴリズムを使用して1日に何百万ものウェブページを読み込み、インデックスを作成し、ウェブユーザーに検索機能を提供するため、ウェブページの意味的な明確さに依存しています。検索機能がなければ、ワールドワイドウェブの有用性は大幅に低下するでしょう。
検索エンジンのクローラーが HTML 文書内で見つけたテキストの重要性を評価できるようにするため、またマッシュアップやその他のハイブリッドを作成するものや、開発中のより自動化されたエージェントのためにも、公開されたテキストの意味を明らかにするために HTML に存在する意味構造を広く均一に適用する必要があります。[ 89 ]
プレゼンテーション用マークアップタグは、現在の HTML およびXHTML の推奨事項では非推奨となっています。以前のバージョンの HTML のプレゼンテーション機能の大部分は、アクセシビリティの低下、サイトメンテナンスのコスト増加、ドキュメントサイズの増大につながるため、もはや許可されていません。[ 90 ]
適切なセマンティックHTMLは、 Webドキュメントのアクセシビリティも向上させます( Webコンテンツアクセシビリティガイドラインも参照)。例えば、スクリーンリーダーや音声ブラウザがドキュメントの構造を正しく認識できる場合、適切にマークアップされた情報であれば、視覚障害のあるユーザーの時間を無駄にすることなく、重複した情報や無関係な情報を読み上げることができます。
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タイプでもラベル付けできるとされています。[ 91 ] XHTML 1.1でも、XHTML 1.1文書にはどちらのMIMEタイプでもラベル付けできるとされています。[ 92 ] [ 93 ]
ほとんどのグラフィカルメールクライアントは、プレーンテキストでは利用できない書式設定や意味的なマークアップを提供するために、HTMLのサブセット(定義が曖昧な場合が多い)の使用を許可しています。これには、色付きの見出し、強調表示や引用符付きテキスト、インライン画像や図などの活字情報が含まれる場合があります。このようなクライアントの多くは、HTMLメールメッセージを作成するためのGUIエディタと、それを表示するためのレンダリングエンジンの両方を備えています。電子メールでのHTMLの使用は、互換性の問題、フィッシング攻撃を隠蔽するのに役立つ可能性、視覚障害者にとってのアクセシビリティの問題、スパムフィルタを混乱させる可能性、メッセージサイズがプレーンテキストよりも大きくなることなどの理由で、一部から批判されています。
HTML を含むファイルの最も一般的なファイル名拡張子は です。この一般的な略語は で、これは一部のオペレーティングシステムがファイル拡張子を3 文字に制限していることに由来します。[ 94 ].html.htm
HTMLアプリケーション(HTA、ファイル拡張子.hta)は、ブラウザ上でHTMLとダイナミックHTMLを使用してアプリケーションのグラフィカルインターフェースを提供するMicrosoft Windowsアプリケーションです。通常のHTMLファイルは、 Webブラウザのセキュリティモデルの範囲内で動作し、Webサーバーとの通信のみを行い、WebページオブジェクトとサイトCookieのみを操作します。一方、HTAは完全に信頼されたアプリケーションとして動作するため、ファイルやWindowsレジストリエントリの作成/編集/削除など、より多くの権限を持ちます。HTAはブラウザのセキュリティモデルの外で動作するため、HTTP経由で実行することはできず、( EXEファイルと同様に)ダウンロードしてローカルファイルシステムから実行する必要があります。
HTML とその関連プロトコルは、誕生以来比較的急速に普及しました。しかし、この言語の初期には明確な標準は存在しませんでした。開発者たちは当初、HTML をプレゼンテーションの詳細を欠いた意味論的言語として構想していましたが、[ 95 ]実際の使用により、さまざまなブラウザベンダーに大きく影響されて、多くのプレゼンテーション要素と属性が言語に組み込まれました。HTML に関する最新の標準は、この言語の時折混沌とした開発を克服し[ 96 ]、意味のある、かつ適切に表現されたドキュメントを構築するための合理的な基盤を作る努力を反映しています。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 は密接に関連しているため、並行して文書化されることがある。このような場合、一部の著者は(X)HTML または X(HTML) と2 つの名称を混同することがある。
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 宣言では使用されていないため、この新しい慣習に慣れていない以前のソフトウェアを混乱させる可能性があります。この問題を解決するには、次のように閉じ山括弧の前のスラッシュを削除します。[ 97 ]<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間の移行を容易にするためのいくつかの規約を推奨しています。[ 98 ]以下の手順は、XHTML 1.0ドキュメントにのみ適用できます。
xml:langと属性の両方を含めてください。lang<br><br/>ではなく)。<div/>W3Cの互換性ガイドラインを注意深く遵守することで、ユーザーエージェントはドキュメントをHTMLとXHTMLのどちらとしても解釈できるようになります。このように互換性を持たせたXHTML 1.0ドキュメントについては、W3CはHTML(text/htmlMIMEタイプ付き)またはXHTML(application/xhtml+xmlまたはapplication/xmlMIMEタイプ付き)のいずれとしても配信することを許可しています。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インライン要素とプレーンテキストは、 <p>、blockquote<p>、form<p>、noscript<p>に直接使用できます。noframesu)(非推奨。ハイパーリンクと混同される可能性があります。)s)center(非推奨。代わりにCSSを使用してください。)font(非推奨。代わりにCSSを使用してください。)basefont(非推奨。代わりにCSSを使用してください。)background(非推奨。代わりに CSS を使用してください。) およびbgcolor(非推奨。代わりに CSS を使用してください。)body属性 (W3C によると必須の要素) 。aligndiv(非推奨。代わりにCSSを使用してください。)<p> 、 <p>、 form<p>、<p>、段落(p)および見出し(h1… h6)要素の属性align要素の属性(非推奨。代わりに CSS を使用してください。)、noshade(非推奨。代わりに CSS を使用してください。)、size(非推奨。代わりに CSS を使用してください。) およびwidth(非推奨。代わりに CSS を使用してください。)hralign(非推奨。代わりにCSSを使用してください。)、およびborder、およびの属性(注意:要素はInternet Explorer(主要ブラウザ)でのみサポートされています)要素vspacehspaceimgobjectobjectalign(非推奨。代わりにCSSを使用してください。)要素legendの属性captionalign(非推奨。代わりにCSSを使用してください。)およびbgcolor(非推奨。代わりにCSSを使用してください。)table要素nowrap(廃止)、bgcolor(非推奨。代わりにCSSを使用してください。)width、、heightおよび要素tdについてthbgcolor(非推奨。代わりにCSSを使用してください。)tr要素の属性clear(廃止された)br要素の属性compact属性dl、dirおよびmenu要素type(非推奨。代わりにCSSを使用してください。)、compact(非推奨。代わりにCSSを使用してください。)およびstart(非推奨。代わりにCSSを使用してください。)属性を要素に適用しolます。ultype要素valueの属性liwidthpre要素の属性menu(非推奨。代わりにCSSを使用してください。)リスト(代替手段はありませんが、順不同リストが推奨されます)dir(非推奨。代わりにCSSを使用してください。)リスト(代替手段はありませんが、順不同リストが推奨されます)isindex(非推奨。)(要素はサーバー側のサポートが必要であり、通常はサーバー側でドキュメントに追加されます。要素formはinput代替として使用できます。)applet(非推奨。object代わりに要素を使用してください。)languageスクリプト要素の(廃止された)属性(属性と重複)type。iframenoframestarget(map、linkおよび要素では非推奨です。) 、クライアント側イメージマップ()、、および要素のform属性amaplinkformbaseFrameset バージョンには、Transitional バージョンに含まれるすべての要素に加え、frameset要素 ( の代わりに使用されますbody) とframe要素が含まれます。
上記の移行上の違いに加えて、フレームセット仕様(XHTML 1.0 または HTML 4.01)では、異なるコンテンツ モデルが指定されており、 が にframeset置き換えられ、 は要素、またはオプションでbodyを含む。framenoframesbody
このリストが示すように、仕様の緩やかなバージョンはレガシーサポートのために維持されています。しかし、よくある誤解とは異なり、XHTMLへの移行は、このレガシーサポートの削除を意味するものではありません。むしろ、XMLのXは拡張可能を意味し、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エディタ(見たまま編集)とは、ユーザーがグラフィカルユーザーインターフェース(GUI)を使用してHTMLドキュメントに表示される内容をそのままレイアウトするHTMLエディタのことです。Microsoft FrontPageなどがその例で、多くの場合ワープロソフトに似ています。このエディタはコードを表示するのではなく、ドキュメントをレンダリングするため、作成者はHTMLに関する高度な知識を必要としません。
WYSIWYG編集モデルは、主に生成されるコードの品質が低いことから批判されてきました[ 99 ] [ 100 ] 。様々な開発者がWYSIWYMモデル(見たままが意図したもの)への変更を提唱しています[ 101 ] 。
WYSIWYGエディタは、以下のような欠点があると認識されているため、依然として議論の的となっている。
<em>単純な構造のハイパーテキスト文書に適用される SGML の基本構文の特定のアプリケーションです。
ハイパーテキスト マークアップ言語 HTML は、グローバル ハイパーテキストのシンプルで非独占的な配信フォーマットとして開発されました。HTML+ は HTML のモジュール式拡張機能のセットであり、情報提供者のニーズに対する理解の高まりに対応して開発されました。これらの拡張機能には、浮動図、入力フォーム、表、数式を囲むテキスト フローが含まれます。
将来の(一般的に上位互換性のある) 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 のラベルを付ける必要があります。