HTML — 具現化

15. 具現化

~UAには、 ~HTML文書を特定0の仕方で呈示することは要求されていない。 しかしながら,この節は、 ~HTML文書を具現化するための,一群の`示唆^em( `suggestion^en )を供する — それに従えば、 およそ,文書~作者が意図する体験に近い利用者~体験へ導くものと~~見込まれるような。 この節では、 この体験へ導くような挙動を指示するため — 規範性に関する混同を避けるため, “〜するモノトスル( `must^en )” は利用しない代わりに — 用語 “`期待される^em( `expected^en )” が利用される。 適合性の目的においては、 `示唆された既定の具現化を~supportするものと指名された~UA@~HTMLINFRA#renderingUA$に対しては、 この節における用語 “期待される” には, “〜するモノトスル( `must^en )” と同じ適合性が含意される。 ◎ User agents are not required to present HTML documents in any particular way. However, this section provides a set of suggestions for rendering HTML documents that, if followed, are likely to lead to a user experience that closely resembles the experience intended by the documents' authors. So as to avoid confusion regarding the normativity of this section, "must" has not been used. Instead, the term "expected" is used to indicate behavior that will lead to this experience. For the purposes of conformance for user agents designated as supporting the suggested default rendering, the term "expected" in this section has the same conformance implications as "must".

【 “期待される” 対象は常に~UAなので、 この訳では,その文脈における語~UAは省略する。 】

15.1. 序論

この節における各~示唆は、 一般に,~CSS用語で表出される。 ~UAには、 ~CSSを~supportするか,さもなければ[ この節に与える各~CSS規則を,他の仕組みによる呈示に近似する何かに翻訳する ]ことが期待される。 ◎ The suggestions in this section are generally expressed in CSS terms. User agents are expected to either support CSS, or translate from the CSS rules given in this section to approximations for other presentation mechanisms.

逆に,~style層の規則 (例: `作者~level$の~stylesheet) が無い下で要素を具現化するときは、[ 当の要素が,この仕様に述べる意味を`表現-$している ]ことを利用者に伝達することが期待される。 ◎ In the absence of style-layer rules to the contrary (e.g. author style sheets), user agents are expected to render an element so that it conveys to the user the meaning that the element represents, as described by this specification.

この節における各~示唆は、 一般に,[ 視覚的な出力~媒体の解像度は、 96dpi 以上である ]ものと見做しているが、 ~HTMLは,~~多様な媒体に適用されるものと意図されている (それは、 `媒体に依存しない^em言語である)。 ~UAの実装者には、 この節における各~示唆を,~~目的の媒体に順応させることが奨励される。 ◎ The suggestions in this section generally assume a visual output medium with a resolution of 96dpi or greater, but HTML is intended to apply to multiple media (it is a media-independent language). User agent implementers are encouraged to adapt the suggestions in this section to their target media.


何らかの[ ~CSS~layout~box / ~SVG~layout~box / 他の~style付け言語による等価な何か ]が結付けられた要素は、 `具現化されて@ いる( `being rendered^en )とされる。 ◎ An element is being rendered if it has any associated CSS layout boxes, SVG layout boxes, or some equivalent in other styling languages.

注記: ~screen外にあるだけでは、 要素は`具現化されて$いないことにはならない。 また, `hidden$a 属性が在ることは、 通常は,要素は`具現化されて$いないことを意味するが、 これは~stylesheetにより上書きされ得る。 ◎ Just being off-screen does not mean the element is not being rendered. The presence of the hidden attribute normally means the element is not being rendered, though this might be overridden by the style sheets.

注記: 文書が`全部的に作動中$か否かは、 要素が`具現化されて$いるか否かには影響しない。 文書は`全部的に作動中$でなく,利用者にまったく示されていない場合でも、 その中の要素は “具現化されている” ものとして選抜され得る。 ◎ The fully active state does not affect whether an element is being rendered or not. Even if a document is not fully active and not shown at all to the user, elements within it can still qualify as "being rendered".

要素は、 次を満たす間は `表示域に交差して@ いるとされる ⇒ [ `具現化されて$いる ]~AND[ 要素に結付けられた~CSS~layout~boxは`表示域$に交差している ] ◎ An element is said to intersect the viewport when it is being rendered and its associated CSS layout box intersects the viewport.

注記: `具現化されて$いるか否かと類似に、 `全部的に作動中$でない文書~内の要素であっても、 `表示域に交差-$し得る。 `表示域$は、 文書~間で共有されないことに加え,常に利用者に示されるとは限らないので、 `全部的に作動中$でない文書~内の要素であっても,当の文書に結付けられた`表示域$には交差し得る。 ◎ Similar to the being rendered state, elements in non-fully active documents can still intersect the viewport. The viewport is not shared between documents and might not always be shown to the user, so an element in a non-fully active document can still intersect the viewport associated with its document.

注記: この仕様は、 交差がいつ~testされるかについて,精確な時機は定義しないが、 その時機は `Intersection Observer API^cite のそれに合致することが示唆される。 `INTERSECTIONOBSERVER$r ◎ This specification does not define the precise timing for when the intersection is tested, but it is suggested that the timing match that of the Intersection Observer API. [INTERSECTIONOBSERVER]

所与の要素 %要素 が `その具現化を子へ委任して@ いるとは、 ~AND↓ を満たすことをいう: ◎ An element is delegating its rendering to its children if\

  • %要素 は`具現化されて$いない ◎ it is not being rendered but\
  • 次の結果として、 %要素 に子が在ったなら,それは`具現化され$る ⇒ %要素 の `display$p は `contents^v をとる `CSSDISPLAY$r, あるいは~CSS以外の~style付け言語における等価な何か ◎ its children (if any) could be rendered, as a result of CSS 'display: contents', or some equivalent in other styling languages. [CSSDISPLAY]

`作者~level$の~stylesheetを尊守しない~UAは、 それでも,以下の各~節に与えられる~CSS規則を[ この仕様と,関連な~CSS, ~Unicode仕様に整合な方式 ]で適用したかのように動作することが期待される。 `CSS$r `UNICODE$r `BIDI$r ◎ User agents that do not honor author-level CSS style sheets are nonetheless expected to act as if they applied the CSS rules given in these sections in a manner consistent with this specification and the relevant CSS and Unicode specifications. [CSS] [UNICODE] [BIDI]

注記: これはとりわけ [ `display$p, `unicode-bidi$p, `direction$p ]~propに関係している課題に重要である。 ◎ This is especially important for issues relating to the 'display', 'unicode-bidi', and 'direction' properties.

【この訳に特有な表記規約】

◎表記記号

加えて、 この~pageの ⇒# 語 “属性” は、(~IDL属性ではなく)要素の内容~属性を意味する。 語 “~prop” は、~CSS~propを意味する。 語 “~pixel” は、~CSS~pixel単位を意味する。

廃用にされた特能に関係する記述

`廃用にされた特能@~HTMLobs#non-conforming-features$(主に属性)のみに関係する記述は、 この段落と同じ~styleが適用されている。 (そのような特能であっても、 一部には,~securityの含意を伴うものがあることに注意。)

【! switch-obsolete 】

~UIwindow下端の “~~廃用” ~buttonで、 これらの記述の表示の有無を切り替えることもできる。

15.2. ~CSS~UA~stylesheetと呈示~用~hint

以下の各~節に与えられる~CSS規則は、 `~HTML要素$を包含する どの文書に対しても — 他が指定されない限り — `~UA~level$の~stylesheetの一部を成す既定として利用することが期待される。 ◎ The CSS rules given in these subsections are, except where otherwise specified, expected to be used as part of the user-agent level style sheet defaults for all documents that contain HTML elements.

一部の~CSS規則は、 ~CSS~cascadeにおける `呈示~用~hint@ ( `presentational hint^en ) — `作者~level$の, `詳細度$は~zero【 ( 0, 0, 0 ) 】にされる規則 【`参照@~CASCADE#preshint$】 — になるものと意図される。 ◎ Some rules are intended for the author-level zero-specificity presentational hints part of the CSS cascade; these are explicitly called out as presentational hints.

`対応付け規則@ とは、 所与の属性~値(たち†)に対し,[ 何らかの~prop用の妥当な値, または 値が妥当でないことを意味する特殊~値 ε ]を返す手続きである。

所与の[ 要素 %E の属性(たち†) %A ]を,所与の`対応付け規則$ %R の下で,所与の~propたちが成す集合 %P 用の `呈示~用~hintとして扱う@ とは:

  • [ %E は属性 %A を有する, かつ %A の値に %R を適用した結果は ε でない ]ならば、[[ %P を成す各~propの値を, %R の結果に設定する ]ような`呈示~用~hint$ ]として扱うことを意味する。
  • この文脈において, `呈示~用~hintになる@ と記されたときは、 ~UAが実際に`呈示~用~hint$として扱う(前項の条件が満たされる)ことを意味する。
  • ~propたちが成す集合 %P は、[ 1 つだけ, かつ %E のそれ ]が指定される場合が多いが,[ 複数個, あるいは他の要素(たち)の~prop ]が指定される場合もある。
  • † 一部の`対応付け規則$(例:`縦横比に対応付ける$)は、 複数個の値からなる組を受容する — その事例では、 %A は,対応する複数個の属性からなる組として与えられる (現時点では、 2 個までに限られ,数箇所( “属性~pair” と記される箇所)しかないが)。

【 本文を簡潔に, 見通しよく, 一貫した形で述べるため、 上で定義した “`対応付け規則$” 以下の各種用語は,原文による定義をより汎用な形に定義し直して導入している。 以下に挙げる対応付け規則のうち一部も、 その一環として導入している。 】


次に挙げる各~手続きは、 `対応付け規則$(または,その一部)としても利用される:

  • 所与の %値 を `~pixel長さに対応付ける@ ときは ⇒ ~RET `負でない整数として構文解析する$( %値 ) の結果に応じて ⇒# `失敗^i ならば ε / ~ELSE_ `~pixel単位$による結果 ◎ When the text below says that an attribute attribute on an element element maps to the pixel length property (or properties) properties, it means that if element has an attribute attribute set, and parsing that attribute's value using the rules for parsing non-negative integers doesn't generate an error, then the user agent is expected to use the parsed value as a pixel length for a presentational hint for properties.
  • 所与の %値 を `寸法に対応付ける@ ときは ⇒ ~RET `寸法~値として構文解析する$( %値 ) の結果に応じて ⇒# `失敗^i ならば ε / ~ELSE_ 結果の種別に応じて⇒# `長さ^i ならば 結果を`~pixel単位$に換算した結果 / `百分率^i ならば 百分率~値としての結果 ◎ When the text below says that an attribute attribute on an element element maps to the dimension property (or properties) properties, it means that if element has an attribute attribute set, and parsing that attribute's value using the rules for parsing dimension values doesn't generate an error, then the user agent is expected to use the parsed dimension as the value for a presentational hint for properties, with the value given as a pixel length if the dimension was a length, and with the value given as a percentage if the dimension was a percentage.
  • 所与の %値 を `~zeroは無視しつつ寸法に対応付ける@ ときは ⇒ ~RET `非~zero寸法~値として構文解析する$( %値 ) の結果に応じて ⇒# `失敗^i ならば ε / ~ELSE_ 結果の種別に応じて⇒# `長さ^i ならば 結果を`~pixel単位$に換算した結果 / `百分率^i ならば 百分率~値としての結果 ◎ When the text below says that an attribute attribute on an element element maps to the dimension property (ignoring zero) (or properties) properties, it means that if element has an attribute attribute set, and parsing that attribute's value using the rules for parsing nonzero dimension values doesn't generate an error, then the user agent is expected to use the parsed dimension as the value for a presentational hint for properties, with the value given as a pixel length if the dimension was a length, and with the value given as a percentage if the dimension was a percentage.
  • 所与の~pair ( %w, %h ) を `縦横比に対応付ける@ ときは:

    1. %横幅 ~LET `負でない整数として構文解析する$( %w )
    2. %縦幅 ~LET `負でない整数として構文解析する$( %h )
    3. ~IF[ %横幅 ~EQ `失敗^i ]~OR[ %縦幅 ~EQ `失敗^i ] ⇒ ~RET ε
    4. ~RET %横幅 / %縦幅 の形による`比率$
    ◎ When the text below says that a pair of attributes w and h on an element element map to the aspect-ratio property, it means that if element has both attributes w and h, and parsing those attributes' values using the rules for parsing non-negative integers doesn't generate an error for either, then the user agent is expected to use the parsed integers as a presentational hint for the 'aspect-ratio' property of the form auto w / h.
  • 所与の~pair ( %w, %h ) を `寸法~規則を利用して縦横比に対応付ける@ ときは:

    1. %横幅 ~LET `寸法~値として構文解析する$( %w )
    2. %縦幅 ~LET `寸法~値として構文解析する$( %h )
    3. ~IF[ %横幅 ~EQ `失敗^i ]~OR[ %横幅 の種別 ~EQ `百分率^i ]~OR[ %縦幅 ~EQ `失敗^i ]~OR[ %縦幅 の種別 ~EQ `百分率^i ] ⇒ ~RET ε
    4. ~RET %横幅 / %縦幅 の形による`比率$
    ◎ When the text below says that a pair of attributes w and h on an element element map to the aspect-ratio property (using dimension rules), it means that if element has both attributes w and h, and parsing those attributes' values using the rules for parsing dimension values doesn't generate an error or return a percentage for either, then the user agent is expected to use the parsed dimensions as a presentational hint for the 'aspect-ratio' property of the form auto w / h.
  • 所与の %値 を `色~値に対応付ける@ ときは ⇒ ~RET `旧来の色~値として構文解析する$( %値 ) の結果に応じて ⇒# `失敗^i ならば ε / ~ELSE_ ~CSS色~値としての結果
  • 所与の %要素 の属性~値 %値 を `絶対~URLに対応付ける@ ときは:

    1. ~IF[ %値 は空である ] ⇒ ~RET ε
    2. %~URL ~LET `~URLを符号化法の下で相対的に構文解析する$( %値, %要素 の`~node文書$ ) 【!#encoding-parsing-and-serializing-a-url】
    3. ~IF[ %~URL ~EQ `失敗^i ] ⇒ ~RET ε
    4. ~RET `~URLを直列化する$( %~URL )
  • 所与の %値 を `負でない整数に対応付ける@ ときは ⇒ ~RET `負でない整数として構文解析する$( %値 ) の結果に応じて ⇒# `失敗^i ならば ε / ~ELSE_ 結果
  • 所与の %値 を `整列~keywordに対応付ける@ ときは:

    1. %値 ~LET `~ASCII小文字~化する$( %値 )
    2. ~IF[ %値 ~EQ `middle^l ] ⇒ ~RET `center^v
    3. ~IF[ %値 ~IN { `center^l, `left^l, `right^l, `justify^l } ] ⇒ ~RET %値 と同じ文字列による~CSS~keyword

      (これらの値は、 順に,自身の中で~textを[ 中央寄せ, 左寄せ, 右寄せ, 両端揃え ]にすることを意味する。)

    4. ~RET ε

~UAが,~nodeの `子孫を整列する@ ときは、 次に従うことが期待される: ◎ When a user agent is to align descendants of a node, the user agent\

  • ~AND↓ を満たす子孫に限り整列する:

    • `margin-inline-start$p, `margin-inline-end$p `CSSLOGICAL$r 両~propとも非 `auto^v 値に算出される
    • 前項により,拘束され過ぎになり、 その結果 2 つの~marginいずれかの`使用~値$は,より大きい値に強制される
    • 子孫~自身に適用-可能な `align^a 属性は無い
    ◎ is expected to align only those descendants that have both their 'margin-inline-start' and 'margin-inline-end' properties computing to a value other than 'auto', that are over-constrained and that have one of those two margins with a used value forced to a greater value, and that do not themselves have an applicable align attribute.\
  • 複数個の要素を特定0の子孫に`整列-$するときは、 そのような要素のうち最も深く入子にされたものが,他を上書きする。 ◎ When multiple elements are to align a particular descendant, the most deeply nested such element is expected to override the others.\
  • 整列される各~要素に対しては、 その[ `行-左端$, `行-右端$ `CSSWM$r ]側~marginの`使用~値$を以上に則って設定することにより,整列する。 ◎ Aligned elements are expected to be aligned by having the used values of their margins on the line-left and line-right sides be set accordingly. [CSSLOGICAL] [CSSWM]
【!obs】

15.3. 非置換~要素

15.3.1. `hidden^a 属性を有する要素

@namespace "http://www.w3.org/1999/xhtml";

area,
base,
basefont,
datalist,
head,
link,
meta,
noembed,
noframes,
param,
rp,
script,
style,
template,
title {
  display: none;
}

[hidden]:not([hidden=until-found i]):not(embed) {
  display: none;
}

[hidden=until-found i]:not(embed) {
  content-visibility: hidden;
}

embed[hidden] {
  display: inline;
  height: 0;
  width: 0;
}

input[type=hidden i] {
  display: none !important;
}

@media (scripting) {
  noscript {
    display: none !important;
  }
}

15.3.2. ~page

@namespace "http://www.w3.org/1999/xhtml";

html,
body {
  display: block;
}

`body$e 要素 %body に対しては、 %body 上の次に挙げる各~prop %~prop ⇒# `margin-top$p, `margin-bottom$p, `margin-left$p, `margin-right$p ◎終 に対し, `8px^v を %~prop に利用することが期待される — 次に与える規則により上書きされる場合を除き: ◎ For each property in the table below, given a body element,\ ◎ ↓

  1. %行 は、 下の表t内の 1 列目に %~prop が現れる行を指すとする:

    ~prop ~sourceを与える属性
    `margin-top^p `marginheight$A `topmargin$A `marginheight$iframe
    `margin-right$p `marginwidth$A `rightmargin$A `marginwidth$iframe
    `margin-bottom$p `marginheight$A `bottommargin$A `marginheight$iframe
    `margin-left$p `marginwidth$A `leftmargin$A `marginwidth$iframe
  2. %属性 は、 次で与えられるとする:

    • %body は %行 の 2 列目に挙げる属性を有するならば,それ
    • 他の場合、 %body は %行 の 3 列目に挙げる属性を有するならば,それ
    • 他の場合、[ %body の`容器~frame要素$が在って,それは %行 の 4 列目に挙げる属性を有する ]ならば,それ
    • 他の場合、 ε
  3. %属性 ~NEQ ε ならば、 %属性 に対し, 次の`対応付け規則$の下で %~prop 用の`呈示~用~hintとして扱う$ことが期待される ⇒ 先ず,`~pixel長さに対応付ける$ — その結果に応じて,次を返す ⇒# ε ならば `8px^v / ~ELSE_ 結果
◎ the first attribute that exists maps to the pixel length property on the body element. If none of the attributes for a property are found, or if the value of the attribute that was found cannot be parsed successfully, then a default value of 8px is expected to be used for that property instead. ◎ Property|Source 'margin-top'| • The body element's marginheight attribute • The body element's topmargin attribute • The body element's container frame element's marginheight attribute 'margin-right'| • The body element's marginwidth attribute • The body element's rightmargin attribute • The body element's container frame element's marginwidth attribute 'margin-bottom'| • The body element's marginheight attribute • The body element's bottommargin attribute • The body element's container frame element's marginheight attribute 'margin-left'| • The body element's marginwidth attribute • The body element's leftmargin attribute • The body element's container frame element's marginwidth attribute

`body$e 要素 %body の `容器~frame要素@ は、[ %body 【!不要:の`~node文書$】の`~node~navigable$ %N は`子~navigable$である ]~AND[ %N の`容器$navは[ `frame$e / `iframe$e ]要素である ]ならば それ/ 他の場合は無いとする。 ◎ If the body element's node document's node navigable is a child navigable, and the container of that navigable is a frame or iframe element, then the container frame element of the body element is that frame or iframe element. Otherwise, there is no container frame element.

上の要件は、 ある~pageは、 別の~page(別の`生成元$に属するものも含む)の~marginを — 例えば `iframe$e を利用して — 変更し得ることを含意する。 これは,一部の事例では、 ~securityの~riskになり得る — それは、[ ~pageが作者が意図したとおりに具現化されない状況 ]を[ ~phishingその他,利用者を誤誘導する目的 ]で企図する攻撃を許容するので。 ◎ The above requirements imply that a page can change the margins of another page (including one from another origin) using, for example, an iframe. This is potentially a security risk, as it might in some cases allow an attack to contrive a situation in which a page is rendered not as the author intended, possibly for the purposes of phishing or otherwise misleading the user.


`文書$の`~node~navigable$ %N が`子~navigable$である場合、 次が期待される — 以下において,[ %表示域 は %N の`表示域$, %容器 は %N の`容器$nav ]を指すとする: ◎ ↓

  • %容器 は`具現化されて$いるならば、 %表示域 の~sizeと位置を[ %容器 の`内容~box$の内側 ]に収まるようにする。 他の場合、 %表示域 の~sizeを縦横とも 0 にする。 ◎ If a Document's node navigable is a child navigable, then it is expected to be positioned and sized to fit inside the content box of the container of that navigable. If the container is not being rendered, the navigable is expected to have a viewport with zero width and zero height.
  • %容器 が ~AND↓ を満たすならば…

    • [ `frame$e / `iframe$e ]要素である
    • `scrolling^a 属性を有していて, その値 ~IN`大小無視$sub { `off^l, `noscroll^l, `no^l }

    …ならば ⇒ %表示域 には~scrollbarを示さないようにする — %表示域 に `overflow$p ~propが適用されるかどうかに関わらず。

    ◎ If a Document's node navigable is a child navigable, the container of that navigable is a frame or iframe element, that element has a scrolling attribute, and that attribute's value is an ASCII case-insensitive match for the string "off", "noscroll", or "no", then the user agent is expected to prevent any scrollbars from being shown for the viewport of the Document's node navigable, regardless of the 'overflow' property that applies to that viewport.

`body$e 要素の `background$a 属性は、 `絶対~URLに対応付ける$下で,要素の `background-image$p ~prop用の`呈示~用~hintとして扱う$ことが期待される。 ◎ When a body element has a background attribute set to a non-empty value, the new value is expected to be encoding-parsed-and-serialized relative to the element's node document, and if that does not return failure, the user agent is expected to treat the attribute as a presentational hint setting the element's 'background-image' property to the return value.

`body$e 要素の `bgcolor$A 属性は、 `色~値に対応付ける$下で,要素の `background-color$p ~prop用の`呈示~用~hintとして扱う$ことが期待される。 ◎ When a body element has a bgcolor attribute set, the new value is expected to be parsed using the rules for parsing a legacy color value, and if that does not return an error, the user agent is expected to treat the attribute as a presentational hint setting the element's 'background-color' property to the resulting color.

下の表tの 1 列目に示される `body$e 要素の属性は、 `色~値に対応付ける$下で,[ 同じ行の 2 列目に示される すべての要素 ]の `color$p ~prop用の`呈示~用~hintとして扱う$ことが期待される: ◎ ↓

属性 対象の要素
`text$A `body$e 要素~自身 ◎ When a body element has a text attribute, its value is expected to be parsed using the rules for parsing a legacy color value, and if that does not return an error, the user agent is expected to treat the attribute as a presentational hint setting the element's 'color' property to the resulting color.
`link$A 同じ`文書$内の `link$ps `疑似類$に合致するもの ◎ When a body element has a link attribute, its value is expected to be parsed using the rules for parsing a legacy color value, and if that does not return an error, the user agent is expected to treat the attribute as a presentational hint setting the 'color' property of any element in the Document matching the :link pseudo-class to the resulting color.
`vlink$A 同じ`文書$内の `visited$ps `疑似類$に合致するもの ◎ When a body element has a vlink attribute, its value is expected to be parsed using the rules for parsing a legacy color value, and if that does not return an error, the user agent is expected to treat the attribute as a presentational hint setting the 'color' property of any element in the Document matching the :visited pseudo-class to the resulting color.
`alink$A 同じ`文書$内の,[ `active$ps `疑似類$に合致する, かつ[ `link$ps, `visited$ps ]`疑似類$いずれかに合致する ]もの ◎ When a body element has an alink attribute, its value is expected to be parsed using the rules for parsing a legacy color value, and if that does not return an error, the user agent is expected to treat the attribute as a presentational hint setting the 'color' property of any element in the Document matching the :active pseudo-class and either the :link pseudo-class or the :visited pseudo-class to the resulting color.
【!obs】

15.3.3. `~flow内容$

@namespace "http://www.w3.org/1999/xhtml";

address,
blockquote,
center,
dialog,
div,
figure,
figcaption,
footer,
form,
header,
hr,
legend,
listing,
main,
p,
plaintext,
pre,
search,
xmp {
  display: block;
}

blockquote,
figure,
listing,
p,
plaintext,
pre,
xmp {
  margin-block: 1em;
}

blockquote,
figure {
  margin-inline: 40px;
}

address {
  font-style: italic;
}

listing,
plaintext,
pre,
xmp {
  font-family: monospace;
  white-space: pre;
}

dialog:not([open]) {
  display: none;
}
dialog {
  position: absolute;
  inset-inline-start: 0;
  inset-inline-end: 0;
  width: fit-content;
  height: fit-content;
  margin: auto;
  border: solid;
  padding: 1em;
  background-color: Canvas;
  color: CanvasText;
}
dialog:modal {
  position: fixed;
  overflow: auto;
  inset-block: 0;
  max-width: calc(100% - 6px - 2em);
  max-height: calc(100% - 6px - 2em);
}
dialog::backdrop {
  background: rgba(0,0,0,0.1);
}

[popover]:not(:popover-open):not(dialog[open]) {
  display:none;
}

dialog:popover-open {
  display:block;
}

[popover] {
  position: fixed;
  inset: 0;
  width: fit-content;
  height: fit-content;
  margin: auto;
  border: solid;
  padding: 0.25em;
  overflow: auto;
  color: CanvasText;
  background-color: Canvas;
}

:popover-open::backdrop {
  position: fixed;
  inset: 0;
  pointer-events: none !important;
  background-color: transparent;
}

slot {
  display: contents;
}

次の規則も`呈示~用~hint$として適用することが期待される: ◎ The following rules are also expected to apply, as presentational hints:

@namespace "http://www.w3.org/1999/xhtml";

pre[wrap] {
  white-space: pre-wrap;
}

`過去互換~mode$の下では、 次の規則も適用することが期待される: ◎ In quirks mode, the following rules are also expected to apply:

@namespace "http://www.w3.org/1999/xhtml";

form {
  margin-block-end: 1em;
}

`center$e 要素の `align$A 属性に対しては、 次が期待される:

  • 次の`対応付け規則$の下で,要素の `text-align$p ~prop用の`呈示~用~hintとして扱う$ ⇒ 先ず,`整列~keywordに対応付ける$ — その結果に応じて,次を返す ⇒# `center^v ならば `center^v / 他の場合は ε
  • 加えて,`呈示~用~hintになる$場合は、 中央寄せに`子孫を整列する$。

`div$e 要素の `align$A 属性に対しては、 次が期待される:

  • `整列~keywordに対応付ける$下で, 要素の `text-align$p ~prop用の`呈示~用~hintとして扱う$
  • 加えて,`呈示~用~hintになる$場合は、 対応付けた結果の~CSS~keyword[ `center^v / `left^v / `right^v / `justify^v ]に応じて[ 中央寄せ / 左端 / 右端 / 左端† ]に`子孫を整列する$。 【† 両端揃えでないことに注意。】
◎ The center element, and the div element when it has an align attribute whose value is an ASCII case-insensitive match for either the string "center" or the string "middle", are expected to center text within themselves, as if they had their 'text-align' property set to 'center' in a presentational hint, and to align descendants to the center. ◎ The div element, when it has an align attribute whose value is an ASCII case-insensitive match for the string "left", is expected to left-align text within itself, as if it had its 'text-align' property set to 'left' in a presentational hint, and to align descendants to the left. ◎ The div element, when it has an align attribute whose value is an ASCII case-insensitive match for the string "right", is expected to right-align text within itself, as if it had its 'text-align' property set to 'right' in a presentational hint, and to align descendants to the right. ◎ The div element, when it has an align attribute whose value is an ASCII case-insensitive match for the string "justify", is expected to full-justify text within itself, as if it had its 'text-align' property set to 'justify' in a presentational hint, and to align descendants to the left.
【!obs】

15.3.4. `句ng内容$

@namespace "http://www.w3.org/1999/xhtml";

cite,
dfn,
em,
i,
var {
  font-style: italic;
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
samp,
tt {
  font-family: monospace;
}
big {
  font-size: larger;
}
small {
  font-size: smaller;
}

sub {
  vertical-align: sub;
}
sup {
  vertical-align: super;
}
sub,
sup {
  line-height: normal;
  font-size: smaller;
}

ruby {
  display: ruby;
}
rt {
  display: ruby-text;
}

:link {
  color: #0000EE;
}
:visited {
  color: #551A8B;
}
:link:active,
:visited:active {
  color: #FF0000;
}
:link,
:visited {
  text-decoration: underline;
  cursor: pointer;
}

:focus-visible {
  outline: auto;
}

mark {
  background: yellow;
  color: black;
} /* 
この色は、
単なる示唆であり,実装~feedbackに基づいて変更され得る
◎
this color is just a suggestion and can be changed based on implementation feedback
 */

abbr[title],
acronym[title] {
  text-decoration: dotted underline;
}
ins,
u {
  text-decoration: underline;
}
del,
s,
strike {
  text-decoration: line-through;
}

q::before {
  content: open-quote;
}
q::after {
  content: close-quote;
}

br {
  display-outside: newline;
} /* 
これには`双向~含意$もある
◎
this also has bidi implications
 */
nobr {
  white-space: nowrap;
}
wbr {
  display-outside: break-opportunity;
} /* 
これには`双向~含意$もある
◎
this also has bidi implications
 */
nobr wbr {
  white-space: normal;
}

次の規則も`呈示~用~hint$として適用することが期待される: ◎ The following rules are also expected to apply, as presentational hints:

@namespace "http://www.w3.org/1999/xhtml";

br[clear=left i] {
  clear: left;
}
br[clear=right i] {
  clear: right;
}
br[clear=all i], br[clear=both i] {
  clear: both;
}
【!obs】

~CSS~ruby~modelの目的においては、 `ruby$e 要素の子のうち,[ `rt$e, `rp$e ]要素でないものからなる連なりは、[ `display$p ~propが値 `ruby-base$v にされた`匿名$な~box ]内に包装することが期待される。 `CSSRUBY$r ◎ For the purposes of the CSS ruby model, runs of children of ruby elements that are not rt or rp elements are expected to be wrapped in anonymous boxes whose 'display' property has the value 'ruby-base'. [CSSRUBY]

~rubyの特定0の部分が複数の~ruby注釈を有する場合、 それらの注釈は,~ruby注釈の一方の側への堆積を最小限にするため, 基底~textの両~側に分配するべきである。 ◎ When a particular part of a ruby has more than one annotation, the annotations should be distributed on both sides of the base text so as to minimize the stacking of ruby annotations on one side.

注記: 前述の要件は、 アリな所では,~CSS~rubyの用語で表出するように更新されることになる (現時点では、 ~CSS~rubyは,この意味論を表出する[ 入子な `ruby$e 要素 / 複数の連列的 `rt$e 要素 ]を取扱っていない。) ◎ When it becomes possible to do so, the preceding requirement will be updated to be expressed in terms of CSS ruby. (Currently, CSS ruby does not handle nested ruby elements or multiple sequential rt elements, which is how this semantic is expressed.)

正しい~ruby具現化を~supportしない~UAには、 `rp$e 要素が無い下では, `rt$e 要素の~textの~~前後に丸括弧を具現化することが期待される。 ◎ User agents that do not support correct ruby rendering are expected to render parentheses around the text of rt elements in the absence of rp elements.


行内~要素†の `clear$p ~propに対しては、 ( `clear@~HTMLobs#attr-br-clear$a 属性を有する `br$e 要素を具現化するために) [ `CSS^cite における この効果に関する規範的でない注記††にて述べられる方式 ]で~supportすることが期待される。 ◎ User agents are expected to support the 'clear' property on inline elements (in order to render br elements with clear attributes) in the manner described in the non-normative note to this effect in CSS.

【† おそらく、 `行内~levelの~box$を生成する要素。 】【†† `clear$p ~propを定義している節の末尾にある。 】

`color$p ~prop用の初期~値は、 `black^v にすることが期待される。 `background-color$p ~prop用の初期~値は、 `transparent^v にすることが期待される。 ~canvasの背景は、 `white^v にすることが期待される。 ◎ The initial value for the 'color' property is expected to be black. The initial value for the 'background-color' property is expected to be 'transparent'. The canvas's background is expected to be white.


【 以下、 廃用にされた `font$e 要素~用の記述 — この訳では省略する。 】

15.3.5. 双方向-~text

@namespace "http://www.w3.org/1999/xhtml";

[dir]:dir(ltr),
bdi:dir(ltr),
input[type=tel i]:dir(ltr) {
  direction: ltr;
}
[dir]:dir(rtl),
bdi:dir(rtl) {
  direction: rtl;
}

address,
blockquote,
center,
div,
figure,
figcaption,
footer,
form,
header,
hr,
legend,
listing,
main,
p,
plaintext,
pre,
summary,
xmp,
article,
aside,
h1,
h2,
h3,
h4,
h5,
h6,
hgroup,
nav,
section,
search,
table,
caption,
colgroup,
col,
thead,
tbody,
tfoot,
tr,
td,
th,
dir,
dd,
dl,
dt,
menu,
ol,
ul,
li,
bdi,
output,
[dir=ltr i],
[dir=rtl i],
[dir=auto i] {
  unicode-bidi: isolate;
}

bdo,
bdo[dir] {
  unicode-bidi: isolate-override;
}

input[dir=auto i]:is([type=search i], [type=tel i], [type=url i], [type=email i]),
textarea[dir=auto i],
pre[dir=auto i] {
  unicode-bidi: plaintext;
}
/* 
`type^a 属性が `Text$st 状態にある `input^e 要素については、
注釈文を見よ。
◎
see prose for input elements whose type attribute is in the Text state
 */

/* 
[
`br$e / `wbr$e
]要素の `content^p ~propを`設定する規則@#br-wbr-content$には、
双向~含意もある
◎
the rules setting the 'content' property on br and wbr elements also has bidi implications
 */

~AND↓ を満たす `input$e 要素に対しては…

  • その `dir$a 属性の状態 ~EQ `自動@~HTMLdom#attr-dir-auto-state$st【!~HTMLdom#attr-dir-auto】
  • その `type$input 属性の状態 ~EQ `Text$st

…次が期待される ⇒ `~UA~level$の~stylesheet内に[ 当の要素の `unicode-bidi$p ~propを `plaintext^v に設定する規則 ]が在るかのように動作する

◎ When an input element's dir attribute is in the auto state and its type attribute is in the Text state, then the user agent is expected to act as if it had a user-agent-level style sheet rule setting the 'unicode-bidi' property to 'plaintext'.

次に挙げる要素( “入力~欄” )に対しては:

  • `textarea$e 要素
  • `input$e 要素のうち[ その `type$input 属性の状態 ~IN { `Text$st, `Search$st, `Tel$st, `Url$st, `Email$st } ]を満たすもの

…次が期待される ⇒ 編集-用~UIを呈示する — その方向性は当の要素の `direction$p ~propに合致する

◎ Input fields (i.e. textarea elements, and input elements when their type attribute is in the Text, Search, Telephone, URL, or Email state) are expected to present an editing user interface with a directionality that matches the element's 'direction' property.

文書の文字~符号化法が `ISO-8859-8@~ENCODING#iso-8859-8$ `ENCODING$r のときは、 上の規則に加えて,次も適用することが期待される: ◎ When the document's character encoding is ISO-8859-8, the following rules are additionally expected to apply, following those above: [ENCODING]

@namespace "http://www.w3.org/1999/xhtml";

address,
blockquote,
center,
div,
figure,
figcaption,
footer,
form,
header,
hr,
legend,
listing,
main,
p,
plaintext,
pre,
summary,
xmp,
article,
aside,
h1,
h2,
h3,
h4,
h5,
h6,
hgroup,
nav,
section,
search,
table,
caption,
colgroup,
col,
thead,
tbody,
tfoot,
tr,
td,
th,
dir,
dd,
dl,
dt,
menu,
ol,
ul,
li,
[dir=ltr i],
[dir=rtl i],
[dir=auto i],
*|* {
  unicode-bidi: bidi-override;
}
input:not([type=submit i]):not([type=reset i]):not([type=button i]),
textarea {
  unicode-bidi: normal;
}

15.3.6. ~sectionと見出し

@namespace "http://www.w3.org/1999/xhtml";

article,
aside,
h1,
h2,
h3,
h4,
h5,
h6,
hgroup,
nav,
section {
  display: block;
}

h1 {
  margin-block: 0.67em;
  font-size: 2.00em;
  font-weight: bold;
}
h2 {
  margin-block: 0.83em;
  font-size: 1.50em;
  font-weight: bold;
}
h3 {
  margin-block: 1.00em;
  font-size: 1.17em;
  font-weight: bold;
}
h4 {
  margin-block: 1.33em;
  font-size: 1.00em;
  font-weight: bold;
}
h5 {
  margin-block: 1.67em;
  font-size: 0.83em;
  font-weight: bold;
}
h6 {
  margin-block: 2.33em;
  font-size: 0.67em;
  font-weight: bold;
}

読み易くするため、 次の~CSS~blockにおける記号 %x は,次に与える選択子の略記とする ⇒ `:is(article, aside, nav, section)^css ◎ In the following CSS block, x is shorthand for the following selector: :is(article, aside, nav, section)

@namespace "http://www.w3.org/1999/xhtml";

%x h1 {
  margin-block: 0.83em;
  font-size: 1.50em;
}
%x %x h1 {
  margin-block: 1.00em;
  font-size: 1.17em;
}
%x %x %x h1 {
  margin-block: 1.33em;
  font-size: 1.00em;
}
%x %x %x %x h1 {
  margin-block: 1.67em;
  font-size: 0.83em;
}
%x %x %x %x %x h1 {
  margin-block: 2.33em;
  font-size: 0.67em;
}

◎ The shorthand is used to keep this block at least mildly readable.

15.3.7. ~list

@namespace "http://www.w3.org/1999/xhtml";

dir,
dd,
dl,
dt,
menu,
ol,
ul {
  display: block;
}
li {
  display: list-item;
  text-align: match-parent;
}

dir,
dl,
menu,
ol,
ul {
  margin-block: 1em;
}

:is(dir, dl, menu, ol, ul) :is(dir, dl, menu, ol, ul) {
  margin-block: 0;
}

dd {
  margin-inline-start: 40px;
}
dir,
menu,
ol,
ul {
  padding-inline-start: 40px;
}

ol,
ul,
menu {
  counter-reset: list-item;
}
ol {
  list-style-type: decimal;
}

dir,
menu,
ul {
  list-style-type: disc;
}
:is(dir, menu, ol, ul) :is(dir, menu, ul) {
  list-style-type: circle;
}
:is(dir, menu, ol, ul) :is(dir, menu, ol, ul) :is(dir, menu, ul) {
  list-style-type: square;
}

次の規則も`呈示~用~hint$として適用することが期待される: ◎ The following rules are also expected to apply, as presentational hints:

@namespace "http://www.w3.org/1999/xhtml";

ol[type="1"],
li[type="1"] {
  list-style-type: decimal;
}
ol[type=a s],
li[type=a s] {
  list-style-type: lower-alpha;
}
ol[type=A s],
li[type=A s] {
  list-style-type: upper-alpha;
}
ol[type=i s],
li[type=i s] {
  list-style-type: lower-roman;
}
ol[type=I s],
li[type=I s] {
  list-style-type: upper-roman;
}
ul[type=none i],
li[type=none i] {
  list-style-type: none;
}
ul[type=disc i],
li[type=disc i] {
  list-style-type: disc;
}
ul[type=circle i],
li[type=circle i] {
  list-style-type: circle;
}
ul[type=square i],
li[type=square i] {
  list-style-type: square;
}
【!obs】

非~CSS~UAに対しては、 `li$e 要素を次に従って具現化することが期待される ⇒ 要素の`序数~値$を利用して,~list~item~marker内の~counterを具現化する ◎ When rendering li elements, non-CSS user agents are expected to use the ordinal value of the li element to render the counter in the list item marker.

~CSS~UAに対しては、 `~list~item$の具現化を成す一部の側面は, `CSS Lists^cite 仕様 `CSSLISTS$r にて定義される。 加えて,以下に与える属性~対応付けを適用することが期待される: ◎ For CSS user agents, some aspects of rendering list items are defined by the CSS Lists specification. Additionally, the following attribute mappings are expected to apply: [CSSLISTS]

  • `li$e 要素の `value$A 属性は、 次の`対応付け規則$の下で,要素の `counter-set$p ~prop用の`呈示~用~hintとして扱う$ことが期待される ⇒ ~RET `整数として構文解析する$( 所与の値 ) の結果 %値 に応じて ⇒# `失敗^i ならば ε / ~ELSE_ `list-item ^v ◎ When an li element has a value attribute, and parsing that attribute's value using the rules for parsing integers doesn't generate an error, the user agent is expected to use the parsed value value as a presentational hint for the 'counter-set' property of the form list-item value.
  • `ol$e 要素の[ `start$A, `reversed$A ]属性~pairは、 次の`対応付け規則$の下で,要素の `counter-reset$p ~prop用の`呈示~用~hintとして扱う$ことが期待される: ◎ When an ol element has a start attribute or a reversed attribute, or both, the user agent is expected to use the following steps to treat the attributes as a presentational hint for the 'counter-reset' property:

    1. %値 ~LET `失敗^i ◎ Let value be null.
    2. ~IF[ 要素は `start$A 属性を有する ] ⇒ %値 ~SET `整数として構文解析する$( 属性の値 ) ◎ If the element has a start attribute, then set value to the result of parsing the attribute's value using the rules for parsing integers.
    3. ~IF[ 要素は `reversed$A 属性を有する ]:

      1. ~IF[ %値 ~EQ `失敗^i ] ⇒ ~RET `reversed(list-item)^v
      2. %値 ~INCBY 1
      3. ~RET `reversed(list-item) ^v
      ◎ If the element has a reversed attribute, then: • If value is an integer, then increment value by 1 and return reversed(list-item) value. • Otherwise, return reversed(list-item). • Either the start attribute was absent, or parsing its value resulted in an error.
    4. ~ELSE:

      1. ~IF[ %値 ~EQ `失敗^i ] ⇒ ~RET ε (`呈示~用~hint$は無い)
      2. %値 ~DECBY 1
      3. ~RET `list-item ^v
      ◎ Otherwise: • If value is an integer, then decrement value by 1 and return list-item value. • Otherwise, there is no presentational hint.

15.3.8. ~table

@namespace "http://www.w3.org/1999/xhtml";

table {
  display: table;
}
caption {
  display: table-caption;
}
colgroup,
colgroup[hidden] {
  display: table-column-group;
}
col,
col[hidden] {
  display: table-column;
}
thead,
thead[hidden] {
  display: table-header-group;
}
tbody,
tbody[hidden] {
  display: table-row-group;
}
tfoot,
tfoot[hidden] {
  display: table-footer-group;
}
tr,
tr[hidden] {
  display: table-row;
}
td,
th {
  display: table-cell;
}

colgroup[hidden],
col[hidden],
thead[hidden],
tbody[hidden],
tfoot[hidden],
tr[hidden] {
  visibility: collapse;
}

table {
  box-sizing: border-box;
  border-spacing: 2px;
  border-collapse: separate;
  text-indent: initial;
}
td,
th {
  padding: 1px;
}
th {
  font-weight: bold;
}

caption {
  text-align: center;
}
thead,
tbody,
tfoot,
table > tr {
  vertical-align: middle;
}
tr,
td,
th {
  vertical-align: inherit;
}

thead,
tbody,
tfoot,
tr {
  border-color: inherit;
}

(廃用にされた `rules^a, `frame^a 属性に関する~style:)

table[rules=none i],
table[rules=groups i],
table[rules=rows i],
table[rules=cols i],
table[rules=all i],
table[frame=void i],
table[frame=above i],
table[frame=below i],
table[frame=hsides i],
table[frame=lhs i],
table[frame=rhs i],
table[frame=vsides i],
table[frame=box i],
table[frame=border i],
table[rules=none i] > tr > td,
table[rules=none i] > tr > th,
table[rules=groups i] > tr > td,
table[rules=groups i] > tr > th,
table[rules=rows i] > tr > td,
table[rules=rows i] > tr > th,
table[rules=cols i] > tr > td,
table[rules=cols i] > tr > th,
table[rules=all i] > tr > td,
table[rules=all i] > tr > th,
table[rules=none i] > thead > tr > td,
table[rules=none i] > thead > tr > th,
table[rules=groups i] > thead > tr > td,
table[rules=groups i] > thead > tr > th,
table[rules=rows i] > thead > tr > td,
table[rules=rows i] > thead > tr > th,
table[rules=cols i] > thead > tr > td,
table[rules=cols i] > thead > tr > th,
table[rules=all i] > thead > tr > td,
table[rules=all i] > thead > tr > th,
table[rules=none i] > tbody > tr > td,
table[rules=none i] > tbody > tr > th,
table[rules=groups i] > tbody > tr > td,
table[rules=groups i] > tbody > tr > th,
table[rules=rows i] > tbody > tr > td,
table[rules=rows i] > tbody > tr > th,
table[rules=cols i] > tbody > tr > td,
table[rules=cols i] > tbody > tr > th,
table[rules=all i] > tbody > tr > td,
table[rules=all i] > tbody > tr > th,
table[rules=none i] > tfoot > tr > td,
table[rules=none i] > tfoot > tr > th,
table[rules=groups i] > tfoot > tr > td,
table[rules=groups i] > tfoot > tr > th,
table[rules=rows i] > tfoot > tr > td,
table[rules=rows i] > tfoot > tr > th,
table[rules=cols i] > tfoot > tr > td,
table[rules=cols i] > tfoot > tr > th,
table[rules=all i] > tfoot > tr > td,
table[rules=all i] > tfoot > tr > th {
  border-color: black;
}
【!obs】

次の規則も`呈示~用~hint$として適用することが期待される: ◎ The following rules are also expected to apply, as presentational hints:

@namespace "http://www.w3.org/1999/xhtml";

table[align=left i] {
  float: left;
}
table[align=right i] {
  float: right;
}
table[align=center i] {
  margin-inline-start: auto;
  margin-inline-end: auto;
}
thead[align=absmiddle i],
tbody[align=absmiddle i],
tfoot[align=absmiddle i],
tr[align=absmiddle i],
td[align=absmiddle i],
th[align=absmiddle i] {
  text-align: center;
}

caption[align=bottom i] {
  caption-side: bottom;
}
p[align=left i],
h1[align=left i],
h2[align=left i],
h3[align=left i],
h4[align=left i],
h5[align=left i],
h6[align=left i] {
  text-align: left;
}
p[align=right i],
h1[align=right i],
h2[align=right i],
h3[align=right i],
h4[align=right i],
h5[align=right i],
h6[align=right i] {
  text-align: right;
}
p[align=center i],
h1[align=center i],
h2[align=center i],
h3[align=center i],
h4[align=center i],
h5[align=center i],
h6[align=center i] {
  text-align: center;
}
p[align=justify i],
h1[align=justify i],
h2[align=justify i],
h3[align=justify i],
h4[align=justify i],
h5[align=justify i],
h6[align=justify i] {
  text-align: justify;
}
thead[valign=top i],
tbody[valign=top i],
tfoot[valign=top i],
tr[valign=top i],
td[valign=top i],
th[valign=top i] {
  vertical-align: top;
}
thead[valign=middle i],
tbody[valign=middle i],
tfoot[valign=middle i],
tr[valign=middle i],
td[valign=middle i],
th[valign=middle i] {
  vertical-align: middle;
}
thead[valign=bottom i],
tbody[valign=bottom i],
tfoot[valign=bottom i],
tr[valign=bottom i],
td[valign=bottom i],
th[valign=bottom i] {
  vertical-align: bottom;
}
thead[valign=baseline i],
tbody[valign=baseline i],
tfoot[valign=baseline i],
tr[valign=baseline i],
td[valign=baseline i],
th[valign=baseline i] {
  vertical-align: baseline;
}

td[nowrap],
th[nowrap] {
  white-space: nowrap;
}

table[rules=none i],
table[rules=groups i],
table[rules=rows i],
table[rules=cols i],
table[rules=all i] {
  border-style: hidden;
  border-collapse: collapse;
}
table[border] {
  border-style: outset; /* 
`~borderが~zeroに等価でない場合に限る$
◎
only if border is not equivalent to zero
 */
}
table[frame=void i] {
  border-style: hidden;
}
table[frame=above i] {
  border-style: outset hidden hidden hidden;
}
table[frame=below i] {
  border-style: hidden hidden outset hidden;
}
table[frame=hsides i] {
  border-style: outset hidden outset hidden;
}
table[frame=lhs i] {
  border-style: hidden hidden hidden outset;
}
table[frame=rhs i] {
  border-style: hidden outset hidden hidden;
}
table[frame=vsides i] {
  border-style: hidden outset;
}
table[frame=box i],
table[frame=border i] {
  border-style: outset;
}

table[border] > tr > td,
table[border] > tr > th,
table[border] > thead > tr > td,
table[border] > thead > tr > th,
table[border] > tbody > tr > td,
table[border] > tbody > tr > th,
table[border] > tfoot > tr > td,
table[border] > tfoot > tr > th {
  /* 
`~borderが~zeroに等価でない場合に限る$
◎
only if border is not equivalent to zero
 */
  border-width: 1px;
  border-style: inset;
}
table[rules=none i] > tr > td,
table[rules=none i] > tr > th,
table[rules=none i] > thead > tr > td,
table[rules=none i] > thead > tr > th,
table[rules=none i] > tbody > tr > td,
table[rules=none i] > tbody > tr > th,
table[rules=none i] > tfoot > tr > td,
table[rules=none i] > tfoot > tr > th,
table[rules=groups i] > tr > td,
table[rules=groups i] > tr > th,
table[rules=groups i] > thead > tr > td,
table[rules=groups i] > thead > tr > th,
table[rules=groups i] > tbody > tr > td,
table[rules=groups i] > tbody > tr > th,
table[rules=groups i] > tfoot > tr > td,
table[rules=groups i] > tfoot > tr > th,
table[rules=rows i] > tr > td,
table[rules=rows i] > tr > th,
table[rules=rows i] > thead > tr > td,
table[rules=rows i] > thead > tr > th,
table[rules=rows i] > tbody > tr > td,
table[rules=rows i] > tbody > tr > th,
table[rules=rows i] > tfoot > tr > td,
table[rules=rows i] > tfoot > tr > th {
  border-width: 1px;
  border-style: none;
}
table[rules=cols i] > tr > td,
table[rules=cols i] > tr > th,
table[rules=cols i] > thead > tr > td,
table[rules=cols i] > thead > tr > th,
table[rules=cols i] > tbody > tr > td,
table[rules=cols i] > tbody > tr > th,
table[rules=cols i] > tfoot > tr > td,
table[rules=cols i] > tfoot > tr > th {
  border-width: 1px;
  border-block-style: none;
  border-inline-style: solid;
}
table[rules=all i] > tr > td,
table[rules=all i] > tr > th,
table[rules=all i] > thead > tr > td,
table[rules=all i] > thead > tr > th,
table[rules=all i] > tbody > tr > td,
table[rules=all i] > tbody > tr > th,
table[rules=all i] > tfoot > tr > td,
table[rules=all i] > tfoot > tr > th {
  border-width: 1px;
  border-style: solid;
}

table[rules=groups i] > colgroup {
  border-inline-width: 1px;
  border-inline-style: solid;
}
table[rules=groups i] > thead,
table[rules=groups i] > tbody,
table[rules=groups i] > tfoot {
  border-block-width: 1px;
  border-block-style: solid;
}

table[rules=rows i] > tr,
table[rules=rows i] > thead > tr,
table[rules=rows i] > tbody > tr,
table[rules=rows i] > tfoot > tr {
  border-block-width: 1px;
  border-block-style: solid;
}
【!obs】

`過去互換~mode$の下では、 次の規則も適用することが期待される: ◎ In quirks mode, the following rules are also expected to apply:

@namespace "http://www.w3.org/1999/xhtml";

table {
  font-weight: initial;
  font-style: initial;
  font-variant: initial;
  font-size: initial;
  line-height: initial;
  white-space: initial;
  text-align: initial;
}

~CSS~table~modelの目的においては: ◎ ↓

  • `col$e 要素は、 その `span$A 属性に`指定された数@~HTMLcms#rules-for-parsing-non-negative-integers$と同じだけ在るかのように扱うことが期待される。 ◎ For the purposes of the CSS table model, the col element is expected to be treated as if it was present as many times as its span attribute specifies.
  • `colgroup$e 要素のうち, `col$e 要素を包含していないものは、 その `span$A 属性に`指定された数@~HTMLcms#rules-for-parsing-non-negative-integers$と同じだけ,子 `col^e 要素が在るかのように扱うことが期待される。 ◎ For the purposes of the CSS table model, the colgroup element, if it contains no col element, is expected to be treated as if it had as many such children as its span attribute specifies.
  • [ `td$e / `th$e ]要素の `colspan$tdth, `rowspan$tdth 属性は、 ~cellが何本の[ ~row, ~column ]に~spanしているかに関する 特別な知識を`供する@~HTMLcms#rules-for-parsing-non-negative-integers$ことが期待される。 ◎ For the purposes of the CSS table model, the colspan and rowspan attributes on td and th elements are expected to provide the special knowledge regarding cells spanning rows and columns.

`~HTML文書$においては、 次の規則も適用することが期待される: ◎ In HTML documents, the following rules are also expected to apply:

@namespace "http://www.w3.org/1999/xhtml";

:is(table, thead, tbody, tfoot, tr) > form {
  display: none !important;
}

~tableにおける廃用にされた属性

次の表tの 1 列目に与える要素に対しては、 同じ行の[ 2 列目に与える属性を, 3 列目に与える`対応付け規則$の下で, 4 列目に与える~prop(他が言明されない限り,同じ要素の~prop) ]用の`呈示~用~hintとして扱う$ことが期待される: ◎ ↓

~tableの廃用にされた属性に対する扱い
要素 属性 `対応付け規則$ ~prop
`table$e `cellspacing$A `~pixel長さに対応付ける$ `border-spacing$p
The table element's cellspacing attribute maps to the pixel length property 'border-spacing' on the element.
`table$e `cellpadding$A `~pixel長さに対応付ける$ 要素に対応する`~table$内のある`~cell$に対応するような,すべての[ `td$e / `th$e ]要素の[ `padding-top$p, `padding-right$p, `padding-bottom$p, `padding-left$p ]
The table element's cellpadding attribute maps to the pixel length properties 'padding-top', 'padding-right', 'padding-bottom', and 'padding-left' of any td and th elements that have corresponding cells in the table corresponding to the table element.
`table$e `height$A `寸法に対応付ける$ `height$p
The table element's height attribute maps to the dimension property 'height' on the table element.
`table$e `width$A `~zeroは無視しつつ寸法に対応付ける$ `width$p
The table element's width attribute maps to the dimension property (ignoring zero) 'width' on the table element.
`col$e `width$A `寸法に対応付ける$ `width$p

The col element's width attribute maps to the dimension property 'width' on the col element.

`thead$e, `tbody$e, `tfoot$e `height$A `寸法に対応付ける$ `height$p
The thead, tbody, and tfoot elements' height attribute maps to the dimension property 'height' on the element.
`tr$e `height$A `寸法に対応付ける$ `height$p
The tr element's height attribute maps to the dimension property 'height' on the tr element.
`td$e, `th$e `height$tdth `~zeroは無視しつつ寸法に対応付ける$ `height$p
The td and th elements' height attributes map to the dimension property (ignoring zero) 'height' on the element.
`td$e, `th$e `width$tdth `~zeroは無視しつつ寸法に対応付ける$ `width$p
The td and th elements' width attributes map to the dimension property (ignoring zero) 'width' on the element.
`thead$e, `tbody$e, `tfoot$e, `tr$e, `td$e, `th$e `align^a `整列~keywordに対応付ける$ `text-align$p
加えて,`呈示~用~hintになる$場合は、 対応付けた結果の~CSS~keyword[ `center^v / `left^v / `right^v / `justify^v ]に応じて[ 中央寄せ / 左端 / 右端 / 両端揃え ]に`子孫を整列する$ことも期待される。

The thead, tbody, tfoot, tr, td, and th elements, when they have an align attribute whose value is an ASCII case-insensitive match for either the string "center" or the string "middle", are expected to center text within themselves, as if they had their 'text-align' property set to 'center' in a presentational hint, and to align descendants to the center.

The thead, tbody, tfoot, tr, td, and th elements, when they have an align attribute whose value is an ASCII case-insensitive match for the string "left", are expected to left-align text within themselves, as if they had their 'text-align' property set to 'left' in a presentational hint, and to align descendants to the left.

The thead, tbody, tfoot, tr, td, and th elements, when they have an align attribute whose value is an ASCII case-insensitive match for the string "right", are expected to right-align text within themselves, as if they had their 'text-align' property set to 'right' in a presentational hint, and to align descendants to the right.

The thead, tbody, tfoot, tr, td, and th elements, when they have an align attribute whose value is an ASCII case-insensitive match for the string "justify", are expected to full-justify text within themselves, as if they had their 'text-align' property set to 'justify' in a presentational hint, and to align descendants to the left.

User agents are expected to have a rule in their user agent style sheet that matches th elements that have a parent node whose computed value for the 'text-align' property is its initial value, whose declaration block consists of just a single declaration that sets the 'text-align' property to the value 'center'.

`table$e, `thead$e, `tbody$e, `tfoot$e, `tr$e, `td$e, `th$e `background$a `絶対~URLに対応付ける$ `background-image$p
When a table, thead, tbody, tfoot, tr, td, or th element has a background attribute set to a non-empty value, the new value is expected to be encoding-parsed-and-serialized relative to the element's node document, and if that does not return failure, the user agent is expected to treat the attribute as a presentational hint setting the element's 'background-image' property to the return value.
同上 `bgcolor^a `色~値に対応付ける$ `background-color$p
When a table, thead, tbody, tfoot, tr, td, or th element has a bgcolor attribute set, the new value is expected to be parsed using the rules for parsing a legacy color value, and if that does not return an error, the user agent is expected to treat the attribute as a presentational hint setting the element's 'background-color' property to the resulting color.
`table$e `bordercolor$A `色~値に対応付ける$ `border-top-color$p, `border-right-color$p, `border-bottom-color$p, `border-left-color$p
When a table element has a bordercolor attribute, its value is expected to be parsed using the rules for parsing a legacy color value, and if that does not return an error, the user agent is expected to treat the attribute as a presentational hint setting the element's 'border-top-color', 'border-right-color', 'border-bottom-color', and 'border-left-color' properties to the resulting color.
`table$e `border$A 先ず,値を`~pixel長さに対応付ける$ — その結果に応じて,次を返す ⇒# ε ならば `1px^v / 他の場合は 結果 `border-top-width$p, `border-right-width$p, `border-bottom-width$p, `border-left-width$p
The table element's border attribute maps to the pixel length properties 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width' on the element. If the attribute is present but parsing the attribute's value using the rules for parsing non-negative integers generates an error, a default value of 1px is expected to be used for that property instead.
【!obs】

`~UA~level$の~stylesheet内には、 次のような規則が在ることが期待される:

  • 【その選択子は、】 次を満たす `th$e 要素に合致する ⇒ 要素の親~nodeの `text-align$p ~propの`算出d値$は その初期~値である
  • その宣言~blockは、[ `text-align$p ~propを値 `center^v に設定する ]ような,単独の宣言のみからなる。
◎ ↑

上の~CSS~blockにて `~borderが~zeroに等価でない場合に限る@ と記された規則 %規則 は、 ~AND↓ を満たす要素 %要素 に限り適用することが期待される:

  • %要素 は %規則 の選択子に合致する
  • %要素 は( %規則 の選択子に示された) `border^a 属性を有する
  • 次の結果 ~NIN { ε, 0 } ⇒ %要素 の `border^a 属性の値を`負でない整数に対応付ける$
◎ Rules marked "only if border is not equivalent to zero" in the CSS block above is expected to only be applied if the border attribute mentioned in the selectors for the rule is not only present but, when parsed using the rules for parsing non-negative integers, is also found to have a value other than zero or to generate an error.
【!obs】

`過去互換~mode$の下では、 `nowrap$tdth 属性を有する[ `td$e / `th$e ]要素の `width$tdth 属性 %属性 は、 次の`対応付け規則$の下で,要素の `white-space$p ~prop用の`呈示~用~hintとして扱う$ことが期待される ⇒ ~RET `非~zero寸法~値として構文解析する$( %属性 の値 ) の結果に応じて ⇒# `失敗^i ならば ε / ~ELSE_ 結果の種別に応じて⇒# `百分率^i ならば ε / `長さ^i ならば `normal^v

これは、 上の~CSS~block内のそれを `nowrap^v に設定する規則 ( `td[nowrap], th[nowrap] { ... }^css ) を上書きする。

◎ In quirks mode, a td element or a th element that has a nowrap attribute but also has a width attribute whose value, when parsed using the rules for parsing nonzero dimension values, is found to be a length (not an error or a number classified as a percentage), is expected to have a presentational hint setting the element's 'white-space' property to 'normal', overriding the rule in the CSS block above that sets it to 'nowrap'.
【!obs】

15.3.9. 過去互換~用の~margin相殺-法

`~substantial@ な~nodeとは、[ `要素間~空白$でない~text~node/要素~node ]を指す。 ◎ A node is substantial if it is a text node that is not inter-element whitespace, or if it is an element node.

【!要素間~空白 / comment / PI / doctype / frag / doc / ele】

`~substantial$な~nodeを包含しない要素は、 `~blank@ であるとされる。 ◎ A node is blank if it is an element that contains no substantial nodes.

次に挙げる要素は、 `既定の~marginを伴う@ とされる ⇒ `blockquote$e, `dir$e, `dl$e, `h1$e, `h2$e, `h3$e, `h4$e, `h5$e, `h6$e, `listing$e, `menu$e, `ol$e, `p$e, `plaintext$e, `pre$e, `ul$e, `xmp$e ◎ The elements with default margins are the following elements: blockquote, dir, dl, h1, h2, h3, h4, h5, h6, listing, menu, ol, p, plaintext, pre, ul, xmp

`過去互換~mode$の下では,要素のうち[[ `body$e / `td$e / `th$e ]要素の`子$である, かつ`既定の~marginを伴う$もの ]に対しては、[ 次の表tの 1 列目に示される条件を満たす ]ならば,`~UA~level$の~stylesheet内に[ 同じ行の 2 列目に示される~margin~propを 0 に設定する規則 ]が在ることが期待される: ◎ ↓

先行する`~substantial$な同胞は無い ◎ In quirks mode, any element with default margins that is the child of a body, td, or th element and has no substantial previous siblings is expected to have a user-agent level style sheet rule that sets its 'margin-block-start' property to zero. `margin-block-start$p
先行する`~substantial$な同胞は無い, かつ`~blank$である ◎ In quirks mode, any element with default margins that is the child of a body, td, or th element, has no substantial previous siblings, and is blank, is expected to have a user-agent level style sheet rule that sets its 'margin-block-end' property to zero also. `margin-block-end$p
後続する`~substantial$な同胞は無い, かつ`~blank$である ◎ In quirks mode, any element with default margins that is the child of a td or th element, has no substantial following siblings, and is blank, is expected to have a user-agent level style sheet rule that sets its 'margin-block-start' property to zero. `margin-block-start$p
後続する`~substantial$な同胞は無い, かつ `p$e 要素である ◎ In quirks mode, any p element that is the child of a td or th element and has no substantial following siblings, is expected to have a user-agent level style sheet rule that sets its 'margin-block-end' property to zero. `margin-block-end$p

15.3.10. ~form~control

@namespace "http://www.w3.org/1999/xhtml";

input,
select,
button,
textarea {
  letter-spacing: initial;
  word-spacing: initial;
  line-height: initial;
  text-transform: initial;
  text-indent: initial;
  text-shadow: initial;
  appearance: auto;
}

input:not([type=image i],
[type=range i],
[type=checkbox i],
[type=radio i]) {
  overflow: clip !important;
  overflow-clip-margin: 0 !important;
}

input,
select,
textarea {
  text-align: initial;
}

:autofill {
  field-sizing: fixed !important;
}

input:is([type=reset i], [type=button i], [type=submit i]),
button {
  text-align: center;
}

input,
button {
  display: inline-block;
}

input[type=hidden i],
input[type=file i],
input[type=image i] {
  appearance: none;
}

input:is([type=radio i], [type=checkbox i], [type=reset i], [type=button i], [type=submit i], [type=color i], [type=search i]),
select,
button {
  box-sizing: border-box;
}

textarea {
  white-space: pre-wrap;
}

`過去互換~mode$の下では、 次の規則も適用することが期待される: ◎ In quirks mode, the following rules are also expected to apply:

@namespace "http://www.w3.org/1999/xhtml";

input:not([type=image i]),
textarea {
  box-sizing: border-box;
}

各種~form~controlの見かけと感触( `look and feel^en )は、 `§ 各種~widget@#widgets$に述べられる。 ◎ Each kind of form control is also described in the Widgets section, which describes the look and feel of the control.

次を満たす `input$e 要素は、 その`内縁~表示~型$が `flow-root^v になるものとして動作することが期待される ⇒ [ その `type$input 属性の状態 ~NIN { `Hidden$st, `Image$st } ]~AND[ `具現化されて$いる ] ◎ For input elements where the type attribute is not in the Hidden state or the Image Button state, and that are being rendered, are expected to act as follows: • The inner display type is always 'flow-root'.

15.3.11. `hr^e 要素

@namespace "http://www.w3.org/1999/xhtml";

hr {
  color: gray;
  border-style: inset;
  border-width: 1px;
  margin-block: 0.5em;
  margin-inline: auto;
  overflow: hidden;
}

次の規則も`呈示~用~hint$として適用することが期待される: ◎ The following rules are also expected to apply, as presentational hints:

@namespace "http://www.w3.org/1999/xhtml";

hr[align=left i] {
  margin-left: 0;
  margin-right: auto;
}
hr[align=right i] {
  margin-left: auto;
  margin-right: 0;
}
hr[align=center i] {
  margin-left: auto;
  margin-right: auto;
}
hr[color],
hr[noshade] {
  border-style: solid;
}

`hr$e 要素の `size$A 属性は: ◎ ↓

  • 要素は[ `color$A, `noshade$A ]いずれかの属性を有する場合 ⇒ 次の`対応付け規則$の下で,要素の[ `border-top-width$p, `border-right-width$p, `border-bottom-width$p, `border-left-width$p ]~prop用の`呈示~用~hintとして扱う$ことが期待される ⇒ 先ず,`負でない整数に対応付ける$ — その結果に応じて,次を返す ⇒# ε ならば ε / ~ELSE_ `~pixel単位$による,結果を 2 で除算した結果 ◎ If an hr element has either a color attribute or a noshade attribute, and furthermore also has a size attribute, and parsing that attribute's value using the rules for parsing non-negative integers doesn't generate an error, then the user agent is expected to use the parsed value divided by two as a pixel length for presentational hints for the properties 'border-top-width', 'border-right-width', 'border-bottom-width', and 'border-left-width' on the element.
  • 他の場合:

    • 次の`対応付け規則$の下で,要素の `border-bottom-width$p ~prop用の`呈示~用~hintとして扱う$ことが期待される ⇒ 先ず,`負でない整数に対応付ける$ — その結果に応じて,次を返す ⇒# 1 ならば `0^v / ~ELSE_ ε
    • 次の`対応付け規則$の下で,要素の `height$p ~prop用の`呈示~用~hintとして扱う$ことが期待される ⇒ 先ず,`負でない整数に対応付ける$ — その結果に応じて,次を返す ⇒# ε ならば ε / ~ELSE_ 結果 ~LTE 1 ならば ε / ~ELSE_ `~pixel単位$による ( 結果 − 2 )
    ◎ Otherwise, if an hr element has neither a color attribute nor a noshade attribute, but does have a size attribute, and parsing that attribute's value using the rules for parsing non-negative integers doesn't generate an error, then: if the parsed value is one, then the user agent is expected to use the attribute as a presentational hint setting the element's 'border-bottom-width' to 0; otherwise, if the parsed value is greater than one, then the user agent is expected to use the parsed value minus two as a pixel length for presentational hints for the 'height' property on the element.

`hr$e 要素の `width$A 属性は、 `寸法に対応付ける$下で,要素の `width$p ~prop用の`呈示~用~hintとして扱う$ことが期待される。 ◎ The width attribute on an hr element maps to the dimension property 'width' on the element.

`hr$e 要素の `color$A 属性は、 `色~値に対応付ける$下で,要素の `color$p ~prop用の`呈示~用~hintとして扱う$ことが期待される。 ◎ When an hr element has a color attribute, its value is expected to be parsed using the rules for parsing a legacy color value, and if that does not return an error, the user agent is expected to treat the attribute as a presentational hint setting the element's 'color' property to the resulting color.

【!obs】

15.3.12. `fieldset^e, `legend^e 要素

@namespace "http://www.w3.org/1999/xhtml";

fieldset {
  display: block;
  margin-inline: 2px;
  border: groove 2px ThreeDFace;
  padding-block: 0.35em;
  padding-inline: 0.75em;
  min-inline-size: min-content;
}

legend {
  padding-inline: 2px;
}
legend[align=left i] {
  justify-self: left;
}

legend[align=center i] {
  justify-self: center;
}

legend[align=right i] {
  justify-self: right;
}

`fieldset$e 要素は、 `~CSS~box$を生成するならば,以下に従って動作することが期待される — 以下、 %~fieldset はこの~boxを指すとする: ◎ The fieldset element, when it generates a CSS box, is expected to act as follows:

  • %~fieldset は、 新たな`塊~整形~文脈$を確立する。 ◎ The element is expected to establish a new block formatting context.
  • %~fieldset の `display$p ~propは、[ その`算出d値$による`外縁~表示~型$は `inline^v になるならば `inline-block^v として / 他の場合は `flow-root^v として ]挙動する。 ◎ The 'display' property is expected to act as follows: • If the computed value of 'display' is a value such that the outer display type is 'inline', then behave as 'inline-block'. • Otherwise, behave as 'flow-root'.

    注記: これは、 算出d値を変更しない。 ◎ This does not change the computed value.

  • %~fieldset にて `具現化される~legend@ は、[ %~fieldset の子~boxのうち, ~AND↓ を満たすもの ]が在るならば,それらのうち最初のもの【が生成する~box】を指すとする: ◎ If the element's box has a child box that matches the conditions in the list below, then the first such child box is the 'fieldset' element's rendered legend:

    • 子は `legend$e 要素である ◎ The child is a legend element.
    • 子の `float$p の使用~値 ~EQ `none^v ◎ The child's used value of 'float' is 'none'.
    • 子の `position$p の使用~値 ~NIN { `absolute^v, `fixed^v } 【この条件から、子は,~DOM~treeにおいても %~fieldset を生成した `fieldset^e 要素の子であることになる。】 ◎ The child's used value of 'position' is not 'absolute' or 'fixed'.
  • 以下、 %~legend は %~fieldset にて`具現化される~legend$を指すとする。 %~legend が在る場合、 次が期待される: ◎ ↓

    • %~fieldset の~borderは,次に与える各~辺が成す矩形の背後には塗らない ⇒ %~legend の`~margin~box$の[ `塊-始端$, `塊-終端$ ]辺, %~legend の`~border~box$の[ `行内-始端$, `行内-終端$ ]辺 — ここで,各~側は %~fieldset の`書字~mode$の下で解釈する ◎ If the element has a rendered legend, then the border is expected to not be painted behind the rectangle defined as follows, using the writing mode of the fieldset: • The block-start edge of the rectangle is the smaller of the block-start edge of the rendered legend's margin rectangle at its static position (ignoring transforms), and the block-start outer edge of the fieldset's border. • The block-end edge of the rectangle is the larger of the block-end edge of the rendered legend's margin rectangle at its static position (ignoring transforms), and the block-end outer edge of the fieldset's border. • The inline-start edge of the rectangle is the smaller of the inline-start edge of the rendered legend's border rectangle at its static position (ignoring transforms), and the inline-start outer edge of the fieldset's border. • The inline-end edge of the rectangle is the larger of the inline-end edge of the rendered legend's border rectangle at its static position (ignoring transforms), and the inline-end outer edge of the fieldset's border.
    • %~fieldset の`~border~box$の塊-始端~側に割振られる空間は、 次のうち広い方にする ⇒# %~fieldset の `border-block-start-width$p, %~legend の`~margin~box$の[ %~fieldset の塊-~flow方向 ]における~size ◎ The space allocated for the element's border on the block-start side is expected to be the element's 'border-block-start-width' or the rendered legend's margin box size in the fieldset's block-flow direction, whichever is greater.
    • %~fieldset の `block-size$p の使用~値を計算する目的においては、[ その`算出d値$ ~NEQ `auto^v ]であって[ %~legend の~margin~boxが %~fieldset の~borderを過ぎて溢れる ]場合には、 `block-size$p から溢れる分に割振られる空間を減算した上で,`内容~box$の塊-~sizeが 0 以上になるよう切り上げる。 ◎ For the purpose of calculating the used 'block-size', if the computed 'block-size' is not 'auto', the space allocated for the rendered legend's margin box that spills out past the border, if any, is expected to be subtracted from the 'block-size'. If the content box's block-size would be negative, then let the content box's block-size be zero instead.
    • %~legend は, %~fieldset の最初の子~boxになる。 ◎ If the element has a rendered legend, then that element is expected to be the first child box.
  • %~fieldset の`匿名な~fieldset内容~box$には、 次が期待される:

    • %~legend が在れば それより後に現れる。
    • %~legend を除く %~fieldset の内容( `before^pe, `after^pe 疑似要素も含む)が在るならば それを包含する。
    ◎ The anonymous fieldset content box is expected to appear after the rendered legend and is expected to contain the content (including the '::before' and '::after' pseudo-elements) of the fieldset element except for the rendered legend, if there is one.
  • %~fieldset の[ `padding-top$p, `padding-right$p, `padding-bottom$p, `padding-left$p ]~propの使用~値は、 すべて 0 にする。 ◎ The used value of the 'padding-top', 'padding-right', 'padding-bottom', and 'padding-left' properties are expected to be zero.
  • %~fieldset の`最小-内容 行内~size$を計算する目的においては、 次のうち広い方を利用する ⇒# %~legend の`最小-内容 行内~size$, `匿名な~fieldset内容~box$の`最小-内容 行内~size$ ◎ For the purpose of calculating the min-content inline size, use the greater of the min-content inline size of the rendered legend and the min-content inline size of the anonymous fieldset content box.
  • %~fieldset の`最大-内容 行内~size$を計算する目的においては、 次のうち広い方を利用する ⇒# %~legend の`最大-内容 行内~size$, `匿名な~fieldset内容~box$の`最大-内容 行内~size$ ◎ For the purpose of calculating the max-content inline size, use the greater of the max-content inline size of the rendered legend and the max-content inline size of the anonymous fieldset content box.

`fieldset$e 要素が生成する~box %~fieldset にて`具現化される~legend$ %~legend が在る場合、 %~legend は次に従って動作することが期待される: ◎ A fieldset element's rendered legend, if any, is expected to act as follows:

  • %~legend は、 自身の内容~用に新たな`整形~文脈$を確立する。 この整形~文脈の`表示~型$は、 通例通り, %~legend の `display$p 値から決定される。 ◎ The element is expected to establish a new formatting context for its contents. The type of this formatting context is determined by its 'display' value, as usual.
  • %~legend の `display$p ~propの`算出d値$は、 `塊~化$されたかのように挙動する。 ◎ The 'display' property is expected to behave as if its computed value was blockified.

    注記: これは、 算出d値を変更しない。 ◎ This does not change the computed value.

  • %~legend の `inline-size$p の`算出d値$が `auto^v の場合、 `使用~値$は`内容が収まる行内~size$になる。 ◎ If the computed value of 'inline-size' is 'auto', then the used value is the fit-content inline size.
  • %~legend は、 行内~方向においては,通常の塊に対するとき同じように位置する (例: ~margin, `justify-self$p ~propを織り込む)。 ◎ The element is expected to be positioned in the inline direction as is normal for blocks (e.g., taking into account margins and the 'justify-self' property).
  • %~legend は、 行内~方向において %~fieldset の行内~sizeで拘束する — %~fieldset に算出された行内~方向の~paddingを利用しているかのように。 ◎ The element's box is expected to be constrained in the inline direction by the inline content size of the fieldset as if it had used its computed inline padding.

    例えば, %~fieldset の~paddingに `50px^v が指定されている場合、 %~legend は行内~方向において %~fieldset の~borderから内へ `50px^v の所に位置することになる。 加えて、 %~fieldset の~paddingは`匿名な~fieldset内容~box$にも — %~fieldset 自身に代えて — 適用される。 ◎ For example, if the fieldset has a specified padding of 50px, then the rendered legend will be positioned 50px in from the fieldset's border. The padding will further apply to the anonymous fieldset content box instead of the fieldset element itself.

  • %~legend の`~border~box$は、 %~fieldset の塊-始端~側の~borderの上層に,塊-~flow方向において中央寄せに位置させる。 ◎ The element is expected to be positioned in the block-flow direction such that its border box is centered over the border on the block-start side of the fieldset element.

`fieldset$e 要素の `匿名な~fieldset内容~box@ は、 次に従って動作することが期待される: ◎ A fieldset element's anonymous fieldset content box is expected to act as follows:

  • `display$p ~propの使用~値は、 その`算出d値$に応じて,次に与える値にする ⇒# `grid^v ならば `grid^v / `inline-grid^v ならば `grid^v / `flex^v ならば `flex^v / `inline-flex^v ならば `flex^v / ~ELSE_ `flow-root^v ◎ The 'display' property is expected to act as follows: • If the computed value of 'display' on the fieldset element is 'grid' or 'inline-grid', then set the used value to 'grid'. • If the computed value of 'display' on the fieldset element is 'flex' or 'inline-flex', then set the used value to 'flex'. • Otherwise, set the used value to 'flow-root'.
  • `fieldset$e 要素から,次に挙げる~propを継承する ⇒# `align-content$p, `align-items$p, `border-radius$p, `column-count$p, `column-fill$p, `column-gap$p, `column-rule$p, `column-width$p, `flex-direction$p, `flex-wrap$p, `grid-auto-columns$p, `grid-auto-flow$p, `grid-auto-rows$p, `grid-column-gap$p, `grid-row-gap$p, `grid-template-areas$p, `grid-template-columns$p, `grid-template-rows$p, `justify-content$p, `justify-items$p, `overflow$p, `padding-bottom$p, `padding-left$p, `padding-right$p, `padding-top$p, `text-overflow$p, `unicode-bidi$p ◎ The following properties are expected to inherit from the fieldset element: • 'align-content' • 'align-items' • 'border-radius' • 'column-count' • 'column-fill' • 'column-gap' • 'column-rule' • 'column-width' • 'flex-direction' • 'flex-wrap' • 'grid-auto-columns' • 'grid-auto-flow' • 'grid-auto-rows' • 'grid-column-gap' • 'grid-row-gap' • 'grid-template-areas' • 'grid-template-columns' • 'grid-template-rows' • 'justify-content' • 'justify-items' • 'overflow' • 'padding-bottom' • 'padding-left' • 'padding-right' • 'padding-top' • 'text-overflow' • 'unicode-bidi'
  • `block-size$p ~propは `100%^v に設定する。 ◎ The 'block-size' property is expected to be set to '100%'.
  • 百分率による~paddingを計算する目的においては、 ~paddingは `fieldset$e 要素~用に計算されたかのように動作する。 ◎ For the purpose of calculating percentage padding, act as if the padding was calculated for the fieldset element.

~fieldsetと~legendの~layout例 (横組みの場合):

~legendは、 ~fieldset上端~borderの上層に描画される — 上端~border区画は,~legend用に縦方向の空間を予約する。 ~fieldsetの上端~marginは、 ~legendの上端~margin辺から開始する。 ~legendの横方向~位置は、[ その横方向~marginまたは `justify-self$p ~prop ]から与えられる。 `匿名な~fieldset内容~box$は、 ~legendの下に現れる。 ◎ The legend is rendered over the top border, and the top border area reserves vertical space for the legend. The fieldset's top margin starts at the top margin edge of the legend. The legend's horizontal margins, or the 'justify-self' property, gives its horizontal position. The anonymous fieldset content box appears below the legend.

15.4. 置換d要素

注記: 次に挙げる要素は、 `置換d要素$になり得る ⇒ `audio$e, `canvas$e, `embed$e, `iframe$e, `img$e, `input$e, `object$e, `video$e ◎ The following elements can be replaced elements: audio, canvas, embed, iframe, img, input, object, and video.

15.4.1. 埋込d内容

[ `embed$e / `iframe$e / `video$e ]要素に対しては、 `置換d要素$として扱うことが期待される。 ◎ The embed, iframe, and video elements are expected to be treated as replaced elements.

`canvas$e 要素に対しては、 次が期待される: ◎ ↓

  • `埋込d内容$を`表現-$するものは、 次を伴う`置換d要素$として扱う ⇒# 要素に内容があるならば,それが成す~bitmap / ~ELSE_ 要素と同じ`生来な寸法$を伴う`透明な黒$にされた~bitmap ◎ A canvas element that represents embedded content is expected to be treated as a replaced element; the contents of such elements are the element's bitmap, if any, or else a transparent black bitmap with the same natural dimensions as the element.\
  • 他のものは、 具現化~modelにおける普通の要素として扱う。 ◎ Other canvas elements are expected to be treated as ordinary elements in the rendering model.

`object$e 要素に対しては、 次が期待される: ◎ ↓

  • [ 画像 / ~plugin / 要素の`内容~navigable$ ]を`表現-$するものは、 `置換d要素$として扱う。 ◎ An object element that represents an image, plugin, or its content navigable is expected to be treated as a replaced element.\
  • 他のものは、 具現化~modelにおける普通の要素として扱う。 ◎ Other object elements are expected to be treated as ordinary elements in the rendering model.

`audio$e 要素に対しては、 次が期待される: ◎ ↓

  • `~UIを公開し$ているものは、[ およそ一行分の高さ,~UAの~UI特能を公開するために必要yな幅 ]にされた`置換d要素$として扱う。 ◎ The audio element, when it is exposing a user interface, is expected to be treated as a replaced element about one line high, as wide as is necessary to expose the user agent's user interface features.\
  • 他のものは、 ~CSS規則が何であれ,[ その `display$p ~propは `none^v に算出される ]よう強制する。 ◎ When an audio element is not exposing a user interface, the user agent is expected to force its 'display' property to compute to 'none', irrespective of CSS rules.

`video$e 要素に対しては、 次が期待される: ◎ ↓

  • `~UIを公開し$ているかどうかに関わらず,具現化の~sizeに影響させる ⇒ ~controlは,~layoutを変更することなく,~page内容の上層に重ねることに加え、 利用者がそれらを必要しないときは消す。 ◎ Whether a video element is exposing a user interface is not expected to affect the size of the rendering; controls are expected to be overlaid above the page content without causing any layout changes, and are expected to disappear when the user does not need them.
  • [ ~poster~frame/動画の~frame ]表現するものは ⇒ 次を満たす最~大な~sizeに具現化した上で、 要素~内で中央する ⇒ その~frameは,その縦横比を保守する, かつ 要素~自身の~sizeを縦横とも超えない ◎ When a video element represents a poster frame or frame of video, the poster frame or frame of video is expected to be rendered at the largest size that maintains the aspect ratio of that poster frame or frame of video without being taller or wider than the video element itself, and is expected to be centered in the video element.
  • 要素の[ ~subtitle/~caption ]は ⇒ ~WebVTTに関連な具現化~規則に定義されるとおりに,要素の上層に直に重ねる — ~WebVTTに対しては、 `~WebVTT~tTの表示を更新するための規則$に従う。 `WEBVTT$r ◎ Any subtitles or captions are expected to be overlaid directly on top of their video element, as defined by the relevant rendering rules; for WebVTT, those are the rules for updating the display of WebVTT text tracks. [WEBVTT]

~UAが `video$e 要素~用の`~UIを公開し$始めるときは ⇒ 要素の`~tT~list$内の各`~tT$のうち,[ `示されている$, かつ その`種類$tTは[ `subtitles$l, `captions$l ]いずれかであるもの ]に対しては、 `~tTの具現化を更新するための規則$を走らすべきである (例えば,~WebVTT基づく`~tT$に対しては、 `~WebVTT~tTの表示を更新するための規則$に従う `WEBVTT$r )。 ◎ When the user agent starts exposing a user interface for a video element, the user agent should run the rules for updating the text track rendering of each of the text tracks in the video element's list of text tracks that are showing and whose text track kind is one of subtitles or captions (e.g., for text tracks based on WebVTT, the rules for updating the display of WebVTT text tracks). [WEBVTT]

注記: `video$e / `canvas$e 要素が~resizeされても,動画~再生が中断されたり, ~canvasが~clearされることはない。 ◎ Resizing video and canvas elements does not interrupt video playback or clear the canvas.


次の~CSS規則を適用することが期待される: ◎ The following CSS rules are expected to apply:

@namespace "http://www.w3.org/1999/xhtml";

iframe {
  border: 2px inset;
}
video {
  object-fit: contain;
}

15.4.2. 画像

[ `img$e /[ `type$input 属性が `Image$st 状態にある `input$e ]]要素に対しては、[ 次に挙げる規則のうち,最初に該当するもの ]に則って具現化することが期待される: ◎ User agents are expected to render img elements and input elements whose type attributes are in the Image Button state, according to the first applicable rules from the following list:

  1. 要素は画像を`表現-$する場合 ⇒ 要素を`置換d要素$として扱って,画像を ~CSSにて定義される規則に則って具現化する。 ◎ If the element represents an image • The user agent is expected to treat the element as a replaced element and render the image according to the rules for doing so defined in CSS.
  2. 要素は[ 画像を`表現-$しない ]~AND[ ~OR↓ が満たされる ]場合…: ◎ If the element does not represent an image and either:

    • `画像は可用$になり,やがて具現化されると予見できる理由がある。 ◎ the user agent has reason to believe that the image will become available and be rendered in due course, or
    • 要素は `alt^a 属性を有さない。 ◎ the element has no alt attribute, or
    • [ `文書$は`過去互換~mode$の下にある ]~AND[ 要素はすでに`生来な寸法$を有する (例: `寸法~属性$または~CSS規則から) ] ◎ the Document is in quirks mode, and the element already has natural dimensions (e.g., from the dimension attributes or CSS rules)

    …場合、 要素を`置換d要素$として扱う — ここで: ◎ The user agent is expected to treat the element as a replaced element\

    • 要素が表現する~textがあれば,要素の内容を それにする。 ◎ whose content is the text that the element represents, if any,\
    • 適用-可能なら、 任意選択で,画像が得されつつあることを指示している~iconも伴わせる。 ◎ optionally alongside an icon indicating that the image is being obtained (if applicable).\
    • `input$e 要素に対しては、 要素を~buttonの様に現れさせて,要素が `Button$st 状態にあることを指示する。 ◎ For input elements, the element is expected to appear button-like to indicate that the element is a button.
  3. 要素は何らかの~textを`表現-$する `img$e 要素であり,~UAはそれが変化しないものと予期する場合: ◎ If the element is an img element that represents some text and the user agent does not expect this to change

    • 要素を非置換~要素として, かつ[ 内容が その~textにされた,`句ng内容$ ]として扱う。 ◎ The user agent is expected to treat the element as a non-replaced phrasing element whose content is the text,\
    • 任意選択で、 画像が見つからないことを指示する~iconを伴わせた上で,[ 利用者が、[ 画像を表示させる, または なぜ具現化されないか究明する ]ことを要請できる ]ようにする。 非~graphicな文脈~下では、 そのような~iconは,省略されるべきである。 ◎ optionally with an icon indicating that an image is missing, so that the user can request the image be displayed or investigate why it is not rendering. In non-graphical contexts, such an icon should be omitted.
  4. 要素は何も`表現-$しない `img$e 要素であり,~UAはそれが変化しないものと予期する場合 ⇒ 要素を[ `生来な寸法$は縦横とも 0 にされた`置換d要素$ ]として扱う (他の~styleが無い下では、 本質的に,要素を具現化させなくすることになる)。 ◎ If the element is an img element that represents nothing and the user agent does not expect this to change • The user agent is expected to treat the element as a replaced element whose natural dimensions are 0. (In the absence of further styles, this will cause the element to essentially not be rendered.)
  5. 要素は画像を`表現-$しない `input$e 要素であり,~UAはそれが変化しないものと予期する場合 ⇒ 要素を[ 次のような 1 個の~buttonからなる`置換d要素$ ]として扱う ⇒ その内容は要素の代替~textになり,その`生来な寸法$は[ 縦幅は一行分, 横幅は~textを一行分に具現化するに必要yな~size ]になる ◎ If the element is an input element that does not represent an image and the user agent does not expect this to change • The user agent is expected to treat the element as a replaced element consisting of a button whose content is the element's alternative text. The natural dimensions of the button are expected to be about one line in height and whatever width is necessary to render the text on one line.

上で述べた~iconは、 相対的に小さくすることが期待される — ~textの大部分を~~途切れさせず,かつ容易に~click可能な~~程度に。 一例として、 視覚的な環境における~iconの大きさは,[ 16 ~pixel平方, あるいは画像が拡縮-可能ならば 1em 平方 ]にもできる。 音声~環境における~iconは,短い~bleepにもできる。 ~iconに意図されるのは、[ 何であれ,利用者が 画像を~~取得するために利用できる ]ような,~UAが供する選択肢を指示することである — 適切な所では,[ 利用者が実際の画像とやりとりしたとき~~現れる,文脈~menu ]への~accessを供することが期待される。 ◎ The icons mentioned above are expected to be relatively small so as not to disrupt most text but be easily clickable. In a visual environment, for instance, icons could be 16 pixels by 16 pixels square, or 1em by 1em if the images are scalable. In an audio environment, the icon could be a short bleep. The icons are intended to indicate to the user that they can be used to get to whatever options the UA provides for images, and, where appropriate, are expected to provide access to the context menu that would have come up if the user interacted with the actual image.


`img$e 要素のうち,~animate化~画像を示すものに対しては、 次が期待される: ◎ ↓

  • 複数の画像が[ 同じ`絶対~URL$, 同じ画像~data ]を伴う場合、 それらを同じ時列線に同期するように具現化する — そのような同じ画像が後から追加されたときは、 先行の画像にて現在~表示されている~animation~frameから~animateし始める。 ◎ All animated images with the same absolute URL and the same image data are expected to be rendered synchronized to the same timeline as a group, with the timeline starting at the time of the least recent addition to the group. ◎ In other words, when a second image with the same absolute URL and animated image data is inserted into a document, it jumps to the point in the animation cycle that is currently being displayed by the first image.

  • `~animationを開始し直す@ ときは、 所与の ( `img$e 要素 %要素 ) に対し, %要素 の`~node文書$内の[ %要素 と同じ`絶対~URL$, 同じ画像~dataを伴うような ~animate化~画像 ]すべてに対し,それらの~animationを始めから一斉に開始し直す。 ◎ When a user agent is to restart the animation for an img element showing an animated image, all animated images with the same absolute URL and the same image data in that img element's node document are expected to restart their animation from the beginning.

次の~CSS規則を適用することが期待される: ◎ The following CSS rules are expected to apply:

@namespace "http://www.w3.org/1999/xhtml";

img:is([sizes="auto" i], [sizes^="auto," i]) {
  contain: size !important;
  contain-intrinsic-size: 300px 150px;
}

`過去互換~mode$の下では、 次の~CSS規則も適用することが期待される: ◎ The following CSS rules are expected to apply when the Document is in quirks mode:

@namespace "http://www.w3.org/1999/xhtml";

img[align=left i] {
  margin-right: 3px;
}
img[align=right i] {
  margin-left: 3px;
}

15.4.3. 埋込d内容/画像~用の属性

次の~CSS規則は、 `呈示~用~hint$として適用することが期待される: ◎ The following CSS rules are expected to apply as presentational hints:

@namespace "http://www.w3.org/1999/xhtml";

iframe[frameborder='0'],
iframe[frameborder=no i] {
  border: none;
}

embed[align=left i],
iframe[align=left i],
img[align=left i],
input[type=image i][align=left i],
object[align=left i] {
  float: left;
}

embed[align=right i],
iframe[align=right i],
img[align=right i],
input[type=image i][align=right i],
object[align=right i] {
  float: right;
}

embed[align=top i],
iframe[align=top i],
img[align=top i],
input[type=image i][align=top i],
object[align=top i] {
  vertical-align: top;
}

embed[align=baseline i],
iframe[align=baseline i],
img[align=baseline i],
input[type=image i][align=baseline i],
object[align=baseline i] {
  vertical-align: baseline;
}

embed[align=texttop i],
iframe[align=texttop i],
img[align=texttop i],
input[type=image i][align=texttop i],
object[align=texttop i] {
  vertical-align: text-top;
}

embed[align=absmiddle i],
iframe[align=absmiddle i],
img[align=absmiddle i],
input[type=image i][align=absmiddle i],
object[align=absmiddle i],
embed[align=abscenter i],
iframe[align=abscenter i],
img[align=abscenter i],
input[type=image i][align=abscenter i],
object[align=abscenter i] {
  vertical-align: middle;
}

embed[align=bottom i],
iframe[align=bottom i],
img[align=bottom i],
input[type=image i][align=bottom i],
object[align=bottom i] {
  vertical-align: bottom;
}

[ `embed$e / `iframe$e / `img$e / `object$e / [ `type$input 属性が `Image$st 状態にある `input$e ]]要素に対しては、 次が期待される ⇒ 要素は `align^a 属性を有していて,その値 ~IN`大小無視$sub { `center^l, `middle^l } ならば、 要素の `vertical-align$p ~propが[ 要素の縦方向 middle †と親~要素の基底線とを整列するような値 ]に設定されていたかのように動作する††。 ◎ When an embed, iframe, img, or object element, or an input element whose type attribute is in the Image Button state, has an align attribute whose value is an ASCII case-insensitive match for the string "center" or the string "middle", the user agent is expected to act as if the element's 'vertical-align' property was set to a value that aligns the vertical middle of the element with the parent element's baseline.

【† `vertical-align$p 用の `middle^v 値の定義とは、 異なっている。 】【†† “動作する” とは? (`呈示~用~hintとして扱う$?) 】

[ `embed$e / `img$e / `object$e / [ `type$input 属性が `Image$st 状態にある `input$e ]]要素に対しては、 次が期待される: ◎ ↓

  • その `hspace^a 属性は、 `寸法に対応付ける$下で,要素の[ `margin-left$p, `margin-right$p ]~prop用の`呈示~用~hintとして扱う$。 ◎ The hspace attribute of embed, img, or object elements, and input elements with a type attribute in the Image Button state, maps to the dimension properties 'margin-left' and 'margin-right' on the element.
  • その `vspace^a 属性は、 `寸法に対応付ける$下で,要素の[ `margin-top$p, `margin-bottom$p ]~prop用の`呈示~用~hintとして扱う$。 ◎ The vspace attribute of embed, img, or object elements, and input elements with a type attribute in the Image Button state, maps to the dimension properties 'margin-top' and 'margin-bottom' on the element.

[ `img$e / `object$e / [ `type$input 属性が `Image$st 状態にある `input$e ]]要素の `border^a 属性に対しては、 次が期待される:

  • 次の`対応付け規則$の下で,要素の[ `border-top-width$p, `border-right-width$p, `border-bottom-width$p, `border-left-width$p ]~prop用の`呈示~用~hintとして扱う$ ⇒ 先ず,`負でない整数に対応付ける$ — その結果に応じて,次を返す ⇒# ε ならば ε / ~ELSE_ 結果 ~LTE 0 ならば ε / ~ELSE_ `~pixel単位$による結果
  • 次の`対応付け規則$の下で,要素の[ `border-top-style$p, `border-right-style$p, `border-bottom-style$p , `border-left-style$p ]~prop用の`呈示~用~hintとして扱う$ ⇒ 先ず,`負でない整数に対応付ける$ — その結果に応じて,次を返す ⇒# ε ならば ε / ~ELSE_ 結果 ~LTE 0 ならば ε / ~ELSE_ `solid^v /
◎ When an img element, object element, or input element with a type attribute in the Image Button state has a border attribute whose value, when parsed using the rules for parsing non-negative integers, is found to be a number greater than zero, the user agent is expected to use the parsed value for eight presentational hints: four setting the parsed value as a pixel length for the element's 'border-top-width', 'border-right-width', 'border-bottom-width', and 'border-left-width' properties, and four setting the element's 'border-top-style', 'border-right-style', 'border-bottom-style', and 'border-left-style' properties to the value 'solid'.
【!obs】

`img$e 要素の`寸法~属性~source$の[ `width$a / `height$a ]属性は: ◎ The width and height attributes on an img element's dimension attribute source\

  • `寸法に対応付ける$下で,要素の[ `width$p / `height$p ]~prop(同順)用の`呈示~用~hintとして扱う$ことが期待される。 ◎ map to the dimension properties 'width' and 'height' on the img element respectively.\
  • (属性~pairとして)`寸法~規則を利用して縦横比に対応付ける$下で,要素の `aspect-ratio$p ~prop用の`呈示~用~hintとして扱う$ことが期待される。 ◎ They similarly map to the aspect-ratio property (using dimension rules) of the img element.

[ `embed$e / `iframe$e / `object$e/ `video$e /[ `type$input 属性が `Image$st 状態にある `input$e ]]要素に対しては、 それが[ 画像を表現するか,最終的に画像を表現することになると利用者が期待するもの【?】 ]ならば ⇒ 要素の[ `width$a / `height$a ]属性は、 `寸法に対応付ける$下で,要素の[ `width$p / `height$p ]~prop用の`呈示~用~hintとして扱う$ことが期待される。 ◎ The width and height attributes on embed, iframe, object or video elements, and input elements with a type attribute in the Image Button state and that either represents an image or that the user expects will eventually represent an image, map to the dimension properties 'width' and 'height' on the element respectively.

[ `img$e / `video$e /[ `type$input 属性が `Image$st 状態にある `input$e ]]要素に対しては ⇒ 要素の[ `width$a, `height$a ]属性~pairは、 `寸法~規則を利用して縦横比に対応付ける$下で,要素の `aspect-ratio$p ~prop用の`呈示~用~hintとして扱う$ことが期待される。 ◎ The width and height attributes map to the aspect-ratio property (using dimension rules) on img and video elements, and input elements with a type attribute in the Image Button state.

`canvas$e 要素に対しては ⇒ 要素の[ `width$A, `height$A ]属性~pairは、 `縦横比に対応付ける$下で,要素の `aspect-ratio$p ~prop用の`呈示~用~hintとして扱う$ことが期待される。 ◎ The width and height attributes map to the aspect-ratio property on canvas elements.

15.4.4. 画像~map

`画像~map$上の各~図形は、 ~CSS~cascadeの目的においては,[ その図形を定義する `area$e 要素と同じ~style規則に合致しつつ,当の画像を表現している[ `img$e / `object$e ]要素から継承する ]ように動作することが期待される。 ◎ Shapes on an image map are expected to act, for the purpose of the CSS cascade, as elements independent of the original area element that happen to match the same style rules but inherit from the img or object element.

具現化の目的においては、 図形に効果を及ぼす~propは, `cursor$p に限られることが期待される。 ◎ For the purposes of the rendering, only the 'cursor' property is expected to have any effect on the shape.

したがって例えば、 `area$e 要素が[ `cursor$p ~propを `help^v に設定するような `style$a 属性 ]を有する場合、 利用者がその図形を指したときの~cursorは、 `help^v に対応する~cursorに変化することになる。 ◎ Thus, for example, if an area element has a style attribute that sets the 'cursor' property to 'help', then when the user designates that shape, the cursor would change to a Help cursor.

同様に、 `area$e 要素の `cursor$p ~propを `inherit^v に設定する~CSS規則が在る (または,そのような規則は無い)場合、 図形の~cursorは、 `画像~map$の[ `img$e / `object$e ]要素から継承されることになる — `area$e 要素の親からではなく。 ◎ Similarly, if an area element had a CSS rule that set its 'cursor' property to 'inherit' (or if no rule setting the 'cursor' property matched the element at all), the shape's cursor would be inherited from the img or object element of the image map, not from the parent of the area element.

15.5. 各種~widget

15.5.1 ~nativeな外観

`CSSUI$r 仕様は、 `~nativeな外観$を備え得る要素を`~widget$と呼び, `~nativeな外観$を利用するかどうかは `appearance$p ~propに依存するものと定義する。 その~logicはまた、 そのような各~要素が[ `委譲-可能な~widget$, `委譲-不能な~widget$ ]どちらに分類されるかに依存する。 この節は、 次を定義する: ◎ The CSS Basic User Interface specification calls elements that can have a native appearance widgets, and defines whether to use that native appearance depending on the 'appearance' property. That logic, in turn, depends on whether on whether each the element is classified as a devolvable widget or non-devolvable widget. This section defines\

  • ~HTML用には、 どの要素がこれらの概念に合致するか ◎ which elements match these concepts for HTML,\
  • それらの`~nativeな外観$は何か ◎ what their native appearance is,\
  • それらのうちどれが,特に[ `委譲され$た状態/`~primitiveな外観$ ]になるか ◎ and any particularity of their devolved state or primitive appearance. [CSSUI]

`appearance$p ~propの目的においては、 次に挙げる要素が`~nativeな外観$を備え得るとされる ⇒# `button$e, `input$e, `meter$e, `progress$e, `select$e, `textarea$e ◎ The following elements can have a native appearance for the purpose of the CSS 'appearance' property. • button • input • meter • progress • select • textarea

15.5.2. 書字~mode

いくつかの~widgetにおいては、 その具現化は `writing-mode$p ~propにより制御される。 そのような~widgetの目的においては、 次が定義される: ◎ Several widgets have their rendering controlled by the 'writing-mode' CSS property. For the purposes of those widgets, we have the following definitions.

  • `横組み@ ⇒ 当の~controlの `writing-mode$p ~propの`算出d値$は、 `horizontal-tb^v に解決されることをいう。 ◎ A horizontal writing mode is when resolving the 'writing-mode' property of the control results in a computed value of 'horizontal-tb'.
  • `縦組み@ ⇒ 当の~controlの `writing-mode$p ~propの`算出d値$は、 次に挙げるいずれかに解決されることをいう ⇒# `vertical-rl^v, `vertical-lr^v, `sideways-rl^v, `sideways-lr^v ◎ A vertical writing mode is when resolving the 'writing-mode' property of the control results in a computed value of either 'vertical-rl', 'vertical-lr', 'sideways-rl' or 'sideways-lr'.

15.5.3. ~button~layout

要素が`~button~layout$を利用するときは、 `委譲-可能な~widget$になる — その`~nativeな外観$は、 ~buttonのそれになる。 ◎ When an element uses button layout, it is a devolvable widget, and it's native appearance is that of a button.

`~button~layout@ は、 以下に従うことが期待される: ◎ Button layout is as follows:

  • 要素は `button$e 要素であるならば、 `display$p ~propは,次に従って動作する: ◎ If the element is a button element, then the 'display' property is expected to act as follows:

    • `display$p の算出d値 ~IN { `inline-grid^v, `grid^v, `inline-flex^v, `flex^v, `none^v, `contents^v } ならば ⇒ 算出d値のとおりに挙動する ◎ If the computed value of 'display' is 'inline-grid', 'grid', 'inline-flex', 'flex', 'none', or 'contents', then behave as the computed value.
    • 他の場合, `display$p の算出d値による`外縁~表示~型$は `inline^v になるならば ⇒ `inline-block^v として挙動する ◎ Otherwise, if the computed value of 'display' is a value such that the outer display type is 'inline', then behave as 'inline-block'.
    • 他の場合 ⇒ `flow-root^v として挙動する。 ◎ Otherwise, behave as 'flow-root'.
  • 要素は、 自身の内容~用に新たな`整形~文脈$を確立する。 この整形~文脈の型は,通例通り `display$p 値により決定される。 ◎ The element is expected to establish a new formatting context for its contents. The type of this formatting context is determined by its 'display' value, as usual.
  • 要素は`絶対的に位置され$ている場合 ⇒ `~CSS視覚-整形~model@~CSS2J#visuren$の目的においては、 要素は`置換d要素$であったかのように動作する `CSS$r ◎ If the element is absolutely-positioned, then for the purpose of the CSS visual formatting model, act as if the element is a replaced element. [CSS]
  • `inline-size$p の`算出d値$は `auto^v の場合 ⇒ その`使用~値$は`内容が収まる行内~size$になる ◎ If the computed value of 'inline-size' is 'auto', then the used value is the fit-content inline size.
  • `align-self$p ~propの `normal^v ~keyword目的においては、 要素は`置換d要素$であったかのように動作する ◎ For the purpose of the 'normal' keyword of the 'align-self' property, act as if the element is a replaced element.
  • 要素が次を満たす場合、 要素の~boxは,その子として`匿名な~button内容~box$を有する ⇒ [[ `input$e / `button$e ]要素である ]~AND[ `display$p の算出d値 ~NIN { `inline-grid^v, `grid^v, `inline-flex^v, `flex^v } ] ◎ If the element is an input element, or if it is a button element and its computed value for 'display' is not 'inline-grid', 'grid', 'inline-flex', or 'flex', then the element's box has a child anonymous button content box\

    `匿名な~button内容~box@ は、 次に従って挙動するとする: ◎ with the following behaviors:

    • `塊-~level$の`塊~容器$になり、 新たな`塊~整形~文脈$を確立する (すなわち `display$p は `flow-root^v )。 ◎ The box is a block-level block container that establishes a new block formatting context (i.e., 'display' is 'flow-root').
    • 横-軸にて~overflowしないならば,横方向にて中央する。 ◎ If the box does not overflow in the horizontal axis, then it is centered horizontally.
    • 縦-軸にて~overflowしないならば,縦方向にて中央する。 ◎ If the box does not overflow in the vertical axis, then it is centered vertically.

    他の場合、 `匿名な~button内容~box$は無い。 ◎ Otherwise, there is no anonymous button content box.

期待される`~primitiveな外観$を定義する必要がある。 ◎ Need to define the expected primitive appearance.

15.5.4. `button^e 要素

`button$e 要素に対しては、 `~CSS~box$を生成するならば,次が期待される: ◎ The button element, when it generates a CSS box, is expected to\

  • ~buttonを図画化する。 ◎ depict a button and\
  • `~button~layout$を利用する。 ◎ to use button layout\
  • `匿名な~button内容~box$がある場合、 その内容は[ 無い場合に要素の~boxが有することになる内容 ]が成す子~boxたちからなる。 ◎ whose anonymous button content box's contents (if there is an anonymous button content box) are the child boxes the element's box would otherwise have.

15.5.5. `details^e, `summary^e 要素

@namespace "http://www.w3.org/1999/xhtml";

details > summary:first-of-type {
  display: list-item;
  counter-increment: list-item 0;
  list-style: disclosure-closed inside;
}
details[open] > summary:first-of-type {
  list-style-type: disclosure-open;
}

`details$e 要素 %details に対しては、 次が期待される: ◎ The details element is expected to\

  • %details は、 `塊~box$【`塊~容器$?】として具現化する。 ◎ render as a block box.\
  • %details は、 内部的な`~shadow~tree$ %shadow を有していて,それは 2 個の`~slot$ — 順に %A, %B とする — を伴う。 ◎ The element is also expected to have an internal shadow tree with two slots.\
  • %details の子に `summary$e 要素が在るならば、 それらのうち最初のもの %summary を %A にあてがう【! take 】。 ◎ The first slot is expected to take the details element's first summary element child, if any.\
  • %B には、 %summary を除く %details の子孫~すべて【が成す~tree】をあてがう。 ◎ The second slot is expected to take the details element's remaining descendants, if any.
  • %summary に対しては、 利用者からの要請に応じて,当の詳細を開閉できる【そのような~UIを備える】ようにする。 ◎ The details element's first summary element child, if any, is expected to allow the user to request the details be shown or hidden.
  • %B の `style$a 属性は、 %details が `open$a 属性を: ◎ The details element's second slot is expected to have its style attribute\

    • 有さない場合 ⇒ `display: block; content-visibility: hidden;^l に設定する ◎ set to "display: block; content-visibility: hidden;" when the details element does not have an open attribute.\
    • 有する場合 ⇒ %B から除去する ◎ When it does have the open attribute, the style attribute is expected to be removed from the second slot.

    注記: これらの~slotは~shadow~treeの内側に隠されるので、 ~slot %B の `style$a 属性が作者~codeから直に可視になることはない。 しかしながら,その影響iは可視になる。 特に, `content-visibility$p: `hidden^v が — 例えば `display$p: `none^v に代えて — 選ばれたことは、 ~layout情報を~queryする様々な~APIの結果に影響iする。 ◎ Because the slots are hidden inside a shadow tree, this style attribute is not directly visible to author code. Its impacts, however, are visible. Notably, the choice of content-visibility: hidden instead of, e.g., display: none, impacts the results of various APIs that query layout information.

15.5.6. ~text手入力~widgetとしての `input^e 要素

次を満たす `input$e 要素 %要素 は、 `委譲-可能な~widget$である ⇒ その `type$input 属性の状態 ~IN { `Text$st, `Tel$st, `Url$st, `Email$st, `Search$st, `Password$st } ◎ ↓

%要素 には、 次が期待される: ◎ ↓

  • `~nativeな外観$においては、[ 一行分の~text~controlを図画化する `inline-block$v ~box ]として具現化する — 加えて, %要素 の `type$input 属性が: ◎ An input element whose type attribute is in the Text, Telephone, URL, or Email state, is a devolvable widget. Its expected native appearance is to render as an 'inline-block' box depicting a one-line text control.

    • `Search$st 状態にある場合 ⇒ [ %要素 の `appearance$p ~propの`算出d値$ ~NEQ `textfield$v ]ならば、 %要素 は,自身が探索-~fieldであることを指示する別個な~styleを備えてもヨイ。 ◎ An input element whose type attribute is in the Search state is a devolvable widget. Its expected native appearance is to render as an 'inline-block' box depicting a one-line text control. If the computed value of the element's 'appearance' property is not 'textfield', it may have a distinct style indicating that it is a search field.
    • `Password$st 状態にある場合 ⇒ 当の~text~controlの中の~dataを隠蔽するよう具現化する。 ◎ An input element whose type attribute is in the Password state is a devolvable widget. Its expected native appearance is to render as an 'inline-block' box depicting a one-line text control that obscures data entry.

    この~boxの `line-height$p ~propの`使用~値$は、[ ~keyword `normal^v が指定されたとするときの`使用~値$ ]を下回らない長さ値にするモノトスル。 ◎ For input elements whose type attribute is in one of the above states, the used value of the 'line-height' property must be a length value that is no smaller than what the used value would be for 'line-height: normal'.

    注記: `使用~値$は、 実際の~keyword `normal^v にはならない。 また、 この規則は,`算出d値$には影響しない。 ◎ The used value will not be the actual keyword 'normal'. Also, this rule does not affect the computed value.

  • 当の~text~controlが~text選択を供する場合、 利用者が現在の選択を変更したときは ⇒ `要素~taskを~queueする$( `利用者~対話~task~source$, %要素, 次の手続き )

    手続きは ⇒ `~eventを発火する$( %要素, `select$et ) — 次のように初期化して ⇒ `bubbles$m 属性 ~SET ~T
    ◎ If these text controls provide a text selection, then, when the user changes the current selection, the user agent is expected to queue an element task on the user interaction task source given the input element to fire an event named select at the element, with the bubbles attribute initialized to true.

%要素 は、 `既定の選好d~sizeを伴う要素$であり,次が期待される: ◎ An input element whose type attribute is in one of the above states is an element with default preferred size, and user agents are expected\

  • %要素 には `field-sizing$p ~propを適用する。 ◎ to apply the 'field-sizing' CSS property to the element.\
  • %要素 の`内在的~size$を成す`行内~size$を次の手続きにより決定する:

    1. ~IF[ %要素 の `field-sizing$p ~propの`算出d値$ ~EQ `content$v ] ⇒ ~RET %要素 が示す~textにより決定される`行内~size$

      この場合、 ~textは[ `値$fe / %要素 の `placeholder$input 属性により指定された短い~hint ]いずれかになる。 ~UAは、 この~sizeに~text~caret~sizeを織り込んでもヨイ。

    2. %文字~数 ~LET [ %要素 は `size$input 属性を有するならば その値 / ~ELSE_ `失敗^i ]
    3. ~IF[ %文字~数 ~NEQ `失敗^i ] ⇒ %文字~数 ~SET `負でない整数として構文解析する$( %文字~数 )
    4. ~IF[ %文字~数 ~EQ `失敗^i ] ⇒ %文字~数 ~SET 20 ◎ ↓
    5. ~RET `文字~数から~pixel単位へ変換する$( %文字~数 )
    ◎ User agents are expected to determine the inline size of its intrinsic size by the following steps: • If the 'field-sizing' property on the element has a computed value of 'content', the inline size is determined by the text which the element shows. The text is either a value or a short hint specified by the placeholder attribute. User agents may take the text caret size into account in the inline size. • If the element has a size attribute, and parsing that attribute's value using the rules for parsing non-negative integers doesn't generate an error,\ • return the value obtained from applying the converting a character width to pixels algorithm to the value of the attribute. • Otherwise, return the value obtained from applying the converting a character width to pixels algorithm to the number 20.

`文字~数から~pixel単位へ変換する@ ときは、 所与の ( %要素, %~size ) に対し, ( ( %~size − 1 ) ~MUL %平均 ~PLUS %最大 ) を返す — ここで:

  • %平均 は、 `~pixel単位$による, %要素 上の首な~fontの平均の文字~横幅
  • %最大 は、 `~pixel単位$による, %要素 上の首な~fontの最~大な文字~横幅

(要素の `letter-spacing$p ~propは、 結果に影響しない。)

◎ The converting a character width to pixels algorithm returns (size-1)×avg + max, where size is the character width to convert, avg is the average character width of the primary font for the element for which the algorithm is being run, in pixels, and max is the maximum character width of that same font, also in pixels. (The element's 'letter-spacing' property does not affect the result.)

これらの~text~controlは、 `~scroll容器$になり,[ `行内~軸$, `塊~軸$ ]のうち前者に限り~scroll法を~supportするものと期待される。 ◎ These text controls are expected to be scroll containers and support scrolling in the inline axis, but not the block axis.

期待される[ `~nativeな外観$, `~primitiveな外観$ ]について詳細を与える必要がある。 ◎ Need to detail the expected native appearance and primitive appearance.

15.5.7. 各種~widgetとしての `input^e 要素

`input$e 要素のうち[ その `type$input 属性の状態が次に挙げるいずれかであるもの ]は、 `委譲-可能な~widget$である ⇒# `Date$st / `Month$st / `Week$st / `Time$st / `Datetime-local$st / `Number$st

そのような要素 %要素 には、[ 次に挙げる~control(上と同順)を図画化する `inline-block$v ~boxとして具現化する ]ことが期待される ⇒ 日付 / 月 / 週 / 時刻 / 地域標準時による日時 / 数値

◎ An input element whose type attribute is in the Date state is a devolvable widget expected to render as an 'inline-block' box depicting a date control. ◎ An input element whose type attribute is in the Month state is a devolvable widget expected to render as an 'inline-block' box depicting a month control. ◎ An input element whose type attribute is in the Week state is a devolvable widget expected to render as an 'inline-block' box depicting a week control. ◎ An input element whose type attribute is in the Time state is a devolvable widget expected to render as an 'inline-block' box depicting a time control. ◎ An input element whose type attribute is in the Local Date and Time state is a devolvable widget expected to render as an 'inline-block' box depicting a local date and time control. ◎ An input element whose type attribute is in the Number state is a devolvable widget expected to render as an 'inline-block' box depicting a number control.

加えて, %要素 の `type$input 属性の状態に応じて:

`Number$st ◎ An input element whose type attribute is in the Number state\

%要素 は`既定の選好d~sizeを伴う要素$であり, 次が期待される: ◎ is an element with default preferred size, and user agents are expected\

  • %要素 には `field-sizing$p ~propを適用する。 ◎ to apply the 'field-sizing' CSS property to the element.\
  • %要素 の`内在的~size$を成す:

    • `塊~size$は、 およそ一行分の高さになる。
    • `行内~size$は、 %要素 の `field-sizing$p ~propの`算出d値$に応じて:

      • `content$v の場合 ⇒ 現在の`値$feを示すために必要yな幅になる。
      • 他の場合 ⇒ アリなどの値も示すために必要yな幅になる。
    ◎ The block size of the intrinsic size is about one line high.\ If the 'field-sizing' property on the element has a computed value of 'content', the inline size of the intrinsic size is expected to be about as wide as necessary to show the current value.\ Otherwise, the inline size of the intrinsic size is expected to be about as wide as necessary to show the widest possible value.
その他 ◎ An input element whose type attribute is in the Date, Month, Week, Time, or Local Date and Time state,\
%要素 用の~controlの~sizeを次のようにすることが期待される ⇒# およそ一行分の高さ, アリな どの値も示すために必要yな幅 ◎ is expected to be about one line high, and about as wide as necessary to show the widest possible value.

期待される[ `~nativeな外観$, `~primitiveな外観$ ]について詳細を与える必要がある。 ◎ Need to detail the expected native appearance and primitive appearance.

15.5.8. 範囲~controlとしての `input^e 要素

`input$e 要素のうち[ その `type$input 属性の状態 ~EQ `Range$st ]を満たすものは、 `委譲-不能な~widget$であり, その`~nativeな外観$には次が期待される: ◎ An input element whose type attribute is in the Range state is a non-devolvable widget. Its expected native appearance is\

  • `inline-block$v ~boxとして具現化する。 ◎ to render as an 'inline-block' box\
  • 当の~controlを次に従って図画化する: ◎ depicting a slider control.

    • `横組み$の場合 ⇒ 横方向~sliderになる — その最低~値は、 要素の `direction$p ~propの`算出d値$に応じて[ `rtl^v ならば 右端/ ~ELSE_ 左端 ]に~~位置する。 ◎ When this control has a horizontal writing mode, the control is expected to be a horizontal slider. Its lowest value is on the right if the 'direction' property has a computed value of 'rtl', and on the left otherwise.\
    • `縦組み$の場合 ⇒ 縦方向~sliderになる — その最低~値は、 要素の `direction$p ~propの`算出d値$に応じて[ `rtl^v ならば 下端/ ~ELSE_ 上端 ]に~~位置する。 ◎ When this control has a vertical writing mode, it is expected to be a vertical slider. Its lowest value is on the bottom if the 'direction' property has a computed value of 'rtl', and on the top otherwise.
  • 定義済み候補d値( `list$input 属性により供される)は、 ~slider上の刻印として示した上で,~sliderを そこへ停めれるようにする。 ◎ Predefined suggested values (provided by the list attribute) are expected to be shown as tick marks on the slider, which the slider can snap to.

期待される`~primitiveな外観$について詳細を与える必要がある。 ◎ Need to detail the expected primitive appearance.

15.5.9. ~color-wellとしての `input^e 要素

`input$e 要素のうち[ その `type$input 属性の状態 ~EQ `Color$st ]を満たすものに対しては、 次が期待される: ◎ An input element whose type attribute is in the Color state is expected to\

  • 要素の作動化-時には,利用者が色~picker(例:色環や色~palette)を供するような~color-wellを図画化する。 【現在~選択されている色が表示される小さな~boxで,~click等により そのような~UIが表示されるような類の~control。】 ◎ depict a color well, which, when activated, provides the user with a color picker (e.g. a color wheel or color palette) from which the color can be changed.\
  • `~CSS~box$を生成する場合には: ◎ The element, when it generates a CSS box, is expected to\

    • `~button~layout$を利用するが、 `匿名な~button内容~box$を成す子~boxは伴わない。 ◎ use button layout, that has no child boxes of the anonymous button content box.\
    • `匿名な~button内容~box$は、 次のようにふるまう`呈示~用~hint$を有する ⇒ `background-color$p ~propの値 ~SET 要素の`値$fe ◎ The anonymous button content box is expected to have a presentational hint setting the 'background-color' property to the element's value.
  • ( `list$input 属性から供される)定義済み候補d値は、 ~color-well自身ではなく,色~pickerにて示す。 ◎ Predefined suggested values (provided by the list attribute) are expected to be shown in the color picker interface, not on the color well itself.

期待される[ `~nativeな外観$, `~primitiveな外観$ ]について詳細を与える必要がある。 ◎ Need to detail the expected native appearance and primitive appearance.

15.5.10. ~checkbox/~radio-button用~widgetとしての `input^e 要素

`input$e 要素のうち[ その `type$input 属性の状態 ~IN { `Checkbox$st, `Radio$st } ]を満たすものは、 `委譲-不能な~widget$であり, 次が期待される ⇒ 1 個の[ ~checkbox / ~radio-button ]~controlを包含し, ~labelは伴わない `inline-block$v ~boxとして具現化する ◎ An input element whose type attribute is in the Checkbox state is a non-devolvable widget expected to render as an 'inline-block' box containing a single checkbox control, with no label. ◎ ↓Need to detail the expected native appearance and primitive appearance. ◎ An input element whose type attribute is in the Radio Button state is a non-devolvable widget expected to render as an 'inline-block' box containing a single radio button control, with no label.

期待される[ `~nativeな外観$, `~primitiveな外観$ ]について詳細を与える必要がある。 ◎ Need to detail the expected native appearance and primitive appearance.

15.5.11. ~file~upload用~controlとしての `input^e 要素

`input$e 要素のうち[ その `type$input 属性の状態 ~EQ `File$st ]を満たすもの %要素 に対しては: ◎ An input element whose type attribute is in the File Upload state,\

  • %要素 は `~CSS~box$を生成するならば, 次を順に包含する `inline-block$v ~boxとして具現化することが期待される: ◎ when it generates a CSS box, is expected to render as an 'inline-block' box containing\

    1. %要素 が表現する`選択された~file~list$は空でないならば、 それらの~filenameを与える~text。 ◎ a span of text giving the filename(s) of the selected files, if any, followed by\
    2. 次のような~button:

      • 作動化-時には、 利用者が選択を変更できるような~file~pickerを供する。
      • `~button~layout$を利用する。
      • `file-selector-button$pe 疑似要素に合致する。
      • その`匿名な~button内容~box$の内容は、 `実装定義$な(場合によっては~localeに特有な)~textからなる — 例えば “~fileを選ぶ” 。
      ◎ a button that, when activated, provides the user with a file picker from which the selection can be changed. The button is expected to use button layout and match the '::file-selector-button' pseudo-element. The contents of its anonymous button content box are expected to be implementation-defined (and possibly locale-specific) text, for example "Choose file".
  • ~UAは、 次に従うことにしてもヨイ: ◎ User agents may\

    • %要素 を`既定の選好d~sizeを伴う要素$として取扱って, %要素 に `field-sizing$p ~propを適用する。 ◎ handle an input element whose type attribute is in the File Upload state as an element with default preferred size, and user agents may apply the 'field-sizing' CSS property to the element.\
    • `field-sizing$p ~propの`算出d値$ ~EQ `content$v の場合には、 %要素 の`内在的~size$は %要素 の内容 — `file-selector-button$pe 疑似要素, 選ばれた~fileの名前など — に依存することが期待される。 ◎ If the 'field-sizing' property on the element has a computed value of 'content', the intrinsic size of the element is expected to depend on its content such as the '::file-selector-button' pseudo-element and chosen file names.

15.5.12. ~buttonとしての `input^e 要素

`input$e 要素のうち[ その `type$input 属性の状態 ~IN { `Submit$st, `Reset$st, `Button$st } ]を満たすものに対しては、 `~CSS~box$を生成するならば,次のようにすることが期待される: ◎ An input element whose type attribute is in the Submit Button, Reset Button, or Button state, when it generates a CSS box, is expected to\

  • ~buttonを図画化する。 ◎ depict a button and\
  • `~button~layout$を利用する。 ◎ use button layout and\
  • `匿名な~button内容~box$の内容は、 要素が `value$input 属性を[ 有するならば その~text / 有さないならば[ 要素の `type$input 属性から`実装定義$な(おそらく~localeに特有な)流儀で導出される~text ]]からなる。 ◎ the contents of the anonymous button content box are expected to be the text of the element's value attribute, if any, or text derived from the element's type attribute in an implementation-defined (and probably locale-specific) fashion, if not.

15.5.13. `marquee^e 要素

【! class="obsolete" 】

【 `marquee$e 要素は廃用にされたので、 この節の和訳は省略する。 】

15.5.14. `meter^e 要素

@namespace "http://www.w3.org/1999/xhtml";

meter {
  appearance: auto;
}

`meter$e 要素は、 `委譲-可能な~widget$であり, その`~nativeな外観$には次が期待される: ◎ The meter element is a devolvable widget.\

  • 次を伴う `inline-block$v ~boxとして具現化する ⇒# `block-size$p `1em^v, `inline-size$p `5em^v, `vertical-align$p `-0.2em^v ◎ Its expected native appearance is to render as an 'inline-block' box with a 'block-size' of '1em' and a 'inline-size' of '5em', a 'vertical-align' of '-0.2em',\
  • 当の~controlを次に従って図画化する: ◎ and with its contents depicting a gauge.

    • `横組み$の場合 ⇒ 横方向~gaugeになる — その最小~値は、[ 要素の `direction$p ~propの`算出d値$に応じて[ `rtl^v ならば右端/ ~ELSE_ 左端 ]に~~位置する。 ◎ When this element has a horizontal writing mode, the depiction is expected to be of a horizontal gauge. Its minimum value is on the right if the 'direction' property has a computed value of 'rtl', and on the left otherwise.\
    • `縦組み$の場合 ⇒ 縦方向~gaugeになる — その最小~値は、[ 要素の `direction$p ~propの`算出d値$に応じて[ `rtl^v ならば下端/ ~ELSE_ 上端 ]に~~位置する。 ◎ When this element has a vertical writing mode, it is expected to depict a vertical gauge. Its minimum value is on the bottom if the 'direction' property has a computed value of 'rtl', and on the top otherwise.
  • ~platform規約があれば、 それに整合な呈示を利用する。 ◎ User agents are expected to use a presentation consistent with platform conventions for gauges, if any.

注記: ~gaugeにおいて何を図画化するモノトスルかについての要件は、 `meter$e 要素の定義に含まれている。 ◎ Requirements for what must be depicted in the gauge are included in the definition of the meter element.

期待される`~primitiveな外観$について詳細を与える必要がある。 ◎ Need to detail the expected primitive appearance.

15.5.15. `progress^e 要素

@namespace "http://www.w3.org/1999/xhtml";

progress {
  appearance: auto;
}

`progress$e 要素は、 `委譲-可能な~widget$であり, その`~nativeな外観$には次が期待される: ◎ The progress element is a devolvable widget.\

  • 次を伴う `inline-block$v ~boxとして具現化する ⇒# `block-size$p `1em^v, `inline-size$p `10em^v, `vertical-align$p `-0.2em^v ◎ Its expected native appearance is to render as an 'inline-block' box with a 'block-size' of '1em' and a 'inline-size' of '10em', and a 'vertical-align' of '-0.2em'.
  • 当の~controlを次に従って図画化する: ◎ ↓

    • `横組み$の場合 ⇒ 横方向~進捗~barになる — その始端は、 要素の `direction$p ~propの`算出d値$に応じて[ `rtl^v ならば 右端/ ~ELSE_ 左端 ]に~~位置する。 ◎ When the this element has a horizontal writing mode, the element is expected to be depicted as a horizontal progress bar. The start is on the right and the end is on the left if the 'direction' property on this element has a computed value of 'rtl', and with the start on the left and the end on the right otherwise.\
    • `縦組み$の場合 ⇒ 縦方向~進捗~barになる — その始端は、 要素の `direction$p ~propの`算出d値$に応じて[ `rtl^v ならば 下端/ ~ELSE_ 上端 ]に~~位置する。 ◎ When this element has a vertical writing mode, it is expected to be depicted as a vertical progress bar. The start is on the bottom and the end is on the top if the 'direction' property on this element has a computed value of 'rtl', and with the start on the top and the end on the bottom otherwise.

    【 上の図式は、 原文では,縦組みにおいて向きが本文の記述と正反対になっているので、 この訳では改めた。 】

  • ~platform規約があれば、 それに整合な呈示を利用する — 特に、 進捗~barが確定的か不定かに応じて,異なる呈示を利用する。 加えて、 要素の寸法に基づいて,呈示を変える。 ◎ User agents are expected to use a presentation consistent with platform conventions for progress bars. In particular, user agents are expected to use different presentations for determinate and indeterminate progress bars. User agents are also expected to vary the presentation based on the dimensions of the element.

注記: [ 進捗~barが確定的か不定かを決定する方法 ]および[ 確定的~進捗~barが何の進捗を示すか ]についての要件は、 `progress$e 要素の定義に含まれている。 ◎ Requirements for how to determine if the progress bar is determinate or indeterminate, and what progress a determinate progress bar is to show, are included in the definition of the progress element.

期待される`~primitiveな外観$について詳細を与える必要がある。 ◎ Need to detail the expected primitive appearance.

15.5.16. `select^e 要素

`select$e 要素 — 以下 %要素 — は、 `既定の選好d~sizeを伴う要素$であり, `field-sizing$p ~propを適用することが期待される。 ◎ The select element is an element with default preferred size, and user agents are expected to apply the 'field-sizing' CSS property to select elements.

%要素 は、 `委譲-可能な~widget$であり, `inline-block$v ~boxとして具現化することが期待される。 ◎ ↓↓

%要素 は、[ `~list~box@ / `~drop-down~box@ ]として具現化することが期待される — どちらになるかは,以下に従う: ◎ A select element is either a list box or a drop-down box, depending on its attributes.

  • 次の場合、 `~list~box$として具現化する: ◎ ↓

    • %要素 は `multiple$A 属性を有するならば、 複-選択-`~list~box$として。 ◎ A select element whose multiple attribute is present is expected to render as a multi-select list box.
    • [ %要素 は `multiple$A 属性を有さない ]~AND[ %要素 の`表示~size$ ~GT 1 ]ならば、 単-選択-`~list~box$として。 ◎ A select element whose multiple attribute is absent, and whose display size is greater than 1, is expected to render as a single-select list box.

    この場合、 その`内在的~size$は,次に従うとする: ◎ When the element renders as a list box, it is a devolvable widget expected to render as an 'inline-block' box.\

    • `行内~size$は ⇒ %要素 の`最大~label幅$ ~PLUS ~scrollbarの横幅 ◎ The inline size of its intrinsic size is the width of the select's labels plus the width of a scrollbar.\
    • `塊~size$は、 次を包含するために必要yな縦幅:

      • %要素 の `field-sizing$p ~propの`算出d値$ ~EQ `content$v ならば ⇒ すべての~item用の~rowたち
      • 他の場合、 %要素 は `size$A 属性を有していて,その値は妥当であるならば ⇒ %要素 の`表示~size$として与えられた %要素 の~itemたち用の~rowたち
      • 他の場合 ⇒ 4 個の~row
      ◎ The block size of its intrinsic size is determined by the following steps: • If the 'field-sizing' property on the element has a computed value of 'content', return the height necessary to contain all rows for items. • If the size attribute is absent or it has no valid value, return the height necessary to contain four rows. • Otherwise, return the height necessary to contain as many rows for items as given by the element's display size.
  • 他の場合 ([ %要素 は `multiple$A 属性を有さない ]~AND[ %要素 の`表示~size$ ~EQ 1 ])、 次のような`~drop-down~box$として具現化する: ◎ A select element whose multiple attribute is absent, and whose display size is 1,\

    • 高さ一行分 ◎ is expected to render as an 'inline-block' one-line drop-down box.\ \
    • その`内在的~size$を成す`行内~size$は、 `最大~label幅$になり,[ 要素の `field-sizing$p ~propの`算出d値$ ~EQ `content$v ]の場合には,示された~textに依存する。 示される~textは、 概して, `option$e のうち`選択状態$opt ~EQ ~T を満たすものの~labelになる。 ◎ The inline size of its intrinsic size is the width of the select's labels.\ If the 'field-sizing' property on the element has a computed value of 'content', the inline size of the intrinsic size depends on the shown text.\ The shown text is typically the label of an option of which selectedness is set to true.

    この場合、[ %要素 の`委譲され$た状態における外観/ %要素 の `appearance$p ~propの`算出d値$が `menulist-button$v のときの外観 ]は、[ “~drop-down~button” も含めて,~drop-down~boxの外観になる ]が,[ ~host~OSの~native~controlを利用して具現化する ]ことは必要yでない。 そのような状態においては、[ `color$p, `background-color$p, `border$p ]などの~CSS~propは,無視rされるベキでない ( %要素 を その`~nativeな外観$に則って具現化するとき,それらの~propが一般に許可-可能であるのと同じく)。 ◎ When the element renders as a drop-down box, it is a devolvable widget. Its appearance in the devolved state, as well as its appearance when the computed value of the element's 'appearance' property is 'menulist-button', is that of a drop-down box, including a "drop-down button", but not necessarily rendered using a native control of the host operating system. In such a state, CSS properties such as 'color', 'background-color', and 'border' should not be disregarded (as is generally permissible when rendering an element according to its native appearance).

[ `~list~box$, `~drop-down~box$ ]どちらの事例でも、 次が期待される: ◎ In either case (list box or drop-down box),\

  • %要素 の~itemたちが %要素 の`選択肢~list$を成す。 ◎ the element's items are expected to be the element's list of options,\
  • %要素 の`子$である `optgroup$e 要素は、 適用-可能な所では,選択肢たちが成す~group用に~~見出しを供する。 ◎ with the element's optgroup element children providing headers for groups of options where applicable.

`optgroup$e 要素は、 次のように具現化することが期待される ⇒ その `label$A 属性を表示する ◎ An optgroup element is expected to be rendered by displaying the element's label attribute.

`option$e 要素は、 次のように具現化することが期待される ⇒ その`~label$optを — `optgroup$e 要素が在る場合は,その下に字下げして — 表示する ◎ An option element is expected to be rendered by displaying the element's label, indented under its optgroup element if it has one.

各[ %要素 の子である互いに同胞な `hr$e 要素たちが成す連列† ]は、 1 個の分離子として具現化してもヨイ。 ◎ Each sequence of one or more child hr element siblings may be rendered as a single separator.

【† 連列を成すかどうか決定するときは、 `要素間~空白$は無視されると思われるが,はっきりしない。 】

%要素 の `最大~label幅@ とは、[ 次に該当する各~要素に対し,それを具現化するために必要yな横幅 ]たちの最大である:

  • %要素 内の `optgroup$e
  • %要素 の`選択肢~list$内の各 `option$e (字下げもあればそれも含める)
◎ The width of the select's labels is the wider of the width necessary to render the widest optgroup, and the width necessary to render the widest option element in the element's list of options (including its indent, if any).

%要素 が包含する`仮入力~label選択肢$ %O に対しては、[ 次について利用者に伝達するよう具現化する ]ことが期待される: ◎ If a select element contains a placeholder label option, the user agent is expected to render that option in a manner that conveys that\

  • %O は、 当の~controlの妥当な選択肢ではなく,~labelである。 ◎ it is a label, rather than a valid option of the control.\
  • 利用者は %O を明示的に選択できない。 ◎ This can include preventing the placeholder label option from being explicitly selected by the user.\
  • [ %O の`選択状態$opt ~EQ ~T ]のときは、 現在,妥当な選択肢は選択されていない。 ◎ When the placeholder label option's selectedness is true, the control is expected to be displayed in a fashion that indicates that no valid option is currently selected.

%要素 内の各~labelに対しては、 それが[ ~page, ~menu~control内 ]どちらの一部として表示されるかに応じて,[ そこでの整列に整合する方式で具現化する ]ことが期待される。 ◎ User agents are expected to render the labels in a select in such a manner that any alignment remains consistent whether the label is being displayed as part of the page or in a menu control.

期待される[ `~nativeな外観$, `~primitiveな外観$ ]について詳細を与える必要がある。 ◎ Need to detail the expected native appearance and primitive appearance.

15.5.17. `textarea^e 要素

`textarea$e 要素 — 以下 %要素 — は、 `委譲-可能な~widget$であり,次が期待される: ◎ The textarea element is a devolvable widget expected to\

  • `~nativeな外観$においては、 `inline-block$v ~boxとして, 複数行~text~controlを図画化するように具現化する ◎ render as an 'inline-block' box depicting a multiline text control.\
  • 複数行~text~controlが~text選択を供する場合、 利用者が現在の選択を変更したときは ⇒ `要素~taskを~queueする$( `利用者~対話~task~source$, %要素, 次の手続き )

    手続きは ⇒ `~eventを発火する$( %要素, `select$et ) — 次のように初期化して ⇒ `bubbles$m 属性 ~SET ~T
    ◎ If this multiline text control provides a selection, then, when the user changes the current selection, the user agent is expected to queue an element task on the user interaction task source given the textarea element to fire an event named select at the element, with the bubbles attribute initialized to true.

%要素 は、 `既定の選好d~sizeを伴う要素$であり, 次に従うことが期待される: ◎ The textarea element is an element with default preferred size,\

  • %要素 に `field-sizing$p ~propを適用する。 ◎ and user agents are expected to apply the 'field-sizing' CSS property to textarea elements.
  • `内在的~size$は、 %要素 の `field-sizing$p ~propの`算出d値$に応じて:

    • `content$v の場合 ⇒ %要素 が示す~textから決定される。 ~textは、 %要素 の[ `生の値$/ `placeholder$A 属性により指定された短い~hint ]いずれかになる。 ~UAは、 この~sizeに~text~caret~sizeを織り込んでもヨイ。
    • 他の場合 ⇒ [ `~textarea実効~横幅$, `~textarea実効~縦幅$ ]から算出される (下に定義されるとおり)。
    ◎ If the 'field-sizing' property on the element has a computed value of 'content', the intrinsic size is determined from the text which the element shows. The text is either a raw value or a short hint specified by the placeholder attribute. User agents may take the text caret size into account in the intrinsic size.\ Otherwise, its intrinsic size is computed from textarea effective width and textarea effective height (as defined below).

%要素 の `~textarea実効~横幅@ は ( %size ~MUL %avg ~PLUS %sbw ) で与えられる — ここで ⇒# %size ~EQ ( `cols$A 属性から導出される) %要素 の`一行分の字数$(属性が無い場合は 20 ), %avg ~EQ `~pixel単位$による %要素 の首な~fontの平均 文字~横幅, %sbw ~EQ `~pixel単位$による ~scrollbarの横幅

( %要素 の `letter-spacing$p ~propは、 結果に影響しない)

◎ The textarea effective width of a textarea element is size×avg + sbw, where size is the element's character width, avg is the average character width of the primary font of the element, in CSS pixels, and sbw is the width of a scrollbar, in CSS pixels. (The element's 'letter-spacing' property does not affect the result.)

%要素 の `~textarea実効~縦幅@ は、 ( %size ~MUL %h ~PLUS %sbh ) で与えられる — ここで ⇒# %size ~EQ %要素 の( `rows$A 属性から導出される)`行数$(属性が無い場合は 2 ), %h ~EQ `~pixel単位$による 一行分の高さ, %sbh ~EQ `~pixel単位$による ~scrollbarの縦幅 ◎ The textarea effective height of a textarea element is the height in CSS pixels of the number of lines specified the element's character height, plus the height of a scrollbar in CSS pixels.

歴史的な理由から, %要素 の `wrap$A 属性は、 次の`対応付け規則$の下で, %要素 の `white-space$p ~prop用の`呈示~用~hintとして扱う$ことが期待される ⇒ [ 値 ~EQ`大小無視$sub `off^l ならば `pre^v / 他の場合は ε ]を返す ◎ User agents are expected to apply the 'white-space' CSS property to textarea elements. For historical reasons, if the element has a wrap attribute whose value is an ASCII case-insensitive match for the string "off", then the user agent is expected to treat the attribute as a presentational hint setting the element's 'white-space' property to 'pre'.

期待される[ `~nativeな外観$, `~primitiveな外観$ ]について詳細を与える必要がある。 ◎ Need to detail the expected native appearance and primitive appearance.

15.6. `frame^e, `frameset^e

【! class="obsolete" 】

【 `frame$e, `frameset$e 要素は廃用にされたので、 この節の和訳は省略する。 】

15.7. 対話的~媒体

15.7.1. ~link, ~form, ~navi

次を行うことが期待される: ◎ ↓

  • 利用者が[ `~hyperlink$の作動化/`~form提出@~HTMLforms#form-submission$ ]の側面 — 後続な`~navi$用には,どの`~navigable$が利用されることになるか、 など — を制御できるようにする。 ◎ User agents are expected to allow the user to control aspects of hyperlink activation and form submission, such as which navigable is to be used for the subsequent navigation.
  • [ `~hyperlink$ / `~form@~HEforms#the-form-element$ ]に対しては、 それによる`~navi$を誘発する前に,利用者が その行先を発見できるようにする。 ◎ User agents are expected to allow users to discover the destination of hyperlinks and of forms before triggering their navigation.
  • 利用者に[ `~hyperlink$が`~hyperlink聴取$を含むかどうか ], および 最小限[ そのような聴取の一環として,どの~domainに接触することになるか ]を伝える。 ◎ User agents are expected to inform the user of whether a hyperlink includes hyperlink auditing, and to let them know at a minimum which domains will be contacted as part of such auditing.

~UAは、 利用者に次を許容してもヨイ ⇒ [ `q$e / `blockquote$e / `ins$e / `del$e ]要素の `cite^a 属性で`指示される~URL@~HTMLurl#encoding-parsing-a-url$へ,`~navigable$を`~navigate$する。 ◎ User agents may allow users to navigate navigables to the URLs indicated by the cite attributes on q, blockquote, ins, and del elements.

~UAは、 上で論じたように,自身の~UIにて[ `link$e 要素により作成される`~hyperlink$ ]を表面化してもヨイ。 ◎ User agents may surface hyperlinks created by link elements in their user interface, as discussed previously.

15.7.2. `title^a 属性

`title$a 属性を有する要素に対しては、[ 利用者から要請されたときは,要素の`助言的~情報$を公開すること ], および[ そのような情報が在ることを利用者に気付かせること ]が期待される。 ◎ User agents are expected to expose the advisory information of elements upon user request, and to make the user aware of the presence of such information.

利用者が~pointing装置を利用できる対話的かつ~graphicな~system上では、 これは,~tooltipの形をとることもできる。 利用者が~pointing装置を利用できないときは、 何らかの他の流儀で内容を可用にすることが期待される — 例えば,次により: ◎ On interactive graphical systems where the user can use a pointing device, this could take the form of a tooltip. When the user is unable to use a pointing device, then the user agent is expected to make the content available in some other fashion, e.g.\

  • 要素を`~focus可能な区画$にして、 要素が`~focusされ$たときは,要素の`助言的~情報$を常に表示する。 ◎ by making the element a focusable area and always displaying the advisory information of the currently focused element, or\
  • あるいは,~touch装置~上では、 利用者が~screenを~panするに伴い,要素の`助言的~情報$を利用者の指先の傍に示す。 ◎ by showing the advisory information of the elements under the user's finger on a touch device as the user pans around the screen.

~tooltipにおいては、 次に従うことが期待される: ◎ ↓

  • 文字 `000A^U `LINE FEED^cn( LF )は、 行l分断を生じさせる。 ◎ U+000A LINE FEED (LF) characters are expected to cause line breaks in the tooltip;\
  • 文字 `0009^U `CHARACTER TABULATION^cn( ~tab )は、 その次の~glyphが[ 行lの終端方向に 0 でない~~距離にある,次の~tab-stop ]に揃うように具現化する — ここで,~tab-stopたちは、 行lの始端から[ `0020^U `SPACE^cn 文字の横幅の 8 倍 ]~~周期の各~地点に生じるとする。 ◎ U+0009 CHARACTER TABULATION (tab) characters are expected to render as a nonzero horizontal shift that lines up the next glyph with the next tab stop, with tab stops occurring at points that are multiples of 8 times the width of a U+0020 SPACE character.

例えば,視覚的な~UAは、 `title$a 属性を有する要素を`~focus可能$にして,[ そのような要素が`~focusされ$ている間は,その~tooltipを要素の下に示す ]ようにすることもできる。 これにより、 利用者には[ 文書~内を~tab~UIkeyで~~巡回して,すべての助言的~textを見出す ]ことが許容されるようになる。 ◎ For example, a visual user agent could make elements with a title attribute focusable, and could make any focused element with a title attribute show its tooltip under the element while the element has focus. This would allow a user to tab around the document to find all the advisory text.

別の例として,~screen~readerは、 ~tooltipを伴う要素を読上げるときには,[ ある指示音, それ用に結付けられた~UIkey ]を供して[ 当の~UIkeyが押されたときは、 最後に再生した指示音に対応する~tooltipを読上げる ]ようにすることもできる。 ◎ As another example, a screen reader could provide an audio cue when reading an element with a tooltip, with an associated key to read the last tooltip for which a cue was played.

15.7.3. 編集中の~host

現在の~text編集-用~caret (すなわち、 `作動中な範囲$ — それが空で,`編集中の~host$内に在るならば【?】) が在るならば、 ~CSS具現化~modelの目的においては,[ 縦幅は~caretのそれ, 横幅は 0 にされた,行内`置換d要素$ ]の様に動作することが期待される。 ◎ The current text editing caret (i.e. the active range, if it is empty and in an editing host), if any, is expected to act like an inline replaced element with the vertical dimensions of the caret and with zero width for the purposes of the CSS rendering model.

注記: このことは,塊が空であっても、 その内側に~caretを持ち得ること, および ~caretがそのような要素~内に在るときは,~marginは要素を`挟むように相殺-$しなくなることを意味する。 ◎ This means that even an empty block can have the caret inside it, and that when the caret is in such an element, it prevents margins from collapsing through the element.

15.7.4. ~native~UIにて具現化される~text

~UIにて公開される~textに対しては、 ~Unicode意味論を尊守することが期待される — 例えば、[ ~dialog / ~title~bar / ~popup~menu / ~tooltip ]内に示される~textに対し,双方向-~algoを~supportするなど。 [ 要素の内容 / 属性の値 ]から得された~textに対しては、[ 当の要素の`方向性$ / 当の`属性の方向性$ ]を尊守する方式で,具現化することが期待される。 ◎ User agents are expected to honor the Unicode semantics of text that is exposed in user interfaces, for example supporting the bidirectional algorithm in text shown in dialogs, title bars, popup menus, and tooltips. Text from the contents of elements is expected to be rendered in a manner that honors the directionality of the element from which the text was obtained. Text from attributes is expected to be rendered in a manner that honours the directionality of the attribute.

次の~markupを考える — ~programming言語を選ぶ `select^e 要素と~Hebrew~textが在る。 言語~名の一部を成している,~textとしての約物は、 左横書きにすることが重要になる: ◎ Consider the following markup, which has Hebrew text asking for a programming language, the languages being text for which a left-to-right direction is important given the punctuation in some of their names:

<p dir="rtl" lang="he">
 <label>
  בחר שפת תכנות:
  <select>
   <option dir="ltr">C++</option>
   <option dir="ltr">C#</option>
   <option dir="ltr">FreePascal</option>
   <option dir="ltr">F#</option>
  </select>
 </label>
</p>

`select$e 要素を`~drop-down~box$として正しく具現化するためには、 約物を[ ~drop-down, 現在の選択を示している~box内 ]で同じに揃えることになるであろう。 ◎ If the select element was rendered as a drop down box, a correct rendering would ensure that the punctuation was the same both in the drop down, and in the box showing the current selection.

属性~値の方向性は、 次にデモるように,属性と[ それを有する要素の `dir$a 属性 ]に依存する。 次の~markupを考える: ◎ The directionality of attributes depends on the attribute and on the element's dir attribute, as the following example demonstrates. Consider this markup:

<table>
 <tr>
  <th abbr="(א" dir=ltr>A
  <th abbr="(א" dir=rtl>A
  <th abbr="(א" dir=auto>A
</table>

`abbr@~HEtables#attr-th-abbr$a 属性が, 例えば~tooltipその他の~UIで具現化される場合:

  • 1 個目の `th^e では、 方向は `ltr^v なので,丸括弧は左端に来ることになる。
  • 2 個目では、 方向は `rtl^v なので,丸括弧は右端に来ることになる。
  • 3 個目では、 方向は `属性~値から^em `rtl^v に決定されるので,丸括弧は右端に来ることになる。

【 具現化の目的においては、 丸括弧が右端に来るときには右~丸括弧~用の~glyphが利用されよう。 】

◎ If the abbr attributes are rendered, e.g. in a tooltip or other user interface, the first will have a left parenthesis (because the direction is 'ltr'), the second will have a right parenthesis (because the direction is 'rtl'), and the third will have a right parenthesis (because the direction is determined from the attribute value to be 'rtl').

しかしながら、 `方向性有りな属性$でなかった場合,異なる結果になろう: ◎ However, if instead the attribute was not a directionality-capable attribute, the results would be different:

<table>
 <tr>
  <th data-abbr="(א" dir=ltr>A
  <th data-abbr="(א" dir=rtl>A
  <th data-abbr="(א" dir=auto>A
</table>

この事例では、 ~UAが(例えば,~debug環境の)~UIにて `data-abbr^a 属性を公開するとするとき、 3 個目のそれに対しては,丸括弧は`左端^emに具現化されることになる — 方向は,要素の内容から決定されることになるので。 ◎ In this case, if the user agent were to expose the data-abbr attribute in the user interface (e.g. in a debugging environment), the last case would be rendered with a left parenthesis, because the direction would be determined from the element's contents.

~scriptにより供される文字列 (例: `window.alert()$c に対する引数) が表示されるときは、 双方向-~algoにて定義されるとおり, 1 個~以上の[ 双方向-~algo段落 ]からなる独立な集合として扱うことが期待される — 一例として、[ 文字 `000A^U `LINE FEED^cn( LF )による,段落~分断法の挙動 ]を~supportすることも含む。 双方向-~algoにおいて,そのような~textの段落~levelを決定する目的においては、 この仕様は,[ `BIDI$r による規則 P2, P3 より高~levelな上書き ]は`供さない^em。 ◎ A string provided by a script (e.g. the argument to window.alert()) is expected to be treated as an independent set of one or more bidirectional algorithm paragraphs when displayed, as defined by the bidirectional algorithm, including, for instance, supporting the paragraph-breaking behavior of U+000A LINE FEED (LF) characters. For the purposes of determining the paragraph level of such text in the bidirectional algorithm, this specification does not provide a higher-level override of rules P2 and P3. [BIDI]

作者は、 必要なら,所与の段落を~Unicode文字[ `200E^U `LEFT-TO-RIGHT MARK^cn / `200F^U `RIGHT-TO-LEFT MARK^cn ]から開始させることにより,特定0の方向を施行できる。 ◎ When necessary, authors can enforce a particular direction for a given paragraph by starting it with the Unicode U+200E LEFT-TO-RIGHT MARK or U+200F RIGHT-TO-LEFT MARK characters.

したがって、 次の~scriptによる結果は: ◎ Thus, the following script:

alert('\u05DC\u05DE\u05D3 HTML \u05D4\u05D9\u05D5\u05DD!')

~UAの~UI用の言語, ~pageの方向, 当の要素の[ 言語, 方向 ]に関わらず、 常に,次の様に読まれる~messageになる ⇒ "למד LMTH היום!" ◎終 次ではなく ⇒ "דמל HTML םויה!"

...would always result in a message reading "למד LMTH היום!" (not "דמל HTML םויה!"), regardless of the language of the user agent interface or the direction of the page or any of its elements.

もっと複階的な例として、 次の~scriptを考える: ◎ For a more complex example, consider the following script:

/* 
警告:この~scriptは、
右横書き用字系を正しく取扱わない。
◎
Warning: this script does not handle right-to-left scripts correctly
 */
var %s;
if (%s = prompt('氏名を入力願います。')) {
  alert(%s + '様ですね。森田様、' + %s + '様、木田様がご同行になります。');
}

利用者が "林田" と手入力したとき、 ~UAは,次の様に~alertすることになる ⇒ 林田様ですね。森田様、林田様、木田様がご同行になります。 ◎ When the user enters "Kitty", the user agent would alert\ "Kitty! Ok, Fred, Kitty, and Wilma will get the car.".\

一方で,利用者が "لا أفهم" と手入力した場合、 双方向-~algoにより,段落の方向は右横書きであると決定され、 出力は次のように切り刻まれる ⇒ "لا أفهم様田森。ねすで様、لا أفهمすまりなに行同ごが様田木、様。"

However, if the user enters "لا أفهم", then the bidirectional algorithm will determine that the direction of the paragraph is right-to-left, and so the output will be the following unintended mess:\ "لا أفهم! derF ,kO, لا أفهم, rac eht teg lliw amliW dna."

文字列に `200E^U `LEFT-TO-RIGHT MARK^cn 文字を接頭すれば、 利用者から供された~text(または方向性が未知な他の~text)で開始する~alertを,左横書きに具現化するよう強制できる: ◎ To force an alert that starts with user-provided text (or other text of unknown directionality) to render left-to-right, the string can be prefixed with a U+200E LEFT-TO-RIGHT MARK character:

var %s;
if (%s = prompt('氏名を入力願います。')) {
  alert('\u200E' + %s + '様ですね。森田様、' + %s + '様、木田様がご同行になります。');
}
【! alert('\u200E' + s + '! Ok, Fred, ' + s + ', and Wilma will get the car.');】

15.9. ~style無し~XML文書

~HTML~UAは,ある種の状況下では、 具現化しようとしている文書が非~HTML文書であって,自身に組込みの知識を欠くような語彙が利用されていることを見出すこともある。 この節では、 ~UAが そのような文書を何か有用な方式で取扱うための仕方を供する。 ◎ HTML user agents may, in certain circumstances, find themselves rendering non-HTML documents that use vocabularies for which they lack any built-in knowledge. This section provides for a way for user agents to handle such documents in a somewhat useful manner.

`文書$が`~style無し文書$であっても、 `~style無し文書~view$を具現化することが期待される。 ◎ While a Document is an unstyled document, the user agent is expected to render an unstyled document view.

次に挙げる条件~すべてを満たす`文書$ %文書 は、 `~style無し文書@ であるとされる: ◎ A Document is an unstyled document while it matches the following conditions:

  • %文書 には、 `作者~level$の~stylesheetは無い ([ ~HTTP~header, `xml-stylesheet^c などの処理命令, `link$e 要素, `style$e などの~inline要素, その他 ]の仕組みにより参照される何であれ)。 ◎ The Document has no author style sheets (whether referenced by HTTP headers, processing instructions, elements like link, inline elements like style, or any other mechanism).
  • %文書 内のどの要素も,`呈示~用~hint$を伴わない。 ◎ None of the elements in the Document have any presentational hints.
  • %文書 内のどの要素も,`~style属性$を有さない。 ◎ None of the elements in the Document have any style attributes.
  • %文書 内のどの要素も,次に挙げる名前空間に属さない ⇒# `~HTML名前空間$, `~SVG名前空間$, `~MathML名前空間$ ◎ None of the elements in the Document are in any of the following namespaces: HTML namespace, SVG namespace, MathML namespace
  • %文書 には、 `表示域$の他に`~focus可能な区画$は無い (例:~XLinkによるものなど)。 ◎ The Document has no focusable area (e.g. from XLink) other than the viewport.
  • %文書 内に`~hyperlink$は無い (例:~XLinkによるものなど)。 ◎ The Document has no hyperlinks (e.g. from XLink).
  • 次を満たす`~script$は存在しない ⇒ その`設定群~obj$sCの`大域~obj$enVは、 次を満たす ⇒ [ `~window$である ]~AND[ それに`結付けられた文書$ ~EQ %文書 ] ◎ There exists no script whose settings object's global object is a Window object with this Document as its associated Document.
  • %文書 内のどの要素にも,~event~listenerは登録されていない。 ◎ None of the elements in the Document have any registered event listeners.

`~style無し文書~view@ とは、 ~CSSに則って~DOMが具現化されることはないが (この文脈~下で適用-可能な~styleはないので、 結果は単に~textの羅列になるであろう)、 代わりに,開発者にとって有用な方式で具現化されるような~viewである。 例えば、 次に挙げるいずれかの~~形をとり得るであろう:

  • 単に、 %文書 の~sourceを構文~強調も伴わせて示す。
  • その~DOM~treeそのものを表示する。
  • 単に、 ~pageは~styleされない文書であることを~~伝える~message。
◎ An unstyled document view is one where the DOM is not rendered according to CSS (which would, since there are no applicable styles in this context, just result in a wall of text), but is instead rendered in a manner that is useful for a developer. This could consist of just showing the Document object's source, maybe with syntax highlighting, or it could consist of displaying just the DOM tree, or simply a message saying that the page is not a styled document.

注記: `文書$が`~style無し文書$でなくなったときは,上の各~条件は適用されなくなり、 これらの要件に従う~UAは,定例の~CSS具現化を利用するよう切替えることになる。 ◎ If a Document stops being an unstyled document, then the conditions above stop applying, and thus a user agent following these requirements will switch to using the regular CSS rendering.