4.11 対話的~要素

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

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

4.11.1. ``details^e 要素

`分類$
`~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
`~accessibilityの考慮点$
`details$AA ◎ For authors. For implementers.
`~DOM~interface$
[Exposed=Window]
interface `HTMLDetailsElement@I : `HTMLElement$I {
  [`HTMLConstructor$] constructor();

  [`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^l, 空~文字列 )
  • 隠す場合 ⇒ %要素 から ``open$a `属性を除去する$
◎ 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[ に追加される / から除去される ]度に,次を行うモノトスル ⇒ `要素~taskを~queueする$( `~DOM操作~task源$, %details, `~details通知~task手続き$ ) ◎ Whenever the open attribute is added to or removed from a details element, the user agent must queue an element task on the DOM manipulation task source given then details element that runs the following steps,\

`~details通知~task手続き@ は、所与の %details に対し次を走らす: ◎ which are known as the details notification task steps, for this details element:

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

    注記: ``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.

``open@m ~IDL属性は、 ``open$a 内容~属性を`反映する$モノトスル。 ◎ 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.

`details-1^xCode

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

`details-2^xCode

これを ~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

これらの例における `summary^e (要約)が要約-( summarize )するのは,~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 style sheet is used to animate the color of the summary when the element is opened or closed:

`details-3^xCode

4.11.2. `summary^e 要素

`分類$
~none。 ◎ None.
`この要素を利用できる文脈$
`details$e 要素の`最初の子$として。 ◎ As the first child of a details element.
`内容~model$
`句ng内容$。 加えて,`見出し内容$が~~混在していてもよい。 ◎ Phrasing content, optionally intermixed with heading content.
`text/html における~tag省略$
両~tagとも省略不可。 ◎ Neither tag is omissible.
`内容~属性$
`大域~属性$ ◎ Global attributes
`~accessibilityの考慮点$
`summary$AA ◎ For authors. For implementers.
`~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.

次を満たす要素は `親~details用の~summary@ であるとされる ⇒ [ `summary$e 要素である ]~AND[ 親は `details$e 要素である ]~AND[ 先行する同胞に別の `summary$e 要素は無い ] ◎ A summary element is a summary for its parent details if the following algorithm returns true: • If this summary element has no parent, then return false. • Let parent be this summary element's parent. • If parent is not a details element, then return false. • If parent's first summary element child is not this summary element, then return false. • Return true.

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

  1. ~IF[ %要素 は`親~details用の~summary$でない ] ⇒ ~RET ◎ If this summary element is not the summary for its parent details, then return.
  2. %親 ~LET %要素 の親 ◎ Let parent be this summary element's parent.
  3. ~IF[ %親 は ``open$a 属性を有する ] ⇒ %親 から ``open$a `属性を除去する$† ◎ If the open attribute is present on parent, then remove it.\
  4. ~ELSE ⇒ %親 の`属性~値を設定する$( `open^l, 空~文字列 )† ◎ Otherwise, set parent's open attribute to the empty string.

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

4.11.3. ~command

4.11.3.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の組合nであって,~UAにより選択される。 ない場合は ε とする。 ◎ A key combination selected by the user agent that triggers the command. A command might not have an Access Key.
`隠d状態@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は、次の判定基準すべてが満たされるならば,要素が定義する`~command$を公開してもヨイ : ◎ User agents may expose the commands that match the following criteria:

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

~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.3.2. `a^e 要素を用いて~commandを定義する

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

`~label$cF
要素の`子孫~text内容$になる。 ◎ The Label of the command is the element's descendant text content.
`~access~Key$cF
要素に`アテガわれている~access~Key$があれば それになる。 ◎ The Access Key of the command is the element's assigned access key, if any.
`隠d状態$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.3.3. `button^e 要素を用いて~commandを定義する

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

`~label$cF
`~access~Key$cF
`隠d状態$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.3.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 該当するもののうち,`~tree順序$で最初のものの`子孫~text内容$(~JSで言えば, %E`.labels[0].textContent^c ) ◎ Otherwise, if the element is a labeled control, then the Label is the descendant text content of the first label element in tree order whose labeled control is the element in question. (In JavaScript terms, this is 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.
注記: ``Image$st 状態にある `input$e 要素~上では, ``value$a 属性は適合tでないが、要素に ``alt$a 属性が欠落している場合には,依然として`~label$cFの決定に寄与する。 ◎ Even though the value attribute on input elements in the Image Button state is non-conformant, the attribute can still contribute to the Label determination, if it is present and the Image Button's alt attribute is missing.
`~access~Key$cF
要素に`アテガわれている~access~Key$があれば それになる。 ◎ The Access Key of the command is the element's assigned access key, if any.
`隠d状態$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.3.5. ``option^e 要素を用いて~commandを定義する

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

  • 先祖に `select$e 要素がある
  • [ ``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_ 次の結果になる ⇒ `~ASCII空白を剥いで縮約する$( 要素の`子孫~text内容$ ) ◎ The Label of the command is the value of the option element's label attribute, if there is one, or else the option element's descendant text content, with ASCII whitespace stripped and collapsed.
`~access~Key$cF
要素に`アテガわれている~access~Key$があれば それになる。 ◎ The Access Key of the command is the element's assigned access key, if any.
`隠d状態$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 toggle the option element. Otherwise, the Action is to pick the option element.

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

次をすべて満たす `legend$e 要素は、`~commandを定義する$: ◎ A legend element defines a command if all of the following are true:

  • `アテガわれている~access~Key$はある ◎ It has an assigned access key.
  • その親 %F は `fieldset$e 要素である ◎ It is a child of a fieldset element.
  • 次をすべて満たす要素は在る:

    • %F の子孫である
    • `~commandを定義する$
    • `label$e 要素でない
    • `legend$e 要素でない
    ◎ Its parent has a descendant that defines a command that is neither a label element nor a legend element.\

    該当する要素を指して、 `legend$e 要素の `~access~Key移譲先@ という。 ◎ This element, if it exists, is the legend element's accesskey delegatee.

    【 該当する要素が複数あるときは、`~tree順序$で最初のもの? (以下の記述は、 1 つに定まることを前提に記されている。 この節が更新される 前も、 “~tree順序で最初” と記されていた。) 】

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

`~label$cF
要素の`子孫~text内容$になる。 ◎ The Label of the command is the element's descendant text content.
`~access~Key$cF
要素に`アテガわれている~access~Key$になる。 ◎ The Access Key of the command is the element's assigned access key.
`隠d状態$cF
`不能化~状態$cF
`動作$cF
それぞれ、 `legend$e 要素の`~access~Key移譲先$の対応する~facetと同じになる。 ◎ The Hidden State, Disabled State, and Action facets of the command are the same as the respective facets of the legend element's accesskey delegatee.

この例では、 `legend$e 要素に `accesskey$a が指定されている — 要素が作動化されたときは、その内側にある `input$e 要素に移譲することになる。 ◎ In this example, the legend element specifies an accesskey, which, when activated, will delegate to the input element inside the legend element.

`legend-1^xCode

4.11.3.7. 他の要素~上で `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
要素を`~label先~control$とする `label$e 要素はあるならば、該当するもののうち,`~tree順序$で最初のものの`子孫~text内容$になる(~JSで言えば,要素`.labels[0].textContent^c )。 ◎ The Label of the command depends on the element. If the element is a labeled control, the descendant text content of the first label element in tree order whose labeled control is the element in question is the Label (in JavaScript terms, this is given by element.labels[0].textContent).\
他の場合、要素の`子孫~text内容$になる。 ◎ Otherwise, the Label is the element's descendant text content.
`~access~Key$cF
要素に`アテガわれている~access~Key$になる。 ◎ The Access Key of the command is the element's assigned access key.
`隠d状態$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. `~objを~focusする$( 要素 ) ◎ Run the focusing steps for the element.
  2. 要素に向けて`~click~eventを発火する$ ◎ Fire a click event at the element.

4.11.4. ``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
`~accessibilityの考慮点$
`dialog$AA ◎ For authors. For implementers.
`~DOM~interface$
[Exposed=Window]
interface `HTMLDialogElement@I : `HTMLElement$I {
  [`HTMLConstructor$] constructor();

  [`CEReactions$] attribute boolean ``open$m;
  attribute DOMString ``returnValue$m;
  [`CEReactions$] undefined ``show$m();
  [`CEReactions$] undefined ``showModal$m();
  [`CEReactions$] undefined ``close$m(optional DOMString %returnValue);
};

`dialog$e 要素は、利用者がある~taskを遂行するためにヤリトリする ~appの一部を表現する — 例えば ~dialog~box / ~inspector / ~UIwindow など。 ◎ 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層を通して間接的に実装されてもヨイ。 例えば,`示唆される既定の具現化を~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 属性は 指定されてはナラナイ。 ◎ 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 ~method~手続きは: ◎ 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 return.
  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.

``showModal()@m ~method~手続きは: ◎ 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.
  2. ~IF[ コレは`接続されて$いない ] ⇒ ~THROW `InvalidStateError$E ◎ If subject is not connected, then throw an "InvalidStateError" DOMException.
  3. コレの ``open$a 属性 ~SET 空~文字列 ◎ Add an open attribute to subject, whose value is the empty string.
  4. コレを`中央寄せ整列$~modeにする ◎ Set the dialog to the centered alignment mode.
  5. %文書 ~LET コレの`~node文書$ ◎ ↓
  6. コレを %文書 を`阻んでいる~modal~dialog$にする ◎ Let subject's node document be blocked by the modal dialog subject.

    注記: これは、 %文書 が`指名する被focus区画$を`不活$にする(現在の被focus区画がコレの`~shadowも含む子孫$でない限り)。 そのような事例では、`~focus修復~規則$が効き始めるので, %文書 が`指名する被focus区画$を — 今は — `表示域$に設定し直すことになるが、数~段~先で,~focusする もっと良い候補を見出そうと試みることになる。 ◎ This will cause the focused area of the document to become inert (unless that currently focused area is a shadow-including descendant of subject). In such cases, the focus fixup rule will kick in and reset the focused area of the document to the viewport for now. In a couple steps we will attempt to find a better candidate to focus.

  7. ~IF[ コレ ~NIN %文書 の`上端層$ ] ⇒ コレを %文書 の`上端層$に`追加する$tL ◎ If subject's node document's top layer does not already contain subject, then add subject to subject's node document's top layer.
  8. `~dialogを~focusする$( コレ ) ◎ Run the dialog focusing steps for subject.

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

  1. ~IF[ %dialog は`不活$である ] ⇒ ~RET ◎ If subject is inert, return.
  2. %L ~LET [ %dialog の子孫~要素のうち`不活$でないもの ]からなる `~tree順序$による~list ◎ ↓
  3. %~control ~SET [ %L 内に `autofocus$a 属性を有するものは在るならば それらのうち最初のもの / ~ELSE_ %L は空でないならば %L の最初の要素 / ~ELSE_ %dialog ] ◎ Let control be the first descendant element of subject, in tree order, that is not inert and has the autofocus attribute specified. ◎ If there isn't one, then let control be the first non-inert descendant element of subject, in tree order. ◎ If there isn't one of those either, then let control be subject.
  4. `~objを~focusする$( %~control ) ◎ Run the focusing steps for control.

    注記: %~control は`~focus可能$でない場合、これは何もしない。 ~modal~dialog用には、これは,文書が`指名する被focus区画$に 先の改変 を適用することを意味する。 ◎ If control is not focusable, this will do nothing. For modal dialogs, this means that any earlier modifications to the focused area of the document will apply.

  5. %~top文書 ~LET %~control の`~node文書$が`属する閲覧文脈$の`~top-level閲覧文脈$にて`作動中の文書$ ◎ Let topDocument be the active document of control's node document's browsing context's top-level browsing context.
  6. ~IF[ ( %~control の`~node文書$の`生成元$, %~top文書 の`生成元$ ) は`同一-生成元$でない ] ⇒ ~RET ◎ If control's node document's origin is not the same as the origin of topDocument, then return.
  7. %~top文書 の`自動focus候補たち$を`空にする$ ◎ Empty topDocument's autofocus candidates.
  8. %~top文書 の`自動focus処理-済み~flag$ ~SET ~T ◎ Set topDocument's autofocus processed flag to true.

`dialog$e 要素 %dialog が`文書$ %文書 `から除去され$たときは、 %dialog を %文書 の`上端層$からも`除去する$モノトスル。 ◎ If at any time a dialog element is removed from a Document, then if that dialog is in that Document's top layer, it must be removed from it.

``close(returnValue)@m ~method~手続きは ⇒ `~dialogを閉じる$( コレ, %returnValue ) ◎ 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.

`~dialogを閉じる@ ときは、所与の ( `dialog$e 要素 %dialog, 結果値 %結果 (省略時は ε )) に対し,次の手続きを走らす: ◎ 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[ %dialog は ``open$a 属性を有さない ] ⇒ ~RET ◎ If subject does not have an open attribute, then return.
  2. %dialog から ``open$a `属性を除去する$ ◎ Remove subject's open attribute.
  3. ~IF[ %結果 ~NEQ ε ] ⇒ %dialog の `結果値$ ~SET %結果 ◎ If the argument result was provided, then set the returnValue attribute to the value of result.
  4. %dialog を,その`~node文書$の`上端層$から`除去する$ ◎ If subject is in its Document's top layer, then remove it.
  5. 次を走らす`要素~taskを~queueする$( `利用者~対話~task源$, %dialog ) ⇒ %dialog に向けて,名前 `close$et の`~eventを発火する$ ◎ Queue an element task on the user interaction task source given the subject element to fire an event named close at subject.
``returnValue@m 取得子~手続きは ⇒ ~RET コレの`結果値$ ◎ The returnValue IDL attribute, on getting, must return the last value to which it was set.\
``returnValue$m 設定子~手続きは ⇒ コレの`結果値$ ~SET 所与の値 ◎ On setting, it must be set to the new value. When the element is created, it must be set to the empty string.

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

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


~dialogを取消すとき: [ `文書$を`阻んでいる~modal~dialog$ %dialog がある ]ときは、~UAは,作動化-時に次を行う~UIを供してもヨイ: ◎ Canceling dialogs: When Document is blocked by a modal dialog dialog, user agents may provide a user interface that, upon activation,\

  1. 次を走らす`要素~taskを~queueする$( `利用者~対話~task源$, %dialog ): ◎ queues an element task on the user interaction task source given the dialog element to run these steps:

    1. %close ~LET %dialog に向けて,名前 `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[ %dialog は ``open$a 属性を有する ] ⇒ `~dialogを閉じる$( %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は`通常の整列$になるモノトスル。 この~modeにおいては、要素には通常の~CSS要件が適用される。 `中央寄せ整列$が利用されるのは、`上端層$内にある `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 要素に対しては: ◎ When an element subject is placed in centered alignment mode,\

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

    • [ 要素の寸法( `width$p / `height$p) ~LT `表示域$の寸法 ]の場合 ⇒ [ `表示域$の始端~辺から~boxの始端`~margin辺$までの~~距離 ]~EQ[ `表示域$の終端~辺から~boxの終端`~margin辺$までの~~距離 ]
    • 他の場合 ⇒ ~boxの始端`~margin辺$と`表示域$の始端~辺は、一致する
    ◎ 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.
  • 要素が`具現化されて$いる下で,次のいずれかが生じたときは、前項に従って静的~位置を計算し直して,要素の~boxを作成し直すモノトスル ⇒# `表示域$の寸法が変化した【!不要 browsing context/(as measured in CSS pixels)】 / 要素の親の`塊~flow方向$が変化した ◎ 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が作成し直されるまで,保たれるモノトスル。 ◎ 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.\

    注記: 要素の`静的~位置$は、[ ある種の状況で,要素の`~inset~prop$の`使用~値$を計算するとき ]に限り,利用される — 一例として、 `position$p ~propが `static^v に設定された要素を位置するときには,利用されない。 ◎ (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 ~IDL属性は、 ``open$a 内容~属性を`反映する$モノトスル。 ◎ The open IDL attribute must reflect the open content attribute.

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

`dialog-1^xCode