4.6. ~link
【この訳に特有な表記規約】
◎表記記号`~a_area@ 要素とは、 `a$e, `area$e 両~要素を含む総称である。
`補助でない閲覧~文脈@ とは、 `閲覧~文脈$のうち[ その`補助か$bc ~EQ ~F ]なるものを指す。
4.6.1. 序論
~linkとは、[ `~a_area$ / `form$e / `link$e ]要素により作成される概念的な構成子であり, 現在の`文書$と別の資源との間の接続を`表現-$する。 ~HTMLにおける~linkには、 次に挙げる 3 種類がある: ◎ Links are a conceptual construct, created by a, area, form, and link elements, that represent a connection between two resources, one of which is the current Document. There are three kinds of links in HTML:
- `外部~資源~link@ ◎ Links to external resources
- 現在の文書を増補するために利用される資源への~linkであり、 一般に,~UAにより自動的に処理される。 すべての`外部~資源~link$には、 `~link先の資源を~fetchして処理する$ ~algoがあり,資源がどう得されるかを述べる。 ◎ These are links to resources that are to be used to augment the current document, generally automatically processed by the user agent. All external resource links have a fetch and process the linked resource algorithm which describes how the resource is obtained.
- `~hyperlink@ ◎ Hyperlinks
- 他の資源への~linkであり、 一般に,利用者がその資源へ`~navigate$させれるようにする — 例えば,その資源を[ ~browser内で訪問する / ~downloadする ]など — ために,~UAにより公開される。 ◎ These are links to other resources that are generally exposed to the user by the user agent so that the user can cause the user agent to navigate to those resources, e.g. to visit them in a browser or download them.
- `内部~資源~link@
- 現在の文書の中の資源への~linkであり, そのような資源に特別な[ 意味/挙動 ]を与えるために利用される。 ◎ These are links to resources within the current document, used to give those resources special meaning or behavior.
`href$aL 属性を有する[ `link$e / `~a_area$ ]要素に対しては: ◎ For link elements with an href attribute\
- 要素が `rel$aL 属性も有するならば、 その値に含まれる各~keyword用に — `§ ~HTML~link型$に与える各~keywordの定義に従って — ~linkを作成するモノトスル。 ◎ and a rel attribute, links must be created for the keywords of the rel attribute, as defined for those keywords in the link types section.
- 要素が `~a_area$ 要素であって,[ `rel$a 属性は有さないか, 有していて その値に[ `~hyperlink$を作成するものと定義されている~keyword ]は含まれてない ]場合も、 `暗黙な~hyperlink@ を作成するモノトスル ⇒ この`暗黙な~hyperlink$には、[ 要素の`~node文書$から 要素の `href$a 属性で与えられる資源へ~linkする ]ことを超えるような,特別な意味は無い (その`~link型$は無い)。 ◎ Similarly, for a and area elements with an href attribute and a rel attribute, links must be created for the keywords of the rel attribute as defined for those keywords in the link types section. Unlike link elements, however, a and area elements with an href attribute that either do not have a rel attribute, or whose rel attribute has no keywords that are defined as specifying hyperlinks, must also create a hyperlink. This implied hyperlink has no special meaning (it has no link type) beyond linking the element's node document to the resource given by the element's href attribute.
同様に,`form$e 要素に対しては:
- `~relF$a 属性を有するならば、 その値に含まれる各~keyword用に — `§ ~HTML~link型$に与える各~keywordの定義に従って — ~linkを作成するモノトスル。
- `~relF$a 属性を[ 有さない / 有していて その値に[ `~hyperlink$を作成するものと定義されている~keyword ]は含まれてない ]場合も,`~hyperlink$を作成するモノトスル。
各`~hyperlink$は、 その処理~意味論を改変する 0 個以上の `注釈@ を伴う。 ◎ A hyperlink can have one or more hyperlink annotations that modify the processing semantics of that hyperlink.
4.6.2. ~a_area 要素により作成される~link
`~a_area$ 要素の `href@a 属性に指定する値は、 `前後~空白~可の妥当な~URL$でなければナラナイ。 ◎ The href attribute on a and area elements must have a value that is a valid URL potentially surrounded by spaces.
注記: `~a_area$ 要素には、 `href$a 属性を有することは要求されない — 有さない場合、 ~hyperlinkは作成されない。 ◎ The href attribute on a and area elements is not required; when those elements do not have href attributes they do not create hyperlinks.
`target@a 属性に指定する値は、 `妥当な~navigable~target名または~keyword$でなければナラナイ。 それは、 利用されることになる`~navigable$の名前を与える。 ~UAは、 `~hyperlinkを追う$ときにこの名前を利用する。 ◎ The target attribute, if present, must be a valid navigable target name or keyword. It gives the name of the navigable that will be used. User agents use this name when following hyperlinks.
`download@a 属性は、 在るならば,[ 作者は,~hyperlinkは資源の`~download$用であると意図している ]ことを指示する。 この属性の値が空でない場合、 作者が推奨する既定の~filenameを指定する — それは、 局所~file~systemにて資源の~filenameを与えるときに利用される。 許容される値に制約は無いが、 作者は,次に注意されたし ⇒ ほとんどの~file~systemには,~filenameに~supportされる約物に関して制限があり、 ~UAは,それに則って~filenameを調整すると見込まれる。 ◎ The download attribute, if present, indicates that the author intends the hyperlink to be used for downloading a resource. The attribute may have a value; the value, if any, specifies the default filename that the author recommends for use in labeling the resource in a local file system. There are no restrictions on allowed values, but authors are cautioned that most file systems have limitations with regard to what punctuation is supported in filenames, and user agents are likely to adjust filenames accordingly.
`ping@a 属性は、 在るならば,[ 利用者が~hyperlinkを追うときに,それについて通知されることに関心がある資源 ]の~URLを与える。 その値は、 ~UAにより`~hyperlink聴取$に利用される。 値は、 `~space等で分離された~token集合$であって, それを成す各~tokenは次を満たさなければナラナイ:
- `妥当かつ空でない~URL$である
- `~scheme$url ~IN `~HTTP_S~scheme$
`~a_area$ 要素の `rel@a 属性は、 要素が作成する~linkの種類を制御する。 この属性に指定する値は、 `~space等で分離された~token集合$(一意)でなければナラナイ。 `許容される~keywordとその意味@#linkTypes$は、 下に定義される。 ◎ The rel attribute on a and area elements controls what kinds of links the elements create. The attribute's value must be an unordered set of unique space-separated tokens. The allowed keywords and their meanings are defined below.
~AND↓ を満たすものが `rel$aL が`~supportする~token$とされる:
- `§ ~HTML~link型$にて定義される~keywordであって, `~a_area$ 要素に許容される。
- ~UAが~supportする。
- ~UAによる処理~modelに影響iする。
アリな~tokenには次が挙げられるが、 `~supportする~token$は,これらのうち~UAが処理~modelを実装するものに限られるモノトスル ⇒ `noreferrer$v, `noopener$v, `opener$v
◎ rel's supported tokens are the keywords defined in HTML link types which are allowed on a and area elements, impact the processing model, and are supported by the user agent. The possible supported tokens are noreferrer, noopener, and opener. rel's supported tokens must only include the tokens from this list that the user agent implements the processing model for.`rel$a 属性には既定の値は無い。 属性が省略された場合や, 属性の値が含むどの~tokenも ~UAにより認識されない場合、 文書と行先~資源との間には,~hyperlinkであること以外に特に関係性は無いことになる。 ◎ The rel attribute has no default value. If the attribute is omitted or if none of the values in the attribute are recognized by the user agent, then the document has no particular relationship with the destination resource other than there being a hyperlink between the two.
`~hyperlink$を作成するような `a$e 要素に `hreflang@a 属性が在る場合、 ~link先~資源の言語を与える。 指定する値は、 妥当な `BCP47$r 言語~tagでなければナラナイ。 この属性は、 純粋に助言的である 【! この属性を authoritativeと考慮しないモノトスル】 — ~UAは,~fetchした資源の言語を決定するときには、 資源への~linkに含められた~metadataは利用することなく, 資源に結付けられた言語~情報のみを利用するモノトスル。 ◎ The hreflang attribute on a elements that create hyperlinks, if present, gives the language of the linked resource. It is purely advisory. The value must be a valid BCP 47 language tag. [BCP47] User agents must not consider this attribute authoritative — upon fetching the resource, user agents must use only language information associated with the resource to determine its language, not metadata included in the link to the resource.
`type@a 属性は、 在るならば,~link先の資源の`~MIME型$を与える。 指定する値は、 `妥当な~MIME型~文字列$でなければナラナイ。 この属性は、 純粋に助言的である 【! authoritative】 — ~UAは,~fetchした資源の型を決定するときには、 資源への~linkに含められた~metadataは利用しないモノトスル。 ◎ The type attribute, if present, gives the MIME type of the linked resource. It is purely advisory. The value must be a valid MIME type string. User agents must not consider the type attribute authoritative — upon fetching the resource, user agents must not use metadata included in the link to the resource to determine its type.
`referrerpolicy@a 属性は、 `~referrer施策~属性$である。 その目的は、 `~hyperlinkを追う$ときに利用される`~referrer施策$を設定することである。 `REFERRERPOLICY$r ◎ The referrerpolicy attribute is a referrer policy attribute. Its purpose is to set the referrer policy used when following hyperlinks. [REFERRERPOLICY]
`~a_area$ 要素の`作動化の挙動$が呼出されたときは、 ~UAは,[ 利用者が次に関する選好を指示すること ]を許容してもヨイ: ◎ When an a or area element's activation behavior is invoked, the user agent may allow the user to indicate a preference regarding\
- その~hyperlinkを`~navi$に利用するかどうか ◎ whether the hyperlink is to be used for navigation or\
- その~hyperlinkが指定する資源を~downloadするかどうか ◎ whether the resource it specifies is to be downloaded.
利用者-選好が無い下での既定は、 要素が `download$a 属性を[ 有さないならば,~navi / 有するならば,指定された資源の~download ]になるベキである。 ◎ In the absence of a user preference, the default should be navigation if the element has no download attribute, and should be to download the specified resource if it does.
`~a_area$ 要素 %要素 の`作動化の挙動$は、 所与の ( ~event %~event ) に対し: ◎ The activation behavior of an a or area element element given an event event is:
- ~IF[ %要素 は `href$a 属性を有さない ] ⇒ ~RET ◎ If element has no href attribute, then return.
- %~hyperlink接尾辞 ~LET ~NULL ◎ Let hyperlinkSuffix be null.
-
~IF[ %要素 は `a$e 要素である ]~AND[ %~event の`~target$は `ismap$a 属性を有する `img$e 要素である ]: ◎ If element is an a element, and event's target is an img with an ismap attribute specified, then:
- ( %x, %y ) ~LET ( 0, 0 ) ◎ Let x and y be 0.
- ~IF[ %~event の `isTrusted$m 属性 ~EQ ~T ] ⇒ ( %x, %y ) ~SET 画像の ( 左端~辺, 上端~辺 ) から ~click~~地点までの`~CSS~pixel$数による距離 ◎ If event's isTrusted attribute is initialized to true, then set x to the distance in CSS pixels from the left edge of the image to the location of the click, and set y to the distance in CSS pixels from the top edge of the image to the location of the click.
- %x ~SET `max^op( %x, 0 ) ◎ If x is negative, set x to 0.
- %y ~SET `max^op( %y, 0 ) ◎ If y is negative, set y to 0.
- %~hyperlink接尾辞 ~SET 次を順に連結した結果の文字列 ⇒# `003F^U ( `?^l ), %x の値を基数 10 の整数として`~ASCII数字$で表出した結果, `002C^U ( `,^l ), %y の値を基数 10 の整数として`~ASCII数字$で表出した結果 ◎ Set hyperlinkSuffix to the concatenation of U+003F (?), the value of x expressed as a base-ten integer using ASCII digits, U+002C (,), and the value of y expressed as a base-ten integer using ASCII digits.
- %利用者-関与i ~LET `~event用の~naviに対する利用者-関与i$( %~event ) ◎ Let userInvolvement be event's user navigation involvement.
-
~IF[ 利用者は~hyperlinkを~downloadする選好を表出した ] ⇒ %利用者-関与i ~SET `~browser~UI$i ◎ If the user has expressed a preference to download the hyperlink, then set userInvolvement to "browser UI".
注記: すなわち,~download用に特定の選好を表出した場合、 もはや,単なる `作動化$i ではなくなる。 ◎ That is, if the user has expressed a specific preference for downloading, this no longer counts as merely "activation".
- ~IF[ %要素 は `download$a 属性を有する ]~OR[ 利用者は~hyperlinkを~downloadする選好を表出した ] ⇒ %要素 により作成された`~hyperlinkを~downloadする$( %~hyperlink接尾辞, %利用者-関与i ) ◎ If element has a download attribute, or if the user has expressed a preference to download the hyperlink, then download the hyperlink created by element with hyperlinkSuffix set to hyperlinkSuffix and userInvolvement set to userInvolvement.
- ~ELSE ⇒ %要素 により作成された`~hyperlinkを追う$( %~hyperlink接尾辞, %利用者-関与i ) ◎ Otherwise, follow the hyperlink created by element with hyperlinkSuffix set to hyperlinkSuffix and userInvolvement set to userInvolvement.
4.6.3. ~a_area 要素~用の~API
interface mixin `HTMLHyperlinkElementUtils@I { [`CEReactions$] stringifier attribute USVString `href$m; readonly attribute USVString `origin$m; [`CEReactions$] attribute USVString `protocol$m; [`CEReactions$] attribute USVString `username$m; [`CEReactions$] attribute USVString `password$m; [`CEReactions$] attribute USVString `host$m; [`CEReactions$] attribute USVString `hostname$m; [`CEReactions$] attribute USVString `port$m; [`CEReactions$] attribute USVString `pathname$m; [`CEReactions$] attribute USVString `search$m; [`CEReactions$] attribute USVString `hash$m; };
- %hyperlink.`toString()^m
- %hyperlink.`href$m
- %hyperlink の~URLを返す。 ◎ Returns the hyperlink's URL.
- 設定して~URLを変更できる。 ◎ Can be set, to change the URL.
- %hyperlink.`origin$m
- %hyperlink の~URLの生成元を返す。 ◎ Returns the hyperlink's URL's origin.
- %hyperlink.`protocol$m
- %hyperlink の~URLの~schemeを返す。 ◎ Returns the hyperlink's URL's scheme.
- 設定して~URLの~schemeを変更できる。 ◎ Can be set, to change the URL's scheme.
- %hyperlink.`username$m
- %hyperlink の~URLの~usernameを返す。 ◎ Returns the hyperlink's URL's username.
- 設定して~URLの~usernameを変更できる。 ◎ Can be set, to change the URL's username.
- %hyperlink.`password$m
- %hyperlink の~URLの~passwordを返す。 ◎ Returns the hyperlink's URL's password.
- 設定して~URLの~passwordを変更できる。 ◎ Can be set, to change the URL's password.
- %hyperlink.`host$m
- %hyperlink の~URLの ~host&~portを返す (~portは、 ~URLの~scheme用の既定の~portと異なる場合に限り,結果に含まれる)。 ◎ Returns the hyperlink's URL's host and port (if different from the default port for the scheme).
- 設定して~URLの~host&~portを変更できる。 ◎ Can be set, to change the URL's host and port.
- %hyperlink.`hostname$m
- %hyperlink の~URLの~hostを返す。 ◎ Returns the hyperlink's URL's host.
- 設定して~URLの~hostを変更できる。 ◎ Can be set, to change the URL's host.
- %hyperlink.`port$m
- %hyperlink の~URLの~portを返す。 ◎ Returns the hyperlink's URL's port.
- 設定して~URLの~portを変更できる。 ◎ Can be set, to change the URL's port.
- %hyperlink.`pathname$m
- %hyperlink の~URLの~pathを返す。 ◎ Returns the hyperlink's URL's path.
- 設定して~URLの~pathを変更できる。 ◎ Can be set, to change the URL's path.
- %hyperlink.`search$m
- %hyperlink の~URLの~queryを返す (結果が空でなければ先頭の `?^l も含む)。 ◎ Returns the hyperlink's URL's query (includes leading "?" if non-empty).
- 設定して~URLの~query(先頭の `?^l は無視される)を変更できる。 ◎ Can be set, to change the URL's query (ignores leading "?").
- %hyperlink.`hash$m
- %hyperlink の~URLの素片を返す (結果が空でなければ先頭の `#^l も含む)。 ◎ Returns the hyperlink's URL's fragment (includes leading "#" if non-empty).
- 設定して~URLの素片を変更できる (先頭の `#^l は無視される)。 ◎ Can be set, to change the URL's fragment (ignores leading "#").
`HTMLHyperlinkElementUtils$I ~mixinを実装する各 %要素 には、 次に挙げるものが結付けられる: ◎ ↓
- `~URL@el ◎ An element implementing the HTMLHyperlinkElementUtils mixin has an associated url\
- ~NULL / `~URL$ — 初期~時は ~NULL とする。 ◎ (null or a URL). It is initially null.
- `~URLを設定する@ ~algo ◎ An element implementing the HTMLHyperlinkElementUtils mixin has an associated set the url algorithm,\
-
次を走らす: ◎ which runs these steps:
- %要素 の`~URL$el ~SET ~NULL ◎ Set this element's url to null.
- ~IF[ %要素 は `href$a 内容~属性を有さない ] ⇒ ~RET ◎ If this element's href content attribute is absent, then return.
- %~URL ~LET `~URLを符号化法の下で相対的に構文解析する$( %要素 の `href$a 内容~属性の値, %要素 の`~node文書$ ) ◎ Let url be the result of encoding-parsing a URL given this element's href content attribute's value, relative to this element's node document.
- ~IF[ %~URL ~NEQ `失敗^i ] ⇒ %要素 の`~URL$el ~SET %~URL ◎ If url is not failure, then set this element's url to url.
-
~UAは、 %要素 が作成されたとき, および %要素 の `href$a 内容~属性が[ 設定-/ 変更- / 除去- ]される度に,`~URLを設定する$モノトスル。 ◎ When elements implementing the HTMLHyperlinkElementUtils mixin are created, and whenever those elements have their href content attribute set, changed, or removed, the user agent must set the url.
注記: これが観測-可能になるのは、 `blob:@~FILEAPI#url$sc ~URLに限られる。 それを`~URL構文解析する$ことには、 `Blob URL Store@~FILEAPI#BlobURLStore$ の検索が孕まれるので。 ◎ This is only observable for blob: URLs as parsing them involves a Blob URL Store lookup.
- `~URLを初期化し直す@ ~algo ◎ An element implementing the HTMLHyperlinkElementUtils mixin has an associated reinitialize url algorithm, which\
-
次を走らす: ◎ runs these steps:
- %~URL ~LET %要素 の`~URL$el ◎ ↓
- ~IF[ %~URL ~NEQ ~NULL ]~AND[ %~URL の`~scheme$url ~EQ `blob^l ]~AND[ %~URL は`不透明な~path$を持つ ] ⇒ ~RET ◎ If the element's url is non-null, its scheme is "blob", and it has an opaque path, then terminate these steps.
- `~URLを設定する$ ◎ Set the url.
要素の `~hrefを更新する@ ときは ⇒ 要素の `href$a 内容~属性の値 ~SET `~URLを直列化する$( 要素の`~URL$el ) ◎ To update href, set the element's href content attribute's value to the element's url, serialized.
`href@m 取得子~手続きは: ◎ The href getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~AND[ コレは `href$a 内容~属性を有さない ] ⇒ ~RET 空~文字列 ◎ If url is null and this has no href content attribute, return the empty string.
- ~ELIF[ %~URL ~EQ ~NULL ] ⇒ ~RET コレの`href$a 内容~属性の値 ◎ Otherwise, if url is null, return this's href content attribute's value.
- ~RET `~URLを直列化する$( %~URL ) ◎ Return url, serialized.
`origin@m 取得子~手続きは: ◎ The origin getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- ~IF[ コレの`~URL$el ~EQ ~NULL ] ⇒ ~RET 空~文字列 ◎ If this's url is null, return the empty string.
- ~RET `生成元を直列化する$( コレの`~URL$elの`生成元$url ) ◎ Return the serialization of this's url's origin.
`protocol@m 取得子~手続きは: ◎ The protocol getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- ~IF[ コレの`~URL$el ~EQ ~NULL ] ⇒ ~RET `:^l ◎ If this's url is null, return ":".
- ~RET 次を順に連結した結果 ⇒# コレの`~URL$elの`~scheme$url, `:^l ◎ Return this's url's scheme, followed by ":".
`protocol$m 設定子~手続きは: ◎ The protocol setter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- ~IF[ コレの`~URL$el ~EQ ~NULL ] ⇒ ~RET ◎ If this's url is null, then return.
-
`~API用に~URL構文解析する$( [ 所与の値に `:^l を付加した結果 ], コレの`~URL$el, `~scheme開始$uST ) ◎ Basic URL parse the given value, followed by ":", with this's url as url and scheme start state as state override.
注記: ~URL構文解析器は,連続する複数個の~colonを 1 個のそれと同一視するので、 値に `https:^l を供しても(あるいは `https::::^l でさえ), `https^l を供するのと同じことになる。 ◎ Because the URL parser ignores multiple consecutive colons, providing a value of "https:" (or even "https::::") is the same as providing a value of "https".
- `~hrefを更新する$ ◎ Update href.
`username@m 取得子~手続きは: ◎ The username getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- ~IF[ コレの`~URL$el ~EQ ~NULL ] ⇒ ~RET 空~文字列 ◎ If this's url is null, return the empty string.
- ~RET コレの`~URL$elの`~username$url ◎ Return this's url's username.
`username$m 設定子~手続きは: ◎ The username setter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL は`~username/~password/~portを持てない$ ] ⇒ ~RET ◎ If url is null or url cannot have a username/password/port, then return.
- `~URLの~usernameを設定する$( %~URL, 所与の値 ) ◎ Set the username, given url and the given value.
- `~hrefを更新する$ ◎ Update href.
`password@m 取得子~手続きは: ◎ The password getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ] ⇒ ~RET 空~文字列 ◎ If url is null, then return the empty string.
- ~RET %~URL の`~password$url ◎ Return url's password.
`password$m 設定子~手続きは: ◎ The password setter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL は`~username/~password/~portを持てない$ ] ⇒ ~RET ◎ If url is null or url cannot have a username/password/port, then return.
- `~URLの~passwordを設定する$( %~URL, 所与の値 ) ◎ Set the password, given url and the given value.
- `~hrefを更新する$ ◎ Update href.
`host@m 取得子~手続きは: ◎ The host getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL の`~host$url ~EQ ~NULL ] ⇒ ~RET 空~文字列 ◎ If url or url's host is null, return the empty string.
- ~IF[ %~URL の`~port$url ~EQ ~NULL ] ⇒ ~RET `~hostを直列化する$( %~URL の`~host$url ) ◎ If url's port is null, return url's host, serialized.
- ~RET 次を順に連結した結果 ⇒# `~hostを直列化する$( %~URL の`~host$url ), `:^l, `整数を直列化する$( %~URL の`~port$url ) ◎ Return url's host, serialized, followed by ":" and url's port, serialized.
`host$m 設定子~手続きは: ◎ The host setter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL は`不透明な~path$を持つ ] ⇒ ~RET ◎ If url is null or url has an opaque path, then return.
- `~API用に~URL構文解析する$( 所与の値, %~URL, `~host$uST ) ◎ Basic URL parse the given value, with url as url and host state as state override.
- `~hrefを更新する$ ◎ Update href.
`hostname@m 取得子~手続きは: ◎ The hostname getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL の`~host$url ~EQ ~NULL ] ⇒ ~RET 空~文字列 ◎ If url or url's host is null, return the empty string.
- ~RET `~hostを直列化する$( %~URL の`~host$url ) ◎ Return url's host, serialized.
`hostname$m 設定子~手続きは: ◎ The hostname setter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL は`不透明な~path$を持つ ] ⇒ ~RET ◎ If url is null or url has an opaque path, then return.
- `~API用に~URL構文解析する$( 所与の値, %~URL, `~hostname$uST ) ◎ Basic URL parse the given value, with url as url and hostname state as state override.
- `~hrefを更新する$ ◎ Update href.
`port@m 取得子~手続きは: ◎ The port getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL の`~port$url ~EQ ~NULL ] ⇒ ~RET 空~文字列 ◎ If url or url's port is null, return the empty string.
- ~RET `整数を直列化する$( %~URL の`~port$url ) ◎ Return url's port, serialized.
`port$m 設定子~手続きは: ◎ The port setter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL は`~username/~password/~portを持てない$ ] ⇒ ~RET ◎ If url is null or url cannot have a username/password/port, then return.
- ~IF[ 所与の値 ~EQ 空~文字列 ] ⇒ %~URL の`~port$url ~SET ~NULL ◎ If the given value is the empty string, then set url's port to null.
- ~ELSE ⇒ `~API用に~URL構文解析する$( 所与の値, %~URL, `~port$uST ) ◎ Otherwise, basic URL parse the given value, with url as url and port state as state override.
- `~hrefを更新する$ ◎ Update href.
`pathname@m 取得子~手続きは: ◎ The pathname getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ] ⇒ ~RET 空~文字列 ◎ If url is null, then return the empty string.
- ~RET `~URL~pathを直列化する$( %~URL ) ◎ Return the result of URL path serializing url.
`pathname$m 設定子~手続きは: ◎ The pathname setter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL は`不透明な~path$を持つ ] ⇒ ~RET ◎ If url is null or url has an opaque path, then return.
- %~URL の`~path$url ~SET 空~list ◎ Set url's path to the empty list.
- `~API用に~URL構文解析する$( 所与の値, %~URL, `~path開始$uST ) ◎ Basic URL parse the given value, with url as url and path start state as state override.
- `~hrefを更新する$ ◎ Update href.
`search@m 取得子~手続きは: ◎ The search getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL の`~query$url ~IN { ~NULL, 空~文字列 } ] ⇒ ~RET 空~文字列 ◎ If url is null, or url's query is either null or the empty string, return the empty string.
- ~RET 次を順に連結した結果 ⇒# `?^l, %~URL の`~query$url ◎ Return "?", followed by url's query.
`search$m 設定子~手続きは: ◎ The search setter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ] ⇒ ~RET ◎ If url is null, terminate these steps.
- ~IF[ 所与の値 ~EQ 空~文字列 ] ⇒ %~URL の`~query$url ~SET ~NULL ◎ If the given value is the empty string, set url's query to null.
-
~ELSE: ◎ Otherwise:
- %入力 ~LET 所与の値 ◎ ↓
- ~IF[ %入力 の最初の文字 ~EQ `?^l ] ⇒ %入力 から最初の文字を除去する ◎ Let input be the given value with a single leading "?" removed, if any.
- %~URL の`~query$url ~SET 空~文字列 ◎ Set url's query to the empty string.
- `~API用に~URL構文解析する$( %入力, %~URL, `~query$uST ) ◎ Basic URL parse input, with url as url and query state as state override.
- `~hrefを更新する$ ◎ Update href.
`hash@m 取得子~手続きは: ◎ The hash getter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ]~OR[ %~URL の`素片$url ~IN { ~NULL, 空~文字列 } ] ⇒ ~RET 空~文字列 ◎ If url is null, or url's fragment is either null or the empty string, return the empty string.
- ~RET 次を順に連結した結果 ⇒# `#^l, %~URL の`素片$url ◎ Return "#", followed by url's fragment.
`hash$m 設定子~手続きは: ◎ The hash setter steps are:
- コレの`~URLを初期化し直す$ ◎ Reinitialize url.
- %~URL ~LET コレの`~URL$el ◎ Let url be this's url.
- ~IF[ %~URL ~EQ ~NULL ] ⇒ ~RET ◎ If url is null, then return.
- ~IF[ 所与の値 ~EQ 空~文字列 ] ⇒ %~URL の`素片$url ~SET ~NULL ◎ If the given value is the empty string, set url's fragment to null.
-
~ELSE: ◎ Otherwise:
- %入力 ~LET 所与の値 ◎ ↓
- ~IF[ %入力 の最初の文字 ~EQ `#^l ] ⇒ %入力 から最初の文字を除去する ◎ Let input be the given value with a single leading "#" removed, if any.
- %~URL の`素片$url ~SET 空~文字列 ◎ Set url's fragment to the empty string.
- `~API用に~URL構文解析する$( %入力, %~URL, `素片$uST ) ◎ Basic URL parse input, with url as url and fragment state as state override.
- `~hrefを更新する$ ◎ Update href.
4.6.4. ~hyperlinkの追法
~OR↓ を満たす要素 %要素 は `~navigateできない@ とされる: ◎ An element element cannot navigate if any of the following are true:
- %要素 の`~node文書$は`全部的に作動中$でない ◎ element's node document is not fully active; or
- [ %要素 は `a$e 要素でない ]~AND[ %要素 は`接続されて$いない ] ◎ element is not an a element and is not connected.
これは、 `form$e 要素を`提出する$ときにも利用される。 `a$e 要素に対する例外は、 ~web内容との互換性のためにある。 ◎ This is also used by form submission for the form element. The exception for a elements is for compatibility with web content.
`要素の~noopenerを取得する@ ときは、 所与の ( [ `~a_area$ / `form$e ]要素 %要素, `~URL~record$ %~URL, 文字列 %~target ) に対し,次を遂行する: ◎ To get an element's noopener, given an a, area, or form element element, a URL record url, and a string target, perform the following steps.\
-
~RET ~IS ~OR↓: ◎ They return a boolean.
- %要素 の`~link型$は、 ~keyword[ `noopener$v, `noreferrer$v ]いずれかを含む ◎ If element's link types include the noopener or noreferrer keyword, then return true.
- [ %要素 の`~link型$は、 ~keyword `opener$v を含まない ]~AND[ %~target は`~ASCII大小無視$で `_blank^l に合致する ] ◎ If element's link types do not include the opener keyword and target is an ASCII case-insensitive match for "_blank", then return true.
- [ %~URL の`~scheme$url ~EQ `blob^l ]~AND[ 次の 2 つは`同じ~site$でない ] ⇒# %~URL の`~blob~URL~entry$urlの`環境$bUの`生成元$enV, %要素 に`関連な設定群~obj$の`~top-level生成元$enV ◎ If url's scheme is "blob": • Let blobOrigin be url's blob URL entry's environment's origin. • Let topLevelOrigin be element's relevant settings object's top-level origin. • If blobOrigin is not same site with topLevelOrigin, then return true. ◎ Return false.
ある要素 %要素 により作成された `~hyperlinkを追う@ ときは、 所与の ( %~hyperlink接尾辞 (省略時は ~NULL ), %利用者-関与i (省略時は `なし$i ) ) に対し: ◎ To follow the hyperlink created by an element subject, given an optional hyperlinkSuffix (default null) and an optional userInvolvement (default "none"):
- ~IF[ %要素 は`~navigateできない$ ] ⇒ ~RET ◎ If subject cannot navigate, then return.
- %replace ~LET ~F 【この段は不要であろう(以下で利用されていない/下の注記を見よ)。】 ◎ Let replace be false.
- %~target属性~値 ~LET 空~文字列 ◎ Let targetAttributeValue be the empty string.
- ~IF[ %要素 は `~a_area$ である ] ⇒ %~target属性~値 ~SET `要素の~targetを取得する$( %要素 ) ◎ If subject is an a or area element, then set targetAttributeValue to the result of getting an element's target given subject.
- %~URL【!urlRecord】 ~LET `~URLを符号化法の下で相対的に構文解析する$( %要素 の`href$a 属性の値, %要素 の`~node文書$ ) ◎ Let urlRecord be the result of encoding-parsing a URL given subject's href attribute value, relative to subject's node document.
- ~IF[ %~URL【!urlRecord】 ~EQ `失敗^i ] ⇒ ~RET ◎ If urlRecord is failure, then return.
- %~noopener ~LET `要素の~noopenerを取得する$( %要素, %~URL【!urlRecord】, %~target属性~値 ) ◎ Let noopener be the result of getting an element's noopener with subject, urlRecord, and targetAttributeValue.
- ( %~target~navigable, — ) ~LET `~navigableを選ぶ規則$を適用する( %~target属性~値, %要素 の`~node~navigable$, %~noopener ) ◎ Let targetNavigable be the first return value of applying the rules for choosing a navigable given targetAttributeValue, subject's node navigable, and noopener.
- ~IF[ %~target~navigable ~EQ ~NULL ] ⇒ ~RET ◎ If targetNavigable is null, then return.
-
~IF[ %~hyperlink接尾辞 ~NEQ ~NULL ] ⇒ %~URL の`~query$url ~SET %~URL の`~query$urlに応じて ⇒# ~NULL ならば %~hyperlink接尾辞 / ~ELSE_ %~URL の`~query$urlに %~hyperlink接尾辞 を付加した結果
【 原文は %~URL を直列化してから %~hyperlink接尾辞 を付加しているが、 その結果を以下で利用する所では,文字列ではなく`~URL$が要求されるので、 このように改める ( %~hyperlink接尾辞 が~query成分に対応することは、 この~algoの用法から判明する)。 】
◎ Let urlString be the result of applying the URL serializer to urlRecord. ◎ If hyperlinkSuffix is non-null, then append it to urlString. - %~referrer施策 ~LET %要素 の`referrerpolicy$a 内容~属性の現在の状態 ◎ Let referrerPolicy be the current state of subject's referrerpolicy content attribute.
- ~IF[ %要素 の`~link型$は、 ~keyword `noreferrer$v を含む ] ⇒ %~referrer施策 ~SET `no-referrer^l ◎ If subject's link types includes the noreferrer keyword, then set referrerPolicy to "no-referrer".
-
`~navigableを~URLへ~navigateする$( %~target~navigable, %~URL【!urlString】, %要素 の`~node文書$ ) — 次も与える下で ⇒# `~referrer施策^i ~SET %~referrer施策, `利用者-関与i^i ~SET %利用者-関与i ◎ Navigate targetNavigable to urlString using subject's node document, with referrerPolicy set to referrerPolicy and userInvolvement set to userInvolvement.
注記: 他の多くの種別の~naviと違って、[ 文書が`完全に読込まれ$ていない下で,~hyperlinkを追うとき ]には,特別な `replace$hH の挙動は無い。 これは、 ~hyperlinkを追う各回のうち[ 利用者が起動したもの, ~scriptが — 例えば,要素に対する【!aElement.】 `click()^c を介して — 誘発したもの ]どちらにも該当する。 ◎ Unlike many other types of navigations, following hyperlinks does not have special "replace" behavior for when documents are not completely loaded. This is true for both user-initiated instances of following hyperlinks, as well as script-triggered ones via, e.g., aElement.click().
4.6.5. 資源の~download法
資源は、 即時に見るのみならず,後の利用のために~downloadするものと意図される事例もある。 そのように指示するには、 その資源への`~hyperlink$を作成する `~a_area$ 要素~上に `download$a 属性を指定する。 ◎ In some cases, resources are intended for later use rather than immediate viewing. To indicate that a resource is intended to be downloaded for use later, rather than immediately used, the download attribute can be specified on the a or area element that creates the hyperlink to that resource.
この属性には、 値も与えて,~UAが[ 資源を~file~systemに格納するとき利用する~filename ]も指定できる。 この値は、 `Content-Disposition$h ~HTTP~headerに`~filename~parameter@~RFC6266#disposition.parameter.filename$が在れば, それにより上書きされる。 `RFC6266$r ◎ The attribute can furthermore be given a value, to specify the filename that user agents are to use when storing the resource in a file system. This value can be overridden by the `Content-Disposition` HTTP header's filename parameters. [RFC6266]
非同一-生成元の状況においては、 `download$a 属性は,特定的には[ `~disposition型$として `attachment^v を伴う `Content-Disposition$h ~HTTP~header ]と組合せる必要がある — [ 場合によっては無法になる活動 ]について利用者に警告されることを避けるため。 (これは、[ 利用者が全部的に理解することなく,[ 敏感な[ 個人的/機密的 ]な情報 ]を~downloadする ]ことから,利用者を保護する。) ◎ In cross-origin situations, the download attribute has to be combined with the `Content-Disposition` HTTP header, specifically with the attachment disposition type, to avoid the user being warned of possibly nefarious activity. (This is to protect users from being made to download sensitive personal or confidential information without their full understanding.)
ある要素 %要素 により作成された `~hyperlinkを~downloadする@ ときは、 所与の ( %~hyperlink接尾辞 (省略時は ~NULL ), %利用者-関与i (省略時は `なし$i ) ) に対し: ◎ To download the hyperlink created by an element subject, given an optional hyperlinkSuffix (default null) and an optional userInvolvement (default "none"):
- ~IF[ %要素 は`~navigateできない$ ] ⇒ ~RET ◎ If subject cannot navigate, then return.
- ~IF[ `閲覧~文脈~sandbox化( ~download )~flag$ ~IN %要素 の`~node文書$にて`作動中な~sandbox法~flag集合$ ] ⇒ ~RET ◎ If subject's node document's active sandboxing flag set has the sandboxed downloads browsing context flag set, then return.
- %~URL ~LET `~URLを符号化法の下で相対的に構文解析する$( %要素 の`href$a 属性の値, %要素 の`~node文書$ ) 【!#encoding-parsing-and-serializing-a-url】 ◎ Let urlString be the result of encoding-parsing-and-serializing a URL given subject's href attribute value, relative to subject's node document.
- ~IF[ %~URL ~EQ `失敗^i ] ⇒ ~RET ◎ If urlString is failure, then return.
-
~IF[ %~hyperlink接尾辞 ~NEQ ~NULL ] ⇒ %~URL の`~query$url ~SET %~URL の`~query$urlに応じて ⇒# ~NULL ならば %~hyperlink接尾辞 / ~ELSE_ %~URL の`~query$urlに %~hyperlink接尾辞 を付加した結果
【 原文は %~URL を直列化してから %~hyperlink接尾辞 を付加しているが、 その結果を以下で利用する所では,文字列ではなく`~URL$が要求されるので、 このように改める ( %~hyperlink接尾辞 が~query成分に対応することは、 この~algoの用法から判明する)。 】
◎ If hyperlinkSuffix is non-null, then append it to urlString. -
~IF[ %利用者-関与i ~NEQ `~browser~UI$i ]: ◎ If userInvolvement is not "browser UI", then:
- ~Assert: %要素 は `download$a 属性を有する。 ◎ Assert: subject has a download attribute.
- %~navi ~LET %要素 に`関連な大域~obj$の`~navi~API$ ◎ Let navigation be subject's relevant global object's navigation API.
- %~filename ~LET %要素 の `download$a 属性の値 ◎ Let filename be the value of subject's download attribute.
- %継続するか ~LET `~download要請~用の~navigate_ev~eventを発火する$( %~navi ) — 次も与える下で ⇒# `行先~URL^i ~SET %~URL【!urlString】, `利用者-関与i^i ~SET %利用者-関与i, `~filename^i ~SET %~filename ◎ Let continue be the result of firing a download request navigate event at navigation with destinationURL set to urlString, userInvolvement set to userInvolvement, and filename set to filename.
- ~IF[ %継続するか ~EQ ~F ] ⇒ ~RET ◎ If continue is false, then return.
-
この段は`並列的$に走らす: ◎ Run these steps in parallel:
- 任意選択で — 敵対的になり得る~downloadから利用者を安全に防護すると予見されるならば ⇒ ~RET ◎ Optionally, the user agent may abort these steps, if it believes doing so would safeguard the user from a potentially hostile download.
- %要請 ~LET 新たな`要請$ — その ⇒# `~URL$rq ~SET %~URL【!urlString】, `~client$rq ~SET `入口~設定群~obj$, `起動元$rq ~SET `download^l, `行先$rq ~SET 空~文字列, `同期~flag$rq ~SET ~F, `~URL資格証を利用するか$rq ~SET ~F ◎ Let request be a new request whose URL is urlString, client is entry settings object, initiator is "download", destination is the empty string, and whose synchronous flag and use-URL-credentials flag are set.
- %要請 により`~fetch$された結果を`~downloadとして取扱う$ ◎ Handle the result of fetching request as a download.
~UAは,~fetchして得られた資源を `~downloadとして取扱う@ ときは、 資源が成功裡に得された場合は,[ 後で利用できるよう,その資源を保存する仕方 ]を利用者に供するベキである。 他の場合、 ~fileの~download時における問題を利用者に報告するベキである。 ◎ When a user agent is to handle a resource obtained from a fetch as a download, it should provide the user with a way to save the resource for later use, if a resource is successfully obtained. Otherwise, it should report any problems downloading the file to the user.
~UAは,資源 %資源 を`~downloadとして取扱う$ために~filenameが必要なときは、 次の~algoを利用して,それを選定するベキである: ◎ If the user agent needs a filename for a resource being handled as a download, it should select one using the following algorithm.
この~algoは,[ 信用-済みでない~siteから~fileを~downloadするときに孕まれる,~securityの危険性 ]を軽減することが意図されているので、 ~UAには,従うことが強く督促される。 ◎ This algorithm is intended to mitigate security dangers involved in downloading files from untrusted sites, and user agents are strongly urged to follow it.
-
%~filename ~LET 次の手続きを走らせた結果: ◎ Let filename be the undefined value.
- ( %資源~filename, %添付ありか ) ~LET ( ε, ~F ) ◎ ↓
-
~IF[ %資源 には `Content-Disposition$h ~header `RFC6266$r %H が伴われている ]:
- ~IF[ %H は ~filename情報を含んでいる ] ⇒ %資源~filename ~SET その~filename
- ~IF[ %H には`~disposition型$として `attachment^v が指定されている ] ⇒ %添付ありか ~SET ~T
- ~IF[ %添付ありか ~EQ ~T ]~AND[ %資源~filename ~NEQ ε ] ⇒ ~RET %資源~filename ◎ then let filename have the value specified by the header, and jump to the step labeled sanitize below. [RFC6266]
- %~UI生成元 ~LET ε ◎ Let interface origin\
- ~IF[[ `~download$ / ~downloadさせるような`~navigate$動作 ]を起動した`文書$はある ] ⇒ %~UI生成元 ~SET その文書の`生成元$doc ◎ be the origin of the Document in which the download or navigate action resulting in the download was initiated, if any.
- %資源~生成元 ~LET [[ %資源 の~URLの`~scheme$url成分 ~EQ `data^sc ]ならば %~UI生成元 / ~ELSE_ %資源 の~URLの`生成元$ ] ◎ Let resource origin be the origin of the URL of the resource being downloaded, unless that URL's scheme component is data, in which case let resource origin be the same as the interface origin, if any.
- %演算は信用-済みか ~LET ~IS[ %~UI生成元 ~EQ ε ]~OR[ ( %資源~生成元, %~UI生成元 ) は`同一-生成元$である ] ◎ If there is no interface origin, then let trusted operation be true. Otherwise, let trusted operation be true if resource origin is the same origin as interface origin, and false otherwise.
- ~IF[ %演算は信用-済みか ~EQ ~T ]~AND[ %資源~filename ~NEQ ε ] ⇒ ~RET %資源~filename ◎ If trusted operation is true and the resource has a `Content-Disposition` header and that header includes filename information, then let filename have the value specified by the header, and jump to the step labeled sanitize below. [RFC6266]
- ~IF[ %演算は信用-済みか ~EQ ~T ]~OR[ %添付ありか ~EQ ~T ] ⇒ ~IF[ ~downloadは `~a_area$ 要素 %E により作成された`~hyperlink$から起動された ]~AND[ %E は ~downloadが起動された時点で `download$a 属性 %A を有していた ]~AND[ %A の 値 ~NEQ 空~文字列 ] ⇒ ~RET %A の 値 ◎ If the download was not initiated from a hyperlink created by an a or area element, or if the element of the hyperlink from which it was initiated did not have a download attribute when the download was initiated, or if there was such an attribute but its value when the download was initiated was the empty string, then jump to the step labeled no proposed filename. ◎ Let proposed filename have the value of the download attribute of the element of the hyperlink that initiated the download at the time the download was initiated. ◎ If trusted operation is true, let filename have the value of proposed filename, and jump to the step labeled sanitize below. ◎ If the resource has a `Content-Disposition` header and that header specifies the attachment disposition type, let filename have the value of proposed filename, and jump to the step labeled sanitize below. [RFC6266]
- 【! *No proposed filename】 ~IF[ %演算は信用-済みか ~EQ ~T ]~OR[ 利用者は %資源 を~downloadする選好を指示した ] ⇒ ~RET %資源 の`~URL$から`実装定義$な方式で導出される値 ◎ No proposed filename: If trusted operation is true, or if the user indicated a preference for having the resource in question downloaded, let filename have a value derived from the URL of the resource in an implementation-defined manner, and jump to the step labeled sanitize below.
-
~RET 利用者が選好した~filename, または ~UAにより選定された~filename ◎ Let filename be set to the user's preferred filename or to a filename selected by the user agent, and jump to the step labeled sanitize below.
~algoがこの段まで達した場合、 次が含意されることになる:
- ~downloadされている %資源 の生成元と, ~downloadを始めた生成元とは,異なる。
- %資源 の生成元【`生成元~server@~HTTPinfra#origin-server$】は、 %資源 を~download用としていない ( `Content-Disposition^h は伴われていないなど)。
- ~downloadは利用者が【右~click等により明示的に】起動したものでない。
これは、 次に挙げる場合にも生じ得る:
- ~downloadを誘発するために `download$a 属性が利用された。
- %資源 は、 ~UAが~supportする型でない。
これは危険にもなり得る。 一例として、 ある敵対的~server %M が,~download~linkを用意して — それは、 実際には一定割合の利用者が利用している別~site %B への~linkであるが — その~dataは %M からのものと~~考えるよう利用者を騙して(例えば何かの “応募券” )、 %B を常用している利用者が そうと知らずに その~linkを通して( “応募券” に見せかけられた)私的~情報を~downloadして, それを敵対的~server( %M と同じ必要はない)に向けて~uploadする( “応募する” )よう~~仕向けることにより、 その情報を取得しようと試行することもできる。 ◎ This could be dangerous, because, for instance, a hostile server could be trying to get a user to unknowingly download private information and then re-upload it to the hostile server, by tricking the user into thinking the data is from the hostile server.
したがって、[ 当の %資源 が,まったく異なる~sourceから来ていることについて、 何らかの方法で通知されること ]が,利用者にとっての関心事になる。 加えて,利用者の混同を防止するため、 敵対的になり得る %~UI生成元 から示唆された~filenameは,無視されるベキである。 ◎ Thus, it is in the user's interests that the user be somehow notified that the resource in question comes from quite a different source, and to prevent confusion, any suggested filename from the potentially hostile interface origin should be ignored.
- 【!sanitize】 任意選択で ⇒ 利用者が %~filename に手を加えられるようにする。 例えば,~UAは、 前~段で決定された %~filename を既定の値として供して, 利用者に~filenameを~~入力してもらうこともできる。 ◎ Sanitize: Optionally, allow the user to influence filename. For example, a user agent could prompt the user for a filename, potentially providing the value of filename as determined above as a default value.
-
%~filename を局所~file~systemに相応しいものに調整する ◎ Adjust filename to be suitable for the local file system.
例えば、 ~filenameとして合法でない文字を除去したり, 頭部/尾部の空白を削ることも孕まれる。 ◎ For example, this could involve removing characters that are not legal in filenames, or trimming leading and trailing whitespace.
- ~IF[ ~platform規約において,`拡張子$から ~file~system上の~fileの型を決定する仕方は無い ] ⇒ ~RET %~filename ◎ If the platform conventions do not in any way use extensions to determine the types of file on the file system, then return filename as the filename.
- %~Content-Type型 ~LET[ %資源 の`~Content-Type~metadata$により与えられる型が既知であるならば その型 / ~ELSE_ ε ] ◎ Let claimed type be the type given by the resource's Content-Type metadata, if any is known.\
-
~IF[ %~filename には`拡張子$がある ]~AND[ その拡張子に対応する既知な`~MIME型$ %拡張子~型 がある ]: ◎ Let named type be the type given by filename's extension, if any is known. For the purposes of this step, a type is a mapping of a MIME type to an extension.
- ~IF[ %拡張子~型 は利用者の選好に整合する (例: %~filename は 利用者による~~入力により決定された) ] ⇒ ~RET %~filename ◎ If named type is consistent with the user's preferences (e.g., because the value of filename was determined by prompting the user), then return filename as the filename.
- ~IF[ %~Content-Type型 ~EQ %拡張子~型 (すなわち, %資源 の`~Content-Type~metadata$が与える型は %~filename の`拡張子$が与える型に整合する) ] ⇒ ~RET %~filename ◎ If claimed type and named type are the same type (i.e., the type given by the resource's Content-Type metadata is consistent with the type given by filename's extension), then return filename as the filename.
- ~IF[ %~Content-Type型 に対応する既知な`拡張子$がある ] ⇒ %~filename に その拡張子を追加する ◎ If the claimed type is known, then alter filename to add an extension corresponding to claimed type.
-
~ELIF[ %拡張子~型 は危険になり得ると既知である ] ⇒ 任意選択で ⇒ %~filename に既知かつ安全な`拡張子$(例 `.txt^l)を追加する
例えば、 ~platform規約により,[ ~nativeな~executable / ~shell-script / ~HTML~app / ~executable-macroを含み得る文書 ]として扱われるものが該当する。
◎ Otherwise, if named type is known to be potentially dangerous (e.g. it will be treated by the platform conventions as a native executable, shell script, HTML application, or executable-macro-capable document) then optionally alter filename to add a known-safe extension (e.g. ".txt").注記: この段は,~executableを~downloadできなくするので、 望ましくないかもしれない。 実装者は、 常に,この問題mについて~securityと利便性との兼ね合いをとることが強いられる。 ◎ This last step would make it impossible to download executables, which might not be desirable. As always, implementers are forced to balance security and usability in this matter.
- ~RET %~filename ◎ Return filename as the filename.
この~algoの目的における~fileの `拡張子@ とは、 当の~platform規約にて ~fileの型を識別するために利用するものとされている,~filenameの一部分である。 例えば多くの~OSは、 ~filenameの最後の~dot ( `.^l )に後続する部分を利用して, ~fileの型, および ~fileを開いたり実行する方式を決定している。 ◎ For the purposes of this algorithm, a file extension consists of any part of the filename that platform conventions dictate will be used for identifying the type of the file. For example, many operating systems use the part of the filename following the last dot (".") in the filename to determine the type of the file, and from that the manner in which the file is to be opened or executed.
~UAは,結果の~fileを利用者の~file~system内に格納する場所を裁定するときには、 [ %資源 自身 / %資源 の `~URL$ / `download$a 属性 ]から供される~directoryや~path情報を無視するベキである。 ◎ User agents should ignore any directory or path information provided by the resource itself, its URL, and any download attribute, in deciding where to store the resulting file in the user's file system.
4.6.6. ~hyperlinkの聴取
~UAは,利用者が[ `~a_area$ 要素 %要素 により作成された`~hyperlink$ ]を追うときには、 次を走らすモノトスル:
- ~IF[ 要素は `ping$a 属性を有していない ] ⇒ ~RET
- %文書 ~LET %要素 の`~node文書$
- %~target~URL ~LET `~URLを符号化法の下で相対的に構文解析する$( %要素 の `href$a 属性の値, %文書 )
- ~IF[ %~target~URL ~EQ `失敗^i ] ⇒ ~RET
-
`~ASCII空白で分割する$( %要素 の `ping$a 属性の値 ) — その結果を成す ~EACH ( %~token ) に対し:
- %~ping~URL ~LET `~URLを符号化法の下で相対的に構文解析する$( %~token, %文書 )
- ~IF[ %~ping~URL ~EQ `失敗^i ] ⇒ ~CONTINUE
- ~IF[ %~ping~URL の`~scheme$url ~NIN `~HTTP_S~scheme$ ] ⇒ ~CONTINUE
- 任意選択で ⇒ ~CONTINUE (例えば、 ~UAは,[ 利用者が表出した選好に則って,一部または全部の~ping~URLを無視したい ]と望むかもしれない)
- `~ping~URLを処理する$( %~ping~URL , %~target~URL, %文書 )
`~ping~URLを処理する@ ときは、 所与の ( %~ping~URL , %~target~URL, %文書 ) に対し,次を走らす: ◎ ↑
- %設定群~obj ~LET %文書 に`関連な設定群~obj$ ◎ Let settingsObject be the element's node document's relevant settings object.
- %要請 ~LET 新たな`要請$ — その ⇒# `~URL$rq ~SET %~ping~URL, `~method$rq ~SET `POST^h, `~header~list$rq ~SET « (`Content-Type^h, `text/ping^bl) », `本体$rq ~SET `PING^bl, `~client$rq ~SET %設定群~obj, `行先$rq ~SET 空~文字列, `資格証~mode$rq ~SET `include^l, `~referrer$rq ~SET `no-referrer^l, `~URL資格証を利用するか$rq ~SET ~T, `起動元~種別$rq ~SET `ping^l ◎ Let request be a new request whose URL is ping URL, method is `POST`, header list is « (`Content-Type`, `text/ping`) », body is `PING`, client is settingsObject, destination is the empty string, credentials mode is "include", referrer is "no-referrer", and whose use-URL-credentials flag is set, and whose initiator type is "ping". ◎ Let target URL be the result of encoding-parsing-and-serializing a URL given the element's href attribute's value, relative to the element's node document, and then:
- %文書~URL ~LET %文書 の`~URL$doc ◎ ↓
- ~IF[ ( %文書~URL, %~ping~URL ) は`同一-生成元$である ]~OR[ %文書~URL の`~scheme$url ~NEQ `https^l ] ⇒ %要請 の`~header~list$rqに`~headerを付加する$( ( `Ping-From$h, `~ASCII符号化する$( `~URLを直列化する$( %文書~URL ) ) ) ) ◎ ↓
- %要請 の`~header~list$rqに`~headerを付加する$( ( `Ping-To$h, `~ASCII符号化する$( `~URLを直列化する$( %~target~URL ) ) ) ) ◎ If the URL of the Document object containing the hyperlink being audited and ping URL have the same origin ◎ If the origins are different, but the scheme of the URL of the Document containing the hyperlink being audited is not "https" ◎ • request must include a `Ping-From` header with, as its value, the URL of the document containing the hyperlink, and a `Ping-To` HTTP header with, as its value, the target URL. ◎ Otherwise ◎ • request must include a `Ping-To` HTTP header with, as its value, target URL. request does not include a `Ping-From` header.
- %要請 を`~fetchする$ ◎ Fetch request.
これは、 首な~fetchと`並列的$に行われてもヨイ。 また、 その~fetchの結果と独立になる。 ◎ This may be done in parallel with the primary fetch, and is independent of the result of that fetch.
~UAは、[ 利用者が この挙動を調整すること ]を許容するベキである。 例えば、 ~HTTP `Referer$h ~headerの送信を不能化する設定-時に,それも伴わせるなど。 ~UAは、 利用者の選好に基づいて,[ `ping$a 属性をまるごと, あるいは~list内の各~URLについて選択的に (例:第三者-主体~URL) ]`無視-$してもヨイ。 これは、 上の手続きに明示的に組み込まれている。 ◎ User agents should allow the user to adjust this behavior, for example in conjunction with a setting that disables the sending of HTTP `Referer` (sic) headers. Based on the user's preferences, UAs may either ignore the ping attribute altogether, or selectively ignore URLs in the list (e.g. ignoring any third-party URLs); this is explicitly accounted for in the steps above.
~UAは、 応答~内に返された`内容$【!entity bodies】を無視するモノトスル。 ~UAは、 `内容$【!response body】を受信し始めた時点で,接続を早々に~closeしてもヨイ。 ◎ User agents must ignore any entity bodies returned in the responses. User agents may close the connection prematurely once they start receiving a response body.
`ping$a 属性が在る場合、 ~UAは,利用者に次について明瞭に指示するベキである ⇒ その~hyperlinkを追うと, 副次的な要請も背後で送信される — 場合によっては、 実際の~target~URL【~ping~URL?】の~listも含めて。 ◎ When the ping attribute is present, user agents should clearly indicate to the user that following the hyperlink will also cause secondary requests to be sent in the background, possibly including listing the actual target URLs.
例えば,視覚的な~UAは、 ~hyperlinkの実際の~URLに加えて, 状態s~barや~tooltip内に~target~ping~URLの~hostnameを含めることもできる。 ◎ For example, a visual user agent could include the hostnames of the target ping URLs along with the hyperlink's actual URL in a status bar or tooltip.
注記: `ping$a 属性は、 既存技術とかぶっている — ~HTTP~redirectや[ どの~site外~linkが最も人気か追跡する/ 広告主が~linkの~click率を追跡する ]ことを~web~pageに許容する~script【!~JS】など。 ◎ The ping attribute is redundant with pre-existing technologies like HTTP redirects and JavaScript in allowing web pages to track which off-site links are most popular or allowing advertisers to track click-through rates.
しかしながら, `ping$a 属性は、 それらの代替には無い利点を利用者に供する — それは、 次に挙げることを許容する: ◎ However, the ping attribute provides these advantages to the user over those alternatives:
- 利用者が[ 最終的な~target~URLを隠蔽されずに見る ]こと。 ◎ It allows the user to see the final target URL unobscured.
- ~UAが[ 帯域外の通知について利用者に伝える ]こと。 ◎ It allows the UA to inform the user about the out-of-band notifications.
- 利用者が[ 下層の~link機能性を失うことなく, その種の通知を不能化する ]こと。 ◎ It allows the user to disable the notifications without losing the underlying link functionality.
- ~UAが[ ~target~pageをより高速に読込めるよう, 可用な~network帯域幅の利用を最適化する ]こと。 ◎ It allows the UA to optimize the use of available network bandwidth so that the target page loads faster.
したがって、[ この特能でなくとも利用者を追跡することはアリ ]ではあるが,作者には[ `ping$a 属性を利用して,~UAが利用者~体験をより透明にする ]ことが奨励される。 ◎ Thus, while it is possible to track users without this feature, authors are encouraged to use the ping attribute so that the user agent can make the user experience more transparent.
4.6.6.1. `Ping-From^h, `Ping-To^h ~header
[ `Ping-From@h , `Ping-To@h ]~HTTP要請~headerは、 `~hyperlink聴取$用の要請に内包される。 それらの値は、 `直列化-@~URL1#concept-url-serializer$された`~URL$である。 ◎ The `Ping-From` and `Ping-To` HTTP request headers are included in hyperlink auditing requests. Their value is a URL, serialized.
4.6.7. 各種~link型
この仕様にて定義される各種~link型を — 各自に対応する~keywordとともに — 下の表tに要約する。 この表tは、 規範的でない — 各種~link型の実際の定義は、 この節の各~下位節に与えられる。 ◎ The following table summarizes the link types that are defined by this specification, by their corresponding keywords. This table is non-normative; the actual definitions for the link types are given in the next few sections.
この節における用語[ `参照先~資源^i†, `現在の文書^i ]は、 順に,[ 当の~linkを表現している要素により識別される資源, 要素~自身が見出される資源 ]を指す。 ◎ In this section, the term referenced document refers to the resource identified by the element representing the link, and the term current document refers to the resource within which the element representing the link finds itself.
【† 原文は “参照先~文書( `referenced document^en )” と記しているが、 この訳では “参照先~資源” に改める (それは、`文書$以外の資源かもしれない)。 】
[ `link$e / `~a_area$ / `form$e ]要素に どの~link型が適用されるかを決定するときは、 要素の `rel^a 属性を`~ASCII空白で分割-$するモノトスル。 結果の各~tokenが、 要素に適用される各~link型に対応する~keywordを与える。 ◎ To determine which link types apply to a link, a, area, or form element, the element's rel attribute must be split on ASCII whitespace. The resulting tokens are the keywords for the link types that apply to that element.
他が指定される所を除き,同じ `rel^a 属性に同じ~keywordが重ねて指定されてはナラナイ。 ◎ Except where otherwise specified, a keyword must not be specified more than once per rel attribute.
表tに後続する一部の下位節では、 ~keyword用の同義語も~listされることもある。 指示された同義語(例えば,~keyword `copyright^l )は、[ 指定されるとおり,~UAにより取扱われる ]ことになるが,文書~内に利用してはナラナイ。 ◎ Some of the sections that follow the table below list synonyms for certain keywords. The indicated synonyms are to be handled as specified by user agents, but must not be used in documents (for example, the keyword "copyright").
どの~keywordも,常に`~ASCII大小無視$であり、 そのように比較するモノトスル。 ◎ Keywords are always ASCII case-insensitive, and must be compared as such.
したがって、 `rel="next"^c と `rel="NEXT"^c は,同じになる。 ◎ Thus, rel="next" is the same as rel="NEXT".
次に挙げる~keywordは `~body-ok@ であるとされ、 当の `link$e 要素が`~body内に許容され$るかどうかに影響する ⇒# `dns-prefetch$v, `modulepreload$v, `pingback$v, `preconnect$v, `prefetch$v, `preload$v, `stylesheet$v ◎ Keywords that are body-ok affect whether link elements are allowed in the body. The body-ok keywords are dns-prefetch, modulepreload, pingback, preconnect, prefetch, preload, and stylesheet.
~web~browserに実装される新たな~link型は、 この標準に追加されることになる。 他のものは、 `定義済み~link型の集合に対する拡張$として登録され得る。 ◎ New link types that are to be implemented by web browsers are to be added to this standard. The remainder can be registered as extensions.
~link型 | `link$e に対する効果 | `~a_area$ に対する効果 | `form$e に対する効果 | `~body-ok$? | `Link$h 処理 | 概略的な記述 |
---|---|---|---|---|---|---|
`alternate$v | `~hyperlink$ | `~hyperlink$ | `許容されない^em | ❌ | なし | 次を指す~linkを与える ⇒ 現在の文書の代替~表現 ◎ Gives alternate representations of the current document. |
`canonical$v | `~hyperlink$ | `許容されない^em | `許容されない^em | ❌ | なし | 現在の文書に選好される~URLを与える。 ◎ Gives the preferred URL for the current document. |
`author$v | `~hyperlink$ | `~hyperlink$ | `許容されない^em | ❌ | なし | 次を指す~linkを与える ⇒ 現在の文書や記事の作者 ◎ Gives a link to the author of the current document or article. |
`bookmark$v | `許容されない^em | `~hyperlink$ | `許容されない^em | ❌ | なし | 最も近い先祖~section用の~permalinkを与える。 ◎ Gives the permalink for the nearest ancestor section. |
`dns-prefetch$v | `外部~資源~link$ | `許容されない^em | `許容されない^em | ✅ | なし | 次を指定する ⇒ ~UAは、 参照先~資源の`生成元$用に, 先取的に~DNS解決を遂行するベキである。 ◎ Specifies that the user agent should preemptively perform DNS resolution for the target resource's origin. expect Internal Resource not allowed · · |
`expect$v | `内部~資源~link$ | `許容されない^em | `許容されない^em | ❌ | なし | ~target~IDを伴う要素は、 現在の文書~内に現れるものと期待する。 ◎ Expect an element with the target ID to appear in the current document. |
`external$v | `許容されない^em | `注釈$ | `注釈$ | ❌ | なし | 次を指示する ⇒ 参照先~資源は,現在の文書と同じ~siteの一部でない。 ◎ Indicates that the referenced document is not part of the same site as the current document. |
`help$v | `~hyperlink$ | `~hyperlink$ | `~hyperlink$ | ❌ | なし | 文脈に応じた~helpへの~linkを供する。 ◎ Provides a link to context-sensitive help. |
`icon$v | `外部~資源~link$ | `許容されない^em | `許容されない^em | ❌ | なし | 現在の文書を表現する~iconを取込む。 ◎ Imports an icon to represent the current document. |
`manifest$v | `外部~資源~link$ | `許容されない^em | `許容されない^em | ❌ | なし | `~app~manifest$[ を取込む/へ~linkする ]。 `MANIFEST$r ◎ Imports or links to an application manifest. [MANIFEST] |
`modulepreload$v | `外部~資源~link$ | `許容されない^em | `許容されない^em | ✅ | なし | 次を指定する ⇒ ~UAは、 `~module~script$を先取的に~fetchした上で, 後の評価~用に文書の`~module~map$に格納するモノトスル。 ~UAはまた、 任意選択で,~moduleの依存物も~fetchできる。 ◎ Specifies that the user agent must preemptively fetch the module script and store it in the document's module map for later evaluation. Optionally, the module's dependencies can be fetched as well. |
`license$v | `~hyperlink$ | `~hyperlink$ | `~hyperlink$ | ❌ | なし | 次を指示する ⇒ 現在の文書の主要な内容は、 参照先~資源に述べられる著作権~licenseの下にある。 ◎ Indicates that the main content of the current document is covered by the copyright license described by the referenced document. |
`next$v | `~hyperlink$ | `~hyperlink$ | `~hyperlink$ | ❌ | なし | 次を指示する ⇒ 現在の文書は,ある 文書~列に属していて、 参照先~資源は,その連列における次の文書である。 ◎ Indicates that the current document is a part of a series, and that the next document in the series is the referenced document. |
`nofollow$v | `許容されない^em | `注釈$ | `注釈$ | ❌ | なし | 次を指示する ⇒ 現在の文書の著作者/版元は、 参照先~資源を承認していない。 ◎ Indicates that the current document's original author or publisher does not endorse the referenced document. |
`noopener$v | `許容されない^em | `注釈$ | `注釈$ | ❌ | なし | `補助でない閲覧~文脈$を伴う`~top-level辿可能$navを作成する — 当の~hyperlinkが,さもなければ`補助~閲覧~文脈$を伴うそれを作成することになる (すなわち、 適切な `target$a 属性~値を有する)ならば。 ◎ Creates a top-level traversable with a non-auxiliary browsing context if the hyperlink would otherwise create one that was auxiliary (i.e., has an appropriate target attribute value). |
`noreferrer$v | `許容されない^em | `注釈$ | `注釈$ | ❌ | なし | `Referer$h ~headerを含めない。 加えて, `noopener$v と同じ効果になる。 ◎ No `Referer` (sic) header will be included. Additionally, has the same effect as noopener. |
`opener$v | `許容されない^em | `注釈$ | `注釈$ | ❌ | なし | `補助~閲覧~文脈$を作成する — 当の~hyperlinkが,さもなければ[ `補助でない閲覧~文脈$を伴う`~top-level辿可能$nav ]を作成することになるならば (すなわち、 `target$a 属性は `_blank^l を値にとる場合には)。 ◎ Creates an auxiliary browsing context if the hyperlink would otherwise create a top-level traversable with a non-auxiliary browsing context (i.e., has "_blank" as target attribute value). |
`pingback$v | `外部~資源~link$ | `許容されない^em | `許容されない^em | ✅ | なし | 現在の文書への~pingbackを取扱う~pingback~serverの~addressを与える。 ◎ Gives the address of the pingback server that handles pingbacks to the current document. |
`preconnect$v | `外部~資源~link$ | `許容されない^em | `許容されない^em | ✅ | あり | 次を指定する ⇒ ~UAは、 参照先~資源の`生成元$へ先取的に接続するベキである。 ◎ Specifies that the user agent should preemptively connect to the target resource's origin. |
`prefetch$v | `外部~資源~link$ | `許容されない^em | `許容されない^em | ✅ | なし | 次を指定する ⇒ ~UAは、 参照先~資源を — ~~後続する`~navi$に要求されると見込まれるので — 先取的に`~fetch$して~cacheするベキである。 ◎ Specifies that the user agent should preemptively fetch and cache the target resource as it is likely to be required for a followup navigation. |
`preload$v | `外部~資源~link$ | `許容されない^em | `許容されない^em | ✅ | あり | 次を指定する ⇒ ~UAは、[ `as$aL 属性が与える`行先の素$, `fetchpriority$aL 属性が与える`優先度$rq 【!未更新な旧記述 (and the priority associated with the corresponding destination)】 ]に則って, 現在の`~navi$用に参照先~資源を先取的に`~fetch$して~cacheするモノトスル。 ◎ Specifies that the user agent must preemptively fetch and cache the target resource for current navigation according to the potential destination given by the as attribute (and the priority associated with the corresponding destination). |
`prev$v | `~hyperlink$ | `~hyperlink$ | `~hyperlink$ | ❌ | なし | 次を指示する ⇒ 現在の文書は,ある文書~列に属していて、 参照先~資源は,その連列における前の文書である。 ◎ Indicates that the current document is a part of a series, and that the previous document in the series is the referenced document. |
`privacy-policy$v | `~hyperlink$ | `~hyperlink$ | `許容されない^em | ❌ | なし | 次を指す~linkを与える ⇒ ~dataの収集とその用法に関して現在の文書に適用される実施についての情報 ◎ Gives a link to information about the data collection and usage practices that apply to the current document. |
`search$v | `~hyperlink$ | `~hyperlink$ | `~hyperlink$ | ❌ | なし | 次を指す~linkを与える ⇒ 現在の文書や関係する各~pageにわたって探索するときに利用できる資源 ◎ Gives a link to a resource that can be used to search through the current document and its related pages. |
`stylesheet$v | `外部~資源~link$ | `許容されない^em | `許容されない^em | ✅ | なし | ~stylesheetを取込む。 ◎ Imports a style sheet. |
`tag$v | `許容されない^em | `~hyperlink$ | `許容されない^em | ❌ | なし | 現在の文書に適用する ~tag(所与の~addressにより識別される)を与える。 ◎ Gives a tag (identified by the given address) that applies to the current document. |
`terms-of-service$v | `~hyperlink$ | `~hyperlink$ | `許容されない^em | ❌ | なし | 次を指す~linkを与える ⇒ 現在の文書の提供元と現在の文書を利用したいと望む利用者との間の取決めについての情報 ◎ Gives a link to information about the agreements between the current document's provider and users who wish to use the current document. |
4.6.7.1. ~link型 `alternate^v
`alternate$v ~keywordは、[ `link$e / `~a_area$ ]要素に利用してもヨイ。 ◎ The alternate keyword may be used with link, a, and area elements.
この~keywordの意味は、 他の属性の値に依存する: ◎ The meaning of this keyword depends on the values of the other attributes.
- 要素は `link$e 要素であって, その `rel$aL 属性は ~keyword `stylesheet$v を包含する場合: ◎ If the element is a link element and the rel attribute also contains the keyword stylesheet
- `alternate$v ~keywordは、 `stylesheet$v ~keywordの意味を,そこに述べられる仕方で改変する。 `alternate$v ~keyword自身は、 ~linkを作成しない。 ◎ The alternate keyword modifies the meaning of the stylesheet keyword in the way described for that keyword. The alternate keyword does not create a link of its own.
-
次の一連の `link$e 要素は、 いずれも~stylesheetを供する: ◎ Here, a set of link elements provide some style sheets:
`rel-alternate-1^xCode - `alternate$v ~keywordが[[ `application/rss+xml^v / `application/atom+xml^v ]いずれかの値に設定されている `type$a 属性 ]と併用されている場合 (A): ◎ If the alternate keyword is used with the type attribute set to the value application/rss+xml or the value application/atom+xml
- この~keywordは、 ~syndication-feed( `Web syndication feed^en )を参照する`~hyperlink$を作成する (現在の~pageと正確に同じ内容を~syndicateしていることは必要yでないが)。 ◎ The keyword creates a hyperlink referencing a syndication feed (though not necessarily syndicating exactly the same content as the current page).
- ~feedの自動発見( `autodiscovery^en )の目的においては、 ~UAは,同じ条件 (A) に該当する 文書~内のすべての `link$e 要素を考慮するベキである。 既定の~syndication-feedの概念を備えていない~UAは、 該当する要素のうち`~tree順序$で最初のものを既定として利用するベキである。 ◎ For the purposes of feed autodiscovery, user agents should consider all link elements in the document with the alternate keyword used and with their type attribute set to the value application/rss+xml or the value application/atom+xml. If the user agent has the concept of a default syndication feed, the first such element (in tree order) should be used as the default.
-
次の `link$e 要素は、 ある~blog用の~syndication-feedを与える: ◎ The following link elements give syndication feeds for a blog:
`rel-alternate-2^xCode~feedの自動発見に携わる~UAは、 これらの `link$e 要素を — 最初のそれを既定として — 利用することになる(適用-可能な所では)。 ◎ Such link elements would be used by user agents engaged in feed autodiscovery, with the first being the default (where applicable).
-
`a$e 要素を利用して、 様々な~syndication-feedを利用者に提供する例: ◎ The following example offers various different syndication feeds to the user, using a elements:
`rel-alternate-3^xCodeこれらの~linkは、 ~feedの自動発見には利用されないことになる。 ◎ These links would not be used in feed autodiscovery.
- 他の場合: ◎ Otherwise
- `alternate$v ~keywordは、 現在の文書の代替~表現を参照している`~hyperlink$を作成する。 ◎ The keyword creates a hyperlink referencing an alternate representation of the current document.
-
[ `hreflang$a, `type$a ]属性が、 参照先~資源の資質を与える: ◎ The nature of the referenced document is given by the hreflang, and type attributes.
- `hreflang$a 属性と併用されていて, その属性の値が`文書~要素$の`言語$から相違する場合、 参照先~資源は翻訳であることを指示する。 ◎ If the alternate keyword is used with the hreflang attribute, and that attribute's value differs from the document element's language, it indicates that the referenced document is a translation.
- `type$a 属性と併用された場合、 次を指示する ⇒ 参照先~資源は,[ 指定された形式 ]による[ 現在の文書の別形式 ]である ◎ If the alternate keyword is used with the type attribute, it indicates that the referenced document is a reformulation of the current document in the specified format.
[ `hreflang$a, `type$a ]両~属性を組合せて指定することもできる。 ◎ The hreflang and type attributes can be combined when specified with the alternate keyword.
-
同じ~pageの複数の~version — 代替~形式を利用するもの, 他の言語~用のもの, 他の媒体~用のもの — を指定する例: ◎ The following example shows how you can specify versions of the page that use alternative formats, are aimed at other languages, and that are intended for other media:
`rel-alternate-4^xCode - この関係性は、 推移的である — すなわち,ある文書が~link型 `alternate$v で他の複数の文書に~linkしている場合、 それらの文書が~link元~の文書の代替~表現であることのみならず, それらの文書~すべてが互いの代替~表現であることも含意する。 ◎ This relationship is transitive — that is, if a document links to two other documents with the link type "alternate", then, in addition to implying that those documents are alternative representations of the first document, it is also implying that those two documents are alternative representations of each other.
4.6.7.3. ~link型 `bookmark^v
`bookmark$v ~keywordは:
- `~a_area$ 要素に利用してもヨイ。
- `~hyperlink$を作成する。
`bookmark$v ~keywordは、 次のもの用の~permalinkを与える ⇒ 要素の先祖として `article$e 要素が[ 在るならば それらのうち要素に最も近いもの / 無いならば 要素が`最も近く属する~section^【!#associatedSection】 ] ◎ The bookmark keyword gives a permalink for the nearest ancestor article element of the linking element in question, or of the section the linking element is most closely associated with, if there are no ancestor article elements.
次の~code片には、 3 個の~permalinkがある。 ~UAは、 各~permalinkの~~所在から,それを文書のどの部位に適用するかを決定できる。 ◎ The following snippet has three permalinks. A user agent could determine which permalink applies to which part of the spec by looking at where the permalinks are given.
`link-type-bookmark-1^xCode4.6.7.4. ~link型 `canonical^v
`canonical$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `~hyperlink$を作成する。
`canonical$v ~keywordは、[ `href$aL 属性に与えた~URLが,現在の文書に選好される~URLである ]ことを指示する。 それは、 探索~engineが重複する内容を抑制し易くするためにある — 詳細は、 `正準的な~link関係^cite( `The Canonical Link Relation^en ) `RFC6596$r に述べられる。 ◎ The canonical keyword indicates that URL given by the href attribute is the preferred URL for the current document. That helps search engines reduce duplicate content, as described in more detail in The Canonical Link Relation. [RFC6596]
4.6.7.5. ~link型 `dns-prefetch^v
`dns-prefetch$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `外部~資源~link$を作成する。
- `~body-ok$である。
`dns-prefetch$v ~keywordは、 次を指示する ⇒ 利用者は,参照先~資源を要求する見込みが高いので、[ ~UAが, 資源の`生成元$用に~DNS解決を先取的に遂行して、 その待時間~costを先取りする ]ことで,利用者~体験は改善されると見込まれる。 ◎ The dns-prefetch keyword indicates that preemptively performing DNS resolution for the origin of the specified resource is likely to be beneficial, as it is highly likely that the user will require resources located at that origin, and the user experience would be improved by preempting the latency costs associated with DNS resolution.
`dns-prefetch$v ~keywordにより与えられる資源~用には、 既定の型は無い。 ◎ There is no default type for resources given by the dns-prefetch keyword.
この型の `link$e 要素 %link の`~link先の資源を~fetchして処理する$適切な時点は: ◎ The appropriate times to fetch and process this type of link are:
- %link は`閲覧~文脈に接続されて$いる下で, %link 上に`外部~資源~link$が作成されたとき。 ◎ When the external resource link is created on a link element that is already browsing-context connected.
- %link は`外部~資源~link$を与えている下で, %link が`閲覧~文脈に接続された$とき。 ◎ When the external resource link's link element becomes browsing-context connected.
- %link は[ `外部~資源~link$を与えている ]かつ[ `閲覧~文脈に接続されて$いる ]下で, %link の `href$aL 属性が変化したとき。 ◎ When the href attribute of the link element of an external resource link that is already browsing-context connected is changed.
この型の`~link先の資源を~fetchして処理する$ときは、 所与の ( `link$e 要素 %link ) に対し: ◎ The fetch and process the linked resource steps for this type of linked resource, given a link element el, are:
- %~URL ~LET `~URLを符号化法の下で相対的に構文解析する$( %link の `href$aL 属性の値, %link の`~node文書$ ) ◎ Let url be the result of encoding-parsing a URL given el's href attribute's value, relative to el's node document.
- ~IF[ %~URL ~EQ `失敗^i ] ⇒ ~RET ◎ If url is failure, then return.
- %区分~key ~LET `~network区分~keyを決定する$( %link の`~node文書$に`関連な設定群~obj$ ) ◎ Let partitionKey be the result of determining the network partition key given el's node document's relevant settings object.
-
~UAは、 次を行うベキである ⇒ `生成元を解決する$( %区分~key, %~URL の`生成元$url ) ◎ The user agent should resolve an origin given partitionKey and url's origin.
注記: この~algoの結果は~cacheできるので、 未来の~fetchは高速になり得る。 ◎ As the results of this algorithm can be cached, future fetches could be faster.
4.6.7.6. ~link型 `expect^v
`expect$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `内部~資源~link$を作成する。
`expect$v ~keywordにより作成される`内部~資源~link$は、 次のために利用できる ⇒ それが`指示する要素@~HTMLnav#the-indicated-part-of-the-document$が[ 文書に接続され, 全部的に構文解析される ]まで,【当の文書の】`具現化を阻む@~HTMLdom#render-blocked$ ◎ An internal resource link created by the expect keyword can be used to block rendering until the element that it indicates is connected to the document and fully parsed.
`expect$v ~keywordにより与えられる資源~用には、 既定の型は無い。 ◎ There is no default type for resources given by the expect keyword.
`link$e 要素 %link において、 次に挙げるいずれかが生じたときは… ◎ Whenever any of the following conditions occur for a link element el:
- %link は`閲覧~文脈に接続されて$いる下で, %link 上に `expect$v による`内部~資源~link$が作成された。 ◎ the expect internal resource link is created on el that is already browsing-context connected;
- %link は `expect$v による`内部~資源~link$を与えている下で, %link が`閲覧~文脈に接続された$。 ◎ an expect internal resource link has been created on el and el becomes browsing-context connected;
- %link は[ `expect$v による`内部~資源~link$を与えている ]かつ[ `閲覧~文脈に接続されて$いる ]下で, %link の[ `href$aL / `media$aL ]属性が[ 設定-/ 変更-/除去- ]された(順不同)。 ◎ an expectinternal resource link has been created on el, el is already browsing-context connected, and el's href attribute is set, changed, or removed; or ◎ an expect internal resource link has been created on el, el is already browsing-context connected, and el's media attribute is set, changed, or removed,
…ときは、 次を遂行するとする ⇒ `内部~資源~linkを処理する$( %link ) ◎ then process el.
`内部~資源~linkを処理する@ ときは、 所与の ( `link$e 要素 %link ) に対し, 次の手続きを走らす: ◎ To process internal resource link given a link element el, run these steps:
- %文書 ~LET %link の`~node文書$ ◎ Let doc be el's node document.
- %~URL ~LET `~URLを符号化法の下で相対的に構文解析する$( %link の`href$aL 属性の値, %文書 ) ◎ Let url be the result of encoding-parsing a URL given el's href attribute's value, relative to doc.
- ~IF[ %~URL ~NEQ `失敗^i ]~OR[ ( %~URL, %文書 の`~URL$doc ) は`素片は除外する^i【!set to false】 下で`同等な~URL$でない ] ⇒# `具現化を阻まなくする$( %link ); ~RET ◎ If this fails, or if url does not equal doc's URL with exclude fragments set to false, then unblock rendering on el and return.
- %指示された要素 ~LET `指示された部位を選定する$( %文書, %~URL ) ◎ Let indicatedElement be the result of selecting the indicated part given doc and url.
-
~IF[ ~AND↓ ]… ◎ If all of the following are true:
- %文書 の`現在の準備度$doc ~EQ `loading^l ◎ doc's current document readiness is "loading";
- %link は`内部~資源~link$を作成する ◎ el creates an internal resource link;
- %link は`閲覧~文脈に接続されて$いる ◎ el is browsing-context connected;
- %link の`rel$aL 属性は `expect$v を包含する ◎ el's rel attribute contains expect;
- %link には`具現化を阻む能性$がある ◎ el is potentially render-blocking;
- %link の`media$aL 属性は`環境に合致して$いる ◎ el's media attribute matches the environment; and
-
~OR↓
- %指示された要素 は要素でない
-
~AND↓ を満たす`~HTML構文解析器$ %構文解析器 が在る
- %文書 ~EQ %構文解析器 に結付けられた`文書$
- %指示された要素 ~IN %構文解析器 の`~open要素~stack$
…ならば ⇒ `具現化を阻む$( %link ) ◎ then block rendering on el.
- ~ELSE ⇒ `具現化を阻まなくする$( %link ) ◎ Otherwise, unblock rendering on el.
次に与える %要素 用の`属性~変更-時の手続き$は、[ `expect$v による`内部~資源~link$を与える `link$e 要素 ]が %要素 の[ `id$a / `name$a ]属性に対する動的な変化に応答することを確保するために利用される — それは、 所与の ( %局所~名【, %旧-値】, %値, %名前空間 ) に対し: ◎ The following attribute change steps, given element, localName, value, and namespace, are used to ensure expect link elements respond to dynamic id and name changes:
【 %要素 は[ `内部~資源~linkを処理する$~algoの中で得られる %指示された要素 ]になることが意図されている。 】
- ~IF[ %名前空間 ~NEQ ~NULL ] ⇒ ~RET ◎ If namespace is not null, then return.
- ~IF[ %要素 ~IN ある`~HTML構文解析器$の`~open要素~stack$ ] ⇒ ~RET ◎ If element is in a stack of open elements of an HTML parser, then return.
-
~IF[ ~OR↓ ]… ◎ If any of the following is true:
- %局所~名 ~EQ `id$a ◎ localName is id; or
- [ %局所~名 ~EQ `name$a ]~AND[ %要素 は `a$e 要素である ] ◎ localName is name and element is an a element,
…ならば ⇒ `内部~資源~link群を処理する$( %要素 の`~node文書$ ) ◎ then process internal resource links given element's node document.
4.6.7.7. ~link型 `external^v
`external$v ~keywordは:
- [ `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$は作成しない。
- 要素が作成する[ 他の~keywordによる~hyperlink, または`暗黙な~hyperlink$ ]を`注釈する$。
`external$v ~keywordは、[ 参照先~資源は、 現在の文書が属する~siteには属していない ]ことを指示する。 ◎ The external keyword indicates that the link is leading to a document that is not part of the site that the current document forms a part of.
4.6.7.8. ~link型 `help^v
`help$v ~keywordは:
- [ `link$e / `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$を作成する。
`help$v ~keywordは、[ `~a_area$ / `form$e ]要素~用には,次を指示する ⇒ 参照先~資源は、[ ~hyperlinkを定義している要素の親, および その子たち ]用に更なる~help情報を供している。 ◎ For a, area, and form elements, the help keyword indicates that the referenced document provides further help information for the parent of the element defining the hyperlink, and its children.
次の例では、 ~form~controlには,文脈に応じた~helpが結付けられる。 例えば,~UAは、[ 利用者が Help ~UIkeyや F1 ~UIkeyを押下げた ]ときに[ この情報を利用して,参照先~資源を表示する ]こともできる。 ◎ In the following example, the form control has associated context-sensitive help. The user agent could use this information, for example, displaying the referenced document if the user presses the "Help" or "F1" key.
`link-type-help-1^xCode`help$v ~keywordは、 `link$e 要素~用には,次を指示する ⇒ 参照先~資源は、 ~page一体~用の~helpを供している。 ◎ For link elements, the help keyword indicates that the referenced document provides help for the page as a whole.
~browserによっては、 `~a_area$ 要素~用の `help$v ~keywordに対し, ~linkに対し他と異なる~cursorを利用するものもある。 ◎ For a and area elements, on some browsers, the help keyword causes the link to use a different cursor.
4.6.7.9. ~link型 `icon^v
`icon$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `外部~資源~link$を作成する。
参照先~資源は、 ~pageや~siteを表現している~iconである — ~UAは、 ~pageを~UI内に表現するときに,それを利用するベキである。 ◎ The specified resource is an icon representing the page or site, and should be used by the user agent when representing the page in the user interface.
~iconは、[ 聴覚-~icon / 視覚-~icon / 他の種類の~icon ]にもなり得る。 複数の~iconが供された場合、 ~UAには,次が要求される: ◎ Icons could be auditory icons, visual icons, or other kinds of icons. If multiple icons are provided, the user agent must\
- [ `type$aL, `media$aL, `sizes$aL ]属性に則って最も適切な~iconを選定する。 ◎ select the most appropriate icon according to the type, media, and sizes attributes.\
- 等しく適切な~iconが複数ある場合、 ~iconの~listを収集した時点で宣言されていたもののうち,`~tree順序$で最後のものを利用する。 ◎ If there are multiple equally appropriate icons, user agents must use the last one declared in tree order at the time that the user agent collected the list of icons.\
- ある~iconを利用しようと試行したが,調べていくうちに不適切であると~~判明した場合 (例:~supportされない形式を利用している)、 その次に適切な~iconを試行する。 ◎ If the user agent tries to use an icon but that icon is determined, upon closer examination, to in fact be inappropriate (e.g. because it uses an unsupported format), then the user agent must try the next-most-appropriate icon as determined by the attributes.
注記: ~UAには、[ ~iconの~listが変化したとき, 選定する~iconを更新すること ]は要求されないが,そうすることが奨励される。 ◎ User agents are not required to update icons when the list of icons changes, but are encouraged to do so.
`icon$v ~keywordにより与えられる資源~用には、 既定の型は無い。 しかしながら,`資源の型を決定する$目的においては、 ~UAは,資源は画像であるものと予期するモノトスル。 ◎ There is no default type for resources given by the icon keyword. However, for the purposes of determining the type of the resource, user agents must expect the resource to be an image.
`sizes$aL 属性の値を成す各~keywordは、 画像画素~数による~icon~sizeを表現する(`~CSS~pixel$ではなく)。 ◎ The sizes keywords represent icon sizes in raw pixels (as opposed to CSS pixels).
注記: 1 `~CSS~pixel$が 2 機器画素になる~display( 2x, 192dpi )で, ~iconを 50 `~CSS~pixel$ 幅で表示するために必要な横幅は、 100 画像画素になる。 この特能は、[ 小さい高解像度~icon(例: 50×50 2x )用, 大きい低解像度~icon(例: 100×100 1x )用 ]に異なる資源を利用するよう指示することは,~supportしない。 ◎ An icon that is 50 CSS pixels wide intended for displays with a device pixel density of two device pixels per CSS pixel (2x, 192dpi) would have a width of 100 raw pixels. This feature does not support indicating that a different resource is to be used for small high-resolution icons vs large low-resolution icons (e.g. 50×50 2x vs 100×100 1x).
~UAは、 属性の値を先ず`~ASCII空白で分割-$して, 結果を成す各~keywordが表現するものを次に従って決定するモノトスル: ◎ To parse and process the attribute's value, the user agent must first split the attribute's value on ASCII whitespace, and must then parse each resulting keyword to determine what it represents.
- ~keywordが `any@v に`~ASCII大小無視$で合致するならば、 資源は拡縮-可能な~icon — 例えば,~SVG画像 — を包含することを表現する。 ◎ The any keyword represents that the resource contains a scalable icon, e.g. as provided by an SVG image.
-
他の場合,~keywordが ~AND↓ を満たす文字列[ %w, %x, %h ]が成す並びであるならば:
- %w, %h とも,`妥当な負でない整数$である
- %w, %h とも,先頭の文字 ~NEQ 文字 `0030^U ( `0^l )
- %x ~IN { `0078^U ( `x^l ), `0058^U ( `X^l ) }
…ならば ⇒ ~keywordは、[ 資源は~bitmap~iconを包含していて,その機器画素による ( 横幅, 縦幅 ) は ( %w, %h ) を,順に`負でない整数として構文解析-$した結果で与えられる ]ことを表現する。
◎ Other keywords must be further parsed as follows to determine what they represent: • If the keyword doesn't contain exactly one U+0078 LATIN SMALL LETTER X or U+0058 LATIN CAPITAL LETTER X character, then this keyword doesn't represent anything. Return for that keyword. • Let width string be the string before the "x" or "X". • Let height string be the string after the "x" or "X". • If either width string or height string start with a U+0030 DIGIT ZERO (0) character or contain any characters other than ASCII digits, then this keyword doesn't represent anything. Return for that keyword. • Apply the rules for parsing non-negative integers to width string to obtain width. • Apply the rules for parsing non-negative integers to height string to obtain height. • The keyword represents that the resource contains a bitmap icon with a width of width device pixels and a height of height device pixels. - 他の場合、 ~keywordは何も表現しない。 ◎ ↑
`sizes$aL 属性に指定される各~keywordは、 ~link先の資源の実際に可用でない~icon~sizeを表現してはナラナイ。 ◎ The keywords specified on the sizes attribute must not represent icon sizes that are not actually available in the linked resource.
この型の`~link先の資源~fetch用に設定しておく$ときは、 所与の ( `link$e 要素 %link, `要請$ %要請 ) に対し: ◎ The linked resource fetch setup steps for this type of linked resource, given a link element el and request request, are:
- %要請 の`行先$rq ~SET `image^l ◎ Set request's destination to "image".
- ~RET ~T ◎ Return true.
この型の~link先の資源~用の`~link~headerを処理する手続き$は、 何もしない。 ◎ The process a link header steps for this type of linked resource are to do nothing.
`link$e 要素が `icon$v ~keywordを有さない場合、[ 要素の`~node文書$ %文書 の`~URL$docの`~scheme$url ~IN `~HTTP_S~scheme$ ]ならば,~UAは 次の手続きを`並列的$に走らせてもヨイ: ◎ In the absence of a link with the icon keyword, for Document objects whose URL's scheme is an HTTP(S) scheme, user agents may instead run these steps in parallel:
- %要請 ~LET 新たな`要請$ — その ⇒# `~URL$rq ~SET ~URL `/favicon.ico^l を %文書 の~URLを~~基準に解決した結果【`~URLを符号化法の下で相対的に構文解析する$( `/favicon.ico^l, %文書 ) ?】, `~client$rq ~SET %文書 に`関連な設定群~obj$, `行先$rq ~SET `image^l, `同期~flag$rq ~SET ~T, `資格証~mode$rq ~SET `include^l, `~URL資格証を利用するか$rq ~SET ~T ◎ Let request be a new request whose URL is the URL record obtained by resolving the URL "/favicon.ico" against the Document object's URL, client is the Document object's relevant settings object, destination is "image", synchronous flag is set, credentials mode is "include", and whose use-URL-credentials flag is set.
- %応答 ~LET %要請 を`~fetch$した結果 ◎ Let response be the result of fetching request.
- %応答 の`安全でない応答$を `icon$v ~keywordを利用して宣言された~iconであるかのように利用する。 ◎ Use response's unsafe response as an icon as if it had been declared using the icon keyword.
~appの冒頭にて,いくつかの~iconを取込む例: ◎ The following snippet shows the top part of an application with several icons.
`rel-icon-1^xCode歴史的な理由から、 `icon$v ~keywordには,~keyword `shortcut^v が先行してもヨイ。 ただし,その場合には、 `rel$aL【!`rel$a】 属性の値~全体が, 次を順に連結した結果に`~ASCII大小無視$で合致しなければナラナイ ⇒# `shortcut^l, 1 個の文字 `0020^U `SPACE^cn, `icon^l ◎ For historical reasons, the icon keyword may be preceded by the keyword "shortcut". If the "shortcut" keyword is present, the rel attribute's entire value must be an ASCII case-insensitive match for the string "shortcut icon" (with a single U+0020 SPACE character between the tokens and no other ASCII whitespace).
4.6.7.10. ~link型 `license^v
`license$v ~keywordは:
- [ `link$e / `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$を作成する。
`license$v ~keywordは、 次を指示する ⇒ 現在の文書の主要な内容は、 参照先~資源が供する著作権~license条項の下に供されている。 ◎ The license keyword indicates that the referenced document provides the copyright license terms under which the main content of the current document is provided.
この仕様は、 この~~目的において,[ 文書のどの部分が主要な内容でどの部分がそうでないと判断されるか ]は指定しない。 それは、 利用者に明瞭にされるベキである。 ◎ This specification does not specify how to distinguish between the main content of a document and content that is not deemed to be part of that main content. The distinction should be made clear to the user.
写真共有~siteを考える。 その~site上の~pageは、 写真とその記述のために,次のように~mark-upされているとする: ◎ Consider a photo sharing site. A page on that site might describe and show a photograph, and the page might be marked up as follows:
`link-type-license-1^xCodeこの事例の `license$v は、 文書~一体でなく写真(文書の主要な内容)のみに適用される。 特に,~page自身の~designは、 文書の下端に与えられる著作権の下にある。 これは、 もっと明瞭な~styleで表すこともできる (例:~license~linkを写真の近くの目立つ所に置く一方で、 ~pageの著作権は,この例のように~pageの `footer^e 内の `small^e 内の~textに与えるなど)。 ◎ In this case the license applies to just the photo (the main content of the document), not the whole document. In particular not the design of the page itself, which is covered by the copyright given at the bottom of the document. This could be made clearer in the styling (e.g. making the license link prominently positioned near the photograph, while having the page copyright in light small text at the foot of the page).
同義語: 歴史的な理由から、 ~UAは,~keyword `copyright^v を `license$v と同じに扱うモノトスル。 ◎ Synonyms: For historical reasons, user agents must also treat the keyword "copyright" like the license keyword.
4.6.7.11. ~link型 `manifest^v
`manifest$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `外部~資源~link$を作成する。
`manifest$v ~keywordは、 次を指示する ⇒ [ 現在の文書に結付けられる~metadata ]を供する~manifest~file。 ◎ The manifest keyword indicates the manifest file that provides metadata associated with the current document.
`manifest$v ~keywordにより与えられる資源~用には、 既定の型は無い。 ◎ There is no default type for resources given by the manifest keyword.
この~link型~用に`~link先の資源を~fetchして処理する$適切な時点は、 【当の~manifest~fileを利用している】~web~appが: ◎ ↓
- `~install済み$でない場合、 それが必要yであると~UAが判断したときである。 例えば、 利用者が当の`~web~appを~installする$よう選んだとき。 ◎ When a web application is not installed, the appropriate time to fetch and process the linked resource for this link type is when the user agent deems it necessary. For example, when the user chooses to install the web application.
-
`~install済み$である場合、 `link$e 要素 %link に対し,次のいずれかが生じたときである: ◎ For an installed web application, the appropriate times to fetch and process the linked resource for this link type are:
- %link は`閲覧~文脈に接続されて$いる下で, %link 上に`外部~資源~link$が作成されたとき。 ◎ When the external resource link is created on a link element that is already browsing-context connected.
- %link は`外部~資源~link$を与えている下で, %link が`閲覧~文脈に接続された$とき。 ◎ When the external resource link's link element becomes browsing-context connected.
- %link は[ `外部~資源~link$を与えている ]かつ[ `閲覧~文脈に接続されて$いる ]下で, %link の `href$aL 属性が変化したとき。 ◎ When the href attribute of the link element of an external resource link that is already browsing-context connected is changed.
いずれの事例でも,利用してもヨイ `link$e 要素は、[ `rel$aL 属性が~token `manifest$v を包含するもの ]のうち`~tree順序$で最初のものに限るとする。 ◎ In any case, only the first link element in tree order whose rel attribute contains the token manifest may be used.
~UAは、 この~link型に対しては,`~load~eventを遅延-$しないモノトスル。 ◎ A user agent must not delay the load event for this link type.
この型の`~link先の資源~fetch用に設定しておく$ときは、 所与の ( `link$e 要素 %link, `要請$ %要請 ) に対し: ◎ The linked resource fetch setup steps for this type of linked resource, given a link element el and request request, are:
- %~navigable ~LET %link の`~node文書$の`~node~navigable$ ◎ Let navigable be el's node document's node navigable.
- ~IF[ %~navigable ~EQ ~NULL ] ⇒ ~RET ~F ◎ If navigable is null, then return false.
- ~IF[ %~navigable は`~top-level辿可能$navでない ] ⇒ ~RET ~F ◎ If navigable is not a top-level traversable, then return false.
- %要請 の ⇒# `起動元$rq ~SET `manifest^l, `行先$rq ~SET `manifest^l, `~mode$rq ~SET `cors^l, `資格証~mode$rq ~SET %link の `crossorigin$aL 内容~属性~用の`~CORS設定群~属性の資格証~mode$ ◎ Set request's initiator to "manifest". ◎ Set request's destination to "manifest". ◎ Set request's mode to "cors". ◎ Set request's credentials mode to the CORS settings attribute credentials mode for el's crossorigin content attribute.
- ~RET ~T ◎ Return true.
この型の`~link先の資源を処理する$ときは、 所与の ( `link$e 要素 %link, 真偽値 %成功か, `応答$ %応答, `~byte列$ %本体~byte列 ) に対し: ◎ To process this type of linked resource given a link element el, boolean success, response response, and byte sequence bodyBytes:
- ~IF[ %応答 の`~Content-Type~metadata$は`~JSON~MIME型$でない ] ⇒ %成功か ~SET ~F ◎ If response's Content-Type metadata is not a JSON MIME type, then set success to false.
-
~IF[ %成功か ~EQ ~T ]: ◎ If success is true:
- %文書~URL ~LET %link の`~node文書$の`~URL$doc ◎ Let document URL be el's node document's URL.
- %~manifest~URL ~LET %応答 の`~URL$rs ◎ Let manifest URL be response's URL.
- `~manifestを処理する$( %文書~URL, %~manifest~URL, %本体~byte列 ) `MANIFEST$r ◎ Process the manifest given document URL, manifest URL, and bodyBytes. [MANIFEST]
この型の~link先の資源~用の`~link~headerを処理する手続き$は、 何もしない。 ◎ The process a link header steps for this type of linked resource are to do nothing.
4.6.7.12. ~link型 `modulepreload^v
`modulepreload$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `外部~資源~link$を作成する。
- `~body-ok$である。
`modulepreload$v ~keywordは、 `preload$v ~keywordに対する特化された代替であり,`~module~script$の処理~modelを~preloadする方へ~~仕向ける。 特に,~fetch時には、 ~module~scriptに特有な挙動を利用して (例えば、 `crossorigin$aL 属性に対する解釈は異なる), その結果を — 後の評価~用に — 適切な`~module~map$docの中に配置する。 対照的に, `preload$v ~keywordを利用する類似な`外部~資源~link$は、 文書の`~module~map$docに影響することなく,結果を~preload~cache内に配置する。 ◎ The modulepreload keyword is a specialized alternative to the preload keyword, with a processing model geared toward preloading module scripts. In particular, it uses the specific fetch behavior for module scripts (including, e.g., a different interpretation of the crossorigin attribute), and places the result into the appropriate module map for later evaluation. In contrast, a similar external resource link using the preload keyword would place the result in the preload cache, without affecting the document's module map.
加えて,実装は、[ `~module~script$が その依存物も宣言する事による利点 ]をとって,[ ~moduleに指定された依存物を~fetchする ]こともできる。 これは、 最適化の機会として意図されている — ~UAは、[ それらの依存物も,後で ほぼ必要になると見込まれる ]ことを知るので。 それは一般に、 ~swなどの技術を用いるか, ~server側で監視しない限り,観測-可能にならない。 注意点として、 適切な[ `load$et / `error$et ]~eventは,指定された~moduleが~fetchされた後に — 依存物を待機することなく — 生じることになる。 ◎ Additionally, implementations can take advantage of the fact that module scripts declare their dependencies in order to fetch the specified module's dependency as well. This is intended as an optimization opportunity, since the user agent knows that, in all likelihood, those dependencies will also be needed later. It will not generally be observable without using technology such as service workers, or monitoring on the server side. Notably, the appropriate load or error events will occur after the specified module is fetched, and will not wait for any dependencies.
~UAは、 この~link型に対しては,`~load~eventを遅延-$しないモノトスル。 ◎ A user agent must not delay the load event for this link type.
そのような `link$e 要素 %link 用に`~link先の資源を~fetchして処理する$適切な時点は: ◎ The appropriate times to fetch and process the linked resource for such a link are:
- %link は`閲覧~文脈に接続されて$いる下で, %link 上に`外部~資源~link$が作成されたとき。 ◎ When the external resource link is created on a link element that is already browsing-context connected.
- %link は`外部~資源~link$を与えている下で, %link が`閲覧~文脈に接続された$とき。 ◎ When the external resource link's link element becomes browsing-context connected.
- %link は[ `外部~資源~link$を与えている ]かつ[ `閲覧~文脈に接続されて$いる ]下で, %link の `href$aL 属性が変化したとき。 ◎ When the href attribute of the link element of an external resource link that is already browsing-context connected is changed.
注記: 一部の他の~link関係と違って,関連な[ `link$e の属性 ( `as$aL, `crossorigin$aL, `referrerpolicy$aL など) ]を変更しても,新たな~fetchが誘発されることはない。 文書の`~module~map$docは,以前の~fetchによりすでに拡充されていて,再度~fetchするのは~~無駄になるからである。 ◎ Unlike some other link relations, changing the relevant attributes (such as as, crossorigin, and referrerpolicy) of such a link does not trigger a new fetch. This is because the document's module map has already been populated by a previous fetch, and so re-fetching would be pointless.
`modulepreload$v ~link用の`~link先の資源を~fetchして処理する$ときは、 所与の ( `link$e 要素 %link ) に対し,次に従う: ◎ The fetch and process the linked resource algorithm for modulepreload links, given a link element el, is as follows:
- %~URL文字列 ~LET [ %link は `href$aL 属性を有するならば その値 / ~ELSE_ 空~文字列 ] ◎ ↓
- ~IF[ %~URL文字列 ~EQ 空~文字列 ] ⇒ ~RET ◎ If el's href attribute's value is the empty string, then return.
- %行先 ~LET %link の `as$aL 属性の現在の状態( `行先$rq ) ◎ Let destination be the current state of el's as attribute (a destination),\
- ~IF[ %行先 ~EQ ε ] ⇒ %行先 ~SET `script^l ◎ or "script" if it is in no state.
-
~IF[ %行先 は`~scriptに類する行先$でない ]:
-
`要素~taskを~queueする$( `~network用~task~source$,%link, 次の手続き )
手続きは ⇒ `~eventを発火する$( %link, `error$et ) - ~RET
-
- %~URL ~LET `~URLを符号化法の下で相対的に構文解析する$( %~URL文字列, %link の`~node文書$ ) ◎ Let url be the result of encoding-parsing a URL given el's href attribute's value, relative to el's node document.
- ~IF[ %~URL ~EQ `失敗^i ] ⇒ ~RET ◎ If url is failure, then return.
- %設定群~obj ~LET %link の`~node文書$に`関連な設定群~obj$ ◎ Let settings object be el's node document's relevant settings object.
- %資格証~mode ~LET %link の `crossorigin$aL 属性~用の`~CORS設定群~属性の資格証~mode$ ◎ Let credentials mode be the CORS settings attribute credentials mode for el's crossorigin attribute.
- %暗号用~nonce ~LET %link.`CryptographicNonce$sl ◎ Let cryptographic nonce be el.[[CryptographicNonce]].
- %完全性~metadata ~LET [ %link は `integrity$aL 属性を有するならば その値 / ~ELSE_ `~module完全性~metadataを解決する$( %~URL, %設定群~obj ) ] ◎ Let integrity metadata be the value of el's integrity attribute, if it is specified, or the empty string otherwise. ◎ If el does not have an integrity attribute, then set integrity metadata to the result of resolving a module integrity metadata with url and settings object.
- %~referrer施策 ~LET %link の `referrerpolicy$aL 属性の現在の状態 ◎ Let referrer policy be the current state of el's referrerpolicy attribute.
- %~fetch優先度 ~LET %link の `fetchpriority$aL 属性の現在の状態 ◎ Let fetch priority be the current state of el's fetchpriority attribute.
- %~option群 ~LET 新たな`~script~fetch~option群$ — その ⇒# `暗号用~nonce$sfO ~SET %暗号用~nonce, `完全性~metadata$sfO ~SET %完全性~metadata, `構文解析器~metadata$sfO ~SET `not-parser-inserted^l, `資格証~mode$sfO ~SET %資格証~mode, `~referrer施策$sfO ~SET %~referrer施策, `~fetch優先度$sfO ~SET %~fetch優先度 ◎ Let options be a script fetch options whose cryptographic nonce is cryptographic nonce, integrity metadata is integrity metadata, parser metadata is "not-parser-inserted", credentials mode is credentials mode, referrer policy is referrer policy, and fetch priority is fetch priority..
-
`~modulepreload~script~graphを~fetchする$( %~URL, %行先, %設定群~obj, %~option群, 次に与える手続き ) ◎ Fetch a modulepreload module script graph given url, destination, settings object, options,\
手続きは、 所与の ( %結果 ) に対し: ◎ and with the following steps given result:
- ~IF[ %結果 ~EQ ~NULL ] ⇒ `~eventを発火する$( %link, `error$et ) ◎ If result is null, then fire an event named error at el, and return.
- ~ELSE ⇒ `~eventを発火する$( %link, `load$et ) ◎ Fire an event named load at el.
この型の~link先の資源~用の`~link~headerを処理する手続き$は、 何もしない。 ◎ The process a link header steps for this type of linked resource are to do nothing.
次の~code片に、 いくつかの~moduleを~preloadするような,ある~appの冒頭部を示す: ◎ The following snippet shows the top part of an application with several modules preloaded:
`link-type-modulepreload-1^xCode~app用の~module~graphは、 次のようになっているとする: ◎ Assume that the module graph for the application is as follows:
ここでは,~app開発者は、 ~module~graphを成す すべての~moduleを — それらの~fetchを~UAが起動することを確保するために — `modulepreload$v を利用して宣言している。 そのように~preloadしていない場合、 ~UAは `helpers.mjs^c を発見する前に 複数回の~network往復を通わす必要があるかもしれない — HTTP/2 Server Push などの技術が~~利用中にある場合は別として。 `modulepreload$v を伴う `link$e 要素は、 このような仕方で,[ ~appの~moduleを成す “~manifest” に類するもの ]として利用できる。 ◎ Here we see the application developer has used modulepreload to declare all of the modules in their module graph, ensuring that the user agent initiates fetches for them all. Without such preloading, the user agent might need to go through multiple network roundtrips before discovering helpers.mjs, if technologies such as HTTP/2 Server Push are not in play. In this way, modulepreload link elements can be used as a sort of "manifest" of the application's modules.
`import()@~TC39#sec-import-calls$c ~callに `modulepreload$v を伴う~linkを併用することで, ~network~fetchingを事前に済ませておく方法を次の~codeに示す — `import()^c が~callされた時点で、 `~module~map$内の~moduleは,すでに準備済みになる (が,まだ評価されていない): ◎ The following code shows how modulepreload links can be used in conjunction with import() to ensure network fetching is done ahead of time, so that when import() is called, the module is already ready (but not evaluated) in the module map:
`link-type-modulepreload-2^xCode4.6.7.13. ~link型 `nofollow^v
`nofollow$v ~keywordは:
- [ `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$は作成しない。
- 要素が作成する[ 他の~keywordによる~hyperlink, または`暗黙な~hyperlink$ ]を`注釈する$。
`nofollow$v ~keywordは、 参照先~資源への~linkが次のいずれかであることを指示する:
- 現在の~pageの著作者/版元から承認されたものではない。
- 首に,現在の~pageと参照先~pageとの間で提携する者どうしの商業関係により含められている。
4.6.7.14. ~link型 `noopener^v
`noopener$v ~keywordは:
- [ `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$は作成しない。
- 要素が作成する[ 他の~keywordによる~hyperlink, または`暗黙な~hyperlink$ ]を`注釈する$。
`noopener$v ~keywordは、 次を指示する ⇒ `~hyperlink$を追った結果,新たに作成される`~top-level辿可能$navは、 `補助~閲覧~文脈$を包含しないようにする — 例: 結果の`~window$の `opener$m 取得子は、 ~NULL を返すことになる。 ◎ The keyword indicates that any newly created top-level traversable which results from following the hyperlink will not contain an auxiliary browsing context. E.g., the resulting Window's opener getter will return null.
注記: `処理~model@~HTMLds#noopener$も見よ。 ◎ See also the processing model.
次のものは、 概して,`補助~閲覧~文脈$を伴う`~top-level辿可能$navを作成する (既存のどの`~navigable$も,その`~target名$navは `example^l でないと見做すなら): ◎ This typically creates a top-level traversable with an auxiliary browsing context (assuming there is no existing navigable whose target name is "example"):
`link-type-noopener-1^xCode次のものは、 `補助でない閲覧~文脈$を作成する (上と同じと見做すなら): ◎ This creates a top-level traversable with a non-auxiliary browsing context (assuming the same thing):
`link-type-noopener-2^xCode次の 2 つは等価であり、 `親~navigable$を`~navigate$するだけである: ◎ These are equivalent and only navigate the parent navigable:
`link-type-noopener-3^xCode `link-type-noopener-4^xCode4.6.7.15. ~link型 `noreferrer^v
`noreferrer$v ~keywordは:
- [ `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$は作成しない。
- 要素が作成する[ 他の~keywordによる~hyperlink, または`暗黙な~hyperlink$ ]を`注釈する$。
`noreferrer$v ~keywordは、 次を指示する ⇒ ~linkを追うときに,~referrer情報は漏洩されない。 ◎ It indicates that no referrer information is to be leaked when following the link\
加えて,この~keywordは、 同じ条件の下で `noopener$v ~keywordの挙動も含意する。 ◎ and also implies the noopener keyword behavior under the same conditions.
注記: 処理~modelにおける `~referrerが直に操作される箇所@#noreferrer-a-area-processing-model$も見よ。 ◎ See also the processing model where referrer is directly manipulated.
例えば、 次の 2 つの挙動は同じになる ⇒# `<a href="..." rel="noreferrer" target="_blank">^c, `<a href="..." rel="noreferrer noopener" target="_blank">^c ◎ <a href="..." rel="noreferrer" target="_blank"> has the same behavior as <a href="..." rel="noreferrer noopener" target="_blank">.
4.6.7.16. ~link型 `opener^v
`opener$v ~keywordは:
- [ `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$は作成しない。
- 要素が作成する[ 他の~keywordによる~hyperlink, または`暗黙な~hyperlink$ ]を`注釈する$。
`opener$v ~keywordは、 次を指示する ⇒ `~hyperlink$を追った結果,新たに作成される`~top-level辿可能$navは、 `補助~閲覧~文脈$を包含することになる。 ◎ The keyword indicates that any newly created top-level traversable which results from following the hyperlink will contain an auxiliary browsing context.
注記: `処理~model@#opener-processing-model$も見よ。 ◎ See also the processing model.
次の例は、 `opener$v を利用して,[ ~popupされた~help~pageから,それを開いた~pageを~navigateする ]ことを許容する。 例:利用者が探しているものが,他所に見出され得る事例など。 `_blank^v ではなく,有名~targetを利用する代替もあるが、 既存の名前と衝突する~~可能性がある。 ◎ In the following example the opener is used to allow the help page popup to navigate its opener, e.g., in case what the user is looking for can be found elsewhere. An alternative might be to use a named target, rather than _blank, but this has the potential to clash with existing names.
`link-type-opener-1^xCode4.6.7.17. ~link型 `pingback^v
`pingback$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `外部~資源~link$を作成する。
- `~body-ok$である。
`pingback$v ~keywordの意味論については、 `Pingback 1.0^cite `PINGBACK$r を見よ。 ◎ For the semantics of the pingback keyword, see Pingback 1.0. [PINGBACK]
4.6.7.18. ~link型 `preconnect^v
`preconnect$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `外部~資源~link$を作成する。
- `~body-ok$である。
`preconnect$v ~keywordは、 次を指示する ⇒ 利用者は,参照先~資源を要求する見込みが高いので、 ~UAが[ 資源の`生成元$への接続を先取的に起動して,接続を確立する待時間~costを先取りする ]ことにより,利用者~体験は改善されると見込まれる。 ◎ The preconnect keyword indicates that preemptively initiating a connection to the origin of the specified resource is likely to be beneficial, as it is highly likely that the user will require resources located at that origin, and the user experience would be improved by preempting the latency costs associated with establishing the connection.
`preconnect$v ~keywordにより与えられる資源~用には、 既定の型は無い。 ◎ There is no default type for resources given by the preconnect keyword.
~UAは、 この~link型に対しては,`~load~eventを遅延-$しないモノトスル。 ◎ A user agent must not delay the load event for this link type.
この型の `link$e 要素 %link の`~link先の資源を~fetchして処理する$適切な時点は: ◎ The appropriate times to fetch and process this type of link are:
- %link は`閲覧~文脈に接続されて$いる下で, %link 上に`外部~資源~link$が作成されたとき。 ◎ When the external resource link is created on a link element that is already browsing-context connected.
- %link は`外部~資源~link$を与えている下で, %link が`閲覧~文脈に接続された$とき。 ◎ When the external resource link's link element becomes browsing-context connected.
-
%link は[ `外部~資源~link$を与えている ]かつ[ `閲覧~文脈に接続されて$いる ]下で: ◎ ↓
- %link の `href$aL 属性が変化したとき。 ◎ When the href attribute of the link element of an external resource link that is already browsing-context connected is changed.
- %link の `crossorigin$aL 属性が[ 設定- / 変更- / 除去- ]されたとき。 ◎ When the crossorigin attribute of the link element of an external resource link that is already browsing-context connected is set, changed, or removed.
この型の`~link先の資源を~fetchして処理する$ときは、 所与の ( `link$e 要素 %link ) に対し ⇒ `~preconnectする$( `要素から~link~option群を作成する$( %link ) ) ◎ The fetch and process the linked resource steps for this type of linked resource, given a link element el, are to create link options from el and to preconnect given the result.
この型の~link先の資源~用の`~link~headerを処理する手続き$は、 所与の ( `~link処理~option群$ %~option群 ) に対し ⇒ `~preconnectする$( %~option群 ) ◎ The process a link header step for this type of linked resource given a link processing options options are to preconnect given options.
`~preconnectする@ ときは、 所与の ( `~link処理~option群$ %~option群 ) に対し: ◎ To preconnect given a link processing options options:
- ~IF[ %~option群 の`href$lO ~EQ 空~文字列 ] ⇒ ~RET ◎ If options's href is an empty string, return.
-
%~URL ~LET `~URLを符号化法の下で相対的に構文解析する$( %~option群 の `href$lO, %~option群 の`基底~URL$lO ) ◎ Let url be the result of encoding-parsing a URL given options's href, relative to options's base URL.
[ 文書/環境 ]の代わりに基底~URLを渡しているが、 それは,`課題 #9715@~HTMLissue/9715$ にて追跡される。 ◎ Passing the base URL instead of a document or environment is tracked by issue #9715.
- ~IF[ %~URL ~EQ `失敗^i ] ⇒ ~RET ◎ If url is failure, then return.
- ~IF[ %~URL の`~scheme$urlは`~HTTP_S~scheme$でない ] ⇒ ~RET ◎ If url's scheme is not an HTTP(S) scheme, then return.
- %区分~key ~LET `~network区分~keyを決定する$( %~option群 の`環境$lO ) ◎ Let partitionKey be the result of determining the network partition key given options's environment.
- %資格証を利用するか ~LET ~IS[ %~option群 の `crossorigin$lO ~NEQ `匿名$st ]~OR[ ( %~option群 の`生成元$lO, %~URL の`生成元$url ) は`同一-生成元$である ] ◎ Let useCredentials be true. ◎ If options's crossorigin is Anonymous and options's origin does not have the same origin as url's origin, then set useCredentials to false.
-
~UAは、 次を遂行するベキである ⇒ `接続を得する$( %区分~key, %~URL の`生成元$url, %資格証を利用するか ) ◎ The user agent should obtain a connection given partitionKey, url's origin, and useCredentials.
注記: ここで得された接続は、 直には利用されない。 それは、 後続な利用-用に`接続~pool$内に残り続けることになる。 ◎ This connection is obtained but not used directly. It will remain in the connection pool for subsequent use.
~UAは、 アリなときは,予め接続( `preconnect^en )を起動して、 全部的な接続~handshake (~HTTP用には[ ~DNS, ~TCP ]/ ~HTTPS生成元~用には[ ~DNS, ~TCP, ~TLS ]) を遂行するよう試みるべきであるが、 資源~拘束や他の理由に因り,部分的な~handshake (~HTTP用には~DNSのみ / ~HTTPS生成元~用には[ ~DNS/[ ~DNS, ~TCP ]]) を遂行することにする, あるいはまるごと飛ばすことも許容される。 ◎ The user agent should attempt to initiate a preconnect and perform the full connection handshake (DNS+TCP for HTTP, and DNS+TCP+TLS for HTTPS origins) whenever possible, but is allowed to elect to perform a partial handshake (DNS only for HTTP, and DNS or DNS+TCP for HTTPS origins), or skip it entirely, due to resource constraints or other reasons.
生成元ごとに最適な接続~数は、[ 折衝される~protocol, 利用者の現在の接続状況, 可用な機器~資源, 大域的な接続~制限s, その他の文脈に特有な変数 ]に依存する。 結果として、 接続がいくつ~openされるべきかの裁定は,~UAに委ねられる。 ◎ The optimal number of connections per origin is dependent on the negotiated protocol, users current connectivity profile, available device resources, global connection limits, and other context specific variables. As a result, the decision for how many connections should be opened is deferred to the user agent.
4.6.7.19. ~link型 `prefetch^v
`prefetch$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `外部~資源~link$を作成する。
- `~body-ok$である。
`prefetch$v ~keywordは、 次を指示する ⇒ 利用者は,未来の~naviにてこの資源を要求する見込みが高いので、 ~UAは,[ 参照先~資源/同一-~site文書 ]を先取的に`~fetch$して~cacheすることが有益になると見込まれる。 ◎ The prefetch keyword indicates that preemptively fetching and caching the specified resource or same-site document is likely to be beneficial, as it is highly likely that the user will require this resource for future navigations.
`prefetch$v ~keywordにより与えられる資源~用には、 既定の型は無い。 ◎ There is no default type for resources given by the prefetch keyword.
この型の `link$e 要素 %link の`~link先の資源を~fetchして処理する$適切な時点は: ◎ The appropriate times to fetch and process this type of link are:
- %link は`閲覧~文脈に接続されて$いる下で, %link 上に`外部~資源~link$が作成されたとき。 ◎ When the external resource link is created on a link element that is already browsing-context connected.
- %link は`外部~資源~link$を与えている下で, %link が`閲覧~文脈に接続された$とき。 ◎ When the external resource link's link element becomes browsing-context connected.
-
%link は[ `外部~資源~link$を与えている ]かつ[ `閲覧~文脈に接続されて$いる ]下で: ◎ ↓
- %link の `href$aL 属性が変化したとき。 ◎ When the href attribute of the link element of an external resource link that is already browsing-context connected is changed.
- %link の `crossorigin$aL 属性が[ 設定- / 変更- / 除去- ]されたとき。 ◎ When the crossorigin attribute of the link element of an external resource link that is already browsing-context connected is set, changed, or removed.
`prefetch$v ~link用の`~link先の資源を~fetchして処理する$ときは、 所与の ( `link$e 要素 %link ) に対し,次に従う: ◎ The fetch and process the linked resource algorithm for prefetch links, given a link element el, is as follows:
- ~IF[ %link の `href$aL 属性の値 ~EQ 空~文字列 ] ⇒ ~RET ◎ If el's href attribute's value is the empty string, then return.
- %~option群 ~LET `要素から~link~option群を作成する$( %link ) ◎ Let options be the result of creating link options from el.
- %~option群 の`行先$lO ~SET 空~文字列 ◎ Set options's destination to the empty string.
- %要請 ~LET `~link要請を作成する$( %~option群 ) ◎ Let request be the result of creating a link request given options.
- ~IF[ %要請 ~EQ ~NULL ] ⇒ ~RET ◎ If request is null, then return.
- %要請 の`起動元$rq ~SET `prefetch^l ◎ Set request's initiator to "prefetch".
-
%~prefetch応答の処理n ~LET 所与の ( `応答$ %応答, [ ~NULL/ `失敗^i / `~byte列$ ] %~byte列 ) に対し,次を走らす手続き: ◎ Let processPrefetchResponse be the following steps given a response response and null, failure, or a byte sequence bytesOrNull:
- ~IF[ %応答 は`~network~error$である ] ⇒ `~eventを発火する$( %link, `error$et ) ◎ If response is a network error, fire an event named error at el.
- ~ELSE ⇒ `~eventを発火する$( %link, `load$et ) ◎ Otherwise, fire an event named load at el.
-
~UAは、 次に従うベキである ⇒ %要請 を`~fetchする$ — 次を与える下で ⇒ `応答の本体を消費する処理n$i ~SET %~prefetch応答の処理n ◎ The user agent should fetch request, with processResponseConsumeBody set to processPrefetchResponse.\
~UAは、 現在の文書~用に必要yな他の要請を優先するよう, %要請 の~fetchingを遅延してもヨイ。 ◎ User agents may delay the fetching of request to prioritize other requests that are necessary for the current document.
この型の~link先の資源~用の`~link~headerを処理する手続き$は、 何もしない。 ◎ The process a link header steps for this type of linked resource are to do nothing.
4.6.7.20. ~link型 `preload^v
`preload$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- `外部~資源~link$を作成する。
- `~body-ok$である。
`preload$v ~keywordは、 次を指示する ⇒ 利用者は,現在の~naviに参照先~資源を要求する見込みが高いので、 ~UAは,[ `as$aL 属性が与える`行先の素$, `fetchpriority$aL 属性が与える`優先度$rq ]に則って[ 参照先~資源を先取的に`~fetch$して~cacheする ]ことになる。 ◎ The preload keyword indicates that the user agent will preemptively fetch and cache the specified resource according to the potential destination given by the as attribute, and the priority given by the fetchpriority attribute, as it is highly likely that the user will require this resource for the current navigation.
注記: ~UAは、 資源が読込まれたとき, 追加的な演算を遂行するかもしれない — 先取的に[ `画像を復号する@~HEimages#dom-img-decode$/ `~CSS~stylesheetを作成する$ ]など。 しかしながら、 そのような演算からは,観測-可能な効果は生じ得ない。 ◎ User-agents might perform additional operations when a resource is loaded, such as preemptively decoding images or creating stylesheets. However, these additional operations cannot have observable effects.
`preload$v ~keywordにより与えられる資源~用には、 既定の型は無い。 ◎ There is no default type for resources given by the preload keyword.
~UAは、 この~link型に対しては,`~load~eventを遅延-$しないモノトスル。 ◎ A user agent must not delay the load event for this link type.
そのような `link$e 要素 %link 用に`~link先の資源を~fetchして処理する$適切な時点は: ◎ The appropriate times to fetch and process the linked resource for such a link are:
- %link は`閲覧~文脈に接続されて$いる下で, %link 上に`外部~資源~link$が作成されたとき。 ◎ When the external resource link is created on a link element that is already browsing-context connected.
- %link は`外部~資源~link$を与えている下で, %link が`閲覧~文脈に接続された$とき。 ◎ When the external resource link's link element becomes browsing-context connected.
-
%link は[ `外部~資源~link$を与えている ]かつ[ `閲覧~文脈に接続されて$いる ]下で: ◎ ↓
- %link の `href$aL 属性が変化したとき。 ◎ When the href attribute of the link element of an external resource link that is already browsing-context connected is changed.
- %link の `as$aL 属性が変化したとき。 ◎ When the as attribute of the link element of an external resource link that is already browsing-context connected is changed.
- %link の `type$aL 属性が要請の`行先$rq用に~supportされない型を指定していたことに因り,資源が得されなかった下で、 属性が[ 設定- / 除去- / 変更- ]されたとき。 ◎ When the type attribute of the link element of an external resource link that is already browsing-context connected, but was previously not obtained due to the type attribute specifying an unsupported type for the request destination, is set, removed, or changed.
- %link の `media$aL 属性が`環境に合致して$いなかったことに因り,資源が得されなかった下で、 属性が[ 除去- / 変更- ]されたとき。 ◎ When the media attribute of the link element of an external resource link that is already browsing-context connected, but was previously not obtained due to the media attribute not matching the environment, is changed or removed.
各`文書$は `~preloadされる資源~群が成す~map@ を持つ — それは、 `有順序~map$であり,初期~時は空とする。 ◎ A Document has a map of preloaded resources, which is an ordered map, initially empty.
【 この~mapを成す各~entryの[ ~key/値 ]は、[ `~preload~key$/`~preload~entry$ ]で与えられる。 ~keyの同等性が定義されていないが、 `~preload~key$を成す~itemごとの比較に基づくと思われる。 】
`~preload~key@ は、 `構造体$であり,次に挙げる`~item$sctからなる: ◎ A preload key is a struct. It has the following items:
- `~URL@plK ⇒ `~URL$ ◎ URL • A URL
- `行先@plK ⇒ 文字列 ◎ destination
- `~mode@plK ⇒ `~mode$rq ~IN { `same-origin^l, `cors^l, `no-cors^l } ◎ mode • A request mode, either "same-origin", "cors", or "no-cors"
- `資格証~mode@plK ⇒ `資格証~mode$rq ◎ credentials mode • A credentials mode
`~preload~entry@ は、 `構造体$であり,次に挙げる`~item$sctからなる: ◎ A preload entry is a struct. It has the following items:
- `完全性~metadata@plE ⇒ 文字列 ◎ integrity metadata • A string
- `応答@plE ⇒ ~NULL /`応答$ 【指定されない場合は ~NULL をとる】 ◎ response • Null or a response
- `応答~可用~時の手続き@plE ⇒ ~NULL /[[ `応答$ / ~NULL ]を受容する~algo ] 【指定されない場合は ~NULL をとる】 ◎ on response available • Null, or an algorithm accepting a response or null
`~window$ %~window 用に `~preloadされる資源を消費する@ ときは、 所与の ⇒# `~URL$ %~URL, 文字列 %行先, 文字列 %~mode, 文字列 %資格証~mode, 文字列 %完全性~metadata, `応答$を受容する~algo %応答~可用~時の手続き, ◎終 に対し: ◎ To consume a preloaded resource for Window window, given a URL url, a string destination, a string mode, a string credentialsMode, a string integrityMetadata, and onResponseAvailable, which is an algorithm accepting a response:
- %~key ~LET 新たな`~preload~key$ — その ⇒# `~URL$plK ~SET %~URL, `行先$plK ~SET %行先, `~mode$plK ~SET %~mode, `資格証~mode$plK ~SET %資格証~mode ◎ Let key be a preload key whose URL is url, destination is destination, mode is mode, and credentials mode is credentialsMode.
- %~preload群 ~LET %~window に`結付けられた文書$の`~preloadされる資源~群が成す~map$ ◎ Let preloads be window's associated Document's map of preloaded resources.
- ~IF[ %~preload群[ %~key ] ~EQ ε ] ⇒ ~RET ~F ◎ If key does not exist in preloads, then return false.
- %~entry ~LET %~preload群[ %~key ] ◎ Let entry be preloads[key].
- %消費側~完全性~metadata ~LET `完全性~metadataを構文解析する$( %完全性~metadata ) ◎ Let consumerIntegrityMetadata be the result of parsing integrityMetadata.
- %~preload完全性~metadata ~LET `完全性~metadataを構文解析する$( %~entry の`完全性~metadata$plE ) ◎ Let preloadIntegrityMetadata be the result of parsing entry's integrity metadata.
-
~IF[ ~NOT ~AND↓ ]… ◎ If none of the following conditions apply:
- %消費側~完全性~metadata ~EQ `~metadataなし^i ◎ consumerIntegrityMetadata is no metadata;
-
( %消費側~完全性~metadata, %~preload完全性~metadata ) は “等しい” ◎ consumerIntegrityMetadata is equal to preloadIntegrityMetadata; or
この比較は、 未知な完全性~optionを無視することになろう。 `課題 #116@https://github.com/w3c/webappsec-subresource-integrity/issues/116$ を見よ。 ◎ This comparison would ignore unknown integrity options. See issue #116.
…ならば ⇒ ~RET ~F ◎ then return false.
注記: %~preload完全性~metadata と %消費側~完全性~metadata の不合致は、 両方とも当の~dataに合致する場合でも, ~networkからの追加的な~fetchに至らすことになろう。 ◎ A mistmatch in integrity metadata between the preload and the consumer, even if both match the data, would lead to an additional fetch from the network.
注記: ~preload要請の結果が`~network~error$になった場合でも, それを~preload~cacheに追加することは重要になる — 後で~networkから~error含みな応答を要請し直すことにならないよう。 これには、 ~securityの含意もある: ある開発者が、 ~preload要請に対しては下位資源~完全性~metadataを指定しつつ, 後続する資源~要請【同じ資源への通常の要請】に対しては指定しない事例を考える。 下位資源の完全性~検証yに失敗した~preload要請を破棄した場合、 資源~要請は,[ ~networkから悪意的にもなり得る応答を~fetchして、 その完全性を検証yすることなく消費する ]ことになる。 `SRI$r ◎ It is important that network errors are added to the preload cache so that if a preload request results in an error, the erroneous response isn't re-requested from the network later. This also has security implications; consider the case where a developer specifies subresource integrity metadata on a preload request, but not the following resource request. If the preload request fails subresource integrity verification and is discarded, the resource request will fetch and consume a potentially-malicious response from the network without verifying its integrity. [SRI]
- %~preload群[ %~key ] ~SET ε ◎ Remove preloads[key].
- ~IF[ %~entry の`応答$plE ~EQ ~NULL ] ⇒ %~entry の`応答~可用~時の手続き$plE ~SET %応答~可用~時の手続き ◎ If entry's response is null, then set entry's on response available to onResponseAvailable.
- ~ELSE ⇒ %応答~可用~時の手続き( %~entry の`応答$plE ) ◎ Otherwise, call onResponseAvailable with entry's response.
- ~RET ~T ◎ Return true.
この節の目的において `型は行先に合致するか?@ どうか決定するときは、 所与の ( 文字列 %型, 文字列 %行先 ) に対し: ◎ For the purposes of this section, a string type matches a string destination if the following algorithm returns true:
- ~IF[ %型 ~EQ 空~文字列 ] ⇒ ~RET ~T ◎ If type is an empty string, then return true.
- ~IF[ %行先 ~EQ `fetch^l ] ⇒ ~RET ~T ◎ If destination is "fetch", then return true.
- %~MIME型~record ~LET `~MIME型を構文解析する$( %型 ) ◎ Let mimeTypeRecord be the result of parsing type.
- ~IF[ %~MIME型~record ~EQ `失敗^i ] ⇒ ~RET ~F ◎ If mimeTypeRecord is failure, then return false.
- ~IF[ %~MIME型~record は`~UAにより~supportされて$いない ] ⇒ ~RET ~F ◎ If mimeTypeRecord is not supported by the user agent, then return false.
-
下の表tの ~EACH( 行 %行 ) に対し ⇒ ~IF[ %行先 は %行 の 1 列目に挙げる文字列である ]~AND[ %~MIME型~record は %行 の 2 列目に与える条件を満たす ] ⇒ ~RET ~T
%行先 %~MIME型~record `audio^l, `video^l `音声/動画~MIME型$である `~scriptに類する行先$ `~JS~MIME型$である `image^l `画像~MIME型$である `font^l `~font~MIME型$である `json^l `~JSON~MIME型$である `style^l その`~essence$ ~EQ `text/css$c `track^l その`~essence$ ~EQ `text/vtt$c - ~RET ~F ◎ Return false.
`~preload~keyを作成する@ ときは、 所与の ( `要請$ %要請 ) に対し ⇒ ~RET 新たな`~preload~key$ — その ⇒# `~URL$plK ~SET %要請 の`~URL$rq, `行先$plK ~SET %要請 の`行先$rq, `~mode$plK ~SET %要請 の`~mode$rq, `資格証~mode$plK ~SET %要請 の`資格証~mode$rq ◎ To create a preload key for a request request, return a new preload key whose URL is request's URL, destination is request's destination, mode is request's mode, and credentials mode is request's credentials mode.
`~preloadの行先を翻訳する@ ときは、 所与の ( 文字列 %行先 ) に対し: ◎ To translate a preload destination given a string destination:
- ~IF[ %行先 ~NIN { `fetch^l, `font^l, `image^l, `script^l, `style^l, `track^l } ] ⇒ ~RET ~NULL ◎ If destination is not "fetch", "font", "image", "script", "style", or "track", then return null.
- ~RET `行先に翻訳する$( %行先 ) ◎ Return the result of translating destination.
`~preloadする@ ときは、 所与の ( `~link処理~option群$ %~option群, `応答$を受容する~algo %応答の処理n (省略時は ε ) ) に対し: ◎ To preload given a link processing options options and an optional processResponse, which is an algorithm accepting a response:
- ~IF[ `型は行先に合致するか?$( %~option群 の`~MIME型$lO, %~option群 の`行先$lO ) ~EQ ~F ] ⇒ ~RET ◎ If options's type doesn't match options's destination, then return.
- ~IF[ %~option群 の`行先$lO ~EQ `image^l ]~AND[ %~option群 の`~source集合$lO ~NEQ ~NULL ] ⇒ %~option群 の `href$lO ~SET 次の結果を成す~URL文字列 ⇒ `~source集合から画像~sourceを選定する$( %~option群 の`~source集合$lO ) ◎ If options's destination is "image" and options's source set is not null, then set options's href to the result of selecting an image source from options's source set.
- %要請 ~LET `~link要請を作成する$( %~option群 ) ◎ Let request be the result of creating a link request given options.
- ~IF[ %要請 ~EQ ~NULL ] ⇒ ~RET ◎ If request is null, then return.
- %安全でない終了~時刻 ~LET 0 【この変数は、どこで利用される?】 ◎ Let unsafeEndTime be 0.
- %~entry ~LET 新たな`~preload~entry$ — その ⇒# `完全性~metadata$plE ~SET %~option群 の`完全性~metadata$lO ◎ Let entry be a new preload entry whose integrity metadata is options's integrity.
- %~key ~LET `~preload~keyを作成する$( %要請 ) ◎ Let key be the result of creating a preload key given request.
- ~IF[ %~option群 の`文書$lO ~EQ `pending^l ] ⇒ %要請 の`起動元~種別$rq ~SET `early-hint^l【!early hint】 ◎ If options's document is "pending", then set request's initiator type to "early hint".
- %制御器 ~LET ~NULL ◎ Let controller be null.
- %計時を報告する ~LET 所与の ( `文書$ %文書 ) に対し,次を走らす手続き ⇒ `計時を報告する$( %制御器, %文書 に`関連な大域~obj$ ) ◎ Let reportTiming given a Document document be to report timing for controller given document's relevant global object.
-
%制御器 ~SET %要請 を`~fetchする$ — 次を与える下で: ◎ Set controller to the result of fetching request,\
-
`応答の本体を消費する処理n$i ~SET 所与の ( `応答$ %応答, [ ~NULL / `失敗^i / `~byte列$ ] %本体~byte列 ) に対し,次を走らす手続き: ◎ with processResponseConsumeBody set to the following steps given a response response and null, failure, or a byte sequence bodyBytes:
-
~IF[ %本体~byte列 は`~byte列$である ] ⇒ %応答 の`本体$rs ~SET `~byte列を本体として取得する$( %本体~byte列 ) ◎ If bodyBytes is a byte sequence, then set response's body to bodyBytes as a body.
注記: `応答の本体を消費する処理n$iを利用することにより, %応答 の`本体$rs全体を`抽出する@~FETCH#bodyinit-safely-extract$のは、 次を確保するために必要yである ⇒ ~preload器は、[ 当の~preloadが消費されることになるかどうか (それは、 この時点では不確かである) ]に関わらず,~networkから本体~全体を読込む。 ◎終 この段は、 それから,当の要請【応答?】の本体を[ 同じ~byte列を包含している新たな本体 ]に設定し直す — 他の仕様が実際の消費~時点に、 すでに行われたかどうかを問わず,そこから読取れるよう。 ◎ By using processResponseConsumeBody, we have extracted the entire body. This is necessary to ensure the preloader loads the entire body from the network, regardless of whether the preload will be consumed (which is uncertain at this point). This step then resets the request's body to a new body containing the same bytes, so that other specifications can read from it at the time of actual consumption, despite us having already done so once.
- ~ELSE ⇒ %応答 ~SET `~network~error$ ◎ Otherwise, set response to a network error.
- %安全でない終了~時刻 ~SET `安全でない共有される現在の時刻$ ◎ Set unsafeEndTime to the unsafe shared current time.
- ~IF[ %~option群 の`文書$lO ~NEQ ~NULL ] ⇒ %計時を報告する( %~option群 の`文書$lO ) ◎ If options's document is not null, then call reportTiming given options's document.
- ~IF[ %~entry の`応答~可用~時の手続き$plE ~EQ ~NULL, ] ⇒ %~entry の`応答$plE ~SET %応答 ◎ If entry's on response available is null, then set entry's response to response;\
- ~ELSE ⇒ %~entry の`応答~可用~時の手続き$plE( %応答 ) ◎ otherwise call entry's on response available given response.
- ~IF[ %応答の処理n ~NEQ ε ] ⇒ %応答の処理n( %応答 ) ◎ If processResponse is given, then call processResponse with response.
-
-
-
%~commitする ~LET 所与の ( `文書$ %文書 ) に対し,次を走らす手続き: ◎ Let commit be the following steps given a Document document:
- ~IF[ %~entry の`応答$plE ~NEQ ~NULL, ] ⇒ %計時を報告する( %文書 ) ◎ If entry's response is not null, then call reportTiming given document.
- %文書 の`~preloadされる資源~群が成す~map$[ %~key ] ~SET %~entry ◎ Set document's map of preloaded resources[key] to entry.
- ~IF[ %~option群 の`文書$lO ~EQ ~NULL ] ⇒ %~option群 の`文書~準備済み時の手続き$lO ~SET %~commitする ◎ If options's document is null, then set options's on document ready to commit.\
- ~ELSE ⇒ %~commitする( %~option群 の`文書$lO ) ◎ Otherwise, call commit with options's document.
この型の`~link先の資源を~fetchして処理する$ときは、 所与の ( `link$e 要素 %link ) に対し: ◎ The fetch and process the linked resource steps for this type of linked resource, given a link element el, are:
- `~source集合を更新する$( %link ) ◎ Update the source set for el.
- %~option群 ~LET `要素から~link~option群を作成する$( %link ) ◎ Let options be the result of creating link options from el.
-
`~preloadする$( %~option群, 次の手続き ) — 手続きは、 所与の ( `応答$ %応答 ) に対し,次を走らす: ◎ Preload options, with the following steps given a response response:
- ~IF[ %応答 は`~network~error$である ] ⇒ `~eventを発火する$( %link, `error$et ) ◎ If response is a network error, fire an event named error at el.\
-
~ELSE ⇒ `~eventを発火する$( %link, `load$et ) ◎ Otherwise, fire an event named load at el.
実際の~browserの挙動は、 前~段とこの段による仕様とは異なる — その挙動を変更するのは実現可能かどうかは、 まだ究明されてない。 `課題 #1142@~HTMLissue/1142$ を見よ。 ◎ The actual browsers' behavior is different from the spec here, and the feasibility of changing the behavior has not yet been investigated. See issue #1142.
この型の~link先の資源~用の`~link~headerを処理する手続き$は、 所与の ( `~link処理~option群$ %~option群 ) に対し ⇒ `~preloadする$( %~option群 ) ◎ The process a link header step for this type of link given a link processing options options is to preload options.
4.6.7.21. ~link型 `privacy-policy^v
`privacy-policy$v ~keywordは:
- [ `link$e / `~a_area$ ]要素に利用してもヨイ。
- `~hyperlink$を作成する。
`privacy-policy$v ~keywordは、 参照先~資源は[ 【個人-情報などの】 ~dataの収集とその用法に関して現在の文書に適用される実施についての — より詳細は `RFC6903$r にて述べられるとおりの — 情報 ]を包含することを指示する。 参照先~資源は、 自立的な~privacy施策であることも, より一般な何らかの文書を成す特定の節であることもある。 ◎ The privacy-policy keyword indicates that the referenced document contains information about the data collection and usage practices that apply to the current document, as described in more detail in Additional Link Relation Types. The referenced document may be a standalone privacy policy, or a specific section of some more general document. [RFC6903]
4.6.7.22. ~link型 `search^v
`search$v ~keywordは:
- [ `link$e / `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$を作成する。
`search$v ~keywordは、 次を指示する ⇒ 参照先~資源は、[ 現在の文書やそれに関係する資源を探索するための~UI ]を特定的に供している。 ◎ The search keyword indicates that the referenced document provides an interface specifically for searching the document and its related resources.
注記: OpenSearch 記述~文書 `OPENSEARCH$r を `link$e 要素と `search$v ~link型に併用できる。 それは、 ~UAが探索-用~UIを自動発見することを可能化する。 ◎ OpenSearch description documents can be used with link elements and the search link type to enable user agents to autodiscover search interfaces. [OPENSEARCH]
4.6.7.23. ~link型 `stylesheet^v
`stylesheet$v ~keywordは:
- `link$e 要素に利用してもヨイ。
- ~style付け処理~modelに供与する`外部~資源~link$を作成する。
- `~body-ok$である。
参照先~資源は、 文書をどう呈示するかを述べる`~CSS~stylesheet$である。 ◎ The specified resource is a CSS style sheet that describes how to present the document.
`link$e 要素に `alternate$v ~keywordも指定されている場合、 要素は `代替~stylesheet@ になる。 その場合、 空でない値をとる `title$a 属性も要素に指定しなければナラナイ。 ◎ If the alternate keyword is also specified on the link element, then the link is an alternative style sheet; in this case, the title attribute must be specified on the link element, with a non-empty value.
`stylesheet$v ~keywordにより与えられる資源~用の既定の型は、 `text/css$c とする。 ◎ The default type for resources given by the stylesheet keyword is text/css.
この型の `link$e 要素のうち,その`~node文書$の構文解析器により作成されたものは、 `暗黙的に具現化を阻む能性$があるとする。 ◎ A link element of this type is implicitly potentially render-blocking if the element was created by its node document's parser.
`link$e 要素の `disabled$aL 属性が `stylesheet$v ~keywordを伴うよう設定されたときは、 要素に`結付けられた~CSS~stylesheet$を`不能化する@~CSSOM1#disable-a-css-style-sheet$†とする。 【† `まだ仕様~化されてない@https://github.com/w3c/csswg-drafts/pull/9414$。】 ◎ When the disabled attribute of a link element with a stylesheet keyword is set, disable the associated CSS style sheet.
この型の `link$e 要素 %link の`~link先の資源を~fetchして処理する$適切な時点は: ◎ The appropriate times to fetch and process this type of link are:
- %link は`閲覧~文脈に接続されて$いる下で, %link 上で`外部~資源~link$が作成されたとき。 ◎ When the external resource link is created on a link element that is already browsing-context connected.
- %link は`外部~資源~link$を与えている下で, %link が`閲覧~文脈に接続された$とき。 ◎ When the external resource link's link element becomes browsing-context connected.
-
%link は[ `外部~資源~link$を与えている ]かつ[ `閲覧~文脈に接続されて$いる ]下で: ◎ ↓
- %link の `href$aL 属性が変更されたとき。 ◎ When the href attribute of the link element of an external resource link that is already browsing-context connected is changed.
- %link の `disabled$aL 属性が[ 設定- / 変更- / 除去- ]されたとき。 ◎ When the disabled attribute of the link element of an external resource link that is already browsing-context connected is set, changed, or removed.
- %link の `crossorigin$aL 属性が[ 設定- / 変更- / 除去- ]されたとき。 ◎ When the crossorigin attribute of the link element of an external resource link that is already browsing-context connected is set, changed, or removed.
- %link の `type$aL 属性の値が[ 前回に得した外部~資源の `~Content-Type~metadata$と合致しない値 ]に[ 設定- / 変更- ]されたとき。 ◎ When the type attribute of the link element of an external resource link that is already browsing-context connected is set or changed to a value that does not or no longer matches the Content-Type metadata of the previous obtained external resource, if any.
- %link の `type$aL 属性が~supportされない型を指定していたことに因り,資源が得されなかった下で、 属性が[ 除去- / 変更- ]されたとき。 ◎ When the type attribute of the link element of an external resource link that is already browsing-context connected, but was previously not obtained due to the type attribute specifying an unsupported type, is removed or changed.
- %link は`代替~stylesheet$であるかどうかが,変化したとき。 ◎ When the external resource link that is already browsing-context connected changes from being an alternative style sheet to not being one, or vice versa.
過去互換: ~UAは、 次を満たす`文書$ %文書 においては,自身が~supportしない[ 外部~資源の`~Content-Type~metadata$による~stylesheet型 ]を `text/css$c と見做すモノトスル ⇒ [ %文書 は`過去互換~mode$にある ]~AND[ ( %文書 の`~URL$doc【!*補完】, 外部~資源の`~URL$ ) は`同一-生成元$である ] ◎ Quirk: If the document has been set to quirks mode, has the same origin as the URL of the external resource, and the Content-Type metadata of the external resource is not a supported style sheet type, the user agent must instead assume it to be text/css.
この型の`~link先の資源~fetch用に設定しておく$ときは、 所与の ( `link$e 要素 %link, `要請$ %要請 ) に対し: ◎ The linked resource fetch setup steps for this type of linked resource, given a link element el and request request, are:
- ~IF[ %link は `disabled$aL 属性を有する ] ⇒ ~RET ~F ◎ If el's disabled attribute is set, then return false.
- ~IF[ %link は`~scriptを阻んでいる~stylesheetを供与して$いる ] ⇒ %link の`~node文書$の`~scriptを阻んでいる~stylesheet集合$に %link を`付加する$set ◎ If el contributes a script-blocking style sheet, append el to its node document's script-blocking style sheet set.
- ~IF[ %link の `media$aL 属性の値は`環境に合致して$いる ]~AND[ %link は`具現化を阻む能性$がある ] ⇒ `具現化を阻む$( %link ) ◎ If el's media attribute's value matches the environment and el is potentially render-blocking, then block rendering on el.
- ~IF[ %link は現在`具現化を阻んで$いる ] ⇒ %要請 の`具現化を阻んでいるか$rq ~SET ~T ◎ If el is currently render-blocking, then set request's render-blocking to true.
- ~RET ~T ◎ Return true.
`既定の~link先の資源を~fetchして処理する$ ~algoに代えて,~CSSOMによる `~CSS~stylesheetを~fetchする@~CSSOM1#fetching-css-style-sheets$ ~algoを利用する計画については、 `課題 #968@~HTMLissue/968$ を見よ。 当面の間は、 `必須な下位資源$への`要請$の`具現化を阻んでいるか$rqは, `link$e 要素が現在 `具現化を阻んで$[ いるならば ~T / いないならば ~F ]に設定されるべきである。 ◎ See issue #968 for plans to use the CSSOM fetch a CSS style sheet algorithm instead of the default fetch and process the linked resource algorithm. In the meantime, any critical subresource request should have its render-blocking set to whether or not the link element is currently render-blocking.
この型の`~link先の資源を処理する$ときは、 所与の ( `link$e 要素 %link, 真偽値 %成功か, `応答$ %応答, `~byte列$ %本体~byte列 ) に対し: ◎ To process this type of linked resource given a link element el, boolean success, response response, and byte sequence bodyBytes:
- ~IF[ 当の資源の `~Content-Type~metadata$ ~NEQ `text/css$c ] ⇒ %成功か ~SET ~F ◎ If the resource's Content-Type metadata is not text/css, then set success to false.
-
~IF[ %link は,もはや[ ~style付け処理~modelに供与する`外部~資源~link$ ]を作成しない ]~OR[ 当の資源は`~fetch$lkされたが、 その間に再び`~fetch$lkする適切な時点になった ]: ◎ If el no longer creates an external resource link that contributes to the styling processing model, or if, since the resource in question was fetched, it has become appropriate to fetch it again, then:
- %link の`~node文書$の`~scriptを阻んでいる~stylesheet集合$から %link を`除去する$ ◎ Remove el from el's node document's script-blocking style sheet set.
- ~RET ◎ Return.
- ~IF[ %link には,ある~CSS~stylesheet %~stylesheet が`結付けられ@~CSSOM1#associated-css-style-sheet$ている ] ⇒ `~CSS~stylesheetを除去する$( %~stylesheet ) ◎ If el has an associated CSS style sheet, remove the CSS style sheet.
-
~IF[ %成功か ~EQ ~T ]: ◎ If success is true, then:
-
`~CSS~stylesheetを作成する$ — 次に挙げる~propを伴うよう: ◎ Create a CSS style sheet with the following properties:
- `種別$ss ~SET `text/css$c ◎ type • text/css
-
`所在$ss ~SET %応答 の`~URL~list$rs[ 0 ]
ここでは、 `~CSS~WG 課題 #9316@~CSSissue/9316">w3c/csswg-drafts$ が修正されることを前提に,~URLを供する【直列化した文字列ではなく】。
◎ location • response's URL list[0] • We provide a URL here on the assumption that w3c/csswg-drafts issue #9316 will be fixed. - `所有者~node$ss ~SET %link ◎ owner node • el
-
`媒体$ss ~SET %link の `media$aL 属性 ◎ media • The media attribute of el.
注記: これは、 属性の現在の値の複製ではなく,属性への参照である (この時点では、 場合によっては無いことある)。 属性が動的に[ 設定- / 変更- / 除去- ]されたときに何が起こるかは、 `CSSOM^cite が定義する。 ◎ This is a reference to the (possibly absent at this time) attribute, rather than a copy of the attribute's current value. CSSOM defines what happens when the attribute is dynamically set, changed, or removed.
-
`~title$ss ~SET %link が`文書~tree内$に[ 在るならば %link の `title$aL 属性 / 無いならば 空~文字列 ] ◎ title • The title attribute of el, if el is in a document tree, or the empty string otherwise.
注記: これも、 属性の現在の値の複製ではなく,属性への参照である。 ◎ This is similarly a reference to the attribute, rather than a copy of the attribute's current value.
- `代替-か$ss ~SET ~IS[ ~linkは`代替~stylesheet$である ]~AND[ %link の`明示的に可能化されるか$ ~EQ ~F ] ◎ alternate flag • Set if the link is an alternative style sheet and el's explicitly enabled is false; unset otherwise.
- `生成元cleanか$ss ~SET ~IS[ 当の資源は`~CORS同一-生成元$である ] ◎ origin-clean flag • Set if the resource is CORS-same-origin; unset otherwise.
- `親~CSS~stylesheet$ss ~SET ~NULL ◎ parent CSS style sheet • ↓
- `所有者~CSS規則$ss ~SET ~NULL ◎ owner CSS rule • null
- `不能化されるか$ss ~SET その既定の値【すなわち,~F】 ◎ disabled flag • Left at its default value.
-
`~CSS規則~list$ss ⇒ 初期化されないまま。 ◎ CSS rules • Left uninitialized.
これは~~正しく見えない。 %本体~byte列 を利用しているはずなので。 `課題 #2997@~HTMLissue/2997$ ◎ This doesn't seem right. Presumably we should be using bodyBytes? Tracked as issue #2997.
-
`~CSS環境~符号化法$ `CSSSYNTAX$r は、 次の手続きを走らせた結果とする: ◎ The CSS environment encoding is the result of running the following steps: [CSSSYNTAX]
- ~IF[ %link は `charset$a 属性を有する ]~AND[ `~labelから符号化法を取得する$( その属性の値 ) の結果 ~NEQ `失敗^i `ENCODING$r ] ⇒ ~RET その結果 ◎ If el has a charset attribute, get an encoding from that attribute's value. If that succeeds, return the resulting encoding. [ENCODING]
- ~RET 文書の`符号化法$doc `DOM$r ◎ Otherwise, return the document's character encoding. [DOM]
- `~eventを発火する$( %link, `load$et ) ◎ Fire an event named load at el.
-
- ~ELSE ⇒ `~eventを発火する$( %link, `error$et ) ◎ Otherwise, fire an event named error at el.
-
~IF[ %link は`~scriptを阻んでいる~stylesheetを供与して$いる ]: ◎ If el contributes a script-blocking style sheet, then:
- %~stylesheet集合 ~LET %link の`~node文書$の`~scriptを阻んでいる~stylesheet集合$ ◎ ↓
- ~Assert: %link ~IN %~stylesheet集合 ◎ Assert: el's node document's script-blocking style sheet set contains el.
- %~stylesheet集合 から %link を`除去する$ ◎ Remove el from its node document's script-blocking style sheet set.
- `具現化を阻まなくする$( %link ) ◎ Unblock rendering on el.
この型の~link先の資源~用の`~link~headerを処理する手続き$は、 何もしない。 ◎ The process a link header steps for this type of linked resource are to do nothing.
4.6.7.24. ~link型 `tag^v
`tag$v ~keywordは:
- `~a_area$ 要素に利用してもヨイ。
- `~hyperlink$を作成する。
`tag$v ~keywordは、 次を指示する ⇒ 参照先~資源が表現する`~tag^emは、 現在の文書に適用される ◎ The tag keyword indicates that the tag that the referenced document represents applies to the current document.
注記: ~tagは,`現在の文書に適用される^emことを指示するので、 この~keywordを`~tag~cloud@~HTMLLS/semantics-other.html#tag-cloud$ — 一群の~pageにわたって,よくある~tagを~listするもの — の~markup内に利用することは,不適切になる。 ◎ Since it indicates that the tag applies to the current document, it would be inappropriate to use this keyword in the markup of a tag cloud, which lists the popular tags across a set of pages.
次の文書では、 “宝石” を~~意味する `gem^en について述べていて, 他を~~意味する `gem^en (例:米国のアイダホ州の愛称/ Ruby 言語の~package形式/スイスのレーティッシュ鉄道の機関車) ではない,宝石の~~意味が適用されるよう `~tag^i `https://en.wikipedia.org/wiki/Gemstone^l が付与されている: ◎ This document is about some gems, and so it is tagged with "https://en.wikipedia.org/wiki/Gemstone" to unambiguously categorize it as applying to the "jewel" kind of gems, and not to, say, the towns in the US, the Ruby package format, or the Swiss locomotive class:
`link-type-tag-1^xCode次の文書には 2 個の記事( `article$e )がある。 しかしながら, `tag$v ~linkは、 その中に配置されていたとしても,~page一体に適用される。 ◎ In this document, there are two articles. The "tag" link, however, applies to the whole page (and would do so wherever it was placed, including if it was within the article elements).
`link-type-tag-2^xCode4.6.7.25. ~link型 `terms-of-service^v
`terms-of-service$v ~keywordは:
- [ `link$e / `~a_area$ ]要素に利用してもヨイ。
- `~hyperlink$を作成する。
`terms-of-service$v ~keywordは、 参照先~資源は[ 現在の文書の提供元と現在の文書を利用したいと望む利用者との間の取決めについての — より詳細は `RFC6903$r にて述べられるとおりの — 情報 ]を包含することを指示する。 ◎ The terms-of-service keyword indicates that the referenced document contains information about the agreements between the current document's provider and users who wish to use the current document, as described in more detail in Additional Link Relation Types. [RFC6903]
4.6.7.26. 連列的~link型
文書は、 ある “連列” — 順序付けられた一連の文書 — に属することもある。 前の文書が無い文書は,この連列の始端になり、 次の文書が無い文書は,この連列の終端になる。 ◎ Some documents form part of a sequence of documents. ◎ A sequence of documents is one where each document can have a previous sibling and a next sibling. A document with no previous sibling is the start of its sequence, a document with no next sibling is the end of its sequence.
文書は、 複数の連列に属することもある。 ◎ A document may be part of multiple sequences.
4.6.7.26.1. ~link型 `next^v
`next$v ~keywordは:
- [ `link$e / `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$を作成する。
`next$v ~keywordは、次を指示する ⇒ 現在の文書は,ある連列に属していて、 当の~linkは,この連列における次の文書へ導くものである。 ◎ The next keyword indicates that the document is part of a sequence, and that the link is leading to the document that is the next logical document in the sequence.
`next$v ~keywordが `link$e 要素に併用された場合、 ~UAは,そのような~linkを[ それは、[ `dns-prefetch$v, `preconnect$v, `prefetch$v ]いずれかの~keywordを利用していた ]かのように処理するベキである。 ~UAが,どの~keywordを利用したいと望むかは、 実装依存である。 例えば,~UAは、 他より低~costな `preconnect$v 処理~modelを利用して[ ~data/電池~~残量/処理~~能力 ]を温存するよう試行してもヨイし、 似た局面における[ 利用者の過去の挙動 ]を解析して,経験的に~keywordを選び取ってもヨイ。 ◎ When the next keyword is used with a link element, user agents should process such links as if they were using one of the dns-prefetch, preconnect, or prefetch keywords. Which keyword the user agent wishes to use is implementation-dependent; for example, a user agent may wish to use the less-costly preconnect processing model when trying to conserve data, battery power, or processing power, or may wish to pick a keyword depending on heuristic analysis of past user behavior in similar scenarios.
4.6.7.26.2. ~link型 `prev^v
`prev$v ~keywordは:
- [ `link$e / `~a_area$ / `form$e ]要素に利用してもヨイ。
- `~hyperlink$を作成する。
`prev$v ~keywordは、 次を指示する ⇒ 現在の文書は,ある連列に属していて、 当の~linkは,この連列における前の文書へ導くものである。 ◎ The prev keyword indicates that the document is part of a sequence, and that the link is leading to the document that is the previous logical document in the sequence.
同義語: 歴史的な理由から、 ~UAは,~keyword `previous^v も `prev$v ~keywordと同様に扱うモノトスル。 ◎ Synonyms: For historical reasons, user agents must also treat the keyword "previous" like the prev keyword.
4.6.7.27. その他の~link型
`定義済み~link型の集合に対する拡張@ は、 `~microformats~wiki^cite 内にある,既存の `rel^a 値~用の`~microformats~page@https://microformats.org/wiki/existing-rel-values#HTML5_link_type_extensions$ — 以下, “この~wiki~page” と略記する — に登録してもヨイ。 `MFREL$r ◎ Extensions to the predefined set of link types may be registered on the microformats page for existing rel values. [MFREL]
誰もがいつでも、 型を追加するために,この~wiki~pageを編集してかまわない。 拡張~型は、 次に挙げる情報も伴っていなければナラナイ: ◎ Anyone is free to edit the microformats page for existing rel values at any time to add a type. Extension types must be specified with the following information:
- ~keyword ◎ Keyword
- 定義されている実際の値。 定義-済みな他の名前と紛らわしいものは (例: 文字大小のみ相違する事例)、 避けるベキである。 ◎ The actual value being defined. The value should not be confusingly similar to any other defined value (e.g. differing only in case).
- 値が `003A^U ( `:^l ) を包含する場合、 それは`絶対~URL$でなければナラナイ。 ◎ If the value contains a U+003A COLON character (:), it must also be an absolute URL.
- `link$e に対する効果 ◎ Effect on... link
-
次に挙げるいずれか: ◎ One of the following:
- 許容されない ◎ Not allowed
- 当の~keywordは `link$e 要素に指定してはナラナイ。 ◎ The keyword must not be specified on link elements.
- ~hyperlink ◎ Hyperlink
- 当の~keywordは `link$e 要素に指定してもヨイ — それは、 `~hyperlink$を作成する。 ◎ The keyword may be specified on a link element; it creates a hyperlink.
- 外部~資源 ◎ External Resource
- 当の~keywordは `link$e 要素に指定してもヨイ — それは、 `外部~資源~link$を作成する。 ◎ The keyword may be specified on a link element; it creates an external resource link.
- `~a_area$ に対する効果 ◎ Effect on... a and area
-
次に挙げるいずれか: ◎ One of the following:
- 許容されない ◎ Not allowed
- 当の~keywordは `~a_area$ 要素に指定してはナラナイ。 ◎ The keyword must not be specified on a and area elements.
- ~hyperlink ◎ Hyperlink
- 当の~keywordは `~a_area$ 要素に指定してもヨイ — それは、 `~hyperlink$を作成する。 ◎ The keyword may be specified on a and area elements; it creates a hyperlink.
- 外部~資源 ◎ External Resource
- 当の~keywordは `~a_area$ 要素に指定してもヨイ — それは、 `外部~資源~link$を作成する。 ◎ The keyword may be specified on a and area elements; it creates an external resource link.
- ~hyperlink注釈 ◎ Hyperlink Annotation
- 当の~keywordは[ 要素により作成される他の`~hyperlink$ ]を`注釈する$。 ◎ The keyword may be specified on a and area elements; it annotates other hyperlinks created by the element.
- `form$e に対する効果 ◎ Effect on... form
-
次に挙げるいずれか: ◎ One of the following:
- 許容されない ◎ Not allowed
- 当の~keywordは `form$e 要素に指定してはナラナイ。 ◎ The keyword must not be specified on form elements.
- ~hyperlink ◎ Hyperlink
- 当の~keywordは `form$e 要素に指定してもヨイ — それは、 `~hyperlink$を作成する。 ◎ The keyword may be specified on form elements; it creates a hyperlink.
- 外部~資源 ◎ External Resource
- 当の~keywordは `form$e 要素に指定してもヨイ — それは、 `外部~資源~link$を作成する。 ◎ The keyword may be specified on form elements; it creates an external resource link.
- ~hyperlink注釈 ◎ Hyperlink Annotation
- 当の~keywordは[ 要素により作成される他の`~hyperlink$ ]を`注釈する$。 ◎ The keyword may be specified on form elements; it annotates other hyperlinks created by the element.
- 概略的な記述( `Brief description^en )
- 当の~keywordの意味についての,規範的でない短い記述。 ◎ A short non-normative description of what the keyword's meaning is.
- 仕様( `Specification^en )
- 当の~keywordの意味論と要件についての詳細な記述への~link。 `~microformats~wiki^cite 内にある別の~pageや外部~pageへの~linkにもなり得る。 ◎ A link to a more detailed description of the keyword's semantics and requirements. It could be another page on the wiki, or a link to an external page.
- 同義語( `Synonyms^en )
- 処理~要件が正確に同じであるような,他の~keyword値からなる~list。 作者は、 同義語による名前を定義して利用するベキでない — これらに意図される用途は、[ 旧来の内容を~supportすることを,~UAに許容する ]ことに限られる。 誰もが、 実施に利用されていない同義語を除去してヨイ。 この仕方で登録される~keyword値は、[ 旧来の内容との互換性を得るため, 同義語として処理される必要があるもの ]に限られる。 ◎ A list of other keyword values that have exactly the same processing requirements. Authors should not use the values 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^en )
-
次に挙げるいずれか: ◎ One of the following:
- 提案-済み( `Proposed^en )
- 当の~keywordは、 まだ,広くから査読を受けてないか認可されていない。 誰かがそれを提案していて、 それを利用しているか,近いうちに利用することになる。 ◎ The keyword has not received wide peer review and approval. Someone has proposed it and is, or soon will be, using it.
- 批准-済み( `Ratified^en )
- 当の~keywordは、 広くから査読を受け,認可された。 当の~keywordを利用している~pageを取扱う方法を — 不正な仕方で利用された場合も含め — 一義的に定義する仕様がある。 ◎ The keyword has received wide peer review and approval. It has a specification that unambiguously defines how to handle pages that use the keyword, including when they use it in incorrect ways.
- 使用中止( `Discontinued^en )
- 当の~keywordは、 広くから査読を受けた上で,水準に満たないものと判明した。 既存の~pageが 当の~keywordを利用していても、 新たな~pageでは避けるベキである。 作者が代わりに利用するベキものは、 (もし在れば) “概略的な記述 ” と “仕様” の項に詳細が与えられることになる。 ◎ The keyword has received wide peer review and it has been found wanting. Existing pages are using this keyword, but new pages should avoid it. The "brief description" and "specification" entries will give details of what authors should use instead, if anything.
- ある~keywordが,既存の値とかぶると判明した場合、 除去された上で,既存の値に対する同義語として~listされるベキである。 ◎ If a keyword is found to be redundant with existing values, it should be removed and listed as a synonym for the existing value.
- ある~keywordが “提案-済み” の地位で登録されてから, 1 ヶ月~以上[ 利用されない/指定されない ]ままにある場合、 ~registryから除去されてもヨイ。 ◎ If a keyword is registered in the "proposed" state for a period of a month or more without being used or specified, then it may be removed from the registry.
- “提案-済み” の地位で追加された~keywordが,既存の値とかぶるものと判明した場合、 除去された上で,既存の値に対する同義語として~listされるベキである。 “提案-済み” の地位で追加された~keywordが,有害と判明した場合、 地位は “使用中止” に変更されるベキである。 ◎ If a keyword 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 keyword 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.
適合性~検査器は、 値が許容されるかどうかを確立するときに, この~wiki~pageに与えられる情報を利用するモノトスル: [ この仕様にて定義される値 ]および[[ “提案-済み” / “批准-済み” ]とされている値 ]のうち,[ 要素に対し “〜に対する効果” 欄に述べられるものとして適用される ]よう利用されたものは、 受容するモノトスル。 それ以外の値は、 妥当でないものとして却下するモノトスル。 適合性~検査器は、 この情報を~cacheしてもヨイ (例: 処理能の理由, あるいは~network接続の不確実性を避けるためとして)。 ◎ Conformance checkers must use the information given on the microformats page for existing rel values to establish if a value is allowed or not: values defined in this specification or marked as "proposed" or "ratified" must be accepted when used on the elements for which they apply as described in the "Effect on..." field, whereas values marked as "discontinued" or 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).
適合性~検査器は、 作者が[ この仕様にも この~wiki~pageにも定義されていない,新たな型 ]を利用しているときは、 上に述べた詳細と伴に値を “提案-済み” の地位で, この~wiki~pageに追加するよう~~勧めるベキである。 ◎ When an author uses a new type 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.
この~wiki~pageにて,地位[ “提案-済み” / “批准-済み” ]である拡張として定義された型は、 “〜に対する効果” 欄に則って,[ `link$e / `~a_area$ ]要素(順不同)の `rel^a 属性と併用してもヨイ。 `MFREL$r ◎ Types defined as extensions in the microformats page for existing rel values with the status "proposed" or "ratified" may be used with the rel attribute on link, a, and area elements in accordance to the "Effect on..." field. [MFREL]