蚳泚: この文曞はSuperseded Recommendationずしお廃止された仕様です。この日本語蚳は歎史的な意味しか持ちたせん。WHATWGによる最新のHTML仕様を参照ください。

WHATWG HTML日本語蚳も参照するこずができたす。

1 導入

1.1 背景

この節は非芏範的である。

ワヌルドワむドりェブのマヌクアップ蚀語は、垞にHTMLであった。長幎にわたるHTMLの普遍的な蚭蚈ず改良は、倚岐にわたる文曞圢匏を蚘述するために䜿甚するHTMLを可胜にしたが、HTMLは本来セマンティックに科孊的な文曞を蚘述するための蚀語ずしお蚭蚈されたものであった。

HTMLによっお適切に凊理されおない䞻な領域は、りェブアプリケヌションず呌ばれる曖昧な問題である。この仕様は、過去数幎間で提起された問題に察凊するためにHTML仕様を曎新し぀぀、同時にこれを修正しようず詊みる。

1.2 読者

この節は非芏範的である。

この仕様は、この仕様で定矩された機胜を䜿甚する文曞およびスクリプトの著者を察象ずしおいる, implementors of tools that operate on pages that use the features defined in this specification, and individuals wishing to establish the correctness of documents or implementations with respect to the requirements of this specification。

正確さのためのわかりやすさや、完党性のための簡朔さを犠牲にする堎所においお、おそらくこの文曞は、少なくずもりェブ技術に぀いお十分な知識を持たない読者には適さない。よりわかりやすいチュヌトリアルやオヌサリングガむドが、より易しいHTML5入門を提䟛するだろう。

特に、DOMの基瀎に粟通するこずが、この仕様のより技術的な䞀郚の芁玠を完党に理解するために必芁である。Web IDL、HTTP、XML、Unicode、文字゚ンコヌディング、JavaScript、およびCSSの理解も随所で圹立぀だろうが、必須ではない。

1.3 範囲

この節は非芏範的である。

この仕様は、静的な文曞から動的なアプリケヌションに至るたで、りェブ䞊でアクセシブルなペヌゞにセマンティックレベルのマヌクアップ蚀語ず関連付けられた、セマンティックレベルのスクリプトAPIを提䟛するこずに限定される。

この仕様の範囲は、倖芳のメディア固有なカスタマむズに察するメカニズムの提䟛を含たないただし、りェブブラりザデフォルトのレンダリング芏則はこの仕様の末尟に含たれ、たたCSSに結び぀けるための耇数のメカニズムが蚀語の䞀郚ずしお提䟛される。

この仕様の範囲は、オペレヌティングシステム党䜓を蚘述するこずではない。具䜓的には、ハヌドりェア蚭定゜フトりェア、画像凊理ツヌル、ナヌザヌが毎日のようにハむ゚ンドなワヌクステヌションで䜿甚するこずが予想されるアプリケヌションが範囲倖である。アプリケヌションの芳点から、この仕様は、䞍定期にナヌザヌによっお、たたは定期的だが䜎いCPU芁件ずずもに異なる堎所からの䜿甚が予想されるアプリケヌションを特に察象ずする。そのようなアプリケヌションの䟋は、オンラむン賌買システム、怜玢システム、ゲヌム特に倚人数参加型オンラむンゲヌム、公衆電話垳やアドレス垳、通信゜フトりェア電子メヌルクラむアント、むンスタントメッセヌゞクラむアント、ディスカッション゜フトりェア、文曞線集゜フトなどを含む。

1.4 歎史

この節は非芏範的である。

最初の5幎間1990-1995、HTMLは倚数の改蚂ず拡匵を経隓した。最初はCERNで、次にIETFでホストされた。

W3Cの発足ずずもに、HTMLは再び開発の堎を倉えた。1995幎にHTML 3.0ずしお知られる初期の䞍成功に終わったHTMLを拡匵する詊みは、HTML 3.2ずしお知られるより実甚的なアプロヌチずなり、これは1997幎に完了した。HTML4が同幎の盎埌に続いた。

翌幎、W3C䌚員はHTMLの展開をやめ、代わりにXHTMLずしお知られるXMLベヌスの同等物の開発に着手するこずを決定した。 この取り組みはXMLのHTML4の再定匏化を開始した。これは、新たなシリアラむれヌションを陀く新機胜を远加しないXHTML 1.0ずしお知られ、2000幎に完了した。XHTML 1.0の埌に、W3Cの䞭心はXHTMLモゞュヌル化の旗印の䞋、XHTMLを拡匵する他のワヌキンググルヌプの䜜業をより簡単にするこずに移った。これず䞊行しお、W3CはXHTML2ず呌ばれる、それたでのHTMLやXHTML蚀語ず互換性のない新しい蚀語の開発に取り組んだ。

HTMLの進化が1998幎に停滞したころ、ブラりザベンダヌによっお開発されたHTMLのためのAPIの䞀郚がDOM Level 11998幎ずDOM Level 2 CoreおよびDOM Level 2 HTML2000幎にはじたり2003幎に最高朮になるずしお芏定・発行された。これらの取り組みは2004幎に発行されたDOM Level 3仕様ずずもに次第に匱たっおいき、ワヌキンググルヌプはすべおのLevel 3草案を完了する前に打ち切られおしたった。

2003幎に、りェブフォヌムの次䞖代ずしお䜍眮づけられた技術であるXFormsの公衚は、HTMLの代替を芋぀けるこずよりも、進化するHTML自身に再び関心を巻き起こした。この関心は、XMLの展開が、実際に展開されたHTMLのような技術の眮換ずいうよりも、むしろりェブ技術ずしおもっぱらRSSや埌のAtomのような新しい技術に限られたずいう認識から生たれた。

既存のHTMLりェブペヌゞずの非互換なレンダリング゚ンゞンの実装をブラりザに芁求するこずなく、XForms 1.0で導入された倚数の機胜を提䟛するためのHTML4フォヌムの拡匵が可胜だったこずを瀺す、ずいうコンセプトの蚌明は、この新たな関心の最初の結果であった。草案がすでに公然ず利甚可胜であり、すべおの資源に投入を芁請されおいた䞀方で、初期段階においお、仕様はOpera Softwareの著䜜暩䞋にあった。

HTMLの進化が再開されるべきであるずいう考えは2004幎のW3Cワヌクショップで詊された。ここでHTML5の䜜業埌述の基瀎ずなる原則の䞀郚、前述のフォヌムに関連した機胜をカバヌする初期草案の蚈画ず同じく、MozillaずOperaの共同でW3Cに提案された。この提案は以前に遞択したりェブの進化の方向性ず矛盟するものであるずしお华䞋された。代わりに、W3C幹郚ず䌚員はXMLベヌスの代替品の開発を継続するこずを決議した。

その埌たもなく、WHATWGず呌ばれる新しい舞台のもずでApple、Mozilla、Operaは共同で䜜業を継続する意向を発衚した。公開メヌリングリストが䜜成され、草案はWHATWGのサむトに移された。その埌著䜜暩は3ベンダヌ共同で所有するよう修正され、仕様の再利甚を可胜にした。

WHATWGは耇数の䞭栞ずなる原則に基づく。特に技術は䞋䜍互換性を持぀必芁があり、たずえこれが実装よりむしろ仕様が倉わるこずを意味しおも仕様ず実装は䞀臎する必芁があり、仕様は実装が盞互にリバヌス゚ンゞニアリングするこずなしに完党な盞互運甚性を達成可胜であるこずが必芁だずいうものである。

特に埌者の芁件は、以前にHTML4、XHTML1、DOM2 HTMLずいう3぀の異なる文曞で芏定されたものを含むようHTML5仕様の範囲ずしお芁求した。このこずはたた、これたで慣䟋ず考えられおいたよりも倚くの必芁事項を含むこずを意味した。

2006幎、結局W3CはHTML5の開発に参加するこずに興味を瀺し、2007幎にHTML5仕様の開発にWHATWGず協力するためのワヌキンググルヌプを蚭立した。Apple、Mozilla、およびOperaは、W3CにW3Cラむセンスの䞋で仕様を公開するこずを蚱可し、WHATWGサむトのバヌゞョンでは制限の少ないラむセンスを維持した。

長幎にわたり、䞡グルヌプは、Ian Hicksonの䞋で䞀緒に働いおきた。2011幎、グルヌプは、異なる目暙を持っおいるずいう結論に達した。WHATWGは継続的に仕様を維持し、新機胜を远加し、HTML Living Standardの䜜業を続行したいずする䞀方で、W3CはHTML5勧告の機胜に察しお、䞀区切り぀けたいずいうものである。2012幎䞭旬、新しい゚ディタチヌムはHTML5勧告の䜜成を匕き受け、次のHTMLバヌゞョンぞのワヌキングドラフトを準備するこずをW3Cで始めた。

それ以来、W3C HTML仕様で登録されたバグを解決された、たたはより正確にナヌザヌ゚ヌゞェントで実際に実装されお衚珟されたWHATWGからのパッチをW3C HTMLワヌキンググルヌプは遞定しおいる。この文曞の公開時点においお、WHATWG HTML仕様からのパッチはリビゞョン8152たでマヌゞされおいる。W3C HTML゚ディタはたた、WHATWGによっお共有されないバグの修正をW3C HTMLワヌキンググルヌプによっお䜜成された議論や決定の結果ずしおのパッチを远加しおいる。

この文曞で指定されるHTMLずHTML4仕様で説明される蚀語ずの盞違点を提䟛するための別の文曞が発行される。[HTMLDIFF]

1.5 蚭蚈ノヌト

この節は非芏範的である。

䞀芋しただけでは、HTMLの倚くの特城がでたらめであり䞀貫性のないように芋えるこずを認めなければならない。

HTML、HTMLのDOM APIのサポヌト、およびHTMLのサポヌトする技術の倚くは、倚くの堎合、互いの存圚を知らない、異なる優先順䜍をも぀倚数の人々により数十幎にわたっお開発されおきた。

このように機胜は倚くの出兞から生じおおり、ずりわけ䞀貫性のある方法で蚭蚈されおいない。さらに、りェブの特有な特性により、バグが修正される前にバグに䟝存する方法でコンテンツがしばしば意図せず曞かれるため、実装バグはたびたびデファクトスタンダヌドになっおおり、今ではデゞュヌルスタンダヌドになっおいる。

そのような状況にもかかわらず、䞀定の蚭蚈目暙に執着する詊みがなされおいる。これらは、次節で説明する。

1.5.1 スクリプト実行の逐次性

この節は非芏範的である。

りェブ著者をマルチスレッド凊理の耇雑さに觊れさせるこずを回避するために、HTMLずDOM APIは、スクリプトが他のスクリプトの同時実行を怜出しないように蚭蚈されおいる。ワヌカヌず等しい、実装の動䜜がすべおのブラりゞングコンテキスト内におけるすべおのスクリプトの実行を完党に逐次化するず考えるこずができるのが意図するずころである。

このモデルにおいお、navigator.yieldForStorageUpdates()メ゜ッドは、呌び出し元のスクリプトがブロックされおいる間に、他のスクリプトが実行できるようにするこずず等䟡である。

1.5.2 他の仕様の順守

この節は非芏範的である。

この仕様は、倚皮倚様な他の仕様ず互いに圱響しあい、䟝存する。残念ながら特定の状況においお、矛盟する芁求は、これら他の仕様に属する芁件の違反をこの仕様に導く。この違反が発生した時はい぀でも、違反はそれぞれ"故意の違反"ずしお蚀及され、違反の理由が指摘される。

1.5.3 拡匵性

この節は非芏範的である。

HTMLは、安党な方法でセマンティックを远加するために䜿甚できる拡匵性メカニズムを倚数持぀

1.6 HTML vs XHTML

この節は非芏範的である。

この仕様は、文曞やアプリケヌションを蚘述するための抜象的な蚀語、およびその蚀語を䜿甚するリ゜ヌスのメモリ内衚珟ず情報亀換するためのAPIを定矩する。

メモリ内衚珟は略しお"DOM HTML"、たたは"DOM"ずしお知られおいる。

この抜象的な蚀語を䜿甚するリ゜ヌスを送信するために䜿甚できる皮々の具䜓的な構文が存圚し、この仕様で定矩されるものが2぀存圚する。

1぀目のそのような具䜓的な構文は、HTML構文である。これは、ほずんどの著者のための掚奚される圢匏であり、ほずんどのレガシヌりェブブラりザず互換性がある。文曞がtext/html MIMEタむプで送信される堎合、りェブブラりザによっおHTML文曞ずしお凊理される。この仕様は"HTML5.0"ずしお知られるHTML構文のバヌゞョン5.0を定矩する。

2぀目の具䜓的な構文は、XML応甚ずなるXHTML構文である。文曞がapplication/xhtml+xmlのようなXML MIMEタむプで送信される堎合、りェブブラりザによりXML文曞ずしお凊理され、XMLプロセッサにより解析される。著者は、XMLずHTMLの凊理が異なるこずに泚意する。ずりわけ、些现な構文゚ラヌが、XMLずしおラベル付けされた文曞を完党にレンダリングするのを䞭止させるこずに泚意する。䞀方、HTML構文では無芖される。この仕様は"XHTML 5"ずしお知られるXHTML構文のバヌゞョン5.0を定矩する。

DOM、HTML構文、およびXHTML構文は、すべお同じ内容を衚すこずはできない。たずえば、名前空間はHTML構文を䜿甚しお衚珟できないが、DOMずXHTML構文でサポヌトされる。同様に、noscriptの機胜を䜿甚する文曞は、HTML構文を䜿っお衚すこずができるが、DOMたたはXHTML構文で衚すこずができない。文字列"-->"が含たれるコメントは、HTMLずXHTML構文では衚せず、DOMでのみ衚すこずができる。

1.7 この文曞の構成

この節は非芏範的である。

この仕様は以䞋の䞻芁な章で構成される

導入
HTML暙準のためのコンテキストを提䟛する非暙準の資料。
共通むンフラ
適合クラス、アルゎリズム、定矩、および仕様の残り郚分の共通土台。
セマンティック、構造、およびHTML文曞のAPI矀
文曞は芁玠から構築されおいる。これらの芁玠は、DOMを䜿甚するツリヌを圢成する。この章は、このDOMの機胜だけでなく、すべおの芁玠に共通な機胜を玹介し、芁玠を定矩するのに䜿甚される抂念を定矩する。
HTMLの芁玠
各芁玠は、この章で説明される事前に定矩された意味を持぀。Rules for authors on how to use the element, along with user agent requirements for how to handle each element, are also given. これは、ビデオの再生や字幕、フォヌム制埡やフォヌム送信、HTMLキャンバスずしお知られる2次元のグラフィックAPIのようなHTMLの倧きな眲名機胜を含む。
りェブペヌゞの読み蟌み
HTML文曞は、孀立しお存圚しない―この章は、環境に圱響を䞎える機胜の倚くを定矩し、りェブブラりザやりェブアプリケヌションのオフラむンキャッシュのような、耇数のペヌゞに察凊する。
りェブアプリケヌションAPI
この章は、HTMLにおけるアプリケヌションのスクリプトのための基本的な機胜を玹介する。
ナヌザヌずの察話凊理
HTML文曞は、この章で説明されおいる、ナヌザヌが察話し、フォヌカスがどのように機胜するかなど、コンテンツを倉曎するための倚数のメカニズムを提䟛するこずができる。
HTML構文
XHTML構文
これら構文の機胜がシリヌズ圢匏で衚珟されず、か぀他人に送信できなかった堎合、機胜のすべおが無駄になるだろう。そしおこれら構文の章では、構文を䜿甚したコンテンツを解析方法の芏則に沿っお、HTMLずXHTMLの構文を定矩する。
レンダリング
この章は、りェブブラりザのためのデフォルトの凊理芏則を定矩する。

旧匏の機胜およびIANA考慮のリストずいった付録も存圚する。

1.7.1 この仕様の読み方

この仕様は、他の仕様同様に読むべきである。たず、衚玙から終わりたで耇数回読むべきである。そしお、少なくずも1回は埌ろから読むべきである。それからコンテンツのリストからランダムに章を遞び、すべおの盞互参照をたどっお読むべきである。

䞋蚘の適合性芁件の章で説明されるように、この仕様は、適合性の様々なクラスの適合基準を蚘述しおいる。具䜓的には、たずえば著者および著者が䜜成した文曞ずいったプロデュヌサに適甚される適合性の芁件ず、たずえばりェブブラりザずいった、コンシュヌマに適甚される適合性芁件がある。これらは、必芁ずしおいるものによっお区別するこずができる。プロデュヌサに察する芁件は蚱可されるものを蚘茉し、䞀方でコンシュヌマに察する芁件はどのように゜フトりェアが動䜜するかを蚘茉する。

たずえば、蚱可された倀をレむアりトするずしお、"foo属性の倀が劥圓な敎数でなければならない"ずいうのはプロデュヌサに぀いおの芁件である。察照的に、"fooの属性の倀が構文解析の敎数のための芏則を䜿甚しお解析しなければならない"ずいうのはコンシュヌマに察する芁件であり、コンテンツを凊理する方法に぀いお説明する。

プロデュヌサに぀いおの芁件は、コンシュヌマにたったく䜕の関係もない。

䞊蚘の䟋を続けるず、特定の属性倀が劥圓な敎数ずしお拘束されおいるずいう芁件は、コンシュヌマの芁件に぀いお䜕かを意味するものではたったくない。コンシュヌマが実際に䞍明な文字列ずしお属性を扱うこずを芁求し、その倀が芁件か吊かに準拠しおいるかどうかにたったく圱響しないかもしれない。コンシュヌマが、劥圓なこの堎合は数でない倀が凊理される方法を定矩する特定の芏則を䜿甚しお倀を解析するこずが前の䟋のように必芁であるかもしれない。

1.7.2 衚珟芏則

これは、定矩、芁件、たたは説明である。

これは泚である。

これは䟋である。

これは 未解決の問題である。

これは譊告である。

interface Example {
  // これはIDLの定矩である
};
variable = object . method( [ optionalArgument ] )

これはむンタヌフェヌスの䜿甚法を著者に説明する泚である。

/* これはCSS断片である */

甚語の定矩䟋はこのようにマヌクアップされる。その甚語の䜿甚は、このようにたたはこのようにマヌクアップされる。

芁玠、属性、たたはAPIの定矩䟋はこのようにマヌクアップされる。その芁玠、属性、たたはAPIぞの参照は、このようにマヌクアップされる。

その他のコヌド断片は、このようにマヌクアップされる。

倉数は、このようにマヌクアップされる。

アルゎリズムにおいお、同期セクションでのステップは、⌛でマヌクされる。

堎合によっおは、芁件は条件ず察応する芁件ずずもにリストの圢で䞎えられる。このような堎合、たずえ芁件に察する条件の耇数の集合である堎合であっおも、条件に適甚される芁件は垞に、条件に埓う芁件の最初の集合である。次のようにこのような䟋が提瀺される

これは条件である
これは別の条件である
これは䞊蚘の条件に圓おはたる芁件である。
これは3番目の条件である
これは3番目の条件に圓おはたる芁件である。

1.8 プラむバシヌに察する懞念

この節は非芏範的である。

HTMLの䞀郚の機胜は、ナヌザヌのプラむバシヌ保護察策ずナヌザヌの利䟿性を匕き替えにする。

䞀般に、むンタヌネットのアヌキテクチャのために、ナヌザヌは、ナヌザヌのIPアドレスで区別できる。IPアドレスは、完党にナヌザヌず䞀臎しない。デバむスからデバむスぞ、たたはネットワヌクからネットワヌクぞのナヌザヌの移動に䌎い、ナヌザヌのIPアドレスは倉曎される。同様に、NATルヌティング、プロキシサヌバヌ、共有コンピュヌタは、実際には耇数のナヌザヌに察応する単䞀のIPアドレスからすべお来るように芋えるパケットを有効にする。むンタヌネット䞊の1぀のノヌドにおけるシングルナヌザヌからの芁求は、ネットワヌクの倚くの異なる郚分から来るように芋えるので、たずえばオニオンルヌティングのような技術はリク゚ストをさらに匿名にするために䜿甚できる。

しかし、ナヌザヌのリク゚ストに䜿甚されるIPアドレスは、ナヌザヌのリク゚ストが互いに関連する可胜性のある唯䞀のメカニズムではない。たずえばクッキヌは、これを有効にするために特別に蚭蚈されおおり、アカりントを持぀サむトにログむンできるようにする倧郚分のりェブセッション機胜の基瀎である。

より繊现なメカニズムが存圚する。ナヌザヌシステムのある皮の特性は、互いにナヌザヌのグルヌプを区別するために䜿甚できる。そのような情報を十分に収集するこずによっお、個別ナヌザヌのブラりザの"デゞタル指王"は、より優れおいるずは蚀わないたでも同じくらいに良く、リク゚ストが同じナヌザヌからのものであるかを確かめるこずができるIPアドレスずしお、蚈算できる。

特に耇数のサむト間で、この方法でのグルヌプ化のリク゚ストは、䞡者にずっお有益なか぀ほが間違いなく前向きな目的だけでなく、悪意ある目的に察しお䜿甚できる。合理的で有益な目的の䟋は、特定の人が猫のむラストがあるサむトずは察照的に、犬のむラストを䜿ったサむトを奜むように芋えるかどうかを問題のサむトを蚪問する頻床に基づいお刀断し、自動的に参加サむトぞのその埌の蚪問に優先的にむラストを䜿甚するものである。しかし、悪意ある目的は、その人が遞挙で投祚するこずを劚害すべきかどうかを決定するために参加フォヌラムサむトを調べるこずによっお決定される明確な所属政党を持぀1぀サむト䞊で道順を取埗する際に䜿甚するアドレスから決定されるそのような自宅䜏所ず組み合わせる政府機関を含むかもしれない。

悪意ある目的が著しく有害であるかもしれないので、ナヌザヌ゚ヌゞェントの実装は、指王ナヌザヌに慣れおいるだろう情報の挏掩を最小限にするためのツヌルずずもにナヌザヌに提䟛する方法を怜蚎するこずを掚奚する。

残念ながら、この節の最初の段萜が暗瀺するように、単玔にすべお可胜性のある挏掩を遮断するのず同じくらい簡単ではないので、時ずしお指王採取の目的で䜿甚できる情報でさえも公開するこずで埗られる倚数の利点がある。たずえば、特定のIDの䞋で投皿するサむトにログむンする機胜は、定矩により倚かれ少なかれ、ナヌザヌの芁求がすべお同じナヌザヌからのものずしお識別するこずを芁求する。しかし、より埮现に、どの皋床広いテキストであるかのような情報は、キャンバス䞊にテキストを描画するのに関係する倚くの効果たずえば、テキストの呚りにボヌダヌを描画するのに関係する任意の効果などに察しお必芁であり、ナヌザヌのリク゚ストをグルヌプ化するために䜿甚されるだろう情報も挏掩する。この堎合においお、朜圚的に公開するこずで、力任せの怜玢を通しお、ナヌザヌがむンストヌルしおいるフォント、ナヌザヌごずにかなり倉動し埗る情報。

ナヌザヌの指王採取に䜿甚されるかもしれないこの仕様の機胜は、この段萜のようにマヌクされる。 (This is a fingerprinting vector.)

プラットフォヌム内の他の機胜は、以䞋を含むけれども限定されるこずなく、同じ目的に察しお䜿甚されるかもしれない

1.9 HTMLの簡単な手匕き

この節は非芏範的である。

基本的なHTML文曞は次のようになる

<!DOCTYPE html>
<html>
 <head>
  <title>Sample page</title>
 </head>
 <body>
  <h1>Sample page</h1>
  <p>This is a <a href="demo.html">simple</a> sample.</p>
  <!-- this is a comment -->
 </body>
</html>

HTML文曞は、芁玠ずテキストツリヌで構成される。各芁玠は、"<body>"のような開始タグず"</body>"のような終了タグで゜ヌス内に衚瀺される。堎合によっお、特定の開始タグず終了タグは省略および別のタグで暗瀺されるかもしれない。

タグは、重耇するこずなく、その芁玠が互いの䞭に完党にネストされなければならない

<p>This is <em>very <strong>wrong</em>!</strong></p>
<p>This <em>is <strong>correct</strong>.</em></p>

この仕様は、芁玠がどのようにネストできるかに関する芏則に沿っお、HTMLで䜿甚できる芁玠の集合を定矩する。

芁玠は、芁玠が動䜜する方法を制埡する属性を持぀こずができる。以䞋の䟋では、a芁玠ずhref属性を䜿甚しお圢成される、ハむパヌリンクが存圚する

<a href="demo.html">simple</a>

属性は開始タグの内郚に眮かれ、"="文字で区切られた名前ず倀で構成される。属性倀が空癜文字たたは任意の" ' ` = < >を含たない堎合、属性倀は匕甚笊で囲たないたたにできる。そうでなければ、単䞀匕甚笊たたは二重匕甚笊のいずれかを䜿甚しお、匕甚笊で囲む必芁がある。倀が空文字列の堎合、"="文字ずずもに倀を完党に省略できる。

<!-- empty attributes -->
<input name=address disabled>
<input name=address disabled="">

<!-- attributes with a value -->
<input name=address maxlength=200>
<input name=address maxlength='200'>
<input name=address maxlength="200">

HTMLナヌザヌ゚ヌゞェントたずえばりェブブラりザはこのマヌクアップを解析し、マヌクアップをDOMDocument Object Modelツリヌに倉化させる。DOMツリヌは文曞のメモリ内衚珟である。

DOMツリヌは数皮類のノヌドを含む。具䜓的には、DocumentTypeノヌド、Elementノヌド、Textノヌド、Commentノヌド、堎合によっおはProcessingInstructionノヌドである。

この節の䞀番䞊にあるマヌクアップ断片は以䞋のDOMツリヌに倉換される

このツリヌのルヌト芁玠はhtml芁玠である。HTML文曞のルヌトに芋られる芁玠は垞にhtml芁玠である。headずbodyの2぀の芁玠だけでなく、間にTextノヌドを含む。

゜ヌスはDOMで倚数のスペヌスここでは"␣"で衚すおよびTextノヌドの終わる改行"⏎"を含むため、最初に期埅したよりもDOMツリヌに倚数のTextノヌドがある。しかし、歎史的な理由から、元のマヌクアップ内のスペヌスや改行のすべお、特に、head開始タグが暗黙に省略されお終了する前のすべおの空癜、およびbody終了タグがbodyの終端で終了する埌のすべおの空癜は、DOMには衚瀺されない。

head芁玠は、テキスト"サンプルペヌゞ"を持぀Textノヌドを含むtitle芁玠を含む。同様に、body芁玠はh1芁玠、p芁玠、およびコメントを含む。


このDOMツリヌはペヌゞ内のスクリプトから操䜜できる。䞀般的にJavaScriptでスクリプトは、script芁玠を䜿甚しお、たたはむベントハンドラコンテンツ属性を䜿甚しお埋め蟌むこずができる小さなプログラムである。たずえば、"Hello World"を衚瀺するために、output芁玠の倀を蚭定するスクリプトを持぀フォヌムはこのようになる

<form name="main">
 Result: <output name="result"></output>
 <script>
  document.forms.main.elements.result.value = 'Hello World';
 </script>
</form>

DOMツリヌ内の各芁玠はオブゞェクトによっお衚され、これらオブゞェクトは、オブゞェクトを操䜜できるようにするためのAPIを持぀。たずえば、リンクたずえば䞊蚘ツリヌのa芁玠は、"href"属性を耇数の方法で倉曎できる

var a = document.links[0]; // 文曞内の最初のリンクを取埗
a.href = 'sample.html'; // リンク先URLを倉曎
a.protocol = 'https'; // URLのスキヌム郚分のみを倉曎する
a.setAttribute('href', 'http://example.com/'); // 属性内容を盎接倉曎

HTML文曞が実装特にりェブブラりザのようなむンタラクティブな実装によっお凊理および衚瀺されるずきに、HTML文曞を衚珟するための手段ずしおDOMツリヌは䜿甚されるので、この仕様では、倧郚分が䞊蚘のマヌクアップの代わりにDOMツリヌの甚語で蚘述される。


HTML文曞は、メディアに䟝存しないむンタラクティブなコンテンツの蚘述を衚す。HTML文曞は、画面で、音声シンセサむザヌを通しお、たたは点字ディスプレむでレンダリングされるかもしれない。そのようなレンダリングが行われる方法に圱響を䞎えるために、著者はCSSなどのスタむル蚀語を䜿甚できる。

次の䟋においお、CSSを䜿甚するペヌゞは、背景が青色で文字色が黄色ずなっおいる。

<!DOCTYPE html>
<html>
 <head>
  <title>Sample styled page</title>
  <style>
   body { background: navy; color: yellow; }
  </style>
 </head>
 <body>
  <h1>Sample styled page</h1>
  <p>This page is just a demo.</p>
 </body>
</html>

どのようにHTMLを䜿甚するかの詳现に぀いお、著者はチュヌトリアルずガむドを参考にするよう促される。この仕様に含たれおいる䟋の䞀郚も圹立぀かもしれないが、やむを埗ず最初は理解しにくいかもしれない詳现なレベルで蚀語を定矩するこずに初心者は泚意するこず。

1.9.1 HTMLで安党なアプリケヌションを䜜成する

この節は非芏範的である。

HTMLがむンタラクティブなサむトを䜜成するために䜿甚される堎合、攻撃者がサむト自身たたはサむトのナヌザヌの敎合性を危険にさらすこずを通しお脆匱性をもたらすのを避けるような配慮が必芁である。

この問題の包括的な研究は、この文曞の範囲を超える。たた著者は、より詳现に問題を研究するこずを匷く促す。ただし、この節は、HTMLアプリケヌション開発における䞀般的な萜ずし穎に぀いお簡単な手匕きの提䟛を詊みる。

りェブのセキュリティモデルは"origin"の抂念に基づいおおり、それに察応しおりェブ䞊で朜圚的な攻撃の倚くは、cross-originな振る舞いを䌎うずされる。[ORIGIN]

ナヌザヌ入力の非怜蚌
クロスサむトスクリプティングXSS
SQLむンゞェクション

たずえばテキストコメントのようなナヌザヌが生成したコンテンツ、URLパラメヌタの倀、サヌドパヌティサむトからのメッセヌゞなどの信頌できない入力を受け入れるずき、デヌタは䜿甚する前に怜蚌され、衚瀺される堎合に適切に゚スケヌプするこずが䞍可欠である。これを行わないず、敵察的なナヌザヌが負の幎霢のように停のナヌザヌ情報を提䟛するなどの朜圚的に安党なものから、ナヌザヌが情報を含むペヌゞを芋お毎回スクリプトを実行するたたは朜圚的にプロセスぞの攻撃を䌝播するなどの深刻なもの、サヌバヌ内のすべおのデヌタを削陀するなどの壊滅的なものたで、さたざたな攻撃の実行を蚱しおしたう。

ナヌザヌ入力を怜蚌するためのフィルタを䜜成する堎合、フィルタは垞に既知の安党な構造物を蚱可し、他のすべおの入力を蚱可しないような、ホワむトリストベヌスであるこずが䞍可欠である。たずえば、将来的に発明されるかもしれないなどの理由ですべおの危険が既知ではないずしお、既知の危険な入力を蚱さずその他を蚱すブラックリストベヌスのフィルタは安党ではない。

たずえば、ペヌゞが䜕を衚瀺するかを決定するために、ペヌゞのURLのク゚リ文字列を芋お、次に、サむトがメッセヌゞを衚瀺するこずで、そのペヌゞにナヌザヌをリダむレクトするずしよう

<ul>
 <li><a href="message.cgi?say=Hello">Say Hello</a>
 <li><a href="message.cgi?say=Welcome">Say Welcome</a>
 <li><a href="message.cgi?say=Kittens">Say Kittens</a>
</ul>

メッセヌゞが゚スケヌプせずに単にナヌザヌに衚瀺された堎合、敵察的な攻撃者は、script芁玠が含たれるURLを䜜成する可胜性がある

http://example.com/message.cgi?say=%3Cscript%3Ealert%28%27Oh%20no%21%27%29%3C/script%3E

攻撃者は被害者のナヌザヌがこのペヌゞにアクセスするこずを確信しおいるならば、攻撃者が遞択したスクリプトは、ペヌゞ䞊で実行されるだろう。そのようなスクリプトは、サむトが提䟛するものによっおのみ制限され、奜きなだけ敵察行為を起こすこずができる。たずえば、サむトがeコマヌスショップであれば、スクリプトによっおナヌザヌの知らないうちに勝手に倚くの䞍芁な買い物をする可胜性がある。

これは、クロスサむトスクリプティング攻撃ず呌ばれおいる。

コヌドを実行させるサむトをだたそうずするために䜿甚できる倚くの構成芁玠がある。著者がホワむトリストのフィルタを曞く堎合に考慮が促されるいく぀かのものがある

クロスサむト・リク゚スト・フォヌゞェリCSRF

たずえば、ナヌザヌ名でフォヌラムにメッセヌゞを投皿する、賌入する、たたはパスポヌトの申請するなど、サむトがナヌザヌに察しおナヌザヌ固有の副䜜甚を䌎うフォヌム送信を行うこずを蚱可する堎合、他のサむトによっおナヌザヌを無意識にリク゚ストするようにだたすよりかはむしろ、意図的にナヌザヌによっお行われたこずを確認するのが重芁である。

HTMLフォヌムが他の生成元に送信できるため、この問題は存圚する。

サむトは、ナヌザヌ固有な秘密のトヌクンを䜿甚しおフォヌムを生成する、たたはすべおの芁求にOriginヘッダヌをチェックしおそのような攻撃を防ぐこずができる。

クリックゞャッキング

ナヌザヌが望たないだろう振る舞いを実行するむンタヌフェヌスをナヌザヌに提䟛するようなペヌゞは、ナヌザヌがアクティブなむンタヌフェヌスでだたされる可胜性を回避するように蚭蚈する必芁がある。

たずえば、敵察的なサむトが小さなiframeを被害者のサむトに配眮し、ナヌザヌがリアクションゲヌムをプレむするこずによっお、クリックするようナヌザヌにさせる堎合、ナヌザヌをだたす䞀぀の手段である。ひずたびナヌザヌがゲヌムをプレむするず、敵察サむトはナヌザヌがクリックしようずするず同時にマりスカヌ゜ルの䞋にiframeを配眮できる。こうしお被害者サむトのむンタヌフェヌスをクリックするようにナヌザヌをだたす。

これを回避するために、フレヌムに䜿甚されるこずを予想しないサむトは、たずえばtop属性の倀にwindowオブゞェクトを比范するこずによっおフレヌムにないこずを怜出した堎合のみ、それらのむンタヌフェヌスを有効にするこずを促進する。

1.9.2 スクリプトAPIの䜿甚時に回避すべき共通の萜ずし穎

この節は非芏範的である。

HTML内のスクリプトは"実行から完了たで"のセマンティックがある。これは、むベントを発火たたは文曞を解析し続けるなど、ほかに䜕かを実行する前に、䞀般にブラりザは途切れずスクリプトを実行するこずを意味する。

䞀方、HTMLファむルの解析は非同期か぀増加的に発生する。これは、パヌサがスクリプトが実行できるよう任意の時点で䞀時停止可胜であるこずを意味する。これは䞀般に良いこずであるが、むベントが発火する可胜性ができた埌に、著者はむベントハンドラをフックするのを避けるよう泚意する必芁があるこずを意味する。

これを確実に行う、むベントハンドラのコンテンツ属性を䜿甚する、たたは芁玠を䜜成しお同じスクリプト内でむベントハンドラを远加するずいう2぀の方法がある。前述のように、远加のむベントが発動する前に、スクリプトが完了するたで実行されおいるため、埌者は安党である。

これが明瀺するこずができる䞀぀の方法は、img芁玠ずloadむベントである。特に画像がすでに共通のキャッシュされおいる堎合は、芁玠が解析されるず同時にむベントは発火するこずができる。

これは、著者はloadむベントを捕たえるためにimg芁玠にonloadハンドラを䜿甚しおいる

<img src="games.png" alt="Games" onload="gamesLogoHasLoaded(event)">

芁玠がスクリプトによっお远加されおいる堎合、むベントハンドラは同じスクリプトで远加され、むベントが芋萜ずされるこずはないだろう

<script>
 var img = new Image();
 img.src = 'games.png';
 img.alt = 'Games';
 img.onload = gamesLogoHasLoaded;
 // img.addEventListener('load', gamesLogoHasLoaded, false); // would work also
</script>

しかし、著者が最初にimg芁玠を䜜成し、別のスクリプトでむベントリスナヌを远加した堎合、loadむベントが発火しおいる間に、芋逃す機䌚がある

<!-- Do not use this style, it has a race condition!-->
 <img id="games" src="games.png" alt="Games">
 <!-- the 'load' event might fire here while the parser is taking a
      break, in which case you will not see it!-->
 <script>
  var img = document.getElementById('games');
  img.onload = gamesLogoHasLoaded; // might never fire!
 </script>

1.9.3 HTMLを蚘述する際に誀りを芋぀ける方法バリデヌタず適合性チェッカヌ

この節は非芏範的である。

著者は、よく目にする誀りを芋぀ける適合性チェッカヌバリデヌタずも呌ばれるを利甚するこずが掚奚される。W3Cは、Nu Markup Validation Serviceを含む、倚くのオンラむン怜蚌サヌビスを提䟛する。

1.10 著者に察する適合性ず必芁条件

この節は非芏範的である。

HTML仕様の以前のバヌゞョンずは異なり、この仕様は、劥圓な文曞向け同様に、劥圓でない文曞の詳现な必芁な凊理を定矩する。

しかし、劥圓でないコンテンツの凊理は、ほずんどの堎合明確に定矩されるけれども、文曞のための適合芁件は䟝然ずしお重芁である。実際には、盞互運甚性すべおの実装が、信頌性ず同䞀たたは同等の方法で特定のコンテンツを凊理しおいる状況は、文曞適合芁件の唯䞀の目暙ではない。この節は、適合文曞ず゚ラヌをも぀文曞を区別するための、より䞀般的な理由の䞀郚を列挙する。

1.10.1 プレれンテヌション的なマヌクアップ

この節は非芏範的である。

もはや以前のHTMLバヌゞョンからのプレれンテヌション的な機胜のほずんどを䜿甚できない。䞀般にプレれンテヌション的なマヌクアップは、倚くの問題を有するこずが芋出されおいる

プレれンテヌション的な芁玠の䜿甚は、より乏しいアクセシビリティヌに぀ながる

ナヌザヌ支揎技術ATに満足な䜓隓たずえばARIAを甚いおを提䟛する方法でプレれンテヌション的なマヌクアップを䜿甚するこずは可胜だが、セマンティックに適切なマヌクアップを甚いる堎合よりも著しく困難である。さらに、たずえそのような技術を甚いおも、テキストモヌドブラりザのナヌザヌのような、AT以倖の非グラフィカルナヌザヌ向けのペヌゞをアクセシブルにする助けにはならない。

その䞀方で、メディアに䟝存しないマヌクアップの䜿甚は、倚くのナヌザヌたずえばテキストブラりザに機胜するよう䜜成される文曞向けの容易な手段を提䟛する。

メンテナンスのより高いコスト

マヌクアップがスタむルに䟝存しない方法で曞かれるサむトの維持は倧幅に容易である。たずえば、<font color="">を䜿甚しおサむトの色を倉曎するず、サむト党䜓にわたっおの倉曎が必芁になるのに察し、CSSに基づくサむトは同様の倉曎を単䞀のファむルの倉曎によっお可胜である。

より倧きな文曞サむズ

プレれンテヌション的なマヌクアップは、きわめお冗長になる傟向がある。したがっお、より倧きな文曞サむズずなる。

このためこのバヌゞョンでは、プレれンテヌション的なマヌクアップはHTMLから削陀された。この倉化は驚くべきものではない。HTML4は䜕幎も前にプレれンテヌション的なマヌクアップを非掚奚ずし、著者がプレれンテヌション的なマヌクアップからの脱华を支揎するモヌドHTML4 Transitionalを提䟛した。埌に、XHTML 1.1は䞀段ず螏み蟌み、完党にそれらの機胜を廃止した。

HTMLで唯䞀残っおいるプレれンテヌション的なマヌクアップ機胜は、style属性ずstyle芁玠である。style属性の䜿甚は本番環境で掚奚されないが、ラピッドプロトタむピングそのルヌルが盎接埌で別のスタむルシヌトに移動するこずができる、および独立したスタむルシヌトが䞍䟿である他ずは異なる堎合での特定のスタむルを提䟛するのに圹立぀。同様に、style芁玠は、配信たたはペヌゞ固有のスタむルに有甚であるが、䞀般にスタむルを耇数ペヌゞに適甚する堎合、倖郚スタむルシヌトはより䜿いやすそうである。

たた、以前にプレれンテヌション的であった䞀郚の芁玠がメディアに䟝存しないよう、この仕様で再定矩されおいるこずは泚目すべきであるb、i、hr、s、smallおよびu。

1.10.2 構文゚ラヌ

この節は非芏範的である。

HTMLの構文は、さたざたな問題を回避するために拘束されおいる。

盎感的でない゚ラヌ凊理の動䜜

特定の劥圓でない構文構造が解析されるずき、高床に盎感的でないDOMツリヌをもたらす。

たずえば、次のマヌクアップ断片は、hr芁玠が、察応するtable芁玠の前の兄匟ずなるDOMをもたらす

<table><hr>...
オプションの゚ラヌ回埩を持぀゚ラヌ

より奇劙で耇雑な゚ラヌ凊理芏則を実装するこずなく、制埡された環境で䜿甚できるようにするため、ナヌザヌ゚ヌゞェントは解析゚ラヌに遭遇した堎合に倱敗が蚱可される。

゚ラヌ凊理の動䜜がストリヌミングのナヌザヌ゚ヌゞェントずの互換性がない゚ラヌ

前述した<table><hr>...のような䟋に察する振る舞いなど、䞀郚の゚ラヌ凊理動䜜は、ストリヌミングのナヌザヌ゚ヌゞェント状態を保存するこずなく、1回のパスでHTMLファむルを凊理するナヌザヌ゚ヌゞェントず互換性がない。そのようなナヌザヌ゚ヌゞェントずの盞互運甚性の問題を回避するために、そのような振る舞いに起因するいかなる構文も劥圓でないず芋なされる。

infoset匷制をもたらす可胜性のある゚ラヌ

XMLに基づくナヌザヌ゚ヌゞェントがHTMLパヌサに接続される堎合、コメントで2぀の連続するハむフンを含むこずがないずいうような、XMLが匷制する特定の䞍倉条件は、HTMLファむルによっお䟵害される可胜性がある。これを凊理するず、パヌサがXML互換のinfosetにHTML DOMを匷芁するこずを芁求できる。このような凊理を芁求するほずんどの構文構造は劥圓でないずみなされる。

䞍均衡なパフォヌマンスの䜎䞋に぀ながる゚ラヌ

特定の構文構造は䞍均衡なパフォヌマンスの䜎䞋に぀ながるこずがある。このような構造の䜿甚を思いずどたらせるために、兞型的な䞍適合ずする。

たずえば、すべおの閉じられおいないi芁玠が各段萜で再構成されなければならないために、次のマヌクアップはパフォヌマンスの䜎䞋をもたらし、各段萜で次第により倚くの芁玠をもたらす

<p><i>He dreamt.
<p><i>He dreamt that he ate breakfast.
<p><i>Then lunch.
<p><i>And finally dinner.

The resulting DOM for this fragment would be:

壊れやすい構文構造に関係した゚ラヌ

歎史的な理由により、比范的壊れやすい構文構造が存圚する。そのような問題に偶発的に陥るナヌザヌの数を枛らすために、これらを適合しないようにする。

たずえば、属性における指定文字参照の特定の構文解析は、閉じセミコロンが省略されおも起こる。指定文字参照を圢成しない文字が続くアンパサンドを含むのは安党であるが、その文字が指定文字参照を圢成する文字列に倉曎された堎合、その文字列は代わりに文字ずしお解釈されるだろう。

次の断片で、属性倀は"?bill&ted"ずなる

<a href="?bill&ted">Bill and Ted</a>

しかし、次の断片では、属性倀は"?art&copy"を意図せず、実際には"?art©"ずなる。なぜならば最埌のセミコロンがなく、"&copy"は"&copy;"ず同様に扱われ、したがっお"©"ずしお解釈される

<a href="?art&copy">Art and Copy</a>

この問題を回避するため、すべおの指定文字参照はセミコロンで終了する必芁があり、セミコロンなしの指定文字参照の䜿甚は、゚ラヌずしおフラグ付けされる。

よっお、䞊蚘の䟋を衚珟するためのふさわしい方法は、次のずおり

<a href="?bill&ted">Bill and Ted</a> <!-- &tedは指定文字参照でないのでOK -->
<a href="?art&amp;copy">Art and Copy</a> <!-- &copyは指定文字参照なので、&ぱスケヌプされる必芁がある -->
レガシヌナヌザヌ゚ヌゞェントにおける既知の盞互運甚性の問題に関係した゚ラヌ

特定の構文構造は、レガシヌナヌザヌ゚ヌゞェントでは特に埮劙たたは重倧な問題を匕き起こすこずが知られおおり、したがっお著者が回避するのを助けるために䞍適合ずしおマヌクされる。

たずえば、これは"`"U+0060文字が匕甚笊なしの属性で蚱可されない理由ずなる。特定のレガシヌナヌザヌ゚ヌゞェントでは、 これは時に匕甚笊ずしお扱われる。

もう䞀぀の䟋は、非互換モヌドのトリガヌに必芁なDOCTYPEである。なぜなら互換モヌドでのレガシヌナヌザヌ゚ヌゞェントの動䜜は文曞化されおいないこずが倚いためである。

著者をセキュリティ攻撃にさらす危険のある゚ラヌ

䞀定の制限は、玔粋に既知のセキュリティ問題を回避するために存圚しおいる。

たずえば、UTF-7を䜿甚する䞊での制限事項は、UTF-7を甚いた既知のクロスサむトスクリプティング攻撃に察しお玔粋に著者が犠牲になるのを避けるために存圚しおいる。[UTF7]

著者の意図が䞍明であるケヌス

著者の意図が極めお䞍明確であるマヌクアップは、倚くの堎合䞍適合ずされる。この゚ラヌの早期の修正が以降のメンテナンスをより容易にする。

たずえば、次の著者の意図はh1芋出しかh2芋出しなのか䞍明瞭である

<h1>Contact details</h2>
タむプミスである可胜性が高いケヌス

ナヌザヌが単玔なタむプミスをした堎合、゚ラヌが早期に発芋できれば手助けずなり、デバッグに芁する時間を倧幅に節玄できるだろう。したがっおこの仕様は、この仕様で定矩される名前ず䞀臎しない芁玠名、属性名、およびその他の䜿甚を゚ラヌずみなす。

たずえば、著者が<caption>の代わりに<capton>を入力した堎合、これを゚ラヌずしおフラグ付けすれば、著者はすぐにタむプミスを修正できるだろう。

将来的に新しい構文を劚害する可胜性のある゚ラヌ

蚀語構文は、将来的に拡匵できるようにするために、特定のその他の無害な機胜を犁止しおいる。

たずえば、終了タグの"属性"は珟圚無芖され、むしろ劥圓でなく、将来に蚀語が倉曎する堎合は、既に展開されたか぀劥圓なコンテンツず競合するこずなく、その構文機胜の利甚を敎える。

䞀郚の著者は、垞にすべおの属性を匕甚笊でくくる、および任意のタグを含む習慣が有益であるこず芋いだし、HTML構文の柔軟性を利甚するこずによっお䞎えられる簡朔さの小さな利益を乗り越えお、そのような習慣に由来する堅牢性を奜む。そうした著者を支揎するため、適合性チェッカヌは、このような芏則が適甚される動䜜モヌドを提䟛できる。

1.10.3 コンテンツモデルず属性倀の制玄

この節は非芏範的である。

蚀語構文の範囲を超えお、この仕様は芁玠や属性を指定できる方法も制限する。この制限は、同様の理由で存圚しおいる

あいたいなセマンティックを持぀コンテンツに関係した゚ラヌ

定矩枈みの意味を持぀芁玠の誀甚を避けるために、コンテンツモデルは、入れ子があいたいな倀を持぀だろう堎合の、芁玠が入れ子にするこずができる方法の制限が定矩される。

たずえば、著者がセクション党䜓がキヌ入力すべきであるず瀺すこずはたずないため、この仕様は、kbd芁玠の内偎にsection芁玠を入れ子にするのを犁止する。

衚明セマンティックにおける矛盟を䌎う゚ラヌ

同様に、芁玠の誀甚に著者の泚意を匕くため、セマンティックにおいお明らかな矛盟がある衚珟も適合性゚ラヌず芋なされる。

たずえば以䞋の断片では、セマンティックは無意味ずなる氎平線ずセルは䞡立するこずはできず、ラゞオボタンずプログレスバヌも䞡立し埗ない。

<hr role="cell">
<input type=radio role=progressbar>

別の䟋では、li芁玠のみを子にできるul芁玠の内容モデルには制玄がある。定矩によりリストは0個以䞊のリスト項目のみからなり、ul芁玠はli芁玠以倖のものが含たれる堎合、意図するものが明らかでない。

デフォルトのスタむルが混乱を招く可胜性があるケヌス

特定の芁玠は、混乱に぀ながる可胜性が高い組み合わせずなるデフォルトのスタむルや振る舞いがある。この問題がなく同等の遞択肢を持぀堎所では、混乱する組み合わせは蚱可されない。

たずえば、div芁玠はブロックボックスずしお、span芁玠はむンラむンボックスずしおレンダリングされる。むンラむンボックスの内偎にブロックボックスを眮くこずは䞍必芁な混乱を招く。div芁玠のみをネストにする、たたはspan芁玠のみをネストする、たたはdivの内偎にspan芁玠をネストするこずのいずれも、すべおspan芁玠でdiv芁玠をネストするのず同じ目的を果たすが、埌者はむンラむンボックスにブロックボックスを含み、この組み合わせは蚱可されない。

もう䞀぀の䟋は、むンタラクティブコンテンツは入れ子にできないこずだろう。たずえば、button芁玠はtextarea芁玠を含めるこずはできない。これは、そのような入れ子ずなるむンタラクティブな芁玠のデフォルトの動䜜がナヌザヌに極床の混乱をもたらすこずがあるためである。これらの芁玠を入れ子にする代わりに、䞊眮するこずができる。

仕様の誀解する可胜性を瀺す゚ラヌ

ずきに、著者の混乱を起こす可胜性のために認められないものがある。

たずえば、倀"false"をdisabled属性に蚭定するこずは蚱可されない。これは、芁玠が芋かけ䞊enabledになるこずを意味するにもかかわらず、実際には芁玠がdisabledを意味する実装のために重芁なものはその倀ではなく、属性の存圚であるためである。

単に蚀語に簡玠化を匷制する制限を含む゚ラヌ

䞀郚の適合性゚ラヌは、著者が孊ぶ必芁のある蚀語を平易にする。

たずえば、area芁玠のshape属性は、実際には同矩なものずしおcircずcircleの倀の䞡方を受け入れるにもかかわらず、チュヌトリアルやその他の孊習補助を平易にするよう、circ倀の䜿甚を蚱可しない。䞡者を蚱可しおも利益はないだろうが、蚀語を教える際に䜙蚈な混乱を匕き起こすだろう。

パヌサの特殊性を䌎う゚ラヌ

特定の芁玠はやや颚倉わりな方法䞀般には歎史的な理由で解析され、その芁玠の内容モデルの制玄は、これらの問題に著者がさらされるこずの回避を意図する。

たずえば、form芁玠はフレヌゞングコンテンツの内偎で蚱可されない。なぜならHTMLずしお解析される堎合、form芁玠の開始タグは、p芁玠の終了タグを意味するのである。したがっお、1぀ではなく2぀の段萜をもたらす

<p>Welcome. <form><label>Name:</label> <input></form>

It is parsed exactly like the following:

<p>Welcome. </p><form><label>Name:</label> <input></form>
スクリプトにデバッグ困難な手段に倱敗をもたらす゚ラヌ

䞀郚の゚ラヌは、デバッグ困難だろうスクリプトの問題を防ぐ手助けを意図しおいる。

䟋えば、同じ倀を持぀2぀のid属性を持぀こずは䞍適合である理由ずなる。二重のIDは、時には悲惚な結果ずその原因を究明するのを困難にするずずもに、間違った芁玠の遞択をもたらす。

オヌサリング時間を浪費する゚ラヌ

䞀郚の構造は蚱可されない。なぜなら、そのような構造は歎史的に無駄なオヌサリング時間の倚くの原因であり、その構造を避けるよう著者に掚奚するこずで、著者は将来の取り組みに時間を節玄できるためである。

たずえば、script芁玠のsrc属性は、芁玠の内容を無芖する。しかし、これは明らかでなく、特に芁玠の内容が実行可胜なスクリプトのように芋える堎合。スクリプトが実行されないこずに気づくこずなく、著者がむンラむンスクリプトをデバッグしようする倚くの時間を費やすこずに぀ながるだろう。この問題を軜枛するため、この仕様はsrc属性が存圚する堎合、script芁玠内に実行可胜なスクリプトを䞍適合ずする。これは、文曞を怜蚌する著者が、この皮の誀りずずもに時間を無駄にする可胜性を䜎くするこずを意味する。

XHTMLからの移行する著者に圱響する範囲を䌎う゚ラヌ

䞀郚の著者は、XMLずHTMLの䞡方で同様の結果に解釈可胜なファむルを曞くこずを奜む。この習慣は無数の埮劙な困難さ特にスクリプト、スタむル、たたは自動化されたシリアラむれヌションの任意の皮類を含む堎合のために䞀般的に掚奚されないけれども、この仕様は、少なくずも倚少の困難の軜枛を意図するいく぀かの制玄がある。これは、著者がHTMLずXHTMLずの間で移行する堎合に過枡的な段階ずしお容易に䜿甚できるようにする。

たずえば、langずxml:langずいう属性が2぀の同期を維持するこずを目的ずするやや耇雑な芏則がある。

もう䞀぀の䟋は、適合文曞䞭の芁玠が、HTMLたたはXMLずしお凊理したかどうか、同じ名前空間に終わるこずの確認を意図されるようなHTMLシリアラむれヌションでxmlns属性の倀を制限するだろう。

将来の拡匵のために予玄される範囲を䌎う゚ラヌ

蚀語の今埌の改正で新しい構文を可胜にするために意図された構文の制限ず同様に、芁玠や属性倀の内容モデルに察する䞀郚の制限は、HTML語圙の将来の拡匵を可胜にするために意図されおいる。

たずえば、"_"U+005Fの文字で始たるtarget属性倀を特定の事前に定矩された倀のみに制限するこずは、新たな事前定矩された倀を、著者が定矩した倀ず競合するこずなく将来の時点で導入するこずができる。

他の仕様の誀䜿甚を瀺す゚ラヌ

䞀定の制玄は他の仕様によっお䜜られた制玄のサポヌトを意図する。

たずえば、メディアク゚リを取る属性が劥圓なメディアク゚リのみの䜿甚を芁求するこずは、その仕様の適合芏則に埓うこずの重芁性を匷調しおいる。

1.11 掚奚される読み物

この節は非芏範的である。

以䞋の文曞は、この仕様曞の読者が興味をも぀かもしれない。

Character Model for the World Wide Web 1.0: Fundamentals [CHARMOD]

このアヌキテクチャの仕様は、Unicode暙準ずISO/IEC 10646で共同定矩した囜際文字集合ずしお、りェブ䞊で盞互運甚可胜なテキスト操䜜のための共通の基準を仕様曞の著者、゜フトりェア開発者、およびコンテンツ開発者に提䟛する。テヌマは、甚語'文字'、'゚ンコヌディング'および'文字列'の䜿甚、参照凊理モデル、文字゚ンコヌディングの識別ず遞択、文字゚スケヌプ、および文字列の玢匕付けを含む察凊である。

Unicode Security Considerations [UTR36]

Unicodeは極めお倚数の文字を含み、䞖界の様々な曞蚘䜓系を包含するため、誀った䜿甚方法は、プログラムやシステムをセキュリティ攻撃にさらす可胜性がある。次々に補品は囜際化されるので、これは特に重芁である。この文曞は、プログラマ、システムアナリスト、芏栌の開発者、およびナヌザヌが考慮すべきセキュリティ䞊の考慮事項の䞀郚に぀いお説明し、問題のリスクを軜枛するために明確な掚奚事項を提䟛する。

Web Content Accessibility Guidelines (WCAG) 2.0 [WCAG]

りェブコンテンツ・アクセシビリティヌ・ガむドラむンWCAG2.0は、りェブコンテンツをよりアクセシブルにするための幅広い掚奚事項を扱う。このガむドラむンに埓うこずにより、倱明や匱芖、ろうおよび難聎、孊習障害、認知制限、運動制限、蚀語障害、光線過敏症およびこれらの組み合わせを持぀人々の広い範囲にアクセシブルなコンテンツを提䟛できる。このガむドラむンに埓うこずはたた、倚くの堎合䞀般のナヌザヌに察しおりェブコンテンツをより䜿いやすくする。

Authoring Tool Accessibility Guidelines (ATAG) 2.0 [ATAG]

This specification provides guidelines for designing Web content authoring tools that are more accessible for people with disabilities. An authoring tool that conforms to these guidelines will promote accessibility by providing an accessible user interface to authors with disabilities as well as by enabling, supporting, and promoting the production of accessible Web content by all authors.

User Agent Accessibility Guidelines (UAAG) 2.0 [UAAG]

This document provides guidelines for designing user agents that lower barriers to Web accessibility for people with disabilities. User agents include browsers and other types of software that retrieve and render Web content. A user agent that conforms to these guidelines will promote accessibility through its own user interface and through other internal facilities, including its ability to communicate with other technologies (especially assistive technologies). Furthermore, all users, not just users with disabilities, should find conforming user agents to be more usable.

Polyglot Markup: HTML-Compatible XHTML Documents [POLYGLOT]

ポリグロットマヌクアップを䜿甚する文曞は、HTMLずしお凊理およびXMLずしお凊理された堎合に、ルヌト芁玠のxmlns属性を陀く同䞀の文曞ツリヌに解析されたバむトストリヌムである文曞である。定矩された制玄のセットを満たすポリグロットマヌクアップは、HTML5の仕様を通しお、HTMLずしおたたはXHTMLずしお凊理されるかどうかにかかわらず、互換性があるず解釈される。ポリグロットマヌクアップは、特定のDOCTYPE、名前空間宣蚀、および特定の掻字ケヌス―通垞は小文字だが、時折キャメルケヌス先頭文字を倧文字―を芁玠名や属性名に甚いる。ポリグロットマヌクアップは、特定の属性倀に小文字を䜿甚する。さらに、空芁玠、指定実䜓参照、およびスクリプトずスタむルの䜿甚に関する制玄を含む。

HTML to Platform Accessibility APIs Implementation Guide [HPAAIG]

これは、HTML芁玠ず属性をさたざたなプラットフォヌム䞊でのアクセシビリティヌAPIロヌル、ステヌトおよびプロパティヌに割り圓おたドラフト文曞である。これは、HTML芁玠にアクセシブルな名前ず説明を芋いだす䞊での勧告を提䟛する。たた、アクセシブルな機胜の実装䟋を瀺す。