head
要素html
要素内の最初の要素として。iframe
srcdoc
文書であるか、タイトル情報がより上位プロトコルから利用可能な場合、1つより多くないtitle
要素および1つより多くないbase
要素である、0個以上のメタデータコンテンツ。title
要素が存在しかつ1つより多くないbase
要素である、1つ以上のメタデータコンテンツ。head
要素内の最初の文が要素である場合、head
要素の開始タグは省略してもよい。head
要素の直前が空白文字またはコメントでない場合、head
要素の終了タグは省略してもよい。interface HTMLHeadElement : HTMLElement {};
head
要素は、Document
に関するメタデータの集まりを表す。
head
要素でのメタデータの集まりは、大きいかもしれないし、小さいかもしれない。これは非常に簡潔な例である:
<!doctype html> <html> <head> <title>A document with a short head</title> </head> <body> ...
これはより大きな例である:
<!DOCTYPE HTML> <HTML> <HEAD> <META CHARSET="UTF-8"> <BASE HREF="http://www.example.com/"> <TITLE>An application with a long head</TITLE> <LINK REL="STYLESHEET" HREF="default.css"> <LINK REL="STYLESHEET ALTERNATE" HREF="big.css" TITLE="Big Text"> <SCRIPT SRC="support.js"></SCRIPT> <META NAME="APPLICATION-NAME" CONTENT="Long headed application"> </HEAD> <BODY> ...
title
要素は、ほとんどの状況で必須の子であるが、上位プロトコルがタイトル情報を提供する場合、たとえばHTMLが電子メールのオーサリング形式として使用されるときの電子メールの件名において、title
要素は省略できる。
title
要素title
要素を含まないhead
要素内。interface HTMLTitleElement : HTMLElement { attribute DOMString text; };
title
要素は、文書のタイトルまたは名前を表す。たとえば、ユーザーの履歴やブックマークまたは検索結果などで、文脈を無視して使用される場合でも、著者は文書を識別するタイトルを使用すべきである。文脈から取り出したときに最初の見出しが独立する必要はないので、文書のタイトルは多くの場合、最初の見出しとは異なる。
文書ごとに複数のtitle
要素が存在してはならない。
タイトルがないことが合理的なDocument
の場合、title
要素はおそらく必要とされない。この要素が必要とされる場合の説明については、head
要素のコンテンツモデルを参照のこと。
text
[ = value ]Text
ノードでない子ノードを無視して、要素の内容を返す。
与えられた値を持つ要素の子を置換するために、設定できる。
The IDL attribute text
must return a
concatenation of the contents of all the Text
nodes that are children of the
title
element (ignoring any other nodes such as comments or elements), in tree order.
On setting, it must act the same way as the textContent
IDL attribute.
それらの同じページ上で使用されるかもしれないトップレベルの見出しと対照的に、適切なタイトルのいくつかの例を次に示す。
<title>Introduction to The Mating Rituals of Bees</title> ... <h1>Introduction</h1> <p>This companion guide to the highly successful <cite>Introduction to Medieval Bee-Keeping</cite> book is...
次のページは、同じサイトの一部であるかもしれない。最初の見出しが、読者がどのような文脈か知っており、したがってダンスがサルサやワルツであるかどうかを知りたいと思わないだろうことを前提としつつ、タイトルが明確に主題を説明する方法に注意する:
<title>Dances used during bee mating rituals</title> ... <h1>The Dances</h1>
文書のタイトルとして使用する文字列は、document.title
IDL属性によって与えられる。
User agents should use the document's title when referring to the document in their user
interface. When the contents of a title
element are used in this way, the
directionality of that title
element should be used to set the directionality
of the document's title in the user interface.
base
要素base
要素を含まないhead
要素内。href
— 文書基底URLtarget
— ハイパーリンクナビゲーションおよびフォーム送信に対するブラウジングコンテキストinterface HTMLBaseElement : HTMLElement { attribute DOMString href; attribute DOMString target; };
base
要素は、著者に相対URLを解決する目的で文書の基底URLを指定、および次に続くハイパーリンクのためにデフォルトでブラウジングコンテキストの名前の指定を許可する。この要素は、この情報を超えた任意のコンテンツを表すものでない。
文書ごとに複数のbase
要素が存在してはならない。
base
要素は、href
属性、またはtarget
属性のいずれか、あるいはその両方を持たなければならない。
href
コンテンツ属性が指定される場合、潜在的にスペースで囲まれた妥当なURLでなければならない。
href
属性を持つ場合、base
要素は、html
要素を除いて(manifest
属性はbase
要素に影響されない)、URLを取得するよう定義された属性を持つツリー内の他の要素の前に来なければならない。
target
属性が指定される場合、Document
でハイパーリンクやフォームがナビゲーションを引き起こす際に、どのブラウジングコンテキストがデフォルトとして使用するかを指定する妥当なブラウジングコンテキストの名前またはキーワードを含まなければならない。
target
属性を持つ場合、base
要素は、ハイパーリンクを表すツリー内の要素の前に来なければならない。
If there are multiple base
elements with target
attributes, all but the first are ignored.
A base
element that is the first base
element with an href
content attribute in a particular Document
has a
frozen base URL. The frozen base URL must be set, synchronously, whenever any of the following situations occur:
base
element becomes the first base
element in tree
order with an href
content attribute in its
Document
.base
element is the first base
element in tree
order with an href
content attribute in its
Document
, and its href
content attribute is
changed.To set the frozen base URL, resolve
the value of the element's href
content attribute relative to
the Document
's fallback base URL; if this is successful, set the
frozen base URL to the resulting absolute URL, otherwise, set the
frozen base URL to the fallback base URL.
The href
IDL attribute, on getting, must return
the result of running the following algorithm:
If the base
element has no href
content
attribute, then return the document base URL and abort these steps.
fallback base urlをDocument
のフォールバック基底URLにする。
Let url be the value of the href
attribute of the base
element.
Resolve url relative to fallback base url (thus, the base
href
attribute isn't affected by xml:base
attributes or base
elements).
If the previous step was successful, return the resulting absolute URL and abort these steps.
Otherwise, return the empty string.
The href
IDL attribute, on setting, must set the href
content attribute to the given new value.
The target
IDL attribute must
reflect the content attribute of the same name.
この例において、base
要素は文書の基底URLを設定するために使用される:
<!DOCTYPE html> <html> <head> <title>This is an example for the <base> element</title> <base href="http://www.example.com/news/index.html"> </head> <body> <p>Visit the <a href="archives.html">archives</a>.</p> </body> </html>
上記の例において、リンクは"http://www.example.com/news/archives.html
"へのリンクとなる。
link
要素head
要素の子であるnoscript
要素内。href
— ハイパーリンクのアドレスcrossorigin
— 要素がcrossorigin要求を処理する方法rel
— ハイパーリンクと宛先のリソースを含む文書の関係media
— 受け入れ可能なメディアhreflang
— リンクされたリソースの言語type
— 参照されるリソースタイプのヒントsizes
— アイコンのサイズ(rel
="icon
"に対する)title
属性はこの要素で特別なセマンティックを持つ:リンクのタイトル、代替スタイルシート設定名。link
(デフォルト - 設定しない)。aria-*
属性。role
値に対して interface HTMLLinkElement : HTMLElement {
attribute boolean disabled;
attribute DOMString href;
attribute DOMString crossOrigin;
attribute DOMString rel;
attribute DOMString rev;
readonly attribute DOMTokenList relList;
attribute DOMString media;
attribute DOMString hreflang;
attribute DOMString type;
[PutForwards=value] readonly attribute DOMSettableTokenList sizes;
};
HTMLLinkElement implements LinkStyle;
link
要素は、著者が文書を他のリソースとリンクするのを可能にする。
リンクの宛先はhref
属性によって与えられ、これは存在しなければならず、潜在的にスペースで囲まれた妥当な空でないURLを含まなければならない。If the href
attribute is absent, then the element does not define a link.
rel
属性が使用される場合、この要素はhead
要素に制限される。
(関係を)示されるリンクの種類はrel
属性値によって与えられ、存在する場合、スペースで区切られたトークンの集合である値を持たなければならない。許可されたキーワードとその意味は、後の節で定義される。If the rel
attribute is absent, has no keywords, or if none of the keywords used are allowed according to the definitions in this specification, then the element does not create any links.
外部リソースへのリンクとハイパーリンクという、2つのリンクカテゴリがlink
要素を用いて作成できる。リンクタイプの節では、あるリンクタイプが外部リソースまたはハイパーリンクであるかどうかを定義する。1つのlink
要素は、複数のリンク(一部は外部リソースへのリンクかもしれず、一部はハイパーリンクであるかもしれない)を作成できる。正確には、どのリンクがどれだけ作成されるかは、rel
属性で与えられるキーワードに応じて異なる。ユーザーエージェントは、要素あたりの基準ではなく、リンクあたりの基準でリンクを処理しなければならない。
link
要素に対して作成された各リンクは別々に処理される。たとえば、rel="stylesheet"
をもつ2つのlink
要素が存在する場合、これらは個別の外部リソースとして数え、およびそれぞれが独立に独自の属性によって影響される。同様に、単一のlink
要素が値next stylesheet
を伴うrel
属性を持つ場合、それはハイパーリンク(next
キーワードへの)および外部リソースリンク(stylesheet
キーワードへの)の両方を作成し、それらはそれぞれに(media
またはtitle
のような)他の属性の影響を受ける。
たとえば、次のlink
要素は、(同じページへ)2つのハイパーリンクを作成する。
<link rel="author license" href="/about">
この要素によって作成される2つのリンクは、1つは対象ページが現在のページの著者に関する情報を持つセマンティックであり、1つは現在のページが提供されている内部でライセンスに関する情報を対象ページが持つセマンティックである。
crossorigin
属性はCORS設定属性である。これは、外部リソースリンクでの使用を意図される。
外部リソースへのリンクに対する正確な振る舞いは、関連するリンク型に対して定義されるように、正確な関係に依存する。一部の属性は、(以下に定義されるように)外部リソースが適用されるかどうかを制御する。
For external resources that are represented in the DOM (for example, style sheets), the DOM representation must be made available (modulo cross-origin restrictions) even if the resource is not applied. To obtain the resource, the user agent must run the following steps:
If the href
attribute's value is the empty string,
then abort these steps.
Resolve the URL given by the href
attribute, relative to the element.
If the previous step fails, then abort these steps.
Do a potentially CORS-enabled fetch of the resulting absolute
URL, with the mode being the current state of the element's crossorigin
content attribute, the origin
being the origin of the link
element's Document
, and the
default origin behaviour set to taint.
The resource obtained in this fashion can be either CORS-same-origin or CORS-cross-origin.
User agents may opt to only try to obtain such resources when they are needed, instead of pro-actively fetching all the external resources that are not applied.
The semantics of the protocol used (e.g. HTTP) must be followed when fetching external resources. (For example, redirects will be followed and 404 responses will cause the external resource to not be applied.)
Once the attempts to obtain the resource and its critical subresources are
complete, the user agent must, if the loads were successful, queue a task to
fire a simple event named load
at the
link
element, or, if the resource or one of its critical subresources
failed to completely load for any reason (e.g. DNS error, HTTP 404 response, a connection being
prematurely closed, unsupported Content-Type), queue a task to fire a simple
event named error
at the link
element.
Non-network errors in processing the resource or its subresources (e.g. CSS parse errors, PNG
decoding errors) are not failures for the purposes of this paragraph.
The task source for these tasks is the DOM manipulation task source.
The element must delay the load event of the element's document until all the attempts to obtain the resource and its critical subresources are complete. (Resources that the user agent has not yet attempted to obtain, e.g. because it is waiting for the resource to be needed, do not delay the load event.)
Interactive user agents may provide users with a means to follow the hyperlinks created using the link
element, somewhere
within their user interface. The exact interface is not defined by this specification, but it
could include the following information (obtained from the element's attributes, again as defined
below), in some form or another (possibly simplified), for each hyperlink created with each
link
element in the document:
rel
attribute)title
attribute).href
attribute).hreflang
attribute).media
attribute).User agents could also include other information, such as the type of the resource (as given by
the type
attribute).
link
要素とともに作成されるハイパーリンクおよびそのrel
属性はページ全体に適用される。これは、コンテキストが文書内のリンク位置によって与えられるリンク型を示す、a
およびarea
要素のrel
属性とは対照的である。
media
属性は、リソースが適用されるメディアを表す。値は妥当なメディアクエリでなければならない。
If the link is a hyperlink then the media
attribute is purely advisory, and describes for which media the document in question was
designed.
However, if the link is an external resource link, then the media
attribute is prescriptive. The user agent must apply the
external resource when the media
attribute's value
matches the environment and the other relevant conditions apply, and must not apply
it otherwise.
The external resource might have further restrictions defined within that limit
its applicability. For example, a CSS style sheet might have some @media
blocks. This specification does not override such further restrictions or requirements.
media
属性が省略される場合、デフォルトでは"all
"であり、デフォルトのリンクにより、すべてのメディアに適用されることを意味する。
link
要素のhreflang
属性は、a
およびarea
要素のhreflang
属性と同じセマンティックを持つ。
type
属性は、リンクされたリソースのMIMEタイプを提供する。これは単なる助言である。値は妥当なMIMEタイプでなければならない。
外部リソースへのリンクについて、それらがサポートしないリソースの再取得を回避できるように、type
属性はユーザーエージェントへのヒントとして使用される。If the attribute is present, then the user agent must assume that the resource is of the given type (even if that is not a valid MIME type, e.g. the empty string). If the attribute is omitted, but the external resource link type has a default type defined, then the user agent must assume that the resource is of that type. If the UA does not support the given MIME type for the given link relationship, then the UA should not obtain the resource; if the UA does support the given MIME type for the given link relationship, then the UA should obtain the resource at the appropriate time as specified for the external resource link's particular type. If the attribute is omitted, and the external resource link type does not have a default type defined, but the user agent would obtain the resource if the type was known and supported, then the user agent should obtain the resource under the assumption that it will be supported.
User agents must not consider the type
attribute
authoritative — upon fetching the resource, user agents must not use the type
attribute to determine its actual type. Only the actual type
(as defined in the next paragraph) is used to determine whether to apply the resource,
not the aforementioned assumed type.
If the external resource link type defines rules for processing the resource's Content-Type metadata, then those rules apply. Otherwise, if the resource is expected to be an image, user agents may apply the image sniffing rules, with the official type being the type determined from the resource's Content-Type metadata, and use the resulting sniffed type of the resource as if it was the actual type. Otherwise, if neither of these conditions apply or if the user agent opts not to apply the image sniffing rules, then the user agent must use the resource's Content-Type metadata to determine the type of the resource. If there is no type metadata, but the external resource link type has a default type defined, then the user agent must assume that the resource is of that type.
The stylesheet
link type defines rules for
processing the resource's Content-Type metadata.
Once the user agent has established the type of the resource, the user agent must apply the resource if it is of a supported type and the other relevant conditions apply, and must ignore the resource otherwise.
If a document contains style sheet links labeled as follows:
<link rel="stylesheet" href="A" type="text/plain"> <link rel="stylesheet" href="B" type="text/css"> <link rel="stylesheet" href="C">
...then a compliant UA that supported only CSS style sheets would fetch the B and C files, and
skip the A file (since text/plain
is not the MIME type for CSS style
sheets).
For files B and C, it would then check the actual types returned by the server. For those that
are sent as text/css
, it would apply the styles, but for those labeled as
text/plain
, or any other type, it would not.
If one of the two files was returned without a Content-Type metadata, or with a
syntactically incorrect type like Content-Type: "null"
, then the
default type for stylesheet
links would kick in. Since that
default type is text/css
, the style sheet would nonetheless be
applied.
title
属性は、リンクのタイトルを与える。一つの例外を除いて、これは純粋に助言的である。値はテキストである。例外は、title
属性が代替スタイルシートのセットを定義するスタイルシートのリンクに対するものである。
link
要素のtitle
属性は、タイトルをもたないリンクが親要素のタイトルを継承しない点で、他のほとんどの要素に属するグローバルtitle
属性とは異なる。それは単にタイトルを持たない。
sizes
属性は、icon
リンクタイプとともに使用される。属性は、icon
のキーワードを指定するrel
属性を持たないlink
要素を指定してはならない。
The activation behavior of link
elements that create hyperlinks is to run the following steps:
If the link
element's Document
is not fully active,
then abort these steps.
Follow the hyperlink created by the
link
element.
HTTP Link:
headers, if supported, must be assumed to come before
any links in the document, in the order that they were given in the HTTP message. These headers
are to be processed according to the rules given in the relevant specifications. [HTTP] [WEBLINK]
Registration of relation types in HTTP Link: headers is distinct from HTML link types, and thus their semantics can be different from same-named HTML types.
The IDL attributes href
, rel
, rev
, media
,
hreflang
, type
, and sizes
each must reflect the respective
content attributes of the same name.
The crossOrigin
IDL attribute must
reflect the crossorigin
content attribute,
limited to only known values.
The IDL attribute relList
must reflect the rel
content attribute.
IDL属性disabled
は、スタイルシートのリンクにのみ適用する。link
要素がスタイルシートのリンクを定義する場合、disabled
属性は、代替スタイルシートDOMへ定義されるように振る舞う。他のすべてのlink
要素に対して、これは常にfalseを返し、何も設定しない。
LinkStyle
インターフェースはまた、この要素で実装される。スタイリング処理モデルが方法を定義する。[CSSOM]
ここで、link
要素のセットは、スタイルシートを提供する:
<!-- a persistent style sheet --> <link rel="stylesheet" href="default.css"> <!-- the preferred alternate style sheet --> <link rel="stylesheet" href="green.css" title="Green styles"> <!-- some alternate style sheets --> <link rel="alternate stylesheet" href="contrast.css" title="High contrast"> <link rel="alternate stylesheet" href="big.css" title="Big fonts"> <link rel="alternate stylesheet" href="wide.css" title="Wide screen">
次の例は、別の形式を使用する、他言語向け、他のメディアのために意図されているページのバージョンをどのように指定できるかを示す:
<link rel=alternate href="/en/html" hreflang=en type=text/html title="English HTML"> <link rel=alternate href="/fr/html" hreflang=fr type=text/html title="French HTML"> <link rel=alternate href="/en/html/print" hreflang=en type=text/html media=print title="English HTML (for printing)"> <link rel=alternate href="/fr/html/print" hreflang=fr type=text/html media=print title="French HTML (for printing)"> <link rel=alternate href="/en/pdf" hreflang=en type=application/pdf title="English PDF"> <link rel=alternate href="/fr/pdf" hreflang=fr type=application/pdf title="French PDF">
meta
要素charset
属性が存在する場合、または要素のhttp-equiv
の属性がエンコード宣言状態にある場合:head
要素内。http-equiv
属性が存在するが、エンコード宣言状態でない場合:head
要素内。http-equiv
属性が存在するが、エンコード宣言状態でない場合:head
要素の子であるnoscript
要素内。name
属性が存在する場合:メタデータコンテンツが期待される場所。name
— メタデータ名http-equiv
— プラグマディレクティブcontent
— 要素の値charset
— 文字エンコーディング宣言interface HTMLMetaElement : HTMLElement { attribute DOMString name; attribute DOMString httpEquiv; attribute DOMString content; };
meta
要素は、title
、base
、link
、style
、script
要素を用いて表現できない様々な種類のメタデータを表す。
meta
要素は、name
属性をもつ文書レベルのメタデータ、http-equiv
属性を持つプラグマ・ディレクティブ、およびcharset
属性をもつHTML文書が文字列形式にシリアライズされる(たとえば、ネットワーク上の伝送、またはディスクストレージ)場合、ファイルの文字エンコーディング宣言を表すことができる。
name
、http-equiv
、およびcharset
属性のうちの1つを正確に指定しなければならない。
name
またはhttp-equiv
のいずれかが指定される場合、content
属性も指定しなければならない。そうでなければ、省略されなければならない。
charset
属性は、文書で使用される文字エンコーディングを指定する。これは、文字エンコーディング宣言である。属性がXML文書内に存在する場合、その値は、文字列"UTF-8
"とASCII大文字・小文字不区別で一致しなければならない(したがって、文書は、エンコーディングとしてUTF-8を使用するよう強制される)。
meta
要素上のcharset
属性は、XML文書では効果がなく、単にXHTMLからの移行を容易にするために許可される。
文書ごとにcharset
属性をもつ複数のmeta
要素があってはならない。
content
属性は、文書のメタデータまたは要素がそれらの目的のために使用される場合のプラグマディレクティブの値を与える。この仕様の後続の節で説明されるように、許可される値は、正確な文脈に依存する。
meta
要素がname
属性を持つ場合、文書のメタデータを設定する。文書のメタデータは、名前と値のペアの観点から表される。meta
要素のname
属性が名前を与え、同じ要素のcontent
属性が値を与える。名前はメタデータのどの側面を設定するかを指定する。妥当な名前とその値の意味は、次の節で説明する。meta
要素がcontent
属性を持たない場合、メタデータの名前と値のペアの値部分は、空文字列である。
The name
and content
IDL attributes must reflect the
respective content attributes of the same name. The IDL attribute httpEquiv
must reflect the content
attribute http-equiv
.
Names are case-insensitive, and must be compared in an ASCII case-insensitive manner.
application-name
値は、ページが表すウェブアプリケーションの名前を与える短い自由形式の文字列でなければならない。ページがウェブアプリケーションでない場合、application-name
メタデータ名を使用してはならない。それぞれの名前の言語を指定する属性を使用することで、ウェブアプリケーション名の翻訳は与えられてもよい。
与えられる言語をもち、かつ文書ごとに値application-name
を設定するname
属性をもつ複数のmeta
要素が存在してはならない。
User agents may use the application name in UI in preference to the page's
title
, since the title might include status messages and the like relevant to the
status of the page at a particular moment in time instead of just being the name of the
application.
To find the application name to use given an ordered list of languages (e.g. British English, American English, and English), user agents must run the following steps:
Let languages be the list of languages.
Let default language be the language of the
Document
's root element,
if any, and if that language is not unknown.
If there is a default language, and if it is not the same language as any of the languages is languages, append it to languages.
Let winning language be the first language in languages for which there is a meta
element in the
Document
that has its name
attribute set to
the value application-name
and whose
language is the language in question.
If none of the languages have such a meta
element, then abort these steps;
there's no given application name.
Return the value of the content
attribute of the
first meta
element in the Document
in tree order that
has its name
attribute set to the value application-name
and whose language is winning language.
author
値は、ページ著者のうちの一人の名前を与える、自由形式の文字列でなければならない。
description
値は、ページを説明する自由形式の文字列でなければならない。たとえば検索エンジン内など、値はページのディレクトリで使用するために適切なものでなければならない。文書ごとに値description
を設定するname
属性を持つ複数のmeta
要素があってはならない。
generator
値は、文書を生成するために使用されるソフトウェアパッケージの1つを識別する自由形式の文字列でなければならない。この値は、たとえばマークアップがテキストエディタでユーザーによって記述されたページのように、マークアップがソフトウェアによって生成されないページで使用してはならない。
"Frontweaver"と呼ばれるツールは、ページ生成のために使用されるツールとして自分自身を識別するために、ページのhead
要素内にその出力で含むかもしれない:
<meta name=generator content="Frontweaver 8.2">
keywords
値は、それぞれがページに関連するキーワードである、コンマ区切りトークンの集合でなければならない。
イギリスの高速道路上の書体に関するこのページは、ユーザーがページを検索するために使用するかもしれないキーワードを指定するmeta
要素を使用している:
<!DOCTYPE HTML> <html> <head> <title>Typefaces on UK motorways</title> <meta name="keywords" content="british,type face,font,fonts,highway,highways"> </head> <body> ...
多くの検索エンジンは、この機能が歴史的に当てにならず、さらにはユーザーにとって有益でない手段をもたらす、検索エンジンスパムとして誤解を招く方法で使用されているので、そのようなキーワードを考慮しない。
To obtain the list of keywords that the author has specified as applicable to the page, the user agent must run the following steps:
Let keywords be an empty list.
For each meta
element with a name
attribute and a content
attribute and whose name
attribute's value is keywords
, run the following substeps:
Split the value of the element's content
attribute on commas.
Add the resulting tokens, if any, to keywords.
Remove any duplicates from keywords.
Return keywords. This is the list of keywords that the author has specified as applicable to the page.
User agents should not use this information when there is insufficient confidence in the reliability of the value.
For instance, it would be reasonable for a content management system to use the keyword information of pages within the system to populate the index of a site-specific search engine, but a large-scale content aggregator that used this information would likely find that certain users would try to game its ranking mechanism through the use of inappropriate keywords.
メタデータ名の定義済みセットに対する拡張は、WHATWG Wiki MetaExtensions pageに登録されているかもしれない。[WHATWGWIKI]
型の追加は、いつでもWHATWG Wiki MetaExtensions pageを編集することで誰もが自由にできる。これらの新しい名前は、次の情報を指定しなければならない:
実際の名前が定義されている。名前は、他の定義済みの名前と紛らわしいものであるべきでない(たとえば、大文字と小文字だけが異なる)。
メタデータ名の意味はどのようなものかの短い非標準の説明は、その値が要求する形式を含む。
全く同じ処理要求を持つ他の名前のリスト。著者は、同義語であると定義された名前を使うべきではなく、同義語はユーザーエージェントがレガシーコンテンツをサポートするためだけのものである。誰もが実際に使用されてない同義語を削除できる。レガシーコンテンツとの互換性のために同義語として処理する必要がある名前のみが、この方法で登録されているのである。
以下のうちの1つをとる:
メタデータ名が既存の値とともに冗長であることが判明した場合、削除され、既存の値の同義語としてリストされているべきである。
メタデータ名が、使用するまたは指定することなく一月以上の期間"proposed"(提案)状態で登録されている場合、レジストリから削除されることがある。
メタデータ名が"proposed"(提案)状態で追加され、既存の値とともに冗長であることが判明している場合、既存の値の同義語として削除され、リストされているべきである。メタデータ名は"proposed"(提案)状態で追加され、有害だと判明している場合、"discontinued"(中止)状態に変更すべきである。
誰もがいつでも状態を変更できるが、上記の定義にしたがってのみ行うべきである。
Conformance checkers may use the information given on the WHATWG Wiki MetaExtensions page to establish if a value is allowed or not: values defined in this specification or marked as "proposed" or "ratified" must be accepted, whereas values marked as "discontinued" or not listed in either this specification or on the aforementioned page must be reported as invalid. Conformance checkers may cache this information (e.g. for performance reasons or to avoid the use of unreliable network connectivity).
When an author uses a new metadata name not defined by either this specification or the Wiki page, conformance checkers should offer to add the value to the Wiki, with the details described above, with the "proposed" status.
値がURLのようなメタデータ名は、提案または受け入れてはならない。リンクは、meta
要素ではなく、link
要素を用いて表現されなければならない。
meta
要素でhttp-equiv
属性が指定された場合、要素はプラグマディレクティブである。
http-equiv
属性は、列挙属性である。以下の表は、この属性に対して定義されたキーワードを列挙する。キーワードとともにその行の最初のセルに与えられた状態は、これらキーワードが対応する状態を与える。Some of the keywords are non-conforming, as noted in the last column.
状態 | キーワード | 注 |
---|---|---|
Content Language | content-language
| Non-conforming |
エンコーディング宣言 | content-type
| |
デフォルトスタイル | default-style
| |
リフレッシュ | refresh
| |
Cookie setter | set-cookie
| Non-conforming |
When a meta
element is inserted
into the document, if its http-equiv
attribute is
present and represents one of the above states, then the user agent must run the algorithm
appropriate for that state, as described in the following list:
http-equiv="content-language"
)
This feature is non-conforming. Authors are encouraged to use the lang
attribute instead.
This pragma sets the pragma-set default language. Until such a pragma is successfully processed, there is no pragma-set default language.
If the meta
element has no content
attribute, then abort these steps.
If the element's content
attribute contains a
"," (U+002C) character then abort these steps.
Let input be the value of the element's content
attribute.
Let position point at the first character of input.
Collect a sequence of characters that are not space characters
Let candidate be the string that resulted from the previous step.
If candidate is the empty string, abort these steps.
Set the pragma-set default language to candidate.
This pragma is almost, but not quite, entirely unlike the HTTP
Content-Language
header of the same name. [HTTP]
http-equiv="content-type"
)
エンコーディング宣言状態は、charset
属性の設定の単なる代替形式である。これは文字エンコーディング宣言である。This state's user agent requirements are all handled by the parsing section of the specification.
エンコーディング宣言状態のhttp-equiv
属性をもつmeta
要素に対して、content
属性は、リテラルに文字列"text/html;
"、その後に任意の数の空白文字が任意で続き、その後にリテラルに文字列"charset=
"が続き、その後に文字エンコーディング宣言の文字エンコーディングのラベルが続くものからなる文字列とASCII大文字・小文字不区別で一致する値を持たなければならない。
文書は、エンコーディング宣言状態のhttp-equiv
属性をもつmeta
要素と、charset
属性の存在するmeta
要素の両方を含んではならない。
エンコーディング宣言状態は、HTML文書でおよびXML文書で使用されてもよい。エンコーディング宣言状態がXML文書内で使用される場合、文字エンコーディングの名前は、文字列"UTF-8
"とASCII大文字・小文字不区別で一致しなければならない(したがって、文書は、エンコーディングとしてUTF-8を使用するよう強制される)。
エンコーディング宣言状態はXML文書において効果がなく、単にXHTMLからの移行を容易にするために許可される。
http-equiv="default-style"
)
このプラグマは、デフォルトの代替スタイルシートのセットの名前を設定する。
If the meta
element has no content
attribute, or if that attribute's value is the empty string, then abort these steps.
Set the preferred style sheet set to the value of the element's content
attribute. [CSSOM]
http-equiv="refresh"
)
このプラグマは、時限式のリダイレクトとして動作する。
If another meta
element with an http-equiv
attribute in the Refresh state has already been successfully
processed (i.e. when it was inserted the user agent processed it and reached the last step of
this list of steps), then abort these steps.
If the meta
element has no content
attribute, or if that attribute's value is the empty string, then abort these steps.
Let input be the value of the element's content
attribute.
Let position point at the first character of input.
Collect a sequence of characters that are ASCII digits, and parse the resulting string using the rules for parsing non-negative integers. If the sequence of characters collected is the empty string, then no number will have been parsed; abort these steps. Otherwise, let time be the parsed number.
Collect a sequence of characters that are ASCII digits and "." (U+002E) characters. Ignore any collected characters.
Let url be the address of the current page.
If the character in input pointed to by position is a ";" (U+003B) character or a "," (U+002C) character, then advance position to the next character. Otherwise, jump to the last step.
If the character in input pointed to by position is a "U" (U+0055) character or a U+0075 LATIN SMALL LETTER U character (u), then advance position to the next character. Otherwise, jump to the last step.
If the character in input pointed to by position is a "R" (U+0052) character or a U+0072 LATIN SMALL LETTER R character (r), then advance position to the next character. Otherwise, jump to the last step.
If the character in input pointed to by position is s "L" (U+004C) character or a U+006C LATIN SMALL LETTER L character (l), then advance position to the next character. Otherwise, jump to the last step.
If the character in input pointed to by position is a "=" (U+003D), then advance position to the next character. Otherwise, jump to the last step.
If the character in input pointed to by position is either a "'" (U+0027) character or """ (U+0022) character, then let quote be that character, and advance position to the next character. Otherwise, let quote be the empty string.
Let url be equal to the substring of input from the character at position to the end of the string.
If quote is not the empty string, and there is a character in url equal to quote, then truncate url at that character, so that it and all subsequent characters are removed.
Strip any trailing space characters from the end of url.
Strip any "tab" (U+0009), "LF" (U+000A), and "CR" (U+000D) characters from url.
Resolve the url value to an
absolute URL, relative to the meta
element. If this fails, abort
these steps.
Perform one or more of the following steps:
After the refresh has come due (as defined below), if the user has not canceled the
redirect and if the meta
element's Document
's active
sandboxing flag set does not have the sandboxed automatic features browsing
context flag set, navigate the
Document
's browsing context to url, with
replacement enabled, and with the Document
's browsing
context as the source browsing context.
For the purposes of the previous paragraph, a refresh is said to have come due as soon as the later of the following two conditions occurs:
meta
element was inserted into the
Document
, adjusted to take into account user or user agent
preferences.Provide the user with an interface that, when selected, navigates a browsing context to
url, with the Document
's browsing context as
the source browsing context.
何もしない。
In addition, the user agent may, as with anything, inform the user of any and all aspects of its operation, including the state of any timers, the destinations of any timed redirects, and so forth.
リフレッシュ状態のhttp-equiv
属性をもつmeta
に対して、content
属性はいずれかからなる値を持たなければならない:
URL
", followed by a "=" (U+003D) character, followed by a valid
URL that does not start with a literal "'" (U+0027) or """ (U+0022) character.前者の場合、整数は、そのページが再読み込みされるよりも前の秒数を表す。後者の場合、整数は、与えられたURLのページで置き換えられるよりも前の秒数を表す。
ページが5分ごとにサーバーからの自動的な再読み込みを確実にするために、報道機関のフロントページは、そのページのhead
要素で次のマークアップを含むかもしれない:
<meta http-equiv="Refresh" content="300">
以下のようなマークアップを用いて、連続したページは、各ページが連続で次のページにリフレッシュさせることで、自動スライドショーとして使用されるかもしれない:
<meta http-equiv="Refresh" content="20; URL=page4.html">
http-equiv="set-cookie"
)
This pragma sets an HTTP cookie. [COOKIES]
It is non-conforming. Real HTTP headers should be used instead.
If the meta
element has no content
attribute, or if that attribute's value is the empty string, then abort these steps.
Act as if receiving a
set-cookie-string for the document's address via a "non-HTTP" API,
consisting of the value of the element's content
attribute encoded as UTF-8. [COOKIES] [RFC3629]
一度に文書で特定の状態をもつ複数のmeta
要素が存在してはならない。
プラグマディレクティブの定義済みセットに対する拡張は、WHATWG Wiki PragmaExtensions pageに登録されているかもしれない。[WHATWGWIKI]
そのような拡張は、Permanent Message Header Field Registryに登録されたHTTPヘッダーと同一の名前を使用しなければならず、HTTPヘッダーに対して説明されるものと同様に振る舞わなければならない。[IANAPERMHEADERS]
メタデータを記述するヘッダー、または特定のユーザーエージェント処理を必要としないものに対応するプラグマディレクティブは、登録されてはならない。代わりにメタデータ名を使用する。結果としてHTMLを実装するユーザーエージェントとそうでないユーザーエージェントと異なるHTTPレベルの振る舞いをもたらすので、HTTP処理モデルに影響を与えるヘッダー(たとえば、キャッシュ)に相当するプラグマディレクティブは登録されてはならない。
上記の条件を満たすプラグマディレクティブの追加は、いつでもWHATWG Wiki PragmaExtensions pageを編集することで誰もが自由にできる。そのような登録は以下の情報を指定しなければならない:
実際の名前が定義されている。名前は、同じ要求をもつ以前に登録されたHTTPの名前と一致しなければならない。
プラグマディレクティブの目的の非規範的な説明。
Conformance checkers must use the information given on the WHATWG Wiki PragmaExtensions page to establish if a value is allowed or not: values defined in this specification or listed on the aforementioned page must be accepted, whereas values not listed in either this specification or on the aforementioned page must be rejected as invalid. Conformance checkers may cache this information (e.g. for performance reasons or to avoid the use of unreliable network connectivity).
文字エンコーディング宣言は、文書の記憶または伝達に用いられる文字エンコーディングを指定するメカニズムである。
以下の制限が文字エンコーディング宣言に適用される。
さらに、meta
要素には多くの制限があるため、文書ごとに1つのmeta
ベースの文字エンコーディング宣言のみがあるかもしれない。
HTML文書がBOMで開始せず、かつそのエンコーディングがContent-Typeメタデータによって明示的に与えられず、かつ文書がiframe
srcdoc
文書でない場合、使用される文字エンコーディングはASCII互換文字エンコーディングでなければならず、エンコーディングはcharset
属性をもつmeta
要素またはエンコーディング宣言状態のhttp-equiv
属性をもつmeta
要素を用いて指定されなければならない。
フォームにユーザーが入力した、スクリプトによって生成されたURLでなど、文字エンコーディングは非ASCII文字を処理するために必要とされるため、エンコーディングがUS-ASCIIである場合であっても、文字エンコーディング宣言は、(Content-Typeメタデータ内または明示的にファイル内のいずれか)が必要である。
文書がiframe
srcdoc
文書である場合、文書は文字エンコーディング宣言を持ってはならない。(この場合、文書の一部はiframe
を含んでいるので、ソースはすでにデコードされている。)
HTML文書がcharset
属性をもつmeta
要素または文字エンコーディング宣言のhttp-equiv
属性をもつmeta
要素を含む場合、使用される文字エンコーディングはASCII互換文字エンコーディングでなければならない。
著者はUTF-8を使用すべきである。適合性検査は、著者にレガシーエンコーディングを使うことに反対するよう忠告してもよい。[RFC3629]
Authoring tools should default to using UTF-8 for newly-created documents. [RFC3629]
0x20から0x7Eまでの範囲で一連のバイトがU+0020からU+007Eまでの範囲の文字を比較する以外の文字にデコードできるエンコーディングは、潜在的なセキュリティー脆弱性を表す。エンコーディングをサポートしない(またはエンコーディングを宣言するために使用されるラベルをサポートしない、または他のユーザーエージェントのようにラベル付けされないコンテンツのエンコーディングを宣言する同じメカニズムを使用しない)ユーザーエージェントは、結局はHTMLタグおよびJavaScriptとして技術的に温和なプレーンテキストの文脈で解釈することになるかもしれない。したがって、著者はこれらのエンコーディングを使用すべきではない。たとえば、ASCIIで"<script>
"に対応するバイトのエンコーディングに適用すると、異なる文字列をデコードする可能性がある。Authors should not use such encodings, which are known to include JIS_C6226-1983, JIS_X0212-1990,
HZ-GB-2312, JOHAB (Windows code page 1361), encodings based on
ISO-2022, and encodings based on EBCDIC. さらに、著者は、CESU-8、UTF-7、BOCU-1およびSCSUエンコーディングを使用してはならない。これらのエンコーディングはウェブコンテンツへの使用に対して全く意図されていないため、このカテゴリに分類される。[RFC1345]
[RFC1842]
[RFC1468]
[RFC2237]
[RFC1554]
[CP50220]
[RFC1922]
[RFC1557]
[CESU8]
[UTF7]
[BOCU1]
[SCSU]
この仕様で説明されるエンコーディング検出アルゴリズムはUTF-32とUTF-16を故意に区別しないため、著者はUTF-32を使用すべきではない。[UNICODE]
UTF-8でないエンコーディングの使用は、デフォルトで文書の文字エンコーディングを使うことで、フォーム提出およびURLエンコーディングで予期しない結果を招くかもしれない。
XHTMLにおいて、必要ならば、XML宣言はインライン文字エンコーディング情報に対して使用されるべきである。
HTMLにおいて、文字エンコーディングがUTF-8であることを宣言するために、著者は(head
要素内で)文書のトップの近くに以下のマークアップを含むかもしれない:
<meta charset="utf-8">
XMLにおいて、マークアップのはじめでXML宣言は代わりに用いられるかもしれない:
style
要素head
要素の子であるnoscript
要素内。type
属性の値に依存するが、下記の文に記述される要求に一致しなければならない。media
— 受け入れ可能なメディアtype
— 埋め込みリソースタイプtitle
属性はこの要素で特別なセマンティックを持つ:代替スタイルシート設定名。interface HTMLStyleElement : HTMLElement { attribute boolean disabled; attribute DOMString media; attribute DOMString type; }; HTMLStyleElement implements LinkStyle;
style
要素は、著者が文書にスタイル情報の埋め込みを許可する。style
要素は、スタイリング処理モデルへの、複数の入力の1つである。この要素は、ユーザーへのコンテンツを表すものでない。
type
属性はスタイル言語を与える。属性が存在する場合、その値はスタイル言語を示す妥当なMIMEタイプでなければならない。charset
パラメータを指定してはならない。属性が存在しない場合に用いられるtype
属性に対するデフォルト値は、"text/css
"である。[RFC2318]
When examining types to
determine if they support the language, user agents must not ignore unknown MIME parameters
— types with unknown parameters must be assumed to be unsupported. The charset
parameter must be treated as an unknown parameter for the purpose of
comparing MIME types here.
media
属性は、スタイルが適用されるメディアを言う。値は妥当なメディアクエリでなければならない。The user agent must apply the styles when the media
attribute's value matches the environment and the other relevant conditions apply, and must not apply them otherwise.
The styles might be further limited in scope, e.g. in CSS with the use of @media
blocks. This specification does not override such further restrictions or
requirements.
media
属性が省略される場合、デフォルトでは"all
"であり、デフォルトのスタイルにより、すべてのメディアに適用されることを意味する。
style
要素のtitle
属性は代替スタイルシートのセットを定義する。style
要素がtitle
属性を持たない場合、タイトルを持たない。先祖のtitle
属性はstyle
要素に適用しない。[CSSOM]
link
要素のtitle
属性のような、style
要素のtitle
属性は、グローバルtitle
属性とタイトルなしのstyle
ブロックが親要素のタイトルを継承しないという点で異なる。それは単にタイトルを持たない。
style
要素のtextContent
は以下のABNFでstyle
生成物と対等でなければならず、Unicodeである文字セットとなる。[ABNF]
style = no-c-start *( c-start no-c-end c-end no-c-start ) no-c-start = < any string that doesn't contain a substring that matches c-start > c-start = "<!--" no-c-end = < any string that doesn't contain a substring that matches c-end > c-end = "-->"
All descendant elements must be processed, according to their semantics, before the
style
element itself is evaluated. For styling languages that consist of pure text
(as opposed to XML), user agents must evaluate style
elements by passing the
concatenation of the contents of all the Text
nodes that are children of the
style
element (not any other nodes such as comments or elements), in tree
order, to the style system. For XML-based styling languages, user agents must pass all the
child nodes of the style
element to the style system.
All URLs found by the styling language's processor must be resolved, relative to the element (or as defined by the styling language), when the processor is invoked.
Once the attempts to obtain the style sheet's critical subresources, if any, are
complete, or, if the style sheet has no critical subresources, once the style sheet
has been parsed and processed, the user agent must, if the loads were successful or there were
none, queue a task to fire a simple event named load
at the style
element, or, if one of the style sheet's
critical subresources failed to completely load for any reason (e.g. DNS error, HTTP
404 response, a connection being prematurely closed, unsupported Content-Type), queue a
task to fire a simple event named error
at
the style
element. Non-network errors in processing the style sheet or its
subresources (e.g. CSS parse errors, PNG decoding errors) are not failures for the purposes of
this paragraph.
The task source for these tasks is the DOM manipulation task source.
The element must delay the load event of the element's document until all the attempts to obtain the style sheet's critical subresources, if any, are complete.
この仕様はスタイル規則を指定しないが、CSSは多くのウェブブラウザによってサポートされることが期待される。[CSS]
The media
and type
IDL attributes must reflect the
respective content attributes of the same name.
disabled
IDL属性は、代替スタイルシートDOMへ定義されるように振る舞う。
LinkStyle
インターフェースはまた、この要素で実装される。スタイリング処理モデルが方法を定義する。[CSSOM]
次の文書は、デフォルトのイタリック体で作品とラテン語のタイトルを残したまま、イタリックテキストよりも明るい赤色のテキストとして強調するスタイルを持つ。適切な要素を使用した、文書のより簡単な再スタイル付けを可能にする方法を示す。
<!DOCTYPE html> <html lang="en-US"> <head> <title>My favorite book</title> <style> body { color: black; background: white; } em { font-style: normal; color: red; } </style> </head> <body> <p>My <em>favorite</em> book of all time has <em>got</em> to be <cite>A Cat's Life</cite>. It is a book by P. Rahmel that talks about the <i lang="la">Felis Catus</i> in modern human society.</p> </body> </html>
link
およびstyle
要素は、文書をレンダリングする際に使用するユーザーエージェントに対してスタイル情報を供給できる。CSSおよびCSSOM仕様は、スタイル情報がユーザーエージェントによってどのように使用されるかおよびどの方法で使用されるかを指定する。[CSS] [CSSOM]
style
およびlink
要素は、LinkStyle
インターフェースを実装する。[CSSOM]
For style
elements, if the user agent does not support the specified styling
language, then the sheet
attribute of the element's
LinkStyle
interface must return null. Similarly, link
elements that do
not represent external resource links that contribute to the styling
processing model (i.e. that do not have a stylesheet
keyword in their rel
attribute), for which the link is an
alternative stylesheet but whose title
content attribute is
absent or empty, or whose resource is CORS-cross-origin, must have their
LinkStyle
interface's sheet
attribute return
null.
Otherwise, the LinkStyle
interface's sheet
attribute must return null if the corresponding element
is not in a Document
,
and otherwise must return a StyleSheet
object with the following properties: [CSSOM]
The style sheet type must be the same as the style's specified type. For
style
elements, this is the same as the type
content attribute's value, or text/css
if that is omitted. For
link
elements, this is the Content-Type metadata of the
specified resource.
For link
elements, the location must be the result of resolving the URL given by the element's href
content attribute, relative to the element, or the empty
string if that fails. For style
elements, there is no location.
The media must be the same as the value of the element's media
content attribute, or the empty string, if the attribute is omitted.
The title must be the same as the value of the element's title
content attribute, if the attribute is present and has a non-empty
value. If the attribute is absent or its value is the empty string, then the style sheet does not
have a title (it is the empty string). The title is used for defining alternative style
sheet sets.
For link
elements, true if the link is an alternative
stylesheet. In all other cases, false.
The same object must be returned each time.
The disabled
IDL attribute on
link
and style
elements must return false and do nothing on setting, if
the sheet
attribute of their LinkStyle
interface is null. Otherwise, it must return the value of the StyleSheet
interface's
disabled
attribute on getting, and forward the new
value to that same attribute on setting.
The rules for handling alternative style sheets are defined in the CSS object model specification. [CSSOM]
Style sheets, whether added by a link
element, a style
element, an
PI, an HTTP
Link:
header, or some
other mechanism, have a style sheet ready flag, which is initially unset.
When a style sheet is ready to be applied, its style sheet ready flag must be set.
If the style sheet referenced no other resources (e.g. it was an internal style sheet given by a
style
element with no @import
rules), then the style rules must
be synchronously made available to script; otherwise, the style rules must only be made available
to script once the event loop reaches its "update the rendering" step.
A style sheet in the context of the Document
of an HTML parser or
XML parser is said to be a style sheet that is blocking scripts if the
element was created by that Document
's parser, and the element is either a
style
element or a link
element that was an external resource link that contributes to the styling processing
model when the element was created by the parser, and the element's style sheet was enabled
when the element was created by the parser, and the element's style sheet ready flag
is not yet set, and, the last time the event loop reached step 1, the element was
in that Document
, and the user agent hasn't given
up on that particular style sheet yet. A user agent may give up on a style sheet at any time.
Giving up on a style sheet before the style sheet loads, if the style sheet eventually does still load, means that the script might end up operating with incorrect information. For example, if a style sheet sets the color of an element to green, but a script that inspects the resulting style is executed before the sheet is loaded, the script will find that the element is black (or whatever the default color is), and might thus make poor choices (e.g. deciding to use black as the color elsewhere on the page, instead of green). Implementors have to balance the likelihood of a script using incorrect information with the performance impact of doing nothing while waiting for a slow network request to finish.
A Document
has a style sheet that is blocking scripts if there is
either a style sheet that is blocking scripts in the context of that
Document
, or if that Document
is in a browsing context that
has a parent browsing context, and the active document of that
parent browsing context itself has a style sheet that is blocking
scripts.
A Document
has no style sheet that is blocking scripts if it does not
have a style sheet that is blocking
scripts as defined in the previous paragraph.