【この訳に固有の表記規約】

この訳の,~algoの記述に利用されている各種記号(此れ, ~LET, ~IF, ~RET, 等々)の意味や定義の詳細は、~SYMBOL_DEF_REFを~~参照されたし。

4.1. 文書~要素

4.1.1. `html^e 要素

`分類$
なし。 ◎ None.
`この要素を利用できる文脈$
文書の`文書~要素$として。 ◎ As document's document element.
Wherever a subdocument fragment is allowed in a compound document.†
【† 訳すなら、 “複合~文書~内で,下位文書片が許容されている所。” となるが,意図不明。 ~inline SVG における `foreignObject^e 要素~内での利用を指しているのかもしれない。 ( “複合~文書” とは Compound Document 仕様のそれを指すようにも思われるが、その仕様の策定は放棄されている。) 】
`内容~model$
1 個の `head$e 要素, 1 個の `body$e 要素 からなる並び。 ◎ A head element followed by a body element.
`text/html における~tag省略$
`html$e 要素の`開始tag$は、要素の内側にある最初のものが`~comment$でないならば,省略できる。 ◎ An html element's start tag can be omitted if the first thing inside the html element is not a comment.
`html$e 要素の`終了tag$は、要素の直後に`~comment$が続かないならば,省略できる。 ◎ An html element's end tag can be omitted if the html element is not immediately followed by a comment.
`内容~属性$
`大域~属性$ ◎ Global attributes
`manifest$a — ~app~cache~manifestを与える。 ◎ manifest — Application cache manifest
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLHtmlElement@I : `HTMLElement$I {};

`html$e 要素は、~HTML文書の根を`表現-$する。 ◎ The html element represents the root of an HTML document.

作者には、根 `html$e 要素~上に `lang$a 属性を指定して,文書の言語を与えることが奨励される。 これは、発話合成~toolが利用する発音を決定する, 翻訳~toolが利用する規則を決定する, 等々を援助する。 ◎ Authors are encouraged to specify a lang attribute on the root html element, giving the document's language. This aids speech synthesis tools to determine what pronunciations to use, translation tools to determine what rules to use, and so forth.

`manifest@a 属性は… `以下、この箇所の和訳は,次の段落を除いて省略する。^tnote

`manifest$a 属性は,旧来の “offline Web applications” 特色機能の一部であり、~Web~platformから除去されつつある過程にある(何年もかかるであろう)。 現時点では、 `manifest$a 属性は利用しないことが~~強く奨励される。 代わりに~service-workerを利用するように。`SW$r

◎ The manifest attribute gives the address of the document's application cache manifest, if there is one. If the attribute is present, the attribute's value must be a valid non-empty URL potentially surrounded by spaces. ◎ The manifest attribute is part of the legacy "offline Web applications" feature, which is in the process of being removed from the Web platform. (This is a long process that takes many years.) Using the manifest attribute at this time is highly discouraged. Use service workers instead. [SW] ◎ The manifest attribute only has an effect during the early stages of document load. Changing the attribute dynamically thus has no effect (and thus, no DOM API is provided for this attribute). ◎ For the purposes of application cache selection, later base elements cannot affect the parsing of URLs in manifest attributes, as the attributes are processed before those elements are seen. ◎ The window.applicationCache IDL attribute provides scripted access to the offline application cache mechanism.

次の例における `html$e 要素は、文書の言語が日本語であることを宣言する。 ◎ The html element in the following example declares that the document's language is English.

`html-1^xCode

4.2. 文書~metadata

4.2.1. `head^e 要素

`分類$
なし。 ◎ None.
`この要素を利用できる文脈$
`html$e 要素~内の最初の要素として。 ◎ As the first element in an html element.
`内容~model$
文書が`~iframe-srcdoc文書$である場合 / ~title情報がより高次の~protocolから可用である場合: 0 個~以上の`~metadata内容$要素 — そのうち `title$e, `base$e 要素は各 1 個まで。 ◎ If the document is an iframe srcdoc document or if title information is available from a higher-level protocol: Zero or more elements of metadata content, of which no more than one is a title element and no more than one is a base element.
他の場合: 1 個以上の`~metadata内容$要素 — そのうち `title$e, `base$e 要素は各 1 個まで。 ◎ Otherwise: One or more elements of metadata content, of which exactly one is a title element and no more than one is a base element.
`text/html における~tag省略$
`head$e 要素の`開始tag$は、要素は空であるか, または 要素の内側にある最初のものは要素であるならば,省略できる。 ◎ A head element's start tag can be omitted if the element is empty, or if the first thing inside the head element is an element.
`head$e 要素の`終了tag$は、要素の直後に[ `~ASCII空白$/`~comment$ ]が続かないならば,省略できる。 ◎ A head element's end tag can be omitted if the head element is not immediately followed by ASCII whitespace or a comment.
`内容~属性$
`大域~属性$ ◎ Global attributes
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLHeadElement@I : `HTMLElement$I {};

`head$e 要素は、`文書$に対する~metadataからなる~collectionを`表現-$する。 ◎ The head element represents a collection of metadata for the Document.

`head$e 要素~内の~metadataの総量に上限は無い。 ごく短い例: ◎ The collection of metadata in a head element can be large or small. Here is an example of a very short one:

`head-1^xCode

より長い例: ◎ Here is an example of a longer one:

`head-2^xCode

注記: ほとんどの状況では `title$e 要素が子に要求されるが、より高次の~protocolが~title情報を提供している場合は, `title$e 要素を省略できる — 例えば、~e-mail著作~形式として~HTMLが利用されている下で,~e-mailの `件名^i が~title情報を提供している場合など。 ◎ The title element is a required child in most situations, but when a higher-level protocol provides title information, e.g. in the Subject line of an e-mail when HTML is used as an e-mail authoring format, the title element can be omitted.

4.2.2. `title^e 要素

`分類$
`~metadata内容$。 ◎ Metadata content.
`この要素を利用できる文脈$
他の `title$e 要素を包含していない `head$e 要素~内。 ◎ In a head element containing no other title elements.
`内容~model$
`要素間~空白$でない`~text$。 ◎ Text that is not inter-element whitespace.
`text/html における~tag省略$
両~tagとも省略不可。 ◎ Neither tag is omissible.
`内容~属性$
`大域~属性$ ◎ Global attributes
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLTitleElement@I : `HTMLElement$I {
  [`CEReactions$] attribute DOMString `text$m;
};

`title$e 要素は、文書の~titleあるいは名前を`表現-$する。 作者は、文書を識別するときには,文書が文脈の外で利用されるとき — 例えば 利用者の閲覧履歴や~bookmark, 検索結果において — でも,~titleを利用するべきである。 文書の~titleは、最上位の見出し(文書~全体に適用される`見出し内容$)と異なることが多い — 最上位の見出しは、文脈の外に取り出されたときに自立的である必要はないので。 ◎ The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context.

`title$e 要素は文書ごとに 1 個までで~MUST。 ◎ There must be no more than one title element per document.

注記: `文書$が~titleを持たないことが理に適う場合、 `title$e 要素はおそらく要求されない。 `head$e 要素の内容~modelにおける,この要素がいつ要求されるかの記述を見よ。 ◎ If it's reasonable for the Document to have no title, then the title element is probably not required. See the head element's content model for a description of when the element is required.

%~title . `text$m [ = %値 ]
要素の`子~text内容$を返す。 ◎ Returns the child text content of the element.
設定して,要素の子たちを所与の値に置換できる。 ◎ Can be set, to replace the element's children with the given value.
`text@m
取得子は、此れの`子~text内容$を返さ~MUST。 ◎ The IDL attribute text must return the child text content of the title element.\
設定子は、此れ上の `textContent$m ~IDL属性と同じ仕方で動作し~MUST。 ◎ On setting, it must act the same way as the textContent IDL attribute.

以下に、適切な~titleの例を,最上位の見出しと対比させながら挙げる。 ◎ Here are some examples of appropriate titles, contrasted with the top-level headings that might be used on those same pages.

`title-1^xCode

同じ~siteには、次のような頁もあるかもしれない。 ~titleが当の主題を一義的に記述していることに注意。 一方で,最上位の見出しは、読者が当の文脈が何であるかすでに知っている — ダンスがサルサやワルツかも…などと戸惑うことはない — ものと見做している: ◎ The next page might be a part of the same site. Note how the title describes the subject matter unambiguously, while the first heading assumes the reader knows what the context is and therefore won't wonder if the dances are Salsa or Waltz:

`title-2^xCode

文書の~titleとして利用する文字列は、 `document.title$m ~IDL属性により与えられる。 ◎ The string to use as the document's title is given by the document.title IDL attribute.

~UAは、~UIにて文書を指すときは,文書の~titleを利用するべきである。 `title$e 要素の内容を~UIに利用する場合、その方向性には,要素の`方向性$が利用されるべきである。 ◎ 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.

4.2.3. `base^e 要素

`分類$
`~metadata内容$。 ◎ Metadata content.
`この要素を利用できる文脈$
他の `base$e 要素を包含していない `head$e 要素~内。 ◎ In a head element containing no other base elements.
`内容~model$
`なし$ ◎ Nothing.
`text/html における~tag省略$
`終了tag$はない。 ◎ No end tag.
`内容~属性$
`大域~属性$ ◎ Global attributes
`href$a — `文書~基底~URL$を与える。 ◎ href — Document base URL
`target$a — [ `~hyperlink$による`~navigate$ / `~form提出$ ]に対する,既定の`閲覧文脈$を与える。 ◎ target — Default browsing context for hyperlink navigation and form submission
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLBaseElement@I : `HTMLElement$I {
  [`CEReactions$] attribute USVString `href$m;
  [`CEReactions$] attribute DOMString `target$m;
};

`base$e 要素により、作者は,次が可能になる:

  • ~URLを`相対的に構文解析-$する目的0において `文書~基底~URL$を指定する。
  • `~hyperlinkを追う$目的0において 既定の`閲覧文脈$の名前を指定する。

この要素は、これ以外の内容は`表現-$しない。

◎ The base element allows authors to specify the document base URL for the purposes of parsing URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information.

同じ文書~内に `base$e 要素が複数あっては~MUST_NOT。 ◎ There must be no more than one base element per document.

`base$e 要素は、[ `href$a, `target$a ]いずれかの属性は有してい~MUST。 ◎ A base element must have either an href attribute, a target attribute, or both.

`href@a 内容~属性に指定する値は、`前後~空白~可の妥当な~URL$で~MUST。 ◎ The href content attribute, if specified, must contain a valid URL potentially surrounded by spaces.

`href$a 属性を有する `base$e 要素は、文書~木~内の[ `~URL$を値にとるものと定義されている属性を有するような,他のどの要素 ]よりも先に現れ~MUST — `html$e 要素は別として(その `manifest$a 属性は、 `base$e 要素からは影響されない)。 ◎ A base element, if it has an href attribute, must come before any other elements in the tree that have attributes defined as taking URLs, except the html element (its manifest attribute isn't affected by base elements).

注記: `href$a 属性を有する `base$e 要素が複数個ある場合、最初のそれ以外はすべて無視される。 ◎ If there are multiple base elements with href attributes, all but the first are ignored.

`target@a 属性に指定する値は、`妥当な閲覧文脈~名または~keyword$を包含してい~MUST。 それは、`文書$内の`~hyperlink$や`~form$により`~navi$が生じるときに,既定で利用される`閲覧文脈$を指定する。 ◎ The target attribute, if specified, must contain a valid browsing context name or keyword, which specifies which browsing context is to be used as the default when hyperlinks and forms in the Document cause navigation.

`target$a 属性を有する `base$e 要素は、文書~木~内の`~hyperlink$を表現するどの要素よりも先に現れ~MUST。 ◎ A base element, if it has a target attribute, must come before any elements in the tree that represent hyperlinks.

注記: `target$a 属性を有する `base$e 要素が複数ある場合、最初のそれ以外はすべて無視される。 ◎ If there are multiple base elements with target attributes, all but the first are ignored.

次の条件を満たす `base$e 要素は、 `凍結済み基底~URL@ を持つとされる:

  • `href$a 内容~属性を有する, かつ
  • `文書~木~内$にある, かつ
  • 前 2 条件を満たす `base$e 要素のうち,`木~順序$で最初のものである
◎ A base element that is the first base element with an href content attribute in a document tree has a frozen base URL.\

~UAは、 `base$e 要素において,次のいずれかの状況が生じたとき、`即時に$,要素の`凍結済み基底~URLを設定-$し~MUST: ◎ The frozen base URL must be immediately set for an element whenever any of the following situations occur:

  • 上の条件を満たしていない `base$e 要素が,上の条件を満たすようになったとき。 ◎ The base element becomes the first base element in tree order with an href content attribute in its Document.
  • 上の条件を満たしている `base$e 要素の `href$a 内容~属性が変化したとき。 ◎ The 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.

`base$e 要素 %要素 の `凍結済み基底~URLを設定-@ するときは: ◎ To set the frozen base URL for an element element:

  1. %文書 ~LET %要素 の`~node文書$ ◎ Let document be element's node document.
  2. %~url~record ~LET 次を与える下で, %要素 の `href$a 内容~属性の値を`~URL構文解析器$にかけた結果 ⇒ ( %文書 の`~fallback基底~URL$, %文書 の`符号化方式$doc )

    (したがって, `base$e 要素の `href$a 内容~属性は、自他の `base$e 要素からは影響されない)

    ◎ Let urlRecord be the result of parsing the value of element's href content attribute with document's fallback base URL, and document's character encoding. (Thus, the base element isn't affected by itself.)
  3. ~IF[ %~url~record ~EQ `失敗^i ]~OR[ `文書に対する基底は許容されるか?$( %~url~record, %文書 ) ~EQ `阻止ed^i ] ⇒ %~url~record ~SET %文書 の`~fallback基底~URL$ ◎ Set element's frozen base URL to document's fallback base URL, if urlRecord is failure or running Is base allowed for Document? on the resulting URL record and document returns "Blocked", and to urlRecord otherwise.
  4. %要素 の`凍結済み基底~URL$ ~SET %~url~record ◎ ↑
`href@m

取得子は、次の~algoを走らせた結果を返さ~MUST: ◎ The href IDL attribute, on getting, must return the result of running the following algorithm:

  1. %文書 ~LET 此れの`~node文書$ ◎ Let document be element's node document.
  2. %~url ~LET 此れは `href$a 属性を[ 有するならば その値 / 有さないならば 空~文字列 ] ◎ Let url be the value of the href attribute of this element, if it has one, and the empty string otherwise.
  3. %~url~record ~LET 次を与える下で, %~url を`~URL構文解析器$にかけた結果 ⇒ ( %文書 の`~fallback基底~URL$, %文書 の`符号化方式$doc )

    (したがって,此れ自身の `href$a 内容~属性は、自他の `base$e 要素からは影響されない。)

    ◎ Let urlRecord be the result of parsing url with document's fallback base URL, and document's character encoding. (Thus, the base element isn't affected by other base elements or itself.)
  4. ~IF[ %~url~record ~EQ `失敗^i ] ⇒ ~RET %~url ◎ If urlRecord is failure, return url.
  5. ~RET %~url~record を`~URL直列化器$にかけた結果 ◎ Return the serialization of urlRecord.
設定子は、 `href$a 内容~属性を所与の値に設定し~MUST。 ◎ The href IDL attribute, on setting, must set the href content attribute to the given new value.
`target@m
同じ名前の内容~属性を`反映-$し~MUST。 ◎ The target IDL attribute must reflect the content attribute of the same name.

`base$e 要素を利用して,`文書~基底~URL$を設定する例: ◎ In this example, a base element is used to set the document base URL:

`base-1^xCode

上の例の~linkは、 `https://www.example.com/news/archives.html^l を指すことになる。 ◎ The link in the above example would be a link to "https://www.example.com/news/archives.html".

4.2.5. `meta^e 要素

`分類$
`~metadata内容$。 ◎ Metadata content.
`itemprop$a 属性を有する場合に限り: `~flow内容$/`句内容$ ◎ If the itemprop attribute is present: flow content. ◎ If the itemprop attribute is present: phrasing content.
`この要素を利用できる文脈$
`charset$a 属性を有する場合に限り: `head$e 要素~内。 ◎ ↓
`http-equiv$a 属性を有する場合に限り: `head$e 要素~内。 ◎ If the charset attribute is present, or if the element's http-equiv attribute is in the Encoding declaration state: in a head element. ◎ If the http-equiv attribute is present but not in the Encoding declaration state: in a head element.
[ `http-equiv$a 属性を有する, かつ その状態 ~NEQ `符号化方式~宣言$st ]の場合に限り: `head$e 要素の子である `noscript$e 要素~内。 ◎ If the http-equiv attribute is present but not in the Encoding declaration state: in a noscript element that is a child of a head element.
`name$a 属性を有する場合に限り: `~metadata内容$が期待される所。 ◎ If the name attribute is present: where metadata content is expected.
`itemprop$a 属性を有する場合に限り: [ `~metadata内容$ / `句内容$ ]が期待される所。 ◎ If the itemprop attribute is present: where metadata content is expected. ◎ If the itemprop attribute is present: where phrasing content is expected.
`内容~model$
`なし$。 ◎ Nothing.
`text/html における~tag省略$
`終了tag$はない。 ◎ No end tag.
`内容~属性$
`大域~属性$ ◎ Global attributes
`name$a — ~metadata名を与える。 ◎ name — Metadata name
`http-equiv$a — ~pragma指令を与える。 ◎ http-equiv — Pragma directive
`content$a — 要素の値を与える。 ◎ content — Value of the element
`charset$a — `符号化方式~宣言$を与える。 ◎ charset — Character encoding declaration
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLMetaElement@I : `HTMLElement$I {
  [`CEReactions$] attribute DOMString `name$m;
  [`CEReactions$] attribute DOMString `httpEquiv$m;
  [`CEReactions$] attribute DOMString `content$m;
};

`meta$e 要素は、[ `title$e / `base$e / `link$e / `style$e / `script$e ]要素では表せないような,種々の~metadataを`表現-$する。 ◎ The meta element represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements.

`meta$e 要素は、その各種 属性により,次を表現できる:

  • `name$a 属性による文書~levelの~metadata
  • `http-equiv$a 属性による~pragma指令
  • `charset$a 属性による,~HTML文書が文字列~形に直列化されるとき(例:~networkを通じた伝送 / ~disk~storage用)の~fileの`符号化方式~宣言$。
◎ The meta element can represent document-level metadata with the name attribute, pragma directives with the http-equiv attribute, and the file's character encoding declaration when an HTML document is serialized to string form (e.g. for transmission over the network or for disk storage) with the charset attribute.

この要素には、[ `name$a, `http-equiv$a, `charset$a, `itemprop$a ]属性のうち,いずれか 1 つだけが指定され~MUST。 ◎ Exactly one of the name, http-equiv, charset, and itemprop attributes must be specified.

[ `name$a, `http-equiv$a, `itemprop$a ]のいずれかが指定されている場合、 `content$a 属性も指定され~MUST。 他の場合、省略され~MUST。 ◎ If either name, http-equiv, or itemprop is specified, then the content attribute must also be specified. Otherwise, it must be omitted.

`charset@a 属性は、文書に利用される符号化方式を指定する。 これは、`符号化方式~宣言$である。 `~XML文書$においては、属性に指定する値は,文字列 `utf-8^l に`~ASCII大小無視$で合致し~MUST(したがって文書は、符号化方式に`~UTF-8$を利用するよう強制される)。 ◎ The charset attribute specifies the character encoding used by the document. This is a character encoding declaration. If the attribute is present in an XML document, its value must be an ASCII case-insensitive match for the string "utf-8" (and the document is therefore forced to use UTF-8 as its encoding).

注記: `meta$e 要素~上の `charset$a 属性は、~XML文書においては効果はない。 それは、 ~XMLから/へ移行し易くするためのみに許容される。 ◎ The charset attribute on the meta element has no effect in XML documents, and is only allowed in order to facilitate migration to and from XML.

同じ文書~内に `charset$a 属性を有する `meta$e 要素が複数あっては~MUST_NOT。 ◎ There must not be more than one meta element with a charset attribute per document.

`content@a 属性は、要素が[ 文書~metadata/~pragma指令 ]目的0に利用されるときに,その値を与える。 許容される値は、後続の各節にて述べるように,正確な文脈に依存する。 ◎ The content attribute gives the value of the document metadata or pragma directive when the element is used for those purposes. The allowed values depend on the exact context, as described in subsequent sections of this specification.

`meta$e 要素が `name@a 属性を有する場合、それは文書~metadataを設定する。 文書~metadataは、名値~pairを通して表される。 要素~上の[ `name$a, `content$a ]属性が,順に[ 名前, 値 ]を与える。 名前は、~metadataのどの側面が設定されているかを指定する。 妥当な名前, および それらの値の意味は、以下の各~節に述べる。 `meta$e 要素が `content$a 属性を有さない場合、その~metadataの名値~pairの値~~成分は,空~文字列になる。 ◎ If a meta element has a name attribute, it sets document metadata. Document metadata is expressed in terms of name-value pairs, the name attribute on the meta element giving the name, and the content attribute on the same element giving the value. The name specifies what aspect of metadata is being set; valid names and the meaning of their values are described in the following sections. If a meta element has no content attribute, then the value part of the metadata name-value pair is the empty string.

`name@m
`content@m
いずれも,対応する同じ名前の内容~属性を`反映-$し~MUST。 ◎ The name and content IDL attributes must reflect the respective content attributes of the same name.\
`httpEquiv@m
`http-equiv$a 内容~属性を`反映-$し~MUST。 ◎ The IDL attribute httpEquiv must reflect the content attribute http-equiv.

4.2.5.1. 標準の~metadata名

この仕様は、 `meta$e 要素に対する `name$a 属性に対し,少数の名前を定義する。 ◎ This specification defines a few names for the name attribute of the meta element.

各 名前は、`~ASCII大小無視$で比較され~MUST。 ◎ Names are case-insensitive, and must be compared in an ASCII case-insensitive manner.

`application-name@v
値は、頁が表現する~Web~app名を与える短い自由形の `すなわち,特に追加の制約はない^tnote 文字列で~MUST。 頁が~Web~appでない場合、~metadata名として `application-name$v が利用されては~MUST_NOT。 名前の言語を指定する `lang$a 属性を利用して,~Web~app名の翻訳を与えても~MAY。 ◎ The value must be a short free-form string giving the name of the Web application that the page represents. If the page is not a Web application, the application-name metadata name must not be used. Translations of the Web application's name may be given, using the lang attribute to specify the language of each name.
同じ文書~内の複数の `meta$e 要素が、同じ`言語$を伴う, かつ 値 `application-name$v に設定された `name$a 属性を有していては~MUST_NOT。 ◎ There must not be more than one meta element with a given language and with its name attribute set to the value application-name per document.
~UAは、~UIにおいて,頁の `title$e に代えて~app名を利用して~MAY — , 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. `?^tnote ◎ 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.

~UAは、所与の言語からなる有順序~list %言語~list (例: 英国~英語, 米国~英語, 英語 )から,利用する~app名を見出すときは、次の手続きを走らせ~MUST: ◎ 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:

  1. ~IF[ `文書$ の`文書~要素$の`言語$ %言語 がある ]~AND[ %言語 は~UAに未知でない ] ⇒ %言語 を %言語~list に付加する ◎ Let languages be the list of languages. ◎ Let default language be the language of the Document's document 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 in languages, append it to languages.
  2. %L ~SET `文書$ 内の `meta$e 要素のうち,次を満たすものからなる `木~順序$による~list ⇒ [ 要素は `name$a 属性を有する ]~AND[ その属性の値 ~EQ `application-name$v ]~AND[ 要素の`言語$ ~IN %言語~list ] ◎ 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.
  3. ~IF[ %L ~EQ 空 ] ⇒ ~RET ε — ~app名は与えられない ◎ If none of the languages have such a meta element, then abort these steps; there's no given application name.
  4. %言語 ~LET [ %L 内のすべての要素の`言語$ ]のうち, %言語~list 内に最初に現れるもの ◎ ↑
  5. ~RET [ %L 内の要素のうち,[ その`言語$ ~EQ %言語 ]なるもの ]のうち,最初のものの `content$a 属性の値 ◎ 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.

注記: この~algoは、頁の名前 — 具体的には ~bookmarkの~labelなど — を必要とする~browserにより利用されることになる。 ~algoには、利用者が選好する言語が提供されることになる。 ◎ This algorithm would be used by a browser when it needs a name for the page, for instance, to label a bookmark. The languages it would provide to the algorithm would be the user's preferred languages.

`author@v
値は、頁の いずれかの作者~名を与える自由形の文字列で~MUST。 ◎ The value must be a free-form string giving the name of one of the page's authors.
`description@v
値は、頁について記述する自由形の文字列で~MUST。 値は、頁の~directory — 例えば検索engine用 — における利用に適切で~MUST。 同じ文書~内の複数の `meta$e 要素が[ 値 `description$v に設定された `name$a 属性 ]を有していては~MUST_NOT。 ◎ The value must be a free-form string that describes the page. The value must be appropriate for use in a directory of pages, e.g. in a search engine. There must not be more than one meta element with its name attribute set to the value description per document.
`generator@v
値は、文書を生成するために利用された~software~packageのうちいずれかを識別するような,自由形の文字列で~MUST。 この値は、~softwareから~markupが生成されていない頁 — 例えば~text~editorで書かれた頁など — には,利用されては~MUST_NOT。 ◎ The value must be a free-form string that identifies one of the software packages used to generate the document. This value must not be used on pages whose markup is not generated by software, e.g. pages whose markup was written by a user in a text editor.

“Frontweaver” と呼ばれる~toolが、頁の `head$e 要素~内に,頁を生成した~toolを識別する名前として,自身のそれを出力する例: ◎ Here is what a tool called "Frontweaver" could include in its output, in the page's head element, to identify itself as the tool used to generate the page:

`meta-generator-1^xCode
`keywords@v
値は、頁に関連する~keywordたちからなる,`~comma区切りの~token集合$で~MUST。 ◎ The value must be a set of comma-separated tokens, each of which is a keyword relevant to the page.

次の,高速道路標識についての頁では、 `meta$e 要素を利用して,利用者が頁~内を~~検索するときに利用し得る,いくつかの~keywordを指定している: ◎ This page about typefaces on British motorways uses a meta element to specify some keywords that users might use to look for the page:

`meta-keywords-1^xCode
注記: 多くの検索engineは、これらの~keywordを考慮しない。 この特色機能は、歴史的に,結果として利用者の助けにならなくなるような,あてにならない, あるいは検索engineに誤解させるような~spamにすら利用されてきたので。 ◎ Many search engines do not consider such keywords, because this feature has historically been used unreliably and even misleadingly as a way to spam search engine results in a way that is not helpful for users.

作者が頁に適用可能として指定した~keywordの~listを得るときは、~UAは,次の手続きを走らせ~MUST: ◎ To obtain the list of keywords that the author has specified as applicable to the page, the user agent must run the following steps:

  1. %~keyword~list ~LET 空~list ◎ Let keywords be an empty list.
  2. 文書~内の ~EACH ( `meta$e 要素 %要素 ) に対し: ⇒ ~IF[ %要素 は `name$a 属性を有する ]~AND[ その値 ~EQ `keywords$v ]~AND[ %要素 は `content$a を有する ] ⇒ %~keyword~list に[ %要素 の `content^a 属性の値を`~commaで分割-$した結果 ]を連結する ◎ For each meta element with a name attribute and a content attribute and whose name attribute's value is keywords: ◎ Split the value of the element's content attribute on commas. ◎ Add the resulting tokens, if any, to keywords.
  3. %~keyword~list から重複するものを除去する ◎ Remove any duplicates from keywords.
  4. ~RET %~keyword~list ◎ Return keywords. This is the list of keywords that the author has specified as applicable to the page.

~UAは、この値があてになるかどうか疑わしいときは,この情報を利用するべきでない。 ◎ User agents should not use this information when there is insufficient confidence in the reliability of the value.

具体的には、内容~管理~systemにとっては,~site特有の検索engine用~indexを拡充するために~systemの中で頁の~keyword情報を利用することは、理に適うであろう。 が、この情報を利用する大規模な内容~集積者は,不適切な~keywordの利用を通して不当に~rankingを~~操作しようとする利用者を見出す~~可能性が高いであろう。 ◎ 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.

`referrer@v
値は、`~referrer施策$で~MUST。 それは、`文書$に対する既定の`~referrer施策$を定義する。 `REFERRERPOLICY$r ◎ The value must be a referrer policy, which defines the default referrer policy for the Document. [REFERRERPOLICY]

何らかの `meta$e 要素が[ `文書~内に挿入され$ / `文書から除去され$ ]たとき, または 既存の `meta$e 要素の[ `name$a / `content$a ]属性が変化したときは、~UAは次の~algoを走らせ~MUST: ◎ If any meta elements are inserted into the document or removed from the document, or existing meta elements have their name or content attributes changed, user agents must run the following algorithm:

  1. %候補~要素~list ~LET 次をすべて満たす `meta$e 要素からなる`木~順序$による~list: ◎ Let candidate elements be the list of all meta elements that meet the following criteria, in tree order:

    • `文書~木~内$にある ◎ The element is in a document tree
    • `name$a 属性を有する ~AND その値 ~EQ `referrer$v ◎ The element has a name attribute, whose value is referrer
    • `content$a 属性を有する ~AND その値 ~NEQ 空~文字列 ◎ The element has a content attribute, whose value is not the empty string
    • 文書の`~head要素$の子である ◎ The element is a child of the head element of the document
  2. ~FOR %候補~要素~list 内の ~EACH ( %要素 ) に対し: ◎ For each element in candidate elements:

    1. %値 ~LET %要素 の`content$a 属性の値を`~ASCII小文字~化$した結果 ◎ Let value be the value of element's content attribute, converted to ASCII lowercase.
    2. ~IF[ %値 は次の表の左列に挙げるいずれかである ] ⇒ %値 ~SET 同じ行の右列に与える値 ◎ If value is one of the values given in the first column of the following table, then set value to the value given in the second column:

      旧来の値◎Legacy value ~referrer施策◎Referrer policy
      `never^v `no-referrer$v
      `default^v `no-referrer-when-downgrade$v
      `always^v `unsafe-url$v
      `origin-when-crossorigin^v `origin-when-cross-origin$v

      注記: この段は、 古い~UA向けに~fallback値を配備できるようにする ためにある。 `REFERRERPOLICY$r ◎ ↓

    3. ~IF[ %値 は`~referrer施策$である ] ⇒ %要素 の`~node文書$ の`~referrer施策$doc ~SET %値 ] ◎ If value is a referrer policy, then set element's node document's referrer policy to policy. ◎ The fact that these steps are applied for each element enables deployment of fallback values for older user agents. [REFERRERPOLICY]

`theme-color@v
値は、~CSS `color$t 生成規則に合致する文字列で~MUST — これは、~UAが頁や周囲の~UIの表示を~custom化するときに利用すべきと示唆される色を定義する。 例えば~browserは、指定された色を,頁の~title~barに利用したり,~tab~barや~task切替器における強調~色に利用するかもしれない。 ◎ The value must be a string that matches the CSS <color> production, defining a suggested color that user agents should use to customize the display of the page or of the surrounding user interface. For example, a browser might color the page's title bar with the specified value, or use it as a color highlight in a tab bar or task switcher.
同じ文書~内の複数の `meta$e 要素が[ 値 `theme-color$v に設定された `name$a 属性 ]を有していては~MUST_NOT。 ◎ There must not be more than one meta element with its name attribute set to the value theme-color per document.

この標準~自身`すなわち,この和訳の原文^tnoteも、~theme色として “WHATWG green” を利用している: ◎ This standard itself uses "WHATWG green" as its theme color:

`meta-theme-color-1^xCode

頁の~theme色を得るときは、次の手続きを走らせ~MUST: ◎ To obtain a page's theme color, user agents must run the following steps:

  1. %候補~要素~list ~LET 次を満たす `meta$e 要素すべてからなる`木~順序$による~list: ◎ Let candidate elements be the list of all meta elements that meet the following criteria, in tree order:

    • `文書~木~内$にある ◎ The element is in a document tree
    • `name$a 属性を有する ~AND その値 ~EQ `theme-color$v ◎ The element has a name attribute, whose value is theme-color
    • `content$a 属性を有する ◎ The element has a content attribute
  2. ~FOR %候補~要素~list 内の ~EACH ( %要素 ) に対し: ◎ For each element in candidate elements:

    1. %値 ~LET %要素 の`content$a 属性の値から`前後の~ASCII空白~列を剥いだ$結果 ◎ Let value be the result of stripping leading and trailing ASCII whitespace from the value of element's content attribute.
    2. ~IF[ %値 を`~CSS色~値として構文解析-$できる ] ⇒ ~RET 構文解析して得られた色。 ◎ If value can be parsed as a CSS <color> value, return the parsed color.
  3. ~RET ε — 頁には~theme色はない。 ◎ If this step is reached, the page has no theme color.
`meta$e 要素が[ `文書~内に挿入され$ / `文書から除去され$ ]たとき, または 既存の `meta$e 要素の[ `name$a / `content$a ]属性が変化したときは、~UAは上の~algoを再度~走らせて,その結果を影響される~UIに適用し~MUST ◎ If any meta elements are inserted into the document or removed from the document, or existing meta elements have their name or content attributes changed, user agents must re-run the above algorithm and apply the result to any affected UI.
~UAは、~theme色を~UIに利用するときは、より相応しくなるように,実装~特有の仕方で調整してよい~MAY。 例えば、~UAが~theme色を背景に利用していて,その上に白い~textで表示することを意図する場合、必要十分な~contrastを確保するため,~UIのその部位には~theme色を暗くした色を利用するなど。 ◎ When using the theme color in UI, user agents may adjust it in implementation-specific ways to make it more suitable for the UI in question. For example, if a user agent intends to use the theme color as a background and display white text over it, it might use a darker variant of the theme color in that part of the UI, to ensure adequate contrast.

4.2.5.2. 他の~metadata名

誰もが、自前の `定義済みの~metadata名の集合に対する拡張@ を作成して利用できる。 そのような拡張を登録するための要件はない。 ◎ Anyone can create and use their own extensions to the predefined set of metadata names. There is no requirement to register such extensions.

しかしながら,次のいずれかに該当する場合、新たな~metadata名は作成されるべきでない: ◎ However, a new metadata name should not be created in any of the following cases:

  • [ 当の名前, または それに付随する `content$a 属性の値 ]は`~URL$である場合。 この事例では、`定義済みの~link型の集合に対する拡張$として登録することが奨励される(新たな~metadata名は作成せずに)。 ◎ If either the name is a URL, or the value of its accompanying content attribute is a URL; in those cases, registering it as an extension to the predefined set of link types is encouraged (rather than creating a new metadata name).
  • 当の名前には、~UAにおける何らかの処理~要件が期待される場合。 この事例では、標準化されるべきである。 ◎ If the name is for something expected to have processing requirements in user agents; in that case it ought to be standardized.

また、新たな~metadata名を作成して利用する前に, WHATWG Wiki MetaExtensions 頁 にあたることが奨励される — すでに利用~中にある~metadata名を選んでしまったり,それらの目的0と重複するのを避けるため, および 選んだ名前が 新たな標準化された名前と衝突するのを避けるため。 `WHATWGWIKI$r ◎ Also, before creating and using a new metadata name, consulting the WHATWG Wiki MetaExtensions page is encouraged — to avoid choosing a metadata name that's already in use, and to avoid duplicating the purpose of any metadata names that are already in use, and to avoid new standardized names clashing with your chosen name. [WHATWGWIKI]

誰もが,いつでも WHATWG Wiki MetaExtensions 頁を編集して,~metadata名を自由に追加できる。 新たな名前は、次の情報も伴わせて指定できる: ◎ Anyone is free to edit the WHATWG Wiki MetaExtensions page at any time to add a metadata name. New metadata names can be specified with the following information:

~keyword ( Keyword )
定義される実際の~metadata名。 定義-済みの他の名前と紛らわしいもの(例: 文字大小のみ相違するなど)は、避けるべきである。 ◎ The actual name being defined. The name should not be confusingly similar to any other defined name (e.g. differing only in case).
概略的な記述 ( Brief description )
~metadata名の意味についての,規範的でない短い記述 — 値に要求される形式も含め。 ◎ A short non-normative description of what the metadata name's meaning is, including the format the value is required to be in.
仕様 ( Specification )
~metadata名の意味論と要件についての詳細な記述への~link。 この~Wikiの別の頁や外部~頁への~linkにもなり得る。 ◎ A link to a more detailed description of the metadata name's semantics and requirements. It could be another page on the Wiki, or a link to an external page.
同義語 ( Synonyms )
処理~要件が正確に同じであるような,他の~metadata名からなる~list。 作者は、同義語による名前を定義して利用するべきでない — その意図は、~UAが旧来の内容を~supportできるようにするために限られる。 誰もが、実施に利用されていない同義語を除去して~MAY。 この仕方で登録されるのは、旧来の内容との互換性のため,同義語として処理される必要がある~metadata名に限られる。 ◎ A list of other names that have exactly the same processing requirements. Authors should not use the names defined to be synonyms, they are only intended to allow user agents to support legacy content. Anyone may remove synonyms that are not used in practice; only names that need to be processed as synonyms for compatibility with legacy content are to be registered in this way.
地位 ( Status )

次のいずれか: ◎ One of the following:

提案済み ( Proposed )
~metadata名は、まだ幅広く考査や賛同を受けていない。 誰かがそれを提案していて、それを利用しているか,近いうちに利用することになる。 ◎ The name has not received wide peer review and approval. Someone has proposed it and is, or soon will be, using it.
批准済み ( Ratified )
~metadata名は、幅広く考査と賛同を受けた。 ~metadata名を利用している頁を取扱う方法を — 不正な仕方で利用された場合も含め — 一義的に定義する仕様がある。 ◎ The name has received wide peer review and approval. It has a specification that unambiguously defines how to handle pages that use the name, including when they use it in incorrect ways.
使用中止 ( Discontinued )
この~metadata名は、幅広く考査を受けた上で,水準に満たないものと判明した。 既存の頁が この~metadata名を利用していても、新たな頁には避けるべきである。 作者が代わりに利用すべきものは、(もしあれば) “概略的な記述 ” と “仕様” の項に詳細が与えられることになる。 ◎ The metadata name has received wide peer review and it has been found wanting. Existing pages are using this metadata name, but new pages should avoid it. The "brief description" and "specification" entries will give details of what authors should use instead, if anything.
~metadata名が,既存の値とかぶると判明した場合、除去された上で,既存の値に対する同義語として~listされるべきである。 ◎ If a metadata name is found to be redundant with existing values, it should be removed and listed as a synonym for the existing value.
~metadata名が “提案済み” の地位で追加されてから, 1 ヶ月~以上 利用されない/指定されない ままにある場合、 WHATWG Wiki MetaExtensions から除去されて~MAY。 ◎ If a metadata name is added in the "proposed" state for a period of a month or more without being used or specified, then it may be removed from the WHATWG Wiki MetaExtensions page.
“提案済み” の地位で追加された~metadata名が,既存の値とかぶるものと判明した場合、除去された上で,既存の値に対する同義語として~listされるべきである。 “提案済み” の地位で追加された~metadata名が,有害と判明した場合、 “使用中止” の地位に変更されるべきである。 ◎ If a metadata name is added with the "proposed" status and found to be redundant with existing values, it should be removed and listed as a synonym for the existing value. If a metadata name is added with the "proposed" status and found to be harmful, then it should be changed to "discontinued" status.
誰もがいつでも地位を変更できるが、上の定義に則る限りにおいて,そうするべきである。 ◎ Anyone can change the status at any time, but should only do so in accordance with the definitions above.

4.2.5.3. ~pragma指令

`http-equiv@a 属性が指定されている `meta$e 要素は、~pragma指令になる。 ◎ When the http-equiv attribute is specified on a meta element, the element is a pragma directive.

`http-equiv$a 属性は、`列挙~属性$である。 次の表の二列目に,この属性~用に定義されている各種~keywordを挙げる。 ~keywordは、同じ行の一列目に与える状態に対応付けられる。 一部の~keywordは、三列目に注記されるように,不適合とされる。 ◎ The http-equiv attribute is an enumerated attribute. The following table lists the keywords defined for this attribute. The states given in the first cell of the rows with keywords give the states to which those keywords map. Some of the keywords are non-conforming, as noted in the last column.

状態 ~keyword 備考◎Notes
`内容~言語$st `content-language^v 不適合
`符号化方式~宣言$st `content-type^v
`既定の~style$st `default-style^v
`~refresh$st `refresh^v
`~cookie設定子$st `set-cookie^v 不適合
`~X-UA-Compatible$st `x-ua-compatible^v `無視される^tnote
`~CSP$st `Content-Security-Policy^v

`meta$e 要素が`文書~内に挿入され$たとき,要素が[ 上のいずれかの状態を表現するような `http-equiv$a 属性 ]を有する場合、~UAは,その状態に応じて,以下の~listに記述される適切な~algoを走らせ~MUST:

以下、この節においては:

  • `meta@V は、当の `meta$e 要素を表すとする。
  • `content@V は、 `meta$V が `content$a 属性を[ 有するならば その値 / 有さないならば ε ]とする。
◎ 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:
`内容~言語@st ( `http-equiv^a="`content-language^v"
注記: この特色機能は不適合である。 作者には、代わりに `lang$a 属性を利用することが奨励される。 ◎ This feature is non-conforming. Authors are encouraged to use the lang attribute instead.

この状態にある~pragmaは、 `~pragma集合の既定の言語@ を設定する。 この~pragmaが成功裡に処理されるまでは、`~pragma集合の既定の言語$はない: ◎ This pragma sets the pragma-set default language. Until such a pragma is successfully processed, there is no pragma-set default language.

  1. ~IF[ `content$V ~EQ ε ] ⇒ ~RET ◎ If the meta element has no content attribute, then abort these steps.
  2. ~IF[ `content$V は ❝, を包含する ] ⇒ ~RET ◎ If the element's content attribute contains a U+002C COMMA character (,) then abort these steps.
  3. %入力 ~LET `content$V ◎ Let input be the value of the element's content attribute.
  4. %位置 ~LET %入力 の最初の文字を指している`位置~変数$ ◎ Let position point at the first character of input.
  5. %入力 内の %位置 から`~ASCII空白を読飛ばす$ ◎ Skip ASCII whitespace within input given position.
  6. %候補 ~LET %入力 内の %位置 から `~ASCII空白$以外の`符号位置~並びを収集-$した結果 ◎ Collect a sequence of code points that are not ASCII whitespace from input given position. ◎ Let candidate be the string that resulted from the previous step.
  7. ~IF[ %候補 ~EQ 空~文字列 ] ⇒ ~RET ◎ If candidate is the empty string, abort these steps.
  8. `~pragma集合の既定の言語$ ~SET %候補 ◎ Set the pragma-set default language to candidate.

    注記: 値が,空白区切りの複数の~tokenからなる場合、最初の~tokenを除くすべての~tokenは無視される。 ◎ If the value consists of multiple space-separated tokens, tokens after the first are ignored.

注記: この~pragmaは、全くではないが, 同じ名前の ~HTTP `Content-Language$h ~headerと まるっきり異なる。 `HTTP$r ◎ This pragma is almost, but not quite, entirely unlike the HTTP `Content-Language` header of the same name. [HTTP]

`符号化方式~宣言@st ( `http-equiv^a="`content-type^v"
この状態は、 `charset$a 属性の代替~形であり,その属性を設定することに等しい。 すなわち、`符号化方式~宣言$を与える。 この状態に課される~UA要件すべては、この仕様の構文解析 節により取扱われる。 ◎ The Encoding declaration state is just an alternative form of setting the charset attribute: it is a character encoding declaration. This state's user agent requirements are all handled by the parsing section of the specification.

`http-equiv$a 属性が`符号化方式~宣言$st状態にある下では、 `content$V は,次の並びが成す文字列に`~ASCII大小無視$で合致し~MUST

  1. `text/html;^l
  2. 0 個~以上の`~ASCII空白$
  3. `charset=^l
  4. `符号化方式~宣言$の`符号化方式$の`~label$
◎ For meta elements with an http-equiv attribute in the Encoding declaration state, the content attribute must have a value that is an ASCII case-insensitive match for a string that consists of: the literal string "text/html;", optionally followed by any number of ASCII whitespace, followed by the literal string "charset=", followed by one of the labels of the character encoding of the character encoding declaration.
同じ文書~内に,[ `符号化方式~宣言$st状態にある `http-equiv$a 属性を有する `meta$e 要素 ], [ `charset$a 属性を有する `meta$e 要素 ]の両者があっては~MUST_NOT。 ◎ A document must not contain both a meta element with an http-equiv attribute in the Encoding declaration state and a meta element with the charset attribute present.
[ `符号化方式~宣言$st状態にある `http-equiv$a 属性を有する `meta$e 要素 ]は、`~HTML文書$には利用されても~MAYが,`~XML文書$においては 利用されては~MUST_NOT。 ◎ The Encoding declaration state may be used in HTML documents, but elements with an http-equiv attribute in that state must not be used in XML documents.
`既定の~style@st ( `http-equiv^a="`default-style^v"

この~pragmaは、既定の`~CSS~stylesheet集合~名$を設定する: ◎ This pragma sets the name of the default CSS style sheet set.

  1. ~IF[ `content$V ~IN { ε, 空~文字列 } ] ⇒ ~RET ◎ If the meta element has no content attribute, or if that attribute's value is the empty string, then abort these steps.
  2. `content$V を用いて,`選好ed~CSS~stylesheet集合~名を変更-$する `CSSOM$r ◎ Change the preferred CSS style sheet set name with the name being the value of the element's content attribute. [CSSOM]
`~refresh@st ( `http-equiv^a="`refresh^v"

この~pragmaは、時限~redirectとして動作する: ◎ This pragma acts as timed redirect.

  1. ~IF[ `~refresh$st 状態にある `http-equiv$a 属性を有する別の `meta$e 要素があって,すでに成功裡に処理されている(すなわち、それが文書~内に挿入されたとき,~UAは それを この~algoの段 `end^i に達するまで処理した) ] ⇒ ~RET ◎ 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 step labeled end), then return.
  2. ~IF[ `content$V ~IN { ε, 空~文字列 } ] ⇒ ~RET ◎ If the meta element has no content attribute, or if that attribute's value is the empty string, then return.
  3. %文書 ~LET `meta$V の`~node文書$ ◎ Let document be the meta element's node document.
  4. %入力 ~LET `content$V ◎ Let input be the value of the element's content attribute.
  5. %位置 ~LET %入力 の最初の`符号位置$を指している`位置~変数$ ◎ Let position point at the first code point of input.
  6. %入力 内の %位置 から`~ASCII空白を読飛ばす$ ◎ Skip ASCII whitespace within input given position.
  7. %秒数 ~LET 0 ◎ Let time be 0.
  8. %秒数~文字列 ~LET [ %入力 内の %位置 から `~ASCII数字$からなる`符号位置~並びを収集-$した結果 ] ◎ Collect a sequence of code points that are ASCII digits from input given position, and let the result be timeString.
  9. ~IF[ %秒数~文字列 ~EQ 空~文字列 ] ⇒ ~IF[ %位置↗ ~NEQ ❝. ] ⇒ ~RET ◎ If timeString is the empty string, then: ◎ • If the code point in input pointed to by position is not U+002E (.), then return.
  10. ~ELSE ⇒ %秒数 ~LET %秒数~文字列 を`非負~整数として構文解析-$した結果 ◎ Otherwise, set time to the result of parsing timeString using the rules for parsing non-negative integers.
  11. %入力 内の %位置 から { `~ASCII数字$, ❝. } からなる`符号位置~並びを収集-$する — 結果は無視する。 ◎ Collect a sequence of code points that are ASCII digits and U+002E FULL STOP characters (.) from input given position. Ignore any collected characters.
  12. %~url~record ~LET %文書 の`~URL$doc

    【 原文はここで[ %~url ~LET %文書 の~URLを直列化した結果 ]としているが、そうすると,後の処理で [ %~url~record が未定義になる場合が生じる / この %~url を構文解析し直す無駄が生じる ]。 】

    ◎ Let url be document's URL, serialized.
  13. ~IF[ %位置↗ ~EQ ε ] ⇒ ~GOTO `end^i ◎ If position is past the end of input, jump to the step labeled end.
  14. ~IF[ %位置↗ ~NIN { ❝;, ❝,, `~ASCII空白$ } ] ⇒ ~RET ◎ If the code point in input pointed to by position is not U+003B (;), U+002C (,), or ASCII whitespace, then return.
  15. %入力 内の %位置 から`~ASCII空白を読飛ばす$ ◎ Skip ASCII whitespace within input given position.
  16. ~IF[ %位置↗ ~IN { ❝;, ❝, } ] ⇒ %位置 ~INCBY 1 ◎ If the code point in input pointed to by position is U+003B (;) or U+002C (,), then advance position to the next code point.
  17. %入力 内の %位置 から`~ASCII空白を読飛ばす$ ◎ Skip ASCII whitespace within input given position.
  18. ~IF[ %位置 ↗ ~NEQ ε ]: ◎ If position is past the end of input, jump to the step labeled end.

    1. %~url ~LET %入力 内の %位置 以降の`符号位置$からなる部分文字列 ◎ Set url to the substring of input from the code point at position to the end of the string.
    2. ~IF[ %位置↗ ~NIN { ❝U, ❝u } ] ⇒ ~GOTO `引用符を飛ばす^i ◎ If the code point in input pointed to by position is U+0055 (U) or U+0075 (u), then advance position to the next code point. Otherwise, jump to the step labeled skip quotes.
    3. ~IF[ ( %位置 + 1 )↗ ~NIN { ❝R, ❝r } ] ⇒ ~GOTO `構文解析-^i ◎ If the code point in input pointed to by position is U+0052 (R) or U+0072 (r), then advance position to the next code point. Otherwise, jump to the step labeled parse.
    4. ~IF[ ( %位置 + 2 ) ↗ ~NIN { ❝L, ❝l } ] ⇒ ~GOTO `構文解析-^i ◎ If the code point in input pointed to by position is U+004C (L) or U+006C (l), then advance position to the next code point. Otherwise, jump to the step labeled parse.
    5. %位置 ~INCBY 3 ◎ ↑
    6. %入力 内の %位置 から`~ASCII空白を読飛ばす$ ◎ Skip ASCII whitespace within input given position.
    7. ~IF[ %位置↗ ~NEQ ❝= ] ⇒ ~GOTO `構文解析-^i ◎ If the code point in input pointed to by position is U+003D (=), then advance position to the next code point. Otherwise, jump to the step labeled parse.
    8. %位置 ~INCBY 1 ◎ ↑
    9. %入力 内の %位置 から`~ASCII空白を読飛ばす$ ◎ Skip ASCII whitespace within input given position.
    10. %~url ~SET %入力 内の %位置 以降の文字からなる部分文字列 ◎ ↓
    11. `引用符を飛ばす^i:
      ~IF[ %位置↗ ~IN { ❝', ❝" } ]:

      1. %引用符 ~LET %位置↗
      2. %位置 ~INCBY 1
      3. %~url ~SET %入力 内の %位置 から %引用符 以外の`符号位置~並びを収集-$した結果
      ◎ Skip quotes: If the code point in input pointed to by position is U+0027 (') or U+0022 ("), then let quote be that code point, and advance position to the next code point. Otherwise, let quote be the empty string. ◎ Set url to the substring of input from the code point at position to the end of the string. ◎ If quote is not the empty string, and there is a code point in url equal to quote, then truncate url at that code point, so that it and all subsequent code points are removed.
    12. `構文解析-^i:
      %~url~record ~LET %~url を %文書 に`相対的に構文解析-$した`結果の~URL~record$ ◎ Parse: Parse url relative to document.\
    13. ~IF[ %~url~record ~EQ ~error ] ⇒ ~RET ◎ If that fails, return. Otherwise, let urlRecord be the resulting URL record.
  19. `end^i:

    %B ~LET %文書 が`属する閲覧文脈$

    任意選択で、次の手続き (A) 〜 (D) のうち,いずれか一つを遂行する: ◎ End: Perform one or more of the following steps:

    • (A) : 手続き (B) を遂行しつつ,待機している間に並行して (C) も遂行する。 ◎ ↓
    • (B) :
      1. ~IF[ `閲覧文脈~sandbox化( 自動~特色機能 )~flag$ ~IN %文書 の`作動中の~sandbox用~flag集合$ ] ⇒ ~RET
      2. 次のうち,後に生じた方の時点から,ある秒数だけ経過するまで待機する:

        • %文書 が`完全に読込まれ$た
        • `meta$V がこの`文書~内に挿入され$た

        この段における秒数は、利用者/~UA による選好も織り込んで,調整された結果とする。

        注記: ここでは、 %文書 — すなわち、この手続きの初期~時における `meta$V 要素の`~node文書$ — を利用するのが重要になる。 この時点の~node文書は、来たる~refreshに備えて,すでに変化しているかもしれないので。

        【 %~url~record が %文書 自身の~URLの場合、同じ文書~資源の~refreshが無限に繰り返され得ることになる。 】

      3. ~IF[ 利用者は~redirectを取消した ] ⇒ ~RET
      4. ( `~source閲覧文脈$ %B, `置換え可能化~flag$ ~ON ) を与える下で, %B を %~url~record へ`~navigate$する
      ◎ After the refresh has come due (as defined below), if the user has not canceled the redirect and document's active sandboxing flag set does not have the sandboxed automatic features browsing context flag set, navigate document's browsing context to urlRecord, with replacement enabled, and with 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: ◎ At least time seconds have elapsed since document has completely loaded, adjusted to take into account user or user agent preferences. ◎ At least time seconds have elapsed since the meta element was inserted into the document document, adjusted to take into account user or user agent preferences. ◎ It is important to use document here, and not the meta element's node document, as that might have changed between the initial set of steps and the refresh coming due.
    • (C) : 利用者に~~許可を請う~UIを提供した上で,利用者から~~許可されたなら次を行う ⇒ ( `~source閲覧文脈$ %B ) を与える下で, %B を %~url~record に`~navigate$する ◎ Provide the user with an interface that, when selected, navigates a browsing context to urlRecord, with the Document's browsing context as the source browsing context.
    • (D) : 何もしない。 ◎ Do nothing.

    加えて,~UAは、利用者に その演算の一部または全部の側面を(他のものに加えて)伝えて~MAY — 例えば、~timerの状態, ~redirectの行先, 等々。 ◎ 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$a 属性が`~refresh$st状態にある下では、 `content$V は次のいずれかで~MUST: ◎ For meta elements with an http-equiv attribute in the Refresh state, the content attribute must have a value consisting either of:

  • (1) `妥当な非負~整数$ ◎ just a valid non-negative integer, or
  • (2) 次の並び:
    1. `妥当な非負~整数$
    2. 1 個の ❝;
    3. 1 個~以上の`~ASCII空白$
    4. 文字列 `URL^l に`~ASCII大小無視$で合致する文字列
    5. 1 個の ❝=
    6. `妥当な~URL文字列$であって,その先頭の文字 ~NIN { ❝', ❝" } なるもの
    ◎ a valid non-negative integer, followed by a U+003B SEMICOLON character (;), followed by one or more ASCII whitespace, followed by a substring that is an ASCII case-insensitive match for the string "URL", followed by a U+003D EQUALS SIGN character (=), followed by a valid URL string that does not start with a literal U+0027 APOSTROPHE (') or U+0022 QUOTATION MARK (") character.

上の整数 (1), (2) は、現在の頁が[ (1) の場合は 再読込みされるまで / (2) の場合は 並びの最後に与えられる`~URL$にある頁に置換されるまで ]の秒~数を表現する。 ◎ In the former case, the integer represents a number of seconds before the page is to be reloaded; in the latter case the integer represents a number of seconds before the page is to be replaced by the page at the given URL.

毎 5 分ごとに 頁を~serverから自動的に再読込みさせる, `head$e 要素~内の~markup例(ニュース配信サイトの第一面など): ◎ A news organization's front page could include the following markup in the page's head element, to ensure that the page automatically reloads from the server every five minutes:

`meta-refresh-1^xCode

別の頁に自動的に~refreshさせる~markup例(スライドショー用に,一連の頁を順々に示すときなど): ◎ A sequence of pages could be used as an automated slide show by making each page refresh to the next page in the sequence, using markup such as the following:

`meta-refresh-2^xCode
`~cookie設定子@st ( `http-equiv^a="`set-cookie^v"
この特色機能は不適合である。 代わりに、本物の~HTTP~header†が利用されるべきである。 ◎ This pragma sets an HTTP cookie. [COOKIES] ◎ It is non-conforming. Real HTTP headers should be used instead.

この~pragmaは、~HTTP~cookie `COOKIES$r を設定する: ◎ ↑

  1. ~IF[ `content$V ~IN { ε, 空~文字列 } ] ⇒ ~RET ◎ If the meta element has no content attribute, or if that attribute's value is the empty string, then abort these steps.
  2. “非~HTTP” ~APIを介して,文書の`~URL$docから[ `content$V を`~UTF-8符号化-$した結果 ]を値とする `set-cookie-string^P を受信した かのように動作する。 `COOKIES$r `ENCODING$r ◎ Act as if receiving a set-cookie-string for the document's URL via a "non-HTTP" API, consisting of the value of the element's content attribute encoded as UTF-8. [COOKIES] [ENCODING]
【† `Set-Cookie$h ~header 】【 非~HTTP~API`set-cookie-string^P受信した動作する
`~X-UA-Compatible@st ( `http-equiv^a="`x-ua-compatible^v"
この~pragmaは、実施においては, Internet Explorer が より仕様に近くふるまうよう促すものである。 ◎ In practice, this pragma encourages Internet Explorer to more closely follow the specifications.
`http-equiv$a 属性が`~X-UA-Compatible$st状態にある下では、 `content$V は,文字列 `IE=edge^l に`~ASCII大小無視$で合致し~MUST。 ◎ For meta elements with an http-equiv attribute in the X-UA-Compatible state, the content attribute must have a value that is an ASCII case-insensitive match for the string "IE=edge".
~UAには、この~pragmaを無視することが要求される。 ◎ User agents are required to ignore this pragma.
`~CSP@st ( `http-equiv^a="`content-security-policy^v"

この~pragmaは、`文書$上の`~CSP$を`施行-$する: `CSP$r ◎ This pragma enforces a Content Security Policy on a Document. [CSP]

  1. ~IF[ `meta$V は `head$e 要素の子でない ] ⇒ ~RET ◎ If the meta element is not a child of a head element, abort these steps.
  2. ~IF[ `content$V ~IN { ε, 空~文字列 } ] ⇒ ~RET ◎ If the meta element has no content attribute, or if that attribute's value is the empty string, then abort these steps.
  3. %施策 ~LET `content$V を`直列形の~CSP~listとして構文解析-$した結果 ◎ Let policy be the result of executing Content Security Policy's parse a serialized Content Security Policy algorithm on the meta element's content attribute's value.
  4. %施策 からすべての[ `report-uri$dir, `frame-ancestors$dir, `sandbox$dir ]`指令$を除去する ◎ Remove all occurrences of the report-uri, frame-ancestors, and sandbox directives from policy.
  5. %施策 を`施行-$する ◎ Enforce the policy policy.

`http-equiv$a 属性が`~CSP$st状態にある下では、 `content$V は、`妥当な~CSP$で~MUST — 加えて,[ `report-uri$dir / `frame-ancestors$dir / `sandbox$dir ]`指令$を包含しては~MUST_NOT。 この属性に与える`~CSP$は、現在の文書に対し`施行-$されることになる。 `CSP$r ◎ For meta elements with an http-equiv attribute in the Content security policy state, the content attribute must have a value consisting of a valid Content Security Policy, but must not contain any report-uri, frame-ancestors, or sandbox directives. The Content Security Policy given in the content attribute will be enforced upon the current document. [CSP]

`meta$e 要素による施策を利用して,[ ~inline~JSの実行を防止する / すべての~plugin内容を阻止する ]ことにより、~XSS攻撃の~riskを軽減する例: ◎ A page might choose to mitigate the risk of cross-site scripting attacks by preventing the execution of inline JavaScript, as well as blocking all plugin content, using a policy such as the following:

`meta-csp-1^xCode

同じ文書~内の複数の `meta$e 要素が,互いに同じ状態にあるような `http-equiv$a 属性を有していては~MUST_NOT。 ◎ There must not be more than one meta element with any particular state in the document at a time.

4.2.5.4. 他の~pragma指令

`定義済みの~pragma指令の集合に対する拡張@ は、一定の条件~下で WHATWG Wiki PragmaExtensions 頁 に登録されて~MAY。 `WHATWGWIKI$r ◎ Extensions to the predefined set of pragma directives may, under certain conditions, be registered in the WHATWG Wiki PragmaExtensions page. [WHATWGWIKI]

そのような拡張は、 Permanent Message Header Field Registry `IANAPERMHEADERS$r に登録された ある~HTTP~headerに一致する名前を利用し~MUST。 その挙動は~HTTP~headerに記述されているものに一致し~MUST。 ◎ Such extensions must use a name that is identical to an HTTP header registered in the Permanent Message Header Field Registry, and must have behavior identical to that described for the HTTP header. [IANAPERMHEADERS]

[ ~metadataを記述する~headerに対応する / 特定の~UA処理を要求しない ]ような~pragma指令は、登録されては~MUST_NOT。 代わりに, ~metadata名 を利用すること。 ~HTTP処理~model(例: ~caching)に影響する~headerに対応する~pragma指令も、登録されては~MUST_NOT — そうすると,~HTMLを実装する~UAと他の~UAとの間で~HTTP~levelの挙動が異なることになるので。 ◎ Pragma directives corresponding to headers describing metadata, or not requiring specific user agent processing, must not be registered; instead, use metadata names. Pragma directives corresponding to headers that affect the HTTP processing model (e.g. caching) must not be registered, as they would result in HTTP-level behavior being different for user agents that implement HTML than for user agents that do not.

誰もがいつでも WHATWG Wiki PragmaExtensions 頁を自由に編集して、以上の条件を満たすような~pragma指令を追加できる。 そのような登録は、次の情報を指定し~MUST: ◎ Anyone is free to edit the WHATWG Wiki PragmaExtensions page at any time to add a pragma directive satisfying these conditions. Such registrations must specify the following information:

~keyword ( Keyword )
定義されている実際の名前。 この名前は、すでに登録されている~HTTP名に合致し,その要件も~HTTP名のそれと同じで~MUST。 ◎ The actual name being defined. The name must match a previously-registered HTTP name with the same requirements.
概略的な記述 ( Brief description )
この~pragma指令の目的0についての,規範的でない短い記述。 ◎ A short non-normative description of the purpose of the pragma directive.
仕様 ( Specification )
対応する~HTTP~headerを定義している仕様を指す~link。 ◎ A link to the specification defining the corresponding HTTP header.

適合性~検査器は、値が許容されるかどうか確立するために WHATWG Wiki PragmaExtensions 頁に与えられる情報を利用し~MUST: この仕様に定義されている/この~Wiki頁に~listされている 値は受容し~MUST。 他の値は、妥当でないものとして却下し~MUST。 適合性~検査器は、この情報を~cacheして~MAY(例: 処理能~上の理由, あるいは ~network接続の不確実性を避けるためとして)。 ◎ 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).

4.2.5.5. 文書の符号化方式の指定法

`符号化方式~宣言@ は、[ 文書を格納する/伝送するために利用される`符号化方式$ ]を指定する仕組みである。 ◎ A character encoding declaration is a mechanism by which the character encoding used to store or transmit a document is specified.

`符号化方式~宣言$には、次の制約が適用される — 以下における“~file” とは、当の文書を符号化して格納している資源を意味する: ◎ The following restrictions apply to character encoding declarations:

  • 宣言が与える符号化方式~名は、[ ~fileに直列化するために利用された`符号化方式$ ]に対応するいずれかの`~label$に`~ASCII大小無視$で合致し~MUST。 `ENCODING$r ◎ The character encoding name given must be an ASCII case-insensitive match for one of the labels of the character encoding used to serialize the file. [ENCODING]
  • 符号化方式~宣言は、いかなる種類の`文字~参照$や文字~escapeも利用することなく,~file内に直列化され~MUST。 ◎ The character encoding declaration must be serialized without the use of character references or character escapes of any kind.
  • 符号化方式~宣言を包含している要素の全体が、~fileの先頭から 1024 ~byteまでの中に直列化され~MUST。 ◎ The element containing the character encoding declaration must be serialized completely within the first 1024 bytes of the document.

加えて、 `meta$e 要素に課される制約に因り,文書~内の `meta$e による符号化方式~宣言は 1 個までに限られる。 ◎ In addition, due to a number of restrictions on meta elements, there can only be one meta-based character encoding declaration per document.

`~HTML文書$が次をいずれも満たす場合…:

  • その~fileは,~BOMから開始されていない
  • その`符号化方式$は`~Content-Type~metadata$により明示的に与えられていない
  • `~iframe-srcdoc文書$でない

その文書には、[ `charset$a 属性, または `符号化方式~宣言$st 状態にある `http-equiv$a 属性 ]を有する `meta$e 要素を利用して,`~ASCII互換$な符号化方式が指定され~MUST。

◎ If an HTML document does not start with a BOM, and its encoding is not explicitly given by Content-Type metadata, and the document is not an iframe srcdoc document, then the character encoding used must be an ASCII-compatible encoding, and the encoding must be specified using a meta element with a charset attribute or a meta element with an http-equiv attribute in the Encoding declaration state.

注記: すべての文字が~ASCII範囲に符号化されている場合でも,符号化方式~宣言は要求される(`~Content-Type~metadata$内に, または明示的に~file内に `すなわち ~BOMとして^tnote )。 符号化方式は、利用者が~formに手入力した非~ASCII文字や ~scriptにより生成される~URL, 等々 を処理するために必要になるので。 ◎ A character encoding declaration is required (either in the Content-Type metadata or explicitly in the file) even when all characters are in the ASCII range, because a character encoding is needed to process non-ASCII characters entered by the user in forms, in URLs generated by scripts, and so forth.

`~iframe-srcdoc文書$である文書には、`符号化方式~宣言$があっては~MUST_NOT(この事例では、文書はその `iframe$e を包含した文書の一部なので,その~sourceはすでに復号されている)。 ◎ If the document is an iframe srcdoc document, the document must not have a character encoding declaration. (In this case, the source is already decoded, since it is part of the document that contained the iframe.)

`~HTML文書$においては、[ `charset$a 属性, または `符号化方式~宣言$st 状態にある `http-equiv$a 属性 ]を有する `meta$e 要素がある場合,文書に利用される符号化方式は`~ASCII互換$で~MUST。 ◎ If an HTML document contains a meta element with a charset attribute or a meta element with an http-equiv attribute in the Encoding declaration state, then the character encoding used must be an ASCII-compatible encoding.

作者は、`~UTF-8$を利用するべきである。 適合性~検査器は、旧来の符号化方式が利用されている場合には,作者に助言して~MAY。 `ENCODING$r ◎ Authors should use UTF-8. Conformance checkers may advise authors against using legacy encodings. [ENCODING]

著作~toolは、新たに作成される文書に対しては,既定で`~UTF-8$を利用するべきである。 `ENCODING$r ◎ Authoring tools should default to using UTF-8 for newly-created documents. [ENCODING]

作者は、 WHATWG Encoding 標準に定義されていない符号化方式を利用しては~MUST_NOT。 加えて, `ISO-2022-JP$も利用するべきでない。 `ENCODING$r ◎ Authors must not use encodings that are not defined in the WHATWG Encoding standard. Additionally, authors should not use ISO-2022-JP. [ENCODING]

注記: WHATWG Encoding 標準に定義されていない一部の符号化方式は, 範囲 { U+0020 〜 U+007E } に入らない一部の文字を符号化するときに 範囲 { 0x20 〜 0x7E } に入る~byteを利用するため、~UAは,素の~text内容を — それが悪意のないものであっても — ~HTML~tagや~JSとして解釈し得る余地があり、その結果,保安~上の脆弱性がもたらされ得る。 ◎ Some encodings that are not defined in the WHATWG Encoding standard use bytes in the range 0x20 to 0x7E, inclusive, to encode characters other than the corresponding characters in the range U+0020 to U+007E, inclusive, and represent a potential security vulnerability: a user agent might end up interpreting supposedly benign plain text content as HTML tags and JavaScript.

注記: ~UTF-8でない符号化方式を利用した場合、~form提出や~URLの符号化-時に,予期されない結果をもたらし得る — それらは、既定で文書の`符号化方式$docを利用するので。 ◎ Using non-UTF-8 encodings can have unexpected results on form submission and URL encodings, which use the document's character encoding by default.

~XMLにおいては、必要とされるなら,~XML宣言を利用して 符号化方式の情報を~inlineに与えるべきである。 ◎ In XML, the XML declaration should be used for inline character encoding information, if necessary.

~HTMLにおいては、作者は,次の~markupを文書の先頭近く(の `head$e 要素~内)に含ませれば、符号化方式を`~UTF-8$に宣言できる: ◎ In HTML, to declare that the character encoding is UTF-8, the author could include the following markup near the top of the document (in the head element):

`meta-charset-1^xCode

~XMLにおいては、他の~markupに先立つ冒頭に,~XML宣言を利用することになる: ◎ In XML, the XML declaration would be used instead, at the very top of the markup:

`xml-encoding-1^xCode

4.2.6. `style^e 要素

`分類$
`~metadata内容$。 ◎ Metadata content.
`この要素を利用できる文脈$
`~metadata内容$が期待される所。 ◎ Where metadata content is expected.
`head$e 要素の子である `noscript$e 要素~内。 ◎ In a noscript element that is a child of a head element.
`内容~model$
`type$a 属性の値に依存するが、 下~注釈文に記述される要件に合致し~MUST。 ◎ Depends on the value of the type attribute, but must match requirements described in prose below.
`text/html における~tag省略$
両~tagとも省略不可。 ◎ Neither tag is omissible.
`内容~属性$
`大域~属性$ ◎ Global attributes
`media$a — 適用可能な媒体を与える。 ◎ media — Applicable media
`nonce$a — `CSP$r による検査に利用される暗号用nonceを与える。 ◎ nonce — Cryptographic nonce used in Content Security Policy checks [CSP]
`type$a — 埋込みの資源の型を与える。 ◎ type — Type of embedded resource
この要素~上の `~titleS$a 属性には 特別な意味論 もあり,`~CSS~stylesheet集合~名$を与える。 ◎ Also, the title attribute has special semantics on this element: CSS style sheet set name.
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLStyleElement@I : `HTMLElement$I {
  [`CEReactions$] attribute DOMString `media$m;
  [`CEReactions$] attribute DOMString `nonce$m;
  [`CEReactions$] attribute DOMString `type$m;
};
`HTMLStyleElement$I implements `LinkStyle$I;

`style$e 要素により、作者は,~style情報を文書~内に埋込むことが可能になる。 この要素は、~styling処理~modelへの入力の一種であり,利用者向けの内容は`表現-$しない。 ◎ The style element allows authors to embed style information in their documents. The style element is one of several inputs to the styling processing model. The element does not represent content for the user.

`type@a 属性は、~styling言語を与える。 属性に指定する値は、`妥当な~MIME型$で~MUST — それが、~styling言語を指名する。 `charset^P ~parameterは、指定されては~MUST_NOT。 属性が不在のときの既定の値は、 `text/css^l とする。 `RFC2318$r ◎ The type attribute gives the styling language. If the attribute is present, its value must be a valid MIME type that designates a styling language. The charset parameter must not be specified. The default value for the type attribute, which is used if the attribute is absent, is "text/css". [RFC2318]

~UAは、言語を~supportするか決定するために型を検分する際に,未知の~MIME~parameterを無視しては~MUST_NOT — 未知の~parameterを伴う型は、未supportと見做すことが要求される。 ここでの`~MIME型$を比較する目的0においては、 `charset^c ~parameterは,未知の~parameterとして扱われ~MUST。 ◎ 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@a 属性は、~styleをどの媒体に適用するかを述べる。 この属性に指定する値は、`妥当な媒体~query~list$で~MUST。 ~UAは、[ `media$a 属性の値が`環境に合致する$, かつ 関連する他の条件にも該当する ]ならば,~styleを適用し~MUST。 他の場合,適用しては~MUST_NOT。 ◎ The media attribute says which media the styles apply to. The value must be a valid media query list. 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.

注記: ~styleの適用範囲は、例えば ~CSS内の `media^at ~blockの利用により,更に制限され得る。 この仕様は、そのような更なる制約や要件は上書きしない。 ◎ 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$a 属性が省略された場合の既定は、値 `all^l であり,~styleはすべての媒体に既定で適用されることを意味する。 ◎ The default, if the media attribute is omitted, is "all", meaning that by default styles apply to all media.

`nonce@a 属性は、暗号用nonce ( “number used once” )を表現し, `CSP$r において,[ 要素が指定する~styleを文書に適用するかどうか ]を決定するときに利用され得る。 この属性の値は~textである。 ◎ The nonce attribute represents a cryptographic nonce ("number used once") which can be used by Content Security Policy to determine whether or not the style specified by an element will be applied to the document. The value is text. [CSP]

`style$e 要素~上の `~titleS@a 属性は、`~CSS~stylesheet集合$ `CSSOM$r を定義する†。 要素が `~titleS$a 属性を有さない場合,その~titleもない††。 `style$e 要素には、先祖の `title$a 属性は適用されない。 また,要素が`文書~木~内$にない場合、その `~titleS$a 属性は無視される。 ◎ The title attribute on style elements defines CSS style sheet sets. If the style element has no title attribute, then it has no title; the title attribute of ancestors does not apply to the style element. If the style element is not in a document tree, then the title attribute is ignored. [CSSOM]

【† すなわち、要素が表現する~stylesheetの`~CSS~stylesheet集合~名$を与える。 この記述は、要素に指定された~styling言語が~CSSであることを前提にしている。 】【†† ~styling言語が~CSSならば、 “~titleがない” とは[ ~stylesheetの`~title$ss ~EQ 空~文字列 ]を意味する。 】

注記: `link$e 要素の `title$aL 属性と同様、 `~titleS$a 属性を有さない `style$e 要素は、親の `title$a 属性を継承せず,その~style~blockは単に~titleを持たなくなる — この `~titleS$a 属性は、その点で,他のほとんどの要素の大域~属性である `title$a 属性から相違する。 ◎ The title attribute on style elements, like the title attribute on link elements, differs from the global title attribute in that a style block without a title does not inherit the title of the parent element: it merely has no title.

`style$e 要素~上の `textContent$m ~IDL属性は、次の~ABNFによる `style^P 生成規則に合致し~MUST。 この~ABNFの文字~集合は、~Unicodeである。 `ABNF$r ◎ The textContent of a style element must match the style production in the following ABNF, the character set for which is Unicode. [ABNF]

style         = no-c-start *( c-start no-c-end c-end no-c-start )
no-c-start    = < c-start に合致する部分文字列は包含しない,任意の文字列 >
c-start       = "<!--"
no-c-end      = < c-end に合致する部分文字列は包含しない,任意の文字列 >
c-end         = "-->"

`style$e 要素 %要素 に対し,次のいずれかが生じたときは、~UAは, %要素 の`~style~data$を渡して, %要素 の`~style~blockを更新する~algo$を走らせ~MUST: ◎ The user agent must run the update a style block algorithm that applies for the style sheet language specified by the style element's type attribute, passing it the element's style data, whenever one of the following conditions occur:

  • %要素 は、ある`~stack^iから~popされたとき。

    `~stack^iとは、次項のそれも含め,[ `~HTML構文解析器$ / `~XML構文解析器$ ]の`~open要素~stack$を表すとする。

    ◎ The element is popped off the stack of open elements of an HTML parser or XML parser.
  • %要素 は どの`~stack^i上にもないときに、次のいずれかが生じたとき:

    • `接続され$た
    • `切断され$た
    • %要素 のいずれかの子~nodeが~scriptにより改変された
    ◎ The element is not on the stack of open elements of an HTML parser or XML parser, and it becomes connected or disconnected. ◎ The element is not on the stack of open elements of an HTML parser or XML parser, and one of its child nodes is modified by a script.

`style$e 要素の `~style~data@, および `~style~blockを更新する~algo@ は、要素の `type$a 属性により指定される~styling言語ごとに,個別に定義される。 ◎ ↑↑

`style$e 要素の`~style~data$は:

  • ~XMLに基づく~styling言語に対しては、要素のすべての子~nodeからなる。
  • 前項に該当しない,純粋に~textからなる~styling言語に対しては、要素の`子~text内容$になる。
◎ For styling languages that consist of pure text (as opposed to XML), a style element's style data is the child text content of the style element. For XML-based styling languages, the style data consists of all the child nodes of the style element.

`~style~blockを更新する~algo$は、~CSS( `text/css$c )に対しては,次に従うとする: ◎ The update a style block algorithm for CSS (text/css) is as follows:

  1. %要素 ~LET 当の `style$e 要素 ◎ Let element be the style element.
  2. ~IF[ %要素 には`~CSS~stylesheetが結付けられ$ている ] ⇒ 当の`~CSS~stylesheetを除去-$する ◎ If element has an associated CSS style sheet, remove the CSS style sheet in question.
  3. ~IF[ %要素 の`根$は`~shadow根$でも`文書$でもない ] ⇒ ~RET ◎ If element's root is neither a shadow root nor a document, then abort these steps.
  4. ~IF[ `要素における~inline型の挙動は~CSPにより阻止されるべきか?$ ( %要素, `style^l, %要素 の`~style~data$ ) の結果 ~EQ `阻止ed^i `CSP$r ] ⇒ ~RET ◎ If the Should element's inline behavior be blocked by Content Security Policy? algorithm returns "Blocked" when executed upon the style element, "style", and the style element's style data, then abort these steps. [CSP]
  5. 次の~propを伴うように,`~CSS~stylesheetを作成-$する: ◎ Create a CSS style sheet with the following properties:

    `種別$ss
    `text/css^l
    `所有者~node$ss
    %要素
    `媒体$ss

    %要素 の `media$a 属性 ◎ The media attribute of element.

    注記: これは、属性の現在の値の複製ではなく,(場合によってはこの時点では不在の)属性への参照-である。 CSSOM 仕様が,属性が動的に[ 設定- / 変更- / 除去- ]されたときに何が起こるかを定義する。 ◎ This is a reference to the (possibly absent at this time) attribute, rather than a copy of the attribute's current value. The CSSOM specification defines what happens when the attribute is dynamically set, changed, or removed.
    `~title$ss
    %要素 は`文書~木~内$に[ あるならば %要素 の `~titleS$a 属性 / ないならば 空~文字列 ] ◎ The title attribute of element, if element is in a document tree, or the empty string otherwise.
    注記: これも属性への参照-である。 ◎ Again, this is a reference to the attribute.
    `代替-~flag$ss
    ~OFF ◎ Unset.
    `生成元clean~flag$ss
    ~ON ◎ Set.
    `所在$ss
    `親~CSS~stylesheet$ss
    `所有者~CSS規則$ss
    ~NULL
    `不能化~flag$ss
    その既定の値 `すなわち,~OFF^tnote ◎ Left at its default value.
    `~CSS規則~list$ss
    初期化されないまま。 `空~list?^tnote ◎ Left uninitialized.

この仕様は、他の~styling言語に対しては,`~style~blockを更新する~algo$を定義しない。 ◎ This specification does not define any other styling language's update a style block algorithm.

~UAは、次のいずれかが生じた時点で, `style$e 要素に向けて,そこに併記される名前の`~eventを発火-$する`~taskを待入する$ことが要求される:

  • 要素による~stylesheet — `必須の下位資源$がある場合は、それらもすべて含めて — が失敗することなく読込まれた後,それを構文解析し,処理し終えた時点で: 名前 `load$et の~event。
  • 前項に該当し得ないことが判明した時点で: 名前 `error$et の~event。

この要件の目的0における失敗とは、~network~errorによる それに限るとする(例: ~DNS~error / ~HTTP 404 応答 / 接続が早々に閉じられた / ~Content-Typeは未supportである)。 ~stylesheetやその下位資源を処理する際の非~network~error(例: ~CSS構文解析-時/~PNG復号-時の~errorなど)は、失敗とはされない。

◎ 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 an 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 an 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.

これらの`~task$の`~task源$は、`~DOM操作~task源$とする。 ◎ The task source for these tasks is the DOM manipulation task source.

`style$e 要素に対しては、~stylesheetに`必須の下位資源$があれば,それを得るすべての試みが完了するまで、要素の`~node文書$に対する~load~eventを`遅延-$し~MUST。 ◎ The element must delay the load event of the element's node document until all the attempts to obtain the style sheet's critical subresources, if any, are complete.

注記: この仕様は,~style~systemを指定しないが、ほとんどの~Web~browserは,~CSSを~supportすることが予期される。 `CSS$r ◎ This specification does not specify a style system, but CSS is expected to be supported by most Web browsers. [CSS]

`media@m
`nonce@m
`type@m
いずれも,対応する同じ名前の内容~属性を`反映-$し~MUST。 ◎ The media, nonce, and type IDL attributes must reflect the respective content attributes of the same name.

この要素も `LinkStyle$I ~interface `CSSOM$r を実装する。 ◎ The LinkStyle interface is also implemented by this element. [CSSOM]

適切な要素を利用すれば、文書に~styleをあてがい直すことも容易になる。 次の文書では、他の部分は既定の~styleに保ちながら, `em^e で強勢された~textには,~italicでなくした上で明るい赤にする~styleがあてがわれている。 ◎ The following document has its stress emphasis styled as bright red text rather than italics text, while leaving titles of works and Latin words in their default italics. It shows how using appropriate elements enables easier restyling of documents.

`style-1^xCode

4.2.7.~stylingと~scriptingとの相互作用

~stylesheetは,[ `link$e 要素 / `style$e 要素 / `~xml-stylesheet$c 処理命令 / ~HTTP `Link$h ~header ]その他の何らかの仕組みにより追加され得るが、いずれにせよ, `~stylesheet準備済み~flag@ — 初期~時は ~OFF — を有する。 ◎ Style sheets, whether added by a link element, a style element, an <?xml-stylesheet?> PI, an HTTP `Link` header, or some other mechanism, have a style sheet ready flag, which is initially unset.

~stylesheet %S の`~stylesheet準備済み~flag$は、 %S を適用する用意が整った時点で, ~ONにされ~MUST。 %S の~style規則は、次に与える時点から~scriptに可用にされ~MUST:

  • %S が他の資源を参照してない場合、`即時に$。 (例: %S は `style$e 要素による埋め込みの~stylesheetであって `import^at 規則を含んでいないなど。)
  • 他の場合、`~event-loop$が その`描画を更新する$ 段に達して以降。
◎ 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 immediately 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.

ある[ `~HTML構文解析器$ / `~XML構文解析器$ ] %構文解析器 の`文書$ %文書 の文脈~下にある~stylesheet %S は、所与の時点で,次をすべて満たしているならば `~scriptを阻んで@ いるとされる: ◎ 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\

  • %S を供している要素 %要素 は、 %構文解析器 により作成された ◎ the element was created by that Document's parser, and\
  • %要素 は、[ `style$e 要素である ]~OR[ `link$e 要素であって,その作成-時には ~styling~modelに供与する外部~資源~linkであった ] ◎ 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\
  • %構文解析器 が %要素 を作成した時点で、 %S は可能化された ◎ the element's style sheet was enabled when the element was created by the parser, and\
  • %要素 の`~stylesheet準備済み~flag$ ~EQ ~OFF ◎ the element's style sheet ready flag is not yet set, and,\
  • `~event-loop$の 最初の段 に最後に達した時点で[ %要素 の`根$ ~EQ %文書 ]であった ◎ the last time the event loop reached step 1, the element's root was that Document, and\
  • ~UAは %S をまだ~give-upしていない。 ◎ the user agent hasn't given up on that particular style sheet yet.\

【 “~give-up” とは、下の注記から,~stylesheetの処理を放棄するのではなく、後回しにすることを意味するようだ。 】

~UAは、~stylesheetをいつでも~give-upして~MAY。 ◎ A user agent may give up on a style sheet at any time.

注記: ~stylesheetの読込-を終える前に~give-upすることは、それが最終的に読込まれるとするなら,~scriptが不正な情報で演算する結果になることを意味する。 例えば、その~stylesheetは,ある要素の色を緑に設定するとする。 結果の~styleを検診する~scriptは,~stylesheetが読込まれる前に実行され,その要素は黒(あるいは何か既定の色)であると見出すことになる結果、道を誤るかもしれない(頁の他所に用いる色を緑でなく黒にしてしまうなど)。 実装者は、~scriptが不正な情報を利用することと,低速な~network要請が終わるまで何もしないことによる処理能への影響0との兼ね合いを測る必要がある。 ◎ 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.

次のいずれかが満たされる場合、`文書$ %文書 には, `~scriptを阻んでいる~stylesheetはある@ とされる:

  • ある~stylesheetが %文書 の文脈~下にあって,`~scriptを阻んで$いる。
  • %文書 が`属する閲覧文脈$ %B ~NEQ ε ~AND %B の`親~閲覧文脈$ %親 ~NEQ ε ~AND %親 にて`作動中の文書$には,`~scriptを阻んでいる~stylesheetはある$
◎ 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 has 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.

`~scriptを阻んでいる~stylesheetはない@ は、 `~scriptを阻んでいる~stylesheetはある$ の否定である。 ◎ 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.