4.11 対話的~要素

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

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

このページにおける `文書@ は、 `Document$I ~objを指す。

4.11.1. ``details^e 要素

`25550^bug
`分類$
`~flow内容$/`~sectioning根$/`対話的~内容$/`可触~内容$ ◎ Flow content. ◎ Sectioning root. ◎ Interactive content. ◎ Palpable content.
`この要素を利用できる文脈$
`~flow内容$が期待される所。 ◎ Where flow content is expected.
`内容~model$
[ 1 個の `summary$e 要素, `~flow内容$ ]からなる並び ◎ One summary element followed by flow content.
`text/html における~tag省略$
両~tagとも省略不可。 ◎ Neither tag is omissible.
`内容~属性$
`大域~属性$ ◎ Global attributes
``open$a — 詳細は可視であるかどうか ◎ open — Whether the details are visible
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLDetailsElement@I : `HTMLElement$I {
  [`CEReactions$] attribute boolean ``open$m;
};

`details$e 要素は、利用者が追加の情報や~controlを得られるような,開閉式~widgetを`表現-$する。 ◎ The details element represents a disclosure widget from which the user can obtain additional information or controls.

注記: `details$e 要素は、脚注~等( footnote )には適切でない。 脚注を~mark-upする方法の詳細は、 脚注に関する節 を見られたし。 ◎ The details element is not appropriate for footnotes. Please see the section on footnotes for details on how to mark up footnotes.

要素の最初の子が `summary$e 要素であるならば、それが詳細の[ 要約( summary ) / ~legend ]を`表現-$する。 そのような子がなければ、~UAは,自前の~legend(例: “詳細” )を提供するべきである。 ◎ The first summary element child of the element, if any, represents the summary or legend of the details. If there is no child summary element, the user agent should provide its own legend (e.g. "Details").

要素の残りの内容は、追加の[ 情報や~controlたち ]を`表現-$する。 ◎ The rest of the element's contents represents the additional information or controls.

``open@a 内容~属性は`真偽~属性$である。 在する場合、要約, 追加の情報の両者とも利用者に示すことを指示する。 不在の場合、要約のみが示される。 ◎ The open content attribute is a boolean attribute. If present, it indicates that both the summary and the additional information is to be shown to the user. If the attribute is absent, only the summary is to be shown.

追加の情報は、要素の作成-時には,この属性が[ 不在ならば 隠-される / 在するならば 示される ]べきである。 その後に,属性が[ 除去された / 追加された ]場合、情報は[ 隠-される / 示される ]べきである。 ◎ When the element is created, if the attribute is absent, the additional information should be hidden; if the attribute is present, that information should be shown. Subsequently, if the attribute is removed, then the information should be hidden; if the attribute is added, the information should be shown.

~UAは、利用者が追加の情報を[ 示す / 隠す ]よう要請できるようにするべきである。 そのような要請を尊守するためには、~UAには,要素の ``open$a 属性を[ 示す場合は空~文字列に`設定-$ / 隠す場合は`除去-$ ]し~MUST。 ◎ The user agent should allow the user to request that the additional information be shown or hidden. To honor a request for the details to be shown, the user agent must set the open attribute on the element to the empty string. To honor a request for the information to be hidden, the user agent must remove the open attribute from the element.

この,追加の情報を示す/隠す能は、適切な `summary$e 要素が存在するならば,単純に その`作動化の挙動$になり得る。 しかしながら,そのような要素が存在しない場合でも、~UAは依然として,何らかの他の~UI~affordanceを通して この能を提供できる。 ◎ This ability to request that additional information be shown or hidden may simply be the activation behavior of the appropriate summary element, in the case such an element exists. However, if no such element exists, user agents can still provide this ability through some other user interface affordance.

~UAは、 ``open$a 属性が `details$e 要素 %details[ に追加- / から除去- ]される度に, %details に対し,次に与える `詳細~通知~task手続き@ を走らす`~taskを待入し$~MUST: ◎ Whenever the open attribute is added to or removed from a details element, the user agent must queue a task that runs the following steps, which are known as the details notification task steps, for this details element:

  1. ~IF[ %details に対し`詳細~通知~task手続き$を走らす別の`~task$が`待入され$ている ] ⇒ ~RET ◎ If another task has been queued to run the details notification task steps for this details element, then abort these steps.

    注記: ``open$a 属性が何回か続けて~toggleされたときは、この段は,本質的に ~eventが 1 回だけ発火されるように~~集約する。 ◎ When the open attribute is toggled several times in succession, these steps essentially get coalesced so that only one event is fired.

  2. %details に向けて,名前 `toggle$et の~eventを `発火-$する ◎ Fire an event named toggle at the details element.

この~taskの`~task源$は、`~DOM操作~task源$で~MUST。 ◎ The task source for this task must be the DOM manipulation task source.

``open@m
``open$a 内容~属性を`反映-$し~MUST。 ◎ The open IDL attribute must reflect the open content attribute.

`details$e 要素を利用して,進捗~報告-内の技術的~詳細を隠す例: ◎ The following example shows the details element being used to hide technical details in a progress report.

<section class="progress window">
 <h1>Copying "Really Achieving Your Childhood Dreams"</h1>
 <details>
  <summary>複製中... <progress max="375505392" value="97543282"></progress> 25%</summary>
  <dl>
   <dt>転送レート: </dt> <dd>452KB/s</dd>
   <dt>保存ディレクトリ: </dt> <dd>/home/rpausch/raycd.m4v</dd>
   <dt>転送元 URL: </dt> <dd>/var/www/lectures/raycd.m4v</dd>
   <dt>時間: </dt> <dd>01:16:27</dd>
   <dt>色プロファイル: </dt> <dd>SD (6-1-6)</dd>
   <dt>サイズ: </dt> <dd>320×240</dd>
  </dl>
 </details>
</section>

`details$e 要素を利用して,~controlを既定で隠す例: ◎ The following shows how a details element can be used to hide some controls by default:

<details>
 <summary><label for=fn>名前と拡張子:</label></summary>
 <p><input type=text id=fn name=fn value="Pillar Magazine.pdf">
 <p><label><input type=checkbox name=ext checked>拡張子を隠す</label>
</details>

これを ~list内で 他の `details$e と併用して、それぞれが~~展開する能を伴う~fieldの集合を,利用者が 小さい見出しの集合に縮約できるようにすることもできる。 ◎ One could use this in conjunction with other details in a list to allow the user to collapse a set of fields down to a small set of headings, with the ability to open each one.

`sample-details-1^dgm `sample-details-2^dgm

これらの例の要約は、~controlが何を変更できるかだけを要約する — 実際の値を~~示すのは、理想とは言えない。 ◎ In these examples, the summary really just summarizes what the controls can change, and not the actual values, which is less than ideal.

``open$a 属性は、利用者が~controlと対話するに伴って,自動的に[ 追加-/除去- ]されるので、その状態に基づいて,~CSSを用いて要素に異なる~styleをあてがうことに利用できる。 ここでは、要素が~~展開されたり~~畳まれたときに,要約の色を~animateする~stylesheetの例を~~示す: ◎ Because the open attribute is added and removed automatically as the user interacts with the control, it can be used in CSS to style the element differently based on its state. Here, a stylesheet is used to animate the color of the summary when the element is opened or closed:

<style>
 details > summary { transition: color 1s; color: black; }
 details[open] > summary { color: red; }
</style>
<details>
 <summary>Automated Status: Operational</summary>
 <p>Velocity: 12m/s</p>
 <p>Direction: North</p>
</details>

4.11.2. `summary^e 要素

`分類$
~none。 ◎ None.
`この要素を利用できる文脈$
`details$e 要素の`最初の子$として。 ◎ As the first child of a details element.
`内容~model$
次のいずれかの一方 ⇒ `句内容$, または 1 個の`見出し内容$ 要素 ◎ Either: phrasing content. ◎ Or: one element of heading content.
`text/html における~tag省略$
両~tagとも省略不可。 ◎ Neither tag is omissible.
`内容~属性$
`大域~属性$ ◎ Global attributes
`~DOM~interface$
`HTMLElement$I を利用する。 ◎ Uses HTMLElement.

`summary$e 要素は、その親が `details$e 要素であれば,親の他の内容に対する[ 要約 / ~caption /~legend ]を`表現-$する。 ◎ The summary element represents a summary, caption, or legend for the rest of the contents of the summary element's parent details element, if any.

`summary$e 要素 %要素 の`作動化の挙動$は、次の手続きを走らす: ◎ The activation behavior of summary elements is to run the following steps:

  1. %親 ~LET %要素 の親~node ◎ ↓
  2. ~IF[ %親 は `details$e 要素である ]~AND[ %要素 は %親 の子である `summary$e 要素のうち最初のものである ]: ◎ If this summary element has no parent node, then abort these steps. ◎ Let parent be this summary element's parent node. ◎ If parent is not a details element, then abort these steps. ◎ If parent's first summary element child is not this summary element, then abort these steps.

    1. ~IF[ %親 は ``open$a 属性を有する ] ⇒ それを`除去-$する
    2. ~ELSE ⇒ %親 の ``open$a 属性を空~文字列に`設定-$する ◎ If the open attribute is present on parent, then remove it. Otherwise, set parent's open attribute to the empty string.

    注記: これは、`詳細~通知~task手続き$を走らすことになる。 ◎ This will then run the details notification task steps.

4.11.3. ``menu^e 要素

`分類$
`~flow内容$。 ◎ Flow content.
要素の[ `type$a 属性の状態 ~EQ `toolbar$st ]ならば,`可触~内容$。 ◎ If the element's type attribute is in the toolbar state: Palpable content.
`この要素を利用できる文脈$
`~flow内容$が期待される所。 ◎ Where flow content is expected.
要素の[ `type$a 属性の状態 ~EQ `context menu$st ]の場合は: [ `type$a 属性の状態 ~EQ `context menu$st ]なる `menu$e 要素の子として。 ◎ If the element's type attribute is in the context menu state: as the child of a menu element whose type attribute is in the context menu state.
`内容~model$

要素の `type$a 属性の状態に応じて:

`toolbar$st
`~flow内容$, または 0 個~以上の[ `li$e / `~scriptを~supportする$ ]要素。 ◎ If the element's type attribute is in the toolbar state: either zero or more li and script-supporting elements, or, flow content.
`context menu$st

それぞれが次のいずれかの要素である, 0 個~以上の並び:

  • `menuitem$e 要素
  • `hr$e 要素
  • `menu$e 要素であって,[ その `type$a 属性の状態 ~EQ `context menu$st ]なるもの
  • `~scriptを~supportする$ 要素
◎ If the element's type attribute is in the context menu state: in any order, zero or more menuitem elements, zero or more hr elements, zero or more menu elements whose type attributes are in the context menu state, and zero or more script-supporting elements.
`text/html における~tag省略$
両~tagとも省略不可。 ◎ Neither tag is omissible.
`内容~属性$
`大域~属性$ ◎ Global attributes
`type$a — ~menuの型 ◎ type — Type of menu
`label$a — 利用者から可視な~label ◎ label — User-visible label
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLMenuElement@I : `HTMLElement$I {
  [`CEReactions$] attribute DOMString ``type$m;
  [`CEReactions$] attribute DOMString ``label$m;
};

`menu$e 要素は、~commandの~listを表現する。 ◎ The menu element represents a list of commands.

`type@a 属性は、`列挙ed属性$であり,宣言されている~menuの種類を指示する。 次の~keyword値, および対応する状態をとり得る:

``context@v
`context menu@st 状態に対応付けられる。
この状態にある要素は、文脈~menuを宣言し,ある文脈~menuの~command群を`表現-$する。 利用者は、その文脈~menuが,何らかの他の要素の `contextmenu$a 属性を介して作動化された場合に限り、~command群を検分して対話できる。
``toolbar@v
`toolbar@st 状態に対応付けられる。

この状態にある要素は、要素は~toolbarを宣言し,その内容からなる~toolbarを`表現-$する — 内容は、次のいずれかの形をとる:

  • 要素の子に `li$e 要素があるならば、それらからなる無順序~list† — そのそれぞれが,利用者が[ 遂行-/作動化- ]できる~commandを表現する。
  • 他の場合、可用な~command群を記述する`~flow内容$。

この属性は省略されても~MAY — `値なしに対する既定の状態$は、[ 要素の親も `menu$e 要素であって,親の `type$a 属性の状態 ~EQ `context menu$st ならば `context menu$st / ~ELSE_ `toolbar$st ]になる。

◎ The type attribute is an enumerated attribute indicating the kind of menu being declared. The attribute has two states. The "context" keyword maps to the context menu state, in which the element is declaring a context menu. The "toolbar" keyword maps to the toolbar state, in which the element is declaring a toolbar. The attribute may also be omitted. The missing value default is the context menu state if the parent element is a menu element whose type attribute is in the context menu state; otherwise, it is the toolbar state. ◎ If a menu element's type attribute is in the context menu state, then the element represents the commands of a context menu, and the user can only examine and interact with the commands if that context menu is activated through some other element via the contextmenu attribute. ◎ If a menu element's type attribute is in the toolbar state, then the element represents a toolbar consisting of its contents, in the form of either an unordered list of items (represented by li elements), each of which represents a command that the user can perform or activate, or, if the element has no li element children, flow content describing available commands.

注記: これら 2 つの状態は、ごく異なる。 `toolbar$st 状態は、単純に `ul$e に対する意味論上の代替であり, 一連の~commandからなる無順序~list( “~toolbar” )を表す。 `context menu$st 状態は、 処理~model節 にて説明されるように, `contextmenu$a 大域~属性との組合せで ~UAの文脈上の~menuを~custom化するために利用できる。 ◎ These two states are very different. The toolbar state is simply a semantic alternative to ul to express an unordered list of commands (a "toolbar"). The context menu state, in combination with the contextmenu global attribute, can be used to customize the contextual menus of user agents as explained in the processing model section below.

`label@a 属性は、~menuの~labelを与える。 それは、~UAが ~UI内で入子にされた~menuを表示するときに利用される — すなわち,別の~menu %M を下位menuとして包含している文脈~menuは、 %M の `label$a 属性を下位menuの~labelに利用することになる。 この属性が指定される要素は、次をすべて満たす `menu$e 要素に限られ~MUST ⇒ 親も `menu$e 要素であって,親の `type$a 属性の状態 ~EQ `context menu$st ◎ The label attribute gives the label of the menu. It is used by user agents to display nested menus in the UI: a context menu containing another menu would use the nested menu's label attribute for the submenu's menu label. The label attribute must only be specified on menu elements whose parent element is a menu element whose type attribute is in the context menu state.


``type@m
`既知の値のみに制限され$る下で,同じ名前の内容~属性を`反映-$し~MUST。 ◎ The type IDL attribute must reflect the content attribute of the same name, limited to only known values.
``label@m
同じ名前の内容~属性を`反映-$し~MUST。 ◎ The label IDL attribute must reflect the content attribute of the same name.

`toolbar$st 状態にある `menu$e 要素を利用して,一連の~commandを提供する、~text編集用~appの例: ◎ In this example, a text-editing application uses a menu element in the toolbar state to provide a series of editing commands:

<menu>
 <li><button onclick="copy()"><img src="copy.svg" alt="Copy"></button></li>
 <li><button onclick="cut()"><img src="cut.svg" alt="Cut"></button></li>
 <li><button onclick="paste()"><img src="paste.svg" alt="Paste"></button></li>
</menu>

これに~styleをあてがって,慣例の~toolbar~menuに似た見かけにすることは、~appに委ねられることに注意。 ◎ Note that the styling to make this look like a conventional toolbar menu is up to the application.

4.11.4. ``menuitem^e 要素

`分類$
~none。 ◎ None.
`この要素を利用できる文脈$
[ `type$a 属性の状態 ~EQ `context menu$st ]なる `menu$e 要素の子として。 ◎ As a child of a menu element whose type attribute is in the context menu state.
`内容~model$
`~text$。 ◎ Text.
`text/html における~tag省略$
両~tagとも省略不可。 ◎ Neither tag is omissible.
`内容~属性$
`大域~属性$ ◎ Global attributes
``type$a — ~commandの型 ◎ type — Type of command
``label$a — 利用者から可視な~label ◎ label — User-visible label
``icon$a — ~commandに対する~icon ◎ icon — Icon for the command
``disabled$a — この~form~controlは不能化されるかどうか。 ◎ disabled — Whether the form control is disabled
``checked$a — 当の~command/~controlは ~checkされるかどうか ◎ checked — Whether the command or control is checked
``radiogroup$a — ~radio~button~groupとして扱う一群の~commandに付与する名前 ◎ radiogroup — Name of group of commands to treat as a radio button group
``default$a — ~commandを既定の~commandとして~markする ◎ default — Mark the command as being a default command
この要素~上の ``title$a 属性には、特別な意味論もある: ~commandの~hintを記述する。 ◎ Also, the title attribute has special semantics on this element: Hint describing the command.
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLMenuItemElement@I : `HTMLElement$I {
  [`CEReactions$] attribute DOMString ``type$m;
  [`CEReactions$] attribute DOMString ``label$m;
  [`CEReactions$] attribute USVString ``icon$m;
  [`CEReactions$] attribute boolean ``disabled$m;
  [`CEReactions$] attribute boolean ``checked$m;
  [`CEReactions$] attribute DOMString ``radiogroup$m;
  [`CEReactions$] attribute boolean ``default$m;
};

`menuitem$e 要素は、利用者が文脈~menuから呼出せる~commandを表現する。 ◎ The menuitem element represents a command that the user can invoke from a context menu.

次のいずれかを満たす `menuitem$e 要素は、新たな~commandを定義する:

  • 次のいずれかの属性を有する ⇒ ``type$a, ``icon$a, ``disabled$a, ``checked$a, ``radiogroup$a
  • 空でない`~label$を有する
◎ A menuitem element that uses one or more of the type, icon, disabled, checked, and radiogroup attributes, or has a non-empty label, defines a new command.

``type@a 属性は、~commandの種類を指示する`列挙ed属性$であり,次の 3 種の~keywordと対応する状態をとり得る:

``command@v
``Command@st 状態に対応付けられる。
要素は、ある動作が結付けられた,通常の~commandを`表現-$する。
``checkbox@v
``Checkbox@st 状態に対応付けられる。
要素は、~toggleできる 状態または選択肢を`表現-$する。
``radio@v
``Radio@st 状態に対応付けられる。
要素は、一連の~itemから選択される 1 個の~itemを`表現-$する。

`値なしに対する既定の状態$は、 ``Command$st とする。

◎ The type attribute indicates the kind of command: either a normal command with an associated action, or a state or option that can be toggled, or a selection of one item from a list of items. ◎ The attribute is an enumerated attribute with three keywords and states. The "command" keyword maps to the Command state, the "checkbox" keyword maps to the Checkbox state, and the "radio" keyword maps to the Radio state. The missing value default is the Command state.
The Command state
The element represents a normal command with an associated action.
The Checkbox state
The element represents a state or option that can be toggled.
The Radio state
The element represents a selection of one item from a list of items.

``label@a 属性は、利用者に示される~command名を与える。 この属性に指定する値は、空でない文字列で~MUST。 ◎ The label attribute gives the name of the command, as shown to the user. If the label attribute is specified, it must have a value that is not the empty string.

`menuitem$e 要素の `~label@ は、[ 要素が ``label$a 内容~属性を有していて その値が空~文字列でないならば それ / ~ELSE_ 要素の`子~text内容$から`~ASCII空白を剥いで縮約-$した結果 ]とする。 `~label$は、要素の ``type$a 属性が ``Command$st 状態にある場合,空~文字列になっては~MUST_NOT。 ◎ The label of a menuitem element is the value of the label content attribute, if there is one and its value is not the empty string, or, otherwise, the result of stripping and collapsing ASCII whitespace from the child text content of the menuitem element. The label must not be the empty string if the element's type attribute value is in the Command state.

``icon@a 属性は、~commandを表現する絵を与える。 この属性に指定する値は、`前後~空白~可の妥当かつ空でない~URL$で~MUST。 ~UAは、~iconの`絶対~URL$を得るときは,次に従わ~MUST:

  1. ~IF[ 要素はこの属性を有する ]~AND[ その値 %V は空~文字列でない ]~AND %V を要素の `~node文書$に`相対的に構文解析-$した結果 ~NEQ ~error ] ⇒ ~RET その結果
  2. ~RET ε (~iconなし)
◎ The icon attribute gives a picture that represents the command. If the attribute is specified, the attribute's value must contain a valid non-empty URL potentially surrounded by spaces. To obtain the absolute URL of the icon when the attribute's value is not the empty string, the attribute's value must be parsed relative to the element's node document. When the attribute is absent, or its value is the empty string, or parsing its value fails, there is no icon.

``disabled@a 属性は、`真偽~属性$であり,在するならば,~commandは 現在の状態においては可用でないことを指示する。 ◎ The disabled attribute is a boolean attribute that, if present, indicates that the command is not available in the current state.

注記: ``disabled$a (不能化される)と `hidden$a (隠-される)との差異は微妙である。 ~commandは、ある文脈において,状況のある側面が変化した場合には可能化できるならば、不能化されるものになるであろう。 その状況では,~commandは決して可能化されないならば、隠-されるものになるであろう。 例えば,水道の蛇口の文脈~menuにおいて、~command “開ける” は 蛇口がすでに開いていれば不能化されるであろうが,~command “食べる” は 隠-されるものになるであろう — 蛇口が食べられることは決してないので。 ◎ The distinction between disabled and hidden is subtle. A command would be disabled if, in the same context, it could be enabled if only certain aspects of the situation were changed. A command would be marked as hidden if, in that situation, the command will never be enabled. For example, in the context menu for a water faucet, the command "open" might be disabled if the faucet is already open, but the command "eat" would be marked hidden since the faucet could never be eaten.

``checked@a 属性は,`真偽~属性$であり、在するならば,~commandは選択-済みであることを指示する。 この属性は、[ ``type$a 属性の状態 ~IN { ``Checkbox$st, ``Radio$st } でない限り,省略され~MUST。 ◎ The checked attribute is a boolean attribute that, if present, indicates that the command is selected. The attribute must be omitted unless the type attribute is in either the Checkbox state or the Radio state.

``radiogroup@a 属性は、[ ``type$a 属性の状態 ~EQ ``Radio$st ]なる~command群に付与する名前を与える — 同じ親を共有する同じ名前が付与された~commandたちは、どれかがオンにされたときに,他がオフにされることになる。 この属性は、[ ``type$a 属性の状態 ~NEQ ``Radio$st ]の~commandに対しては、省略され~MUST。 この属性に指定する値は、空であっては~MUST_NOT。 ◎ The radiogroup attribute gives the name of the group of commands that will be toggled when the command itself is toggled, for commands whose type attribute has the value "radio". The scope of the name is the child list of the parent element. The attribute must be omitted unless the type attribute is in the Radio state. When specified, the attribute's value must be a non-empty string.


``title@a 属性は、~commandについて記述する~hintを与える — それは、利用者向けの~helpとして示され得る。 ◎ The title attribute gives a hint describing the command, which might be shown to the user to help them.

``default@a 属性は,`真偽~属性$であり、在するならば,[ その~commandは、[ 利用者が ~menuを用いる代わりに ~menuの要請元を直接的に作動化した場合 ]に,呼出されるものになる ]ことを指示する。 ◎ The default attribute indicates, if present, that the command is the one that would have been invoked if the user had directly activated the menu's subject instead of using the menu. The default attribute is a boolean attribute.


``type@m
`既知の値のみに制限され$る下で,同じ名前の内容~属性を`反映-$し~MUST。 ◎ The type IDL attribute must reflect the content attribute of the same name, limited to only known values.
``label@m
取得子は、[ 要素が ``label$a 内容~属性を有するならば その属性の値 / ~ELSE_ 要素の `~label$ ]を返さ~MUST。 設定子は、要素の ``label$a 内容~属性を所与の値に設定し~MUST。 ◎ The label IDL attribute, on getting, if there is a label content attribute, must return that attribute's value; otherwise, it must return the element's label. On setting, the element's label content attribute must be set to the new value.
``icon@m
``disabled@m
``checked@m
``radiogroup@m
``default@m
これらの~IDL属性は、対応する同じ名前の内容~属性を`反映-$し~MUST。 ◎ The icon, disabled, checked, and radiogroup, and default IDL attributes must reflect the respective content attributes of the same name.

要素 %要素 の `作動化の挙動$は、 %要素 の`不能化~状態$cFに応じて, ~T ならば何もせず, ~F (可能化される)ならば、 %要素 の ``type$a 属性の状態に応じて,次を走らせ~MUST: ◎ The element's activation behavior is to run the steps defined in the following list for the current state of this type attribute, if this element's Disabled State is false (enabled), and do nothing otherwse:

``Checkbox$st ◎ If the type attribute is in the Checkbox state
  1. ~IF[ %要素 は ``checked$a 属性を有する ] ⇒ ~その属性を除去する
  2. ~ELSE ⇒ %要素 の ``checked$a 属性 ~SET `checked^l
◎ If the element has a checked attribute, the UA must remove that attribute. Otherwise, the UA must add a checked attribute, with the literal value "checked".
``Radio$st ◎ If the type attribute is in the Radio state
  1. V( %E ) ~LET 要素 %E に対し[ %E は ``radiogroup$a 属性を有するならば その値 / ~ELSE_ 空~文字列 ]を返す関数
  2. ~IF[ %要素 の親はない ] ⇒ ~RET
  3. ~FOR %要素 の親の~EACH ( 子 %E ) に対し:

    1. ~IF[ %E は `menuitem$e 要素でない ] ⇒ ~CONTINUE
    2. ~IF[ V( %E ) ~NEQ V( %要素 ) ] ⇒ ~CONTINUE
    3. ~IF[ %E は ``checked$a 属性を有する ] ⇒ それを %E から除去する
  4. %要素 の ``checked$a 属性 ~SET `checked^l
◎ If the element has a parent, then the UA must walk the list of child nodes of that parent element, and for each node that is a menuitem element, if that element has a radiogroup attribute whose value exactly matches the current element's (treating missing radiogroup attributes as if they were the empty string), and has a checked attribute, must remove that attribute. ◎ Then, the element's checked attribute must be set to the literal value "checked".
他の場合 ◎ Otherwise
何もしない。 ◎ The element's activation behavior is to do nothing.

注記: `menuitem$e 要素は、 文脈~menuの一部 として以外に具現化されることはない。 ◎ The menuitem element is not rendered except as part of a context menu.

4.11.5. 文脈~menu

4.11.5.1. 文脈~menuの宣言-法

`contextmenu@a 属性は、要素の文脈~menuを与える。 指定する値は、次をすべて満たす要素の`~ID$で~MUST:

  • 要素と同じ`木$内にある
  • `menu$e 要素である
  • `type$a 属性の状態 ~EQ `context menu$st
◎ The contextmenu attribute gives the element's context menu. The value must be the ID of a menu element in the same tree whose type attribute is in the context menu state.

注記: 利用者が `contextmenu$a 属性を有する要素~上で右clickしたときは、~UAは,先ず 要素に向けて `contextmenu$et ~eventを発火して、それが取消されなければ, `menu$e 要素に向けて `show$et ~eventを発火することになる。 ◎ When a user right-clicks on an element with a contextmenu attribute, the user agent will first fire a contextmenu event at the element, and then, if that event is not canceled, a show event at the menu element.

入力~controlに対する文脈~menuの例: ◎ Here is an example of a context menu for an input control:

<form name="npc">
 <label>キャラクター名:
   <input name=char type=text contextmenu=namemenu required></label>
 <menu type=context id=namemenu>
  <menuitem onclick="document.forms.npc.elements.char.value = getRandomName()">
   ランダムに名前を選ぶ
  </menuitem>
  <menuitem onclick="prefillFields(document.forms.npc.elements.char.value)">
   名前に基づいて他の欄を埋める
  </menuitem>
 </menu>
</form>

これは、~controlの文脈~menuに 2 個の~item[ "ランダムに名前を選ぶ", "名前に基づいて他の欄を埋める" ]を追加する。 それらは、(例には~~示されていない)ある~scriptを呼出す。 ◎ This adds two items to the control's context menu, one called "Pick random name", and one called "Prefill other fields based on name". They invoke scripts that are not shown in the example above.

4.11.5.2. 処理~model

要素 %E に `割当てられている文脈~menu@ とは、所与の時点で,次を走らせて得られる [ `menu$e 要素, または~NULL ]である:

  1. ~IF[ %E は `contextmenu$a 属性を有する ]:

    1. %V ~LET その属性の値
    2. ~IF[ 次をすべて満たす要素がある ] ⇒ ~RET その要素:

      1. %E の`木$内にある
      2. ~ID ~EQ %V
      3. 前 2 項を満たす要素のうち,`木~順序$で最初の要素である
      4. `menu$e 要素である
      5. `type$a 属性の状態 ~EQ `context menu$st
  2. ~IF[ %E の親~要素 %P はある ] ⇒ ~RET %P に`割当てられている文脈~menu$
  3. ~RET ~NULL
◎ Each element has an assigned context menu, which can be null. If an element A has a contextmenu attribute, and there is an element with the ID given by A's contextmenu attribute's value in A's tree, and the first such element in tree order is a menu element whose type attribute is in the context menu state, then A's assigned context menu is that element. Otherwise, if A has a parent element, then A's assigned context menu is the assigned context menu of its parent element. Otherwise, A's assigned context menu is null.

要素 %E の文脈~menuが要請されたときは(例: 利用者が,要素を右clickしたとき / 文脈~menu~keyを押下げたとき)、~UAは,次の~listから適切な規則を適用し~MUST: ◎ When an element's context menu is requested (e.g. by the user right-clicking the element, or pressing a context menu key), the user agent must apply the appropriate rules from the following list:

利用者は~pointing装置を用いて文脈~menuを要請した ◎ If the user requested a context menu using a pointing device

%E に向けて, `MouseEvent$I ~interfaceを利用する名前 `contextmenu$et の~eventを,次のように属性を初期化した上で`発火-$する:

  • `bubbles$m 属性 ~SET ~T
  • `cancelable$m 属性 ~SET ~T
  • 他の属性は、文脈~menuに対する要請として解釈された~gestureの一部として発火された,最後の `MouseEvent$I 利用者~対話~eventと同じ値に初期化する
◎ The user agent must fire an event named contextmenu at the element for which the menu was requested, using MouseEvent, with the bubbles and cancelable attributes initialized to true, and other attributes initialized to the same values as the last MouseEvent user interaction event that was fired as part of the gesture that was interpreted as a request for the context menu.
他の場合 ◎ Otherwise
%E に向けて,名前 `contextmenu^et の`合成~mouse~eventを発火する$ ◎ The user agent must fire a synthetic mouse event named contextmenu at the element for which the menu was requested. The user agent must fire a synthetic mouse event named contextmenu that bubbles and is cancelable at the element for which the menu was requested.

注記: したがって `contextmenu$et ~eventの発火は、概して,[ `mouseup$et / `keyup$et ]~eventの既定の動作になる。 正確な~event連列は、~platform規約に基づいて様々になるので,~UAに依存する。 ◎ Typically, therefore, the firing of the contextmenu event will be the default action of a mouseup or keyup event. The exact sequence of events is UA-dependent, as it will vary based on platform conventions.

`contextmenu$et ~eventの既定の動作は、次を走らせ~MUST: ◎ The default action of the contextmenu event depends on whether or not the element for which the menu was requested has a non-null assigned context menu when the event dispatch has completed, as follows.

  1. %要請元 ~LET 当の~menuが要請された要素
  2. %~menu ~LET ~event配送-が完了した時点における %要請元 に`割当てられている文脈~menu$
  3. ~IF[ %~menu ~EQ ~NULL ]:

    1. ~UAの既定の文脈~menuがあれば、それを示す
    2. ~RET
    ◎ If the assigned context menu of the element for which the menu was requested is null, the default action must be for the user agent to show its default context menu, if it has one.
  4. %build ~LET %~menu に向けて、次のようにされた~eventを `発火-$した結果:

    • 名前 `show$et
    • `RelatedEvent$I ~interfaceを利用する
    • `cancelable$m 属性 ~SET ~T
    • `relatedTarget$m 属性 ~SET %要請元
    ◎ Otherwise, let subject be the element for which the menu was requested, and let menu be the assigned context menu of target immediately after the contextmenu event's dispatch has completed. The user agent must run these steps: ◎ Let build be the result of firing an event named show at menu, using RelatedEvent, with the cancelable attribute initialized to true and the relatedTarget attribute initialized to subject.
  5. ~IF[ %build ~EQ ~T ] ⇒ ( %~menu, %要請元 ) を与える下で, `文脈~menuを築いて示す$ ◎ If build is true, then build and show the context menu for menu with subject as the subject.

~UAは、示される文脈~menuに 既定の文脈~menu(もしあれば)を伴わせて,それへの~accessを提供しても~MAY。 例えば、 2 つの~menuの~menu~itemたちを一緒に併合する,あるいは 既定の~menuの下位menuとして 頁の文脈~menuを提供することもできる。 一般に,~UAには、自前の文脈~menu~itemは目立たなくすることが奨励される — 作者による文脈~menuに正統的な外観を与えて、文書を “単なる~Web頁” でない “~app” のような使用感が得られるようにするために。 ◎ The user agent may also provide access to its default context menu, if any, with the context menu shown. For example, it could merge the menu items from the two menus together, or provide the page's context menu as a submenu of the default menu. In general, user agents are encouraged to de-emphasize their own contextual menu items, so as to give the author's context menu the appearance of legitimacy — to allow documents to feel like "applications" rather than "mere Web pages".


次の例の猫の画像( "cats.jpg" )には、可能0な~commandが 4 個ある文脈~menuが与えられている: ◎ In this example, an image of cats is given a context menu with four possible commands:

<img src="cats.jpeg" alt="Cats" contextmenu=catsmenu>
<menu type="context" id="catsmenu">
 <menuitem label="Pet the kittens" onclick="kittens.pet()"></menuitem>
 <menuitem label="Cuddle with the kittens" onclick="kittens.cuddle()"></menuitem>
 <menu label="Feed the kittens">
  <menuitem label="Fish" onclick="kittens.feed(fish)"></menuitem>
  <menuitem label="Chicken" onclick="kittens.feed(chicken)"></menuitem>
 </menu>
</menu>

~mouseで~~操作される視覚的~Web~browserの利用者が,画像を右clickしたとき、~browserは、次の様な文脈~menuを~pop-upするであろう: ◎ When a user of a mouse-operated visual Web browser right-clicks on the image, the browser might pop up a context menu like this:

`contextmenu-collapsed^dgm
猫の写真を覆って示される文脈~menu。 ~menuは 4 個の~itemからなり、最初の 2 個は,上の~markupに記述された~menu~item( "Pet the kittens", "Cuddle with the kittens" )を提供0している。 3 個目は、下位menu "Feed the kittens" を与えている。 4 個目は、~~区切り線の後にあり, 下向きの開閉三角印のみからなる。 ◎ A context menu, shown over a picture of cats, with four lines: the first two offering the menu items described in the markup above ('Pet the kittens' and 'Cuddle with the kittens'), the third giving a submenu labeled 'Feed the kittens', and the fourth, after a horizontal splitter, consisting of only a downwards-pointing disclosure triangle.

そのような~UAは、利用者が開閉三角印を~clickしたなら,~browserの自前の~commandを示す文脈~menuを展開することになる: ◎ When the user clicks the disclosure triangle, such a user agent would expand the context menu in place, to show the browser's own commands:

`contextmenu-expanded^dgm
結果は、基本的には同じ~UIになるが、~menuはより長くなる — 開閉三角印は、 "View Image", "Copy Image", "Copy Image Location", 等々の~itemたちに置換される。 ◎ This would result in the same basic interface, but with a longer menu; the disclosure triangle having been replaced by items such as 'View Image', 'Copy Image', 'Copy Image Location', and so forth.

利用者が,~UAの既定の文脈~menuに常に~accessできることを確保するため、~UAは,文脈~menu処理~modelを迂回する手段を提供して~MAY。 例えば、~UAは Shift ~keyを押下げながらの右clickに対し、常に, `contextmenu$et ~eventを発火しない代わりに,既定の文脈~menuを示すような仕方で取扱うこともできる。 ◎ User agents may provide means for bypassing the context menu processing model, ensuring that the user can always access the UA's default context menus. For example, the user agent could handle right-clicks that have the Shift key depressed in such a way that it does not fire the contextmenu event and instead always shows the default context menu.


`文脈~menu構成子@ は、 0 個~以上の`文脈~menu~item構成子$からなる有順序~listである。 `文脈~menu~item構成子@ は、次のいずれかである: ◎ A context menu construct consists of an ordered list of zero or more context menu item constructs, which can be any of:

  • `~command$( `menuitem$e ) — ~commandは `既定の~command@ にされることもある。 ◎ Commands, which can be marked as default commands (menuitem)
  • `分離子@ ( `hr$e ) ◎ Separators (hr)
  • 他の`文脈~menu構成子$( `menu$e ) — それぞれには `下位menu~label@ が結付けられる。 これは、~listを入子にできるようにする。 ◎ Other context menu constructs, each with an associated submenu label, which allows the list to be nested (menu)

~UAは、 `文脈~menuを築いて示す@ ときは,所与の ( `menu$e 要素 %~source, 要請元~要素 %要請元 ) に対し,次の手続きを走らせ~MUST: ◎ To build and show a context menu for a particular menu element source and with a particular element subject as a subject, the user agent must run the following steps:

  1. %~menu ~LET %~source から`文脈~menu構成子を築いた$結果 ◎ Let menu be the context menu construct created by the build a context menu construct algorithm when passed the source element.
  2. %~menu を利用者に表示する — この手続きを呼出した~algoは、継続して,次を取り扱うとする: ◎ Display menu to the user, and let the algorithm that invoked this one continue.

    • 利用者が`文脈~menu~item構成子$を選択した時点で,それが依然として[ ある`~command$ %C を表現する要素 ]に対応するならば、~UAは次をし~MUST:
      • %C の`動作$cFを呼出す
      • %C に定義されている`動作$cFが`~click~eventを発火する$ものである場合、その `click$et ~eventの `~relatedTarget0$m 属性は, %要請元 に初期化する
      ◎ If the user selects a context menu item construct that corresponds to an element that still represents a command when the user selects it, then the UA must invoke that command's Action. If the command's Action is defined as firing a click event, then the relatedTarget attribute of that click event must be initialized to subject.
    • 文脈~menuが示されている間は、~DOM内の変更が~menuに反映されては~MUST_NOT。 ~menuは,示される前の~DOMから構築され, 変異不可とする。 ◎ Context menus must not, while being shown, reflect changes in the DOM. The menu is constructed from the DOM before being shown, and is then immutable.

~UAは、 `menu$e 要素 %要素 から `文脈~menu構成子を築く@ ときは,次を走らせた結果の`文脈~menu構成子$を返さ~MUST: ◎ To build a context menu construct for an element source, the user agent must run the following steps, which return a context menu construct:

  1. %出力 ~LET 空の`文脈~menu構成子$ ◎ Let generated menu be an empty context menu construct.
  2. ( %要素, %出力 ) を与える下で,`文脈~menu~itemを生成する$ ◎ Run the context menu item generator steps for the menu element using generated menu as the output.

    `文脈~menu~itemを生成する@ 手続きは、所与の ( `menu$e 要素, %出力 ) に対し、次を走らす: ◎ The context menu item generator steps for a menu element using a specific context menu construct output as output are as follows: For each child node of the menu in tree order, run the appropriate steps from the following list:

    1. 要素の ~EACH ( 子~node %子 ) に対し,`木~順序$で: ◎ ↑

      1. %子 に応じて:

        `~commandを定義する$ `menuitem$e 要素である ◎ If the child is a menuitem element that defines a command
        %出力 に`~command$を付加する — その各種`~facet$を~~反映するように ◎ Append the command to output, respecting the command's facets. If the menuitem element has a default attribute, mark the command as being a default command.
        加えて, %子 が `default^a 属性を有する場合は、~commandを`既定の~command$にする ◎ ↑
        `hr$e 要素である ◎ If the child is an hr element
        %出力 に`分離子$を付加する ◎ Append a separator to output.
        `label$a 属性を有さない `menu$e 要素である ◎ If the child is a menu element with no label attribute
        1. %出力 に新たな`分離子$を付加する
        2. ( %子, %出力 ) を与える下で,`文脈~menu~itemを生成する$
        3. %出力 に新たな`分離子$を付加する
        ◎ Append a separator to output, then run the context menu item generator steps for this child menu element, using output as the output, then append another separator to output.
        `label$a 属性を有する `menu$e 要素である ◎ If the child is a menu element with a label attribute
        1. %下位menu ~LET %子 から`文脈~menu構成子を築いた$結果
        2. %出力 に %下位menu を付加する
        3. %下位menu の`下位menu~label$ ~SET %子 の `label$a 属性の値
        ◎ Let submenu be the result of running the build a context menu construct steps for the child menu element. Then, append submenu to output, using the value of the child menu element's label attribute as the submenu label.
        他の場合 ◎ Otherwise
        何もしない — %子 は`無視-$する ◎ Ignore the child node.
  3. %出力 内の`文脈~menu構成子$のうち,次のいずれかに該当するものは、すべて %出力 から除去する:
    • [ `下位menu~label$ ~EQ 空~文字列 ]なるもの
    • [ `~label$cF ~EQ 空~文字列 ]なる`~command$を表現するもの
    ◎ Remove from output any context menu construct whose submenu label is the empty string. ◎ Remove from output any context menu item construct representing a command whose Label is the empty string.
  4. %出力 内の各[ 連続する複数の`分離子$ ]を 1 個の`分離子$に縮約する ◎ Collapse all sequences of two or more adjacent separators in output to a single separator.
  5. ~IF[ %出力 内の最初の`文脈~menu~item構成子$は`分離子$である ] ⇒ それを %出力 から除去する ◎ If the first context menu item construct in output is a separator, then remove it.
  6. ~IF[ %出力 内の最後の`文脈~menu~item構成子$は`分離子$である ] ⇒ それを %出力 から除去する ◎ If the last context menu item construct in output is a separator, then remove it.
  7. ~RET %出力 ◎ Return output.
`contextMenu@m
`contextmenu$a 内容~属性を`反映-$し~MUST。 ◎ The contextMenu IDL attribute must reflect the contextmenu content attribute.

4.11.5.3. `RelatedEvent^I ~interface

[Constructor(DOMString type, optional `RelatedEventInit$I %eventInitDict)]
interface `RelatedEvent@I : `Event$I {
  readonly attribute `EventTarget$I? `relatedTarget$m;
};

dictionary `RelatedEventInit@I : `EventInit$I {
  `EventTarget$I? relatedTarget = null;
};
%event . `relatedTarget$m
この~eventに孕まれる,他の~event~targetを返す。 例えば, `menu$e 要素に向けて `show$et ~eventが発火される場合のそれは、~menuの要請元の要素になる。 ◎ Returns the other event target involved in this event. For example, when a show event fires on a menu element, the other event target involved in the event would be the element for which the menu is being shown.
`relatedTarget@m
取得子は、初期化-時の値を返さ~MUST。 この~eventに関係する他の~event~targetを表現する。 ◎ The relatedTarget attribute must return the value it was initialized to. It represents the other event target that is related to the event.

4.11.6. ~command

4.11.6.1 ~facet

`~command@ とは、[ ~menu~item / ~button / ~link ]の背後にある抽象化である。 ~commandが定義されたなら、~UIの他の各部品は,同じ~commandを指せるようになる。 それにより、`不能化~状態$cFなどの各種~facetからなる単独の特色機能に,複数箇所から~accessできるようになる。 ◎ A command is the abstraction behind menu items, buttons, and links. Once a command is defined, other parts of the interface can refer to the same command, allowing many access points to a single feature to share facets such as the Disabled State.

各~commandは、次の各種 `~facet@ ( facet )を持つように定義される: ◎ Commands are defined to have the following facets:

`~label@cF
この~commandの,利用者から見える名前。 ◎ The name of the command as seen by the user.
`~access~key@cF
この~commandを誘発する~keyの組合せであって,~UAにより選択される。 ない場合は ε とする。 ◎ A key combination selected by the user agent that triggers the command. A command might not have an Access Key.
`隠され状態@cF
~T または ~F 。 この~commandは隠-される( ~T のとき)かどうかを表す(基本的に,~menu内に示されるべきかどうか)。 ◎ Whether the command is hidden or not (basically, whether it should be shown in menus).
`不能化~状態@cF
~T または ~F 。 この~commandは、関連していて誘発できる( ~T のとき)かどうかを表す。 ◎ Whether the command is relevant and can be triggered or not.
`動作@cF
この~commandを誘発したときに実際に生じる効果。 これは、[ ~scriptによる~event~handler / `~navigate$先の`~URL$ / ~form提出 ]のいずれにもなり得る。 ◎ The actual effect that triggering the command will have. This could be a scripted event handler, a URL to which to navigate, or a form submission.

~UAは、次の判定基準すべてを満たすならば,`要素が定義する^tnote `~command$を公開して~MAY : ◎ User agents may expose the commands that match the following criteria:

  • ~commandの`隠され状態$cF ~EQ ~F(可視) ◎ The Hidden State facet is false (visible)
  • 要素は`文書~内$にある ~AND その文書が`属する閲覧文脈$ ~NEQ ε ◎ The element is in a document that has an associated browsing context.
  • 要素, および その どの先祖にも, `hidden$a 属性は指定されていない。 ◎ Neither the element nor any of its ancestors has a hidden attribute specified.
  • 要素は、次のいずれかを満たす:

    • `menuitem$e 要素でない
    • `~access~key$cF ~NEQ ε
    ◎ The element is not a menuitem element, or it has an Access Key.

~UAには、これを行うことが奨励される — とりわけ`~access~key$cFを有する~commandに対し、利用者にそれらの~keyを告知する仕方として。 ◎ User agents are encouraged to do this especially for commands that have Access Keys, as a way to advertise those keys to the user.

例えば、そのような~commandを~UAの~menu~bar内に~listすることもできる。 ◎ For example, such commands could be listed in the user agent's menu bar.

4.11.6.2. `a^e 要素を用いて~commandを定義する

`a$e 要素は、 `href$a 属性を有するならば,`~commandを定義する$。 この~commandの各種`~facet$は、次で与えられる: ◎ An a element with an href attribute defines a command.

`~label$cF
要素の `textContent$m ~IDL属性が返す文字列になる。 ◎ The Label of the command is the string given by the element's textContent IDL attribute.
`~access~key$cF
要素に`割当てられている~access~key$があれば それになる。 ◎ The AccessKey of the command is the element's assigned access key, if any.
`隠され状態$cF
要素が `hidden$a 属性を有するならば ~T / ~ELSE_ ~F になる。 ◎ The Hidden State of the command is true (hidden) if the element has a hidden attribute, and false otherwise.
`不能化~状態$cF
要素, または その いずれかの先祖が`不活$ならば ~T / ~ELSE_ ~F になる。 ◎ The Disabled State facet of the command is true if the element or one of its ancestors is inert, and false otherwise.
`動作$cF
要素に向けて`~click~eventを発火する$。 ◎ The Action of the command is to fire a click event at the element.

4.11.6.3. `button^e 要素を用いて~commandを定義する

`button$e 要素は、常に`~commandを定義する$。 この~commandの各種`~facet$は、次で与えられる: ◎ A button element always defines a command.

`~label$cF
`~access~key$cF
`隠され状態$cF
`動作$cF
これらは、 `a^e 要素に対するとき と同様に決定される(前~節を見よ)。 ◎ The Label, Access Key, Hidden State, and Action facets of the command are determined as for a elements (see the previous section).
`不能化~状態$cF

要素が次のいずれかを満たすならば ~T / ~ELSE_ ~F になる:

  • 自身またはそのいずれかの先祖は`不活$である
  • `不能化され$ている
◎ The Disabled State of the command is true if the element or one of its ancestors is inert, or if the element's disabled state is set, and false otherwise.

4.11.6.4. ``input^e 要素を用いて~commandを定義する

`input$e 要素 %E は、[ ``type$a 属性の状態 ~IN { ``Submit$st, ``Reset$st, ``Image$st, ``Button$st, ``Radio$st, ``Checkbox$st } ]ならば,`~commandを定義する$。 この~commandの各種`~facet$は、次で与えられる: ◎ An input element whose type attribute is in one of the Submit Button, Reset Button, Image Button, Button, Radio Button, or Checkbox states defines a command.

`~label$cF

次に従って決定される: ◎ The Label of the command is determined as follows:

  1. ~IF[ %E の ``type$a 属性の状態 ~IN { ``Submit$st, ``Reset$st, ``Image$st, ``Button$st } ] ⇒ ~RET [ %E は ``value$a 属性を有するならば その値 / ~ELSE_ ~UAが~buttonに既定の~labelをあてがうときに利用する値 — 値は~UA, および~localeに依存する ] ◎ If the type attribute is in one of the Submit Button, Reset Button, Image Button, or Button states, then the Label is the string given by the value attribute, if any, and a UA-dependent, locale-dependent value that the UA uses to label the button itself if the attribute is absent.
  2. ~IF[ %E を`~label先~control$とする `label$e 要素はある ] ⇒ ~RET 該当するもののうち,`木~順序$で最初のもの( ~DOMで述べるなら %E`.labels[0]^c )の `textContent$m が返す値 ◎ Otherwise, if the element is a labeled control, then the Label is the string given by the textContent of the first label element in tree order whose labeled control is the element in question. (In DOM terms, this is the string given by element.labels[0].textContent.)
  3. ~RET [ %E は ``value$a 属性を有するならば その値 / ~ELSE_ 空~文字列 ] ◎ Otherwise, if the value attribute is present, then the Label is the value of that attribute. ◎ Otherwise, the Label is the empty string.
`~access~key$cF
要素に`割当てられている~access~key$があれば それになる。 ◎ The AccessKey of the command is the element's assigned access key, if any.
`隠され状態$cF
要素は `hidden$a 属性を有するならば ~T / ~ELSE_ ~F になる。 ◎ The Hidden State of the command is true (hidden) if the element has a hidden attribute, and false otherwise.
`不能化~状態$cF

要素が次のいずれかを満たすならば ~T / ~ELSE_ ~F になる:

  • 自身またはそのいずれかの先祖は`不活$である
  • `不能化され$ている
◎ The Disabled State of the command is true if the element or one of its ancestors is inert, or if the element's disabled state is set, and false otherwise.
`動作$cF
要素に向けて`~click~eventを発火する$。 ◎ The Action of the command is to fire a click event at the element.

4.11.6.5. ``option^e 要素を用いて~commandを定義する

`option$e 要素は、次を満たすならば,`~commandを定義する$:

  • 先祖に `select$e 要素がある ~AND
  • [ ``value$a 属性を有さない ]~OR[ ``value$a 属性を有していて その値 ~NEQ 空~文字列 ]

この~commandの各種`~facet$は、次で与えられる:

◎ An option element with an ancestor select element and either no value attribute or a value attribute that is not the empty string defines a command.
`~label$cF
要素は ``label$a 属性を有するならば その値になる。 ~ELSE_ 要素の `textContent$m ~IDL属性が返す値を `~ASCII空白を剥いで縮約-$した結果になる。 ◎ The Label of the command is the value of the option element's label attribute, if there is one, or else the value of option element's textContent IDL attribute, with ASCII whitespace stripped and collapsed.
`~access~key$cF
要素に`割当てられている~access~key$があれば それになる。 ◎ The AccessKey of the command is the element's assigned access key, if any.
`隠され状態$cF
要素は `hidden$a 属性を有するならば ~T / ~ELSE_ ~F になる。 ◎ The Hidden State of the command is true (hidden) if the element has a hidden attribute, and false otherwise.
`不能化~状態$cF

要素が次のいずれかを満たすならば ~T / ~ELSE_ ~F になる。

  • `不能化され$optている
  • 最も近い先祖 `select$e 要素は`不能化され$ている
  • 自身またはいずれかの先祖は `不活$である
◎ The Disabled State of the command is true if the element is disabled, or if its nearest ancestor select element is disabled, or if it or one of its ancestors is inert, and false otherwise.
`動作$cF
要素に最も近い先祖 `select$e 要素は `multiple$a 属性を有するならば、 要素を`選ぶ$。 他の場合、要素を`~toggleする$。 ◎ If the option's nearest ancestor select element has a multiple attribute, the Action of the command is to pick the option element. Otherwise, the Action is to toggle the option element.

4.11.6.6 `menuitem^e 要素を用いて~commandを定義する

`menuitem$e 要素は、常に `~commandを定義する$。 この~commandの各種`~facet$は、次で与えられる: ◎ A menuitem element always defines a command.

`~label$cF
要素の`~label$になる。 ◎ The Label of the command is the element's label.
`~access~key$cF
要素に`割当てられている~access~key$があれば それになる。 ◎ The AccessKey of the command is the element's assigned access key, if any.
`隠され状態$cF
要素は `hidden$a 属性を有するならば ~T/ ~ELSE_ ~F になる。 ◎ The Hidden State of the command is true (hidden) if the element has a hidden attribute, and false otherwise.
`不能化~状態$cF

要素が次のいずれかを満たすならば ~T / ~ELSE_ ~F になる:

  • 自身またはそのいずれかの先祖は`不活$である
  • `不能化され$ている
◎ The Disabled State of the command is true if the element or one of its ancestors is inert, or if the element has a disabled attribute, and false otherwise.
`動作$cF
要素に向けて`~click~eventを発火する$。 ◎ The Action of the command is to fire a click event at the element.

4.11.6.7. `label^e 要素の `accesskey^a 属性を用いて~commandを定義する

次のすべてを満たす `label$e 要素は、`~commandを定義する$

  • `割当てられている~access~key$はある
  • `~label先~control$ ~NEQ ε
  • `~label先~control$は`~commandを定義する$

この~commandの各種`~facet$は、次で与えられる:

◎ A label element that has an assigned access key and a labeled control and whose labeled control defines a command, itself defines a command.
`~label$cF
要素の `textContent$m ~IDL属性が返す値になる。 ◎ The Label of the command is the string given by the element's textContent IDL attribute.
`~access~key$cF
要素に`割当てられている~access~key$になる。 ◎ The AccessKey of the command is the element's assigned access key.
`隠され状態$cF
`不能化~状態$cF
`動作$cF
それぞれ、要素の`~label先~control$の対応する~facetと同じになる。 ◎ The Hidden State, Disabled State, and Action facets of the command are the same as the respective facets of the element's labeled control.

4.11.6.8. `legend^e 要素の `accesskey^a 属性を用いて~commandを定義する

次のすべてを満たす `legend$e 要素は、`~commandを定義する$

  • `割当てられている~access~key$はある
  • その親 %F は `fieldset$e 要素である
  • 次を全て満たす要素の集合 %S は空でない
    • %F の子孫である
    • 自身, および どの先祖も `legend$e 要素でない
    • `label$e 要素でない
    • `~commandを定義する$

この~commandの各種`~facet$は、次で与えられる:

◎ A legend element that has an assigned access key and is a child of a fieldset element that has a descendant that is not a descendant of the legend element and is neither a label element nor a legend element but that defines a command, itself defines a command.
`~label$cF
要素の `textContent$m ~IDL属性が返す値になる。 ◎ The Label of the command is the string given by the element's textContent IDL attribute.
`~access~key$cF
要素に `割当てられている~access~key$になる。 ◎ The AccessKey of the command is the element's assigned access key.
`隠され状態$cF
`不能化~状態$cF
`動作$cF
それぞれ、[ 上で与えた集合 %S 内の要素のうち`木~順序$で最初の要素 ]の対応する~facetと同じになる: ◎ The Hidden State, Disabled State, and Action facets of the command are the same as the respective facets of the first element in tree order that is a descendant of the parent of the legend element that defines a command but is not a descendant of the legend element and is neither a label nor a legend element.

4.11.6.9. 他の要素~上で `accesskey^a 属性を用いて~commandを定義する

要素は、`割当てられている~access~key$があるならば,`~commandを定義する$ — ただし ⇒ そのような要素に対し,これまでのいずれかの節にて[ 要素は`~commandを定義する$ものと定義される ]ならば、その節の規則が要素に適用される。 この節が適用されるのは、他の場合に限られる。 ◎ An element that has an assigned access key defines a command. ◎ If one of the earlier sections that define elements that define commands define that this element defines a command, then that section applies to this element, and this section does not. Otherwise, this section applies to that element.

この~commandの各種`~facet$は、次で与えられる:

`~label$cF

次で与えられる要素 %E の `textContent$m が返す値になる:

  1. 要素を`~label先~control$とする `label$e 要素があるならば、 %E は,それらのうち `木~順序$で最初のもの。 (これは,~DOMで述べるなら、要素~上の `labels[0].textContent^c が返す文字列になる。)
  2. 他の場合の %E は要素~自身
◎ The Label of the command depends on the element. If the element is a labeled control, the textContent of the first label element in tree order whose labeled control is the element in question is the Label (in DOM terms, this is the string given by element.labels[0].textContent). Otherwise, the Label is the textContent of the element itself.
`~access~key$cF
要素に`割当てられている~access~key$になる。 ◎ The AccessKey of the command is the element's assigned access key.
`隠され状態$cF
要素は `hidden$a 属性を有するならば ~T/ ~ELSE_ ~F になる。 ◎ The Hidden State of the command is true (hidden) if the element has a hidden attribute, and false otherwise.
`不能化~状態$cF
要素または,そのいずれかの先祖が`不活$であるならば ~T / ~ELSE_ ~F になる。 ◎ The Disabled State of the command is true if the element or one of its ancestors is inert, and false otherwise.
`動作$cF

次の手続きを走らす: ◎ The Action of the command is to run the following steps:

  1. 要素を`~focusする手続き$を走らす ◎ Run the focusing steps for the element.
  2. 要素に向けて`~click~eventを発火する$ ◎ Fire a click event at the element.

4.11.7. ``dialog^e 要素

`分類$
`~flow内容$ / `~sectioning根$。 ◎ Flow content. ◎ Sectioning root.
`この要素を利用できる文脈$
`~flow内容$が期待される所。 ◎ Where flow content is expected.
`内容~model$
`~flow内容$ 。 ◎ Flow content.
`text/html における~tag省略$
両~tagとも省略不可。 ◎ Neither tag is omissible.
`内容~属性$
`大域~属性$ ◎ Global attributes
``open$a — ~dialog~boxを示しているかどうか ◎ open — Whether the dialog box is showing
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLDialogElement@I : `HTMLElement$I {
  [`CEReactions$] attribute boolean ``open$m;
  attribute DOMString ``returnValue$m;
  [`CEReactions$] void ``show$m();
  [`CEReactions$] void ``showModal$m();
  [`CEReactions$] void ``close$m(optional DOMString %returnValue);
};

`dialog$e 要素は、利用者がある~taskを遂行するために対話する ~appの一部を表現する — 例えば ~dialog~box / ~inspector / ~window など。 ◎ The dialog element represents a part of an application that a user interacts with to perform a task, for example a dialog box, inspector, or window.

`dialog$e 要素の ``open@a 属性は、`真偽~属性$であり、指定された場合,[ 要素は 作動中であり,利用者は それと対話できる ]ことを指示する。 ◎ The open attribute is a boolean attribute. When specified, it indicates that the dialog element is active and that the user can interact with it.

``open$a 属性を有さない `dialog$e 要素は、利用者に示されるべきでない。 この要件は、~style層を通して間接的に実装されても~MAY。 例えば,`示唆される既定の具現化を~support$する~UAは、この要件を 具現化~節 に述べられる~CSS規則を用いて実装する。 ◎ A dialog element without an open attribute specified should not be shown to the user. This requirement may be implemented indirectly through the style layer. For example, user agents that support the suggested default rendering implement this requirement using the CSS rules described in the rendering section.

~dialogから ``open$a 属性を除去した場合,通例的にそれを隠すことになるが、そうすると,いくつか奇妙な結果も伴われる: ◎ Removing the open attribute will usually hide the dialog. However, doing so has a number of strange additional consequences:

  • `close$et ~eventは発火されない。 ◎ The close event will not be fired.
  • ``close()$m ~methodも,~UAが提供する ~dialogを取消す~UIも、それ以降~dialogを閉じれなくなる。 ◎ The close() method, and any user-agent provided cancelation interface, will no longer be able to close the dialog.
  • ~dialogが ``showModal()$m ~methodを用いて示されていた場合、`文書$は その`~modal~dialogにより阻まれ$続ける。 ◎ If the dialog was shown using its showModal() method, the Document will still be blocked.

これらの理由から、一般に, ``open$a 属性は 決して手動で除去しないほうが良い。 代わりに、~dialogを ``close()$m ~methodで閉じるか, `hidden$a 属性で隠すように。 ◎ For these reasons, it is generally better to never remove the open attribute manually. Instead, use the close() method to close the dialog, or the hidden attribute to hide it.

`dialog$e 要素には、 `tabindex$a 属性は 指定されては~MUST_NOT。 ◎ The tabindex attribute must not be specified on dialog elements.

%dialog . ``show()$m
`dialog$e 要素を表示する。 ◎ Displays the dialog element.
%dialog . ``showModal()$m
`dialog$e 要素を表示して,それを最上端の~modal~dialogにする。 ◎ Displays the dialog element and makes it the top-most modal dialog.
この~methodは `autofocus$a 属性を尊守する。 ◎ This method honors the autofocus attribute.
%dialog . ``close$m( [ %result ] )
`dialog$e 要素を閉じる。 ◎ Closes the dialog element.
%result 引数は、 `dialog$e の`結果値$を与える。 ◎ The argument, if provided, provides a return value.
%dialog . ``returnValue$m [ = %result ]
`dialog$e の`結果値$を返す。 ◎ Returns the dialog's return value.
設定して,`結果値$を更新できる。 ◎ Can be set, to update the return value.
``show()@m

被呼出時には、次の手続きを走らせ~MUST: ◎ When the show() method is invoked, the user agent must run the following steps:

  1. ~IF[ 此れは ``open$a 属性を有する ] ⇒ ~RET ◎ If the element already has an open attribute, then abort these steps.
  2. 此れの ``open$a 属性 ~SET 空~文字列 ◎ Add an open attribute to the dialog element, whose value is the empty string.
  3. 此れを`通常の整列$~modeにする ◎ Set the dialog to the normal alignment mode.
  4. 此れを`~dialogとして~focusする$ ◎ Run the dialog focusing steps for the dialog element.

各 `文書$は、何個かの `dialog$e 要素からなる~stack — `待ち~dialog~stack@ — を持つ。 それは、`文書$の作成-時には,空に初期化され~MUST。 ◎ Each Document has a stack of dialog elements known as the pending dialog stack. When a Document is created, this stack must be initialized to be empty.

要素が`待ち~dialog~stack$[ に追加された/から除去された ]ときは、`上端層$tL[ にも`追加され$tL /からも`除去され$tL ]~MUST。 `FULLSCREEN$r ◎ When an element is added to the pending dialog stack, it must also be added to the top layer. When an element is removed from the pending dialog stack, it must be removed from the top layer. [FULLSCREEN]

``showModal()@m

被呼出時には、次の手続きを走らせ~MUST: ◎ When the showModal() method is invoked, the user agent must run the following steps:

  1. ~IF[ 此れは ``open$a 属性を有する ] ⇒ ~THROW `InvalidStateError$E ◎ Let subject be the dialog element on which the method was invoked. ◎ If subject already has an open attribute, then throw an "InvalidStateError" DOMException and abort these steps.
  2. ~IF[ 此れは`接続されて$いない ] ⇒ ~THROW `InvalidStateError$E ◎ If subject is not connected, then throw an "InvalidStateError" DOMException and abort these steps.
  3. 此れの ``open$a 属性 ~SET 空~文字列 ◎ Add an open attribute to subject, whose value is the empty string.
  4. `dialog$e を`中央寄せ整列$~modeにする ◎ Set the dialog to the centered alignment mode.
  5. 此れの`~node文書$を`阻んでいる~modal~dialog$ ~SET 此れ ◎ Let subject's node document be blocked by the modal dialog subject.
  6. 此れの`~node文書$の`待ち~dialog~stack$に,此れを積む ◎ Push subject onto subject's node document's pending dialog stack.
  7. 此れを`~dialogとして~focusする$ ◎ Run the dialog focusing steps for subject.

所与の時点にて,所与の `dialog$e 要素 %D を `~dialogとして~focusする@ ときは、次を走らす: ◎ The dialog focusing steps for a dialog element subject are as follows:

  1. ~IF[ %D は `~control群の所有者~obj$でない ]~OR[ %D は`不活$である ] ⇒ ~RET ◎ If for some reason subject is not a control group owner object at this point, or if it is inert, abort these steps.
  2. %~control ~LET %D
  3. %S ~LET %D の`~control群$内の `不活$でない`~focus可能域$からなる集合
  4. ~IF[ %S は空でない ] ⇒ %~control ~SET [ %S 内に[ `~DOM~anchor$が `autofocus$a 属性を有する ]ものが[ あれば,それらのうち最初のもの / なければ %S 内の最初のもの ]] ◎ Let control be the first non-inert focusable area in subject's control group whose DOM anchor has an autofocus attribute specified. ◎ If there isn't one, then let control be the first non-inert focusable area in subject's control group. ◎ If there isn't one of those either, then let control be subject.
  5. %~control を`~focusする手続き$を走らす ◎ Run the focusing steps for control.

`文書$ %文書 の`待ち~dialog~stack$内にある `dialog$e 要素 %D が`文書から除去され$たときは、次の手続きを走らせ~MUST: ◎ If at any time a dialog element is removed from a Document, then if that dialog is in that Document's pending dialog stack, the following steps must be run:

  1. %D を %文書 の`待ち~dialog~stack$から除去する ◎ Let subject be that dialog element and document be the Document from which it is being removed. ◎ Remove subject from document's pending dialog stack.
  2. %文書 を`阻んでいる~modal~dialog$ ~SET [ %文書 の`待ち~dialog~stack$は空でないならば ~stackの上端の~dialog / ~ELSE_ ε ] ◎ If document's pending dialog stack is not empty, then let document be blocked by the modal dialog that is at the top of document's pending dialog stack. Otherwise, let document be no longer blocked by a modal dialog at all.
``close(returnValue)@m

被呼出時には、次を走らせ~MUST:

  1. ~IF[ %returnValue 引数は与えられていない ] ⇒ %returnValue ~SET ε
  2. ( 此れ, %returnValue ) を与える下で,`~dialogを閉じる$
◎ When the close() method is invoked, the user agent must close the dialog that the method was invoked on. If the method was invoked with an argument, that argument must be used as the return value; otherwise, there is no return value.

~UAは, `~dialogを閉じる@ ときは、所与の ( `dialog$e 要素 %D, 結果値 %結果 (省略時は ε)) に対し,次の手続きを走らせ~MUST: ◎ When a dialog element subject is to be closed, optionally with a return value result, the user agent must run the following steps:

  1. ~IF[ %D は ``open$a 属性を有さない ] ⇒ ~RET ◎ If subject does not have an open attribute, then abort these steps.
  2. %D の ``open$a 属性を除去する ◎ Remove subject's open attribute.
  3. ~IF[ %結果 ~NEQ ε ] ⇒ %D の `結果値$ ~SET %結果 ◎ If the argument result was provided, then set the returnValue attribute to the value of result.
  4. %~stack ~LET %D の`~node文書$の`待ち~dialog~stack$ ◎ ↓
  5. ~IF[ %D ~IN %~stack ]: ◎ If subject is in its Document's pending dialog stack, then:

    1. %~stack から %D を除去する ◎ Remove subject from that pending dialog stack.
    2. %文書 を`阻んでいる~modal~dialog$ ~SET [ %文書 の`待ち~dialog~stack$は空でないならば ~stackの上端の~dialog / ~ELSE_ ε(なし) ] ◎ If that pending dialog stack is not empty, then let subject's node document be blocked by the modal dialog that is at the top of the pending dialog stack. Otherwise, let document be no longer blocked by a modal dialog at all.
  6. 次を走らす`~taskを待入する$ ⇒ %D に向けて名前 `close$et の~eventを `発火-$する ◎ Queue a task to fire an event named close at subject.
``returnValue@m
取得子は、此れの`結果値$を返さ~MUST。 ◎ The returnValue IDL attribute, on getting, must return the last value to which it was set. On setting, it must be set to the new value. When the element is created, it must be set to the empty string.
設定子は、此れの`結果値$を所与の値に設定し~MUST。 ◎ ↑

各 `dialog$e 要素には,文字列である `結果値@ が結付けられ、要素の作成-時には,空~文字列にされ~MUST。

【 ( `dialog^e の) “結果値” は、この訳で導入した用語。 原文では、(~markupなしに) “return value” と記されていて, (~methodの) “返り値” と紛らわしいので。 それに伴い, 空~文字列の要件も ``returnValue$m ~IDL属性の記述からここに移している。 】


~dialogを取消すとき: ~UAは、[ `文書$の`待ち~dialog~stack$が空でない ]ときは、[ その上端にある `dialog$e 要素 %D ]に対し, [ %D の作動化-時に,次を走らす`~taskを待入する$ ]ような~UIを提供して~MAY: ◎ Canceling dialogs: When a Document's pending dialog stack is not empty, user agents may provide a user interface that, upon activation, queues a task to run these steps: ◎ Let dialog be the top dialog element on the Document's pending dialog stack.

  1. %close ~LET %D に向けて、名前 `cancel$et の~eventを,[ `cancelable$m 属性 ~SET ~T ]に初期化した上で `発火-$した結果 ◎ Let close be the result of firing an event named cancel at dialog, with the cancelable attribute initialized to true.
  2. ~IF[ %close ~EQ ~T ]~AND[ %D は ``open$a 属性を有する ] ⇒ ( %D, ε ) を与える下で,`~dialogを閉じる$ ◎ If close is true and dialog has an open attribute, then close the dialog with no return value.

注記: そのような~UIの仕組みの例としては、利用者が Escape ~keyを押下げるときが挙げられる。 ◎ An example of such a UI mechanism would be the user pressing the "Escape" key.


どの `dialog$e 要素も、[ `通常の整列@, `中央寄せ整列@ ]いずれかの~modeで配置される。 `dialog$e 要素の作成-時には、`通常の整列$~modeにされ~MUST。 この~mode下では、要素には通常の~CSS要件が適用される。 `中央寄せ整列$~modeが利用されるのは、`上端層$tLにある `dialog$e 要素に限られる。 `FULLSCREEN$r `CSS$r ◎ A dialog element is in one of two modes: normal alignment or centered alignment. When a dialog element is created, it must be placed in the normal alignment mode. In this mode, normal CSS requirements apply to the element. The centered alignment mode is only used for dialog elements that are in the top layer. [FULLSCREEN] [CSS]

~UAは、`中央寄せ整列$~modeの `dialog$e 要素に対しては:

  • 以下の各項における,`塊~flow方向$, および[ 寸法, 始端, 終端 ]は、[ 要素~自身ではなく,要素の親 ]の `内容の~layoutにおける^tnote `塊~flow方向$, およびその方向の[ 寸法, `始端$, `終端$ ]を指すとする。
  • 要素の描画~boxを新たに作成するときは、[[[ 要素の`~box~offset~prop$( `top^p 等々)のうち,`塊~flow方向$のもの ]の`使用値$を計算する目的 ]に用いる,要素の~boxの静的~位置 ]を,[ ~boxが次を満たすように配置される値 ]に設定しておか~MUST:

    要素の寸法( `width$p / `height$p) ~LT `表示域$の寸法の場合
    [ `表示域$の始端~辺から~boxの始端`~margin辺$までの距離 ]~EQ[ `表示域$の終端~辺から~boxの終端`~margin辺$までの距離 ]
    他の場合
    ~boxの始端`~margin辺$と`表示域$の始端~辺は、一致する
    ◎ When an element subject is placed in centered alignment mode, and when it is in that mode and has new rendering boxes created, the user agent must set up the element such that its static position of the edge that corresponds to subject's parent's block-start edge, for the purposes of calculating the used value of the appropriate box offset property ('top', 'right', 'bottom', or 'left'), is the value that would place the element's margin edge on the side that corresponds to subject's parent's block-start side as far from the same-side edge of the viewport as the element's opposing side margin edge from that same-side edge of the viewport, if the element's dimension ('width' or 'height') in subject's parent's block flow direction is less than the same-axis dimension of the viewport, and otherwise is the value that would place the element's margin edge on the side that corresponds to subject's parent's block-start side at the same-side edge of the viewport.
  • 要素が`具現化されて$いる下で,[ 要素が属する`表示域$の(`~CSS~pixel$単位による)寸法が変化した / 要素の親の`塊~flow方向$が変化した ]ときは、前項に従って静的~位置を再~計算して,要素の~boxを再~作成し~MUST。 ◎ If there is a dialog element with centered alignment and that is being rendered when its browsing context changes viewport dimensions (as measured in CSS pixels), or when this dialog element's parent changes block flow direction, then the user agent must recreate the element's boxes, recalculating its edge that corresponds to this dialog element's parent's block-start edge as in the previous paragraph.
  • 上述した静的~位置は、要素の~boxが再~作成されるまで,保たれ~MUST。 (この静的~位置が利用されるのは、一定の状況において,当の`~box~offset~prop$の`使用値$を計算するときに限られる — 具体例として、 `position$p ~propが `static^v に設定された要素を位置するときには,利用されない。) ◎ This static position of a dialog element's edge with centered alignment must remain the element's static position of that edge until its boxes are recreated. (The element's static position is only used in calculating the used value of the appropriate box offset property ('top', 'right', 'bottom', or 'left') in certain situations; it's not used, for instance, to position the element if its 'position' property is set to 'static'.)

視覚的かつ対話的な媒体の~UAは、利用者が `表示域$を~panして `dialog$e 要素の`~border~box$のすべての部位に~accessできるようにするべきである — 要素が `表示域$より大きく,`表示域$に~scrollの仕組みがないときでも(例:`表示域$の `overflow$p ~propが `hidden^v に設定されている)。 ◎ User agents in visual interactive media should allow the user to pan the viewport to access all parts of a dialog element's border box, even if the element is larger than the viewport and the viewport would otherwise not have a scroll mechanism (e.g. because the viewport's 'overflow' property is set to 'hidden').


``open@m
``open$a 内容~属性を`反映-$し~MUST。 ◎ The open IDL attribute must reflect the open content attribute.

次の~dialog~boxには、細則事項( `small^e )がある。 より重要な部位へ利用者の注目を引くため, `main$e 要素が利用されている: ◎ This dialog box has some small print. The main element is used to draw the user's attention to the more important parts.

<dialog>
 <h1>Add to Wallet</h1>
 <main>
  <p>How many gold coins do you want to add to your wallet?</p>
  <p><input name=amt type=number min=0 step=0.01 value=100></p>
 </main>
 <p><small>You add coins at your own risk.</small></p>
 <p><label><input name=round type=checkbox> Only add perfectly round coins </label>
 <p><input type=button onclick="submit()" value="Add Coins"></p>
</dialog>