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

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

簡潔に記述するため、この頁では,次の略記/定義を導入する:

4.10.5. `input^e 要素

`分類$
`~flow内容$ / `句内容$ ◎ Flow content. ◎ Phrasing content.

`Hidden$st `状態$でない場合に限り:

  • `対話的~内容$ / `可触~内容$ /
  • `~formに所有され得る要素$であって[ `~listされ$る / `~label可能$な / `提出-可能$な / `再設定-可能$な ]もの。
◎ ↓
`Hidden$st `状態$にある場合に限り ⇒ `~formに所有され得る要素$であって[ `~listされ$る / `提出-可能$な / `再設定-可能$な ]もの。 ◎ If the type attribute is not in the Hidden state: Interactive content. ◎ If the type attribute is not in the Hidden state: Listed, labelable, submittable, and resettable form-associated element. ◎ If the type attribute is in the Hidden state: Listed, submittable, and resettable form-associated element. ◎ If the type attribute is not in the Hidden state: Palpable content.
`この要素を利用できる文脈$
`句内容$が期待される所。 ◎ Where phrasing content is expected.
`内容~model$
`なし$。 ◎ Nothing.
`text/html における~tag省略$
`終了tag$はない。 ◎ No end tag.
`内容~属性$:
`大域~属性$ ◎ Global attributes
`accept$a — ~file~upload~control にて期待される~file型のための~hint。 ◎ accept — Hint for expected file type in file upload controls
`alt$a — 画像が可用でないときの代用~text。 ◎ alt — Replacement text for use when images are not available
`autocomplete$a — ~formの自動充填( autofill )特色機能のための~hintを与える。 ◎ autocomplete — Hint for form autofill feature
`autofocus$a — ~form~controlを,頁が読込まれた時点で自動的に~focusする。 ◎ autofocus — Automatically focus the form control when the page is loaded
`checked$a — この~controlが~checkされるかどうか。 ◎ checked — Whether the control is checked
`dirname$a — `~form提出$時に要素の`方向性$を送信するために利用される,~form~controlの名前。 ◎ dirname — Name of form control to use for sending the element's directionality in form submission
`disabled$a — ~form~controlは不能化されているかどうか。 ◎ disabled — Whether the form control is disabled
`form$a — この~controlを所有する `form$e 要素 `の~IDを与える^tnote 。 ◎ form — Associates the control with a form element
`formaction$a — `~form提出$時に利用する`~URL$ ◎ formaction — URL to use for form submission
`formenctype$a — `~form提出$時に利用する ~form~data集合の符号化法の種別。 ◎ formenctype — Form data set encoding type to use for form submission
`formmethod$a — `~form提出$時に利用する~HTTP~method。 ◎ formmethod — HTTP method to use for form submission
`formnovalidate$a — `~form提出$に際し,~form~control検証を迂回する。 ◎ formnovalidate — Bypass form control validation for form submission
`formtarget$a — `~form提出$に対する `それにより~navigateされる^tnote `閲覧文脈$。 ◎ formtarget — Browsing context for form submission
`height$a — 縦方向~寸法。 `画像~buttonの^tnote ◎ height — Vertical dimension
`inputmode$a — 入力~modalityを選択するための~hint。 ◎ inputmode — Hint for selecting an input modality
`list$a — 自動補完の選択肢からなる~list。 ◎ list — List of autocomplete options
【 “自動補完( autocomplete )” と “自動充填( autofill )” が似ていて紛らわしい(しかも,上の `autocomplete^a 属性は、自動充填の機能とされている)が、意味としては少し異なる。 前者は、例えば~URLの何~文字かを手入力した時点で,利用者が意図している完全な~URLを推測して自動的に補完する機能を指す。 後者は、入力~欄の名前や~data型から類推して,以前に記憶した利用者~dataでその欄を自動的に埋める機能を指す(例えば、利用者が過去に類似する名前/~data型の欄に手入力したことがあれば、そのときの入力で自動的に埋めるなど)。 】
`max$a — 最大~値。 ◎ max — Maximum value
`maxlength$a — 値の最大~長さ。 `文字~数^tnote ◎ maxlength — Maximum length of value
`min$a — 最小~値。 ◎ min — Minimum value
`minlength$a — 値の最小~長さ。 `文字~数^tnote ◎ minlength — Minimum length of value
`multiple$a — 複数個の値を許容するかどうか。 ◎ multiple — Whether to allow multiple values
`name$a — `~form提出$時 / `form.elements$m ~API に利用する~form~controlの名前。 ◎ name — Name of form control to use for form submission and in the form.elements API
`pattern$a — ~form~controlの値に合致させる~pattern。 ◎ pattern — Pattern to be matched by the form control's value
`placeholder$a — ~form~controlの中に置かれる,利用者から可視な~label。 ◎ placeholder — User-visible label to be placed within the form control
`readonly$a — 利用者が値を編集できるようにするかどうか。 ◎ readonly — Whether to allow the value to be edited by the user
`required$a — ~controlは`~form提出$に必須とされるかどうか。 ◎ required — Whether the control is required for form submission
`size$a — ~controlの~size。 `文字~数。^tnote ◎ size — Size of the control
`src$a — 資源の~address。 `画像~buttonの資源^tnote ◎ src — Address of the resource
`step$a — ~form~controlの値を合致させる粒度。 ◎ step — Granularity to be matched by the form control's value
`type$a — ~form~controlの型。 ◎ type — Type of form control
`value$a — ~form~controlの値。 ◎ value — Value of the form control
`width$a — 横方向~寸法。 `画像~buttonの^tnote ◎ width — Horizontal dimension
この要素~上の `title$a 属性には、 `pattern$a 属性との併用-時に,~patternの記述を与える 特別な意味論もある 。 ◎ Also, the title attribute has special semantics on this element: Description of pattern (when used with pattern attribute).
`~DOM~interface$
[`HTMLConstructor$I]
interface `HTMLInputElement@I : `HTMLElement$I {
  [`CEReactions$] attribute DOMString `accept$m;
  [`CEReactions$] attribute DOMString `alt$m;
  [`CEReactions$] attribute DOMString `autocomplete$m;
  [`CEReactions$] attribute boolean `autofocus$m;
  [`CEReactions$] attribute boolean `defaultChecked$m;
  attribute boolean `checked$m;
  [`CEReactions$] attribute DOMString `dirName$m;
  [`CEReactions$] attribute boolean `disabled$m;
  readonly attribute `HTMLFormElement$I? `form$m;
  readonly attribute `FileList$I? `files$m;
  [`CEReactions$] attribute USVString `formAction$m;
  [`CEReactions$] attribute DOMString `formEnctype$m;
  [`CEReactions$] attribute DOMString `formMethod$m;
  [`CEReactions$] attribute boolean `formNoValidate$m;
  [`CEReactions$] attribute DOMString `formTarget$m;
  [`CEReactions$] attribute unsigned long `height$m;
  attribute boolean `indeterminate$m;
  [`CEReactions$] attribute DOMString `inputMode$m;
  readonly attribute `HTMLElement$I? `list$m;
  [`CEReactions$] attribute DOMString `max$m;
  [`CEReactions$] attribute long `maxLength$m;
  [`CEReactions$] attribute DOMString `min$m;
  [`CEReactions$] attribute long `minLength$m;
  [`CEReactions$] attribute boolean `multiple$m;
  [`CEReactions$] attribute DOMString `name$m;
  [`CEReactions$] attribute DOMString `pattern$m;
  [`CEReactions$] attribute DOMString `placeholder$m;
  [`CEReactions$] attribute boolean `readOnly$m;
  [`CEReactions$] attribute boolean `required$m;
  [`CEReactions$] attribute unsigned long `size$m;
  [`CEReactions$] attribute USVString `src$m;
  [`CEReactions$] attribute DOMString `step$m;
  [`CEReactions$] attribute DOMString `type$m;
  [`CEReactions$] attribute DOMString `defaultValue$m;
  [`CEReactions$] attribute [TreatNullAs=EmptyString] DOMString `value$m;
  attribute `object$js? `valueAsDate$m;
  attribute unrestricted double `valueAsNumber$m;
  [`CEReactions$] attribute unsigned long `width$m;

  void `stepUp$m(optional long %n = 1);
  void `stepDown$m(optional long %n = 1);

  readonly attribute boolean `willValidate$m;
  readonly attribute `ValidityState$I `validity$m;
  readonly attribute DOMString `validationMessage$m;
  boolean `checkValidity$m();
  boolean `reportValidity$m();
  void `setCustomValidity$m(DOMString %error);

  readonly attribute `NodeList$I? `labels$m;

  void `select$m();
  attribute unsigned long? `selectionStart$m;
  attribute unsigned long? `selectionEnd$m;
  attribute DOMString? `selectionDirection$m;
  void `setRangeText$m(DOMString %replacement);
  void `setRangeText$m(DOMString %replacement, unsigned long %start, unsigned long %end, optional `SelectionMode$I %selectionMode = "preserve");
  void `setSelectionRange$m(unsigned long %start, unsigned long %end, optional DOMString %direction);
};

`input$e 要素は、通例的に ~form~controlに伴われ,利用者が~dataを編集できるような,型を持つ~data欄を`表現-$する。 ◎ The input element represents a typed data field, usually with a form control to allow the user to edit the data.

`type@a 属性は、`列挙ed属性$であり,要素の~data型(および,要素が表現する~control)を制御する。 次の表に,この属性に対する各種~keywordと状態を~listする — 1 列目の~keywordは、同じ行の 2 列目に示す状態に対応付けられる。 ◎ The type attribute controls the data type (and associated control) of the element. It is an enumerated attribute. The following table lists the keywords and states for the attribute — the keywords in the left column map to the states in the cell in the second column on the same row as the keyword.

【 この和訳では、状態~名を,単に~keywordの最初の文字を大文字にしただけの文字列で表す(原文の状態~名に概ね一致する)。 原文の状態~名には,もう少し説明的にされているものもあるが、ここでは対応関係を簡明にすることを優先する。 】

~keyword◎Keyword 状態◎State ~data型◎Data type ~control型◎Control type
`hidden@v `Hidden$st 任意の文字列。 ◎ An arbitrary string 可用でない ◎ n/a
`text@v `Text$st 改行のない~text。 ◎ Text with no line breaks ~text~control ◎ A text control
`search@v `Search$st 改行のない~text。 ◎ Text with no line breaks ~search~control ◎ Search control
`tel@v `Tel$st 改行のない~text。 ◎ Text with no line breaks ~text~control ◎ A text control
`url@v `Url$st 絶対~URL。 ◎ An absolute URL ~text~control ◎ A text control
`email@v `Email$st ~e-mail~address, または それらの~list。 ◎ An e-mail address or list of e-mail addresses ~text~control ◎ A text control
`password@v `Password$st 改行のない~text(敏感な情報)。 ◎ Text with no line breaks (sensitive information) 手入力された~dataを遮蔽する~text~control ◎ A text control that obscures data entry
`date@v `Date$st ( 年t, 月t, 日t ) からなり,時間帯は伴わない日付t。 ◎ A date (year, month, day) with no time zone 日付t~control ◎ A date control
`month@v `Month$st ( 年t, 月t ) からなり, 時間帯は伴わない日付t。 ◎ A date consisting of a year and a month with no time zone 年月t~control ◎ A month control
`week@v `Week$st ( 週年t, 週t ) からなり, 時間帯は伴わない日付t。 ◎ A date consisting of a week-year number and a week number with no time zone 年週t~control ◎ A week control
`time@v `Time$st ( 時t, 分t, 秒t ) からなり,時間帯は伴わない時刻t(秒tには小数部も伴われ得る)。 ◎ A time (hour, minute, seconds, fractional seconds) with no time zone 時刻t~control ◎ A time control
`datetime-local@v `Datetime-local$st ( 年t, 月t, 日t, 時t, 分t, 秒t ) からなり,時間帯は伴わない日時t(秒tには小数部も伴われ得る)。 ◎ A date and time (year, month, day, hour, minute, second, fraction of a second) with no time zone 日時t~control ◎ A date and time control
`number@v `Number$st 数値。 ◎ A numerical value ~text~control, または “増減~button付き” ~control ◎ A text control or spinner control
`range@v `Range$st 数値であるが、正確な値は重要でないとする意味論も伴う。 ◎ A numerical value, with the extra semantic that the exact value is not important ~slider~controlの類 ◎ A slider control or similar
`color@v `Color$st 8-bitの ( ~red, ~green, ~blue ) 成分からなる~sRGB色。 ◎ An sRGB color with 8-bit red, green, and blue components 色~picker ◎ A color picker
`checkbox@v `Checkbox$st 定義済みの~listを成す 0 個~以上の値からなる集合。 ◎ A set of zero or more values from a predefined list ~checkbox ◎ A checkbox
`radio@v `Radio$st 列挙ed値。 ◎ An enumerated value ~radio~button ◎ A radio button
`file@v `File$st それぞれが[ `~MIME型$, および任意選択で~file名 ]を伴うような, 0 個~以上の~file。 ◎ Zero or more files each with a MIME type and optionally a file name ~buttonとその~label ◎ A label and a button
`submit@v `Submit$st 列挙ed値。 加えて、[ 最後に選択される値であって,~form提出を起動し~MUST ]とする意味論も伴う。 ◎ An enumerated value, with the extra semantic that it must be the last value selected and initiates form submission ~button ◎ A button
`image@v `Image$st 特定0の画像の~sizeに相対的な座標。 加えて、[ 最後に選択される値であって,~form提出を起動し~MUST ]とする,意味論も伴う。 ◎ A coordinate, relative to a particular image's size, with the extra semantic that it must be the last value selected and initiates form submission ~clickに~~反応する画像や~button ◎ Either a clickable image, or a button
`reset@v `Reset$st 可用でない。 ◎ n/a ~button ◎ A button
`button@v `Button$st 可用でない。 ◎ n/a ~button ◎ A button

`値なしに対する既定の状態$は、 `Text$st 状態とする。 ◎ The missing value default is the Text state.

要素の~data型は、各種 `状態$に対応する下位節にて定義される。

次に挙げる[ 内容~属性 / ~IDL~member(属性/~method)/ ~event ]は、要素の`状態$に依存して,要素に[ `適用される@, `適用されない@ ]のいずれかになる:

内容~属性
`accept$a, `alt$a, `autocomplete$a, `checked$a, `dirname$a, `formaction$a, `formenctype$a, `formmethod$a, `formnovalidate$a, `formtarget$a, `height$a, `inputmode$a, `list$a, `max$a, `maxlength$a, `min$a, `minlength$a, `multiple$a, `pattern$a, `placeholder$a, `readonly$a, `required$a, `size$a, `src$a, `step$a, `width$a
~IDL~member
`checked$m, `files$m, `valueAsDate$m, `valueAsNumber$m, `list$m
`select()$m `selectionStart$m, `selectionEnd$m, `selectionDirection$m
`setRangeText()$m, `setSelectionRange()$m, `stepUp()$m, `stepDown()$m
~event
`input$et, `change$et

上に挙げた特色機能のうち どれが要素に[ `適用される$ / `適用されない$ ]かは、各種 `状態$に対応する下位節にて,規範的かつ明瞭に定義される — 次のような表形式により:

`適用される$`適用されない$
内容~属性 この欄に挙げられる内容~属性は、適用される。 この欄に挙げられる内容~属性は、適用されない。 加えて,ここに挙げられる内容~属性は、 当の`状態$にある要素に指定されては~MUST_NOT。
~IDL~member この欄に挙げられる~IDL~memberは、適用される。 この欄に挙げられる~IDL~memberは、適用されない。
~event この欄に挙げられる~eventは、適用される。 この欄に挙げられる~eventは、適用されない。

これらの特色機能の挙動は、`適用される$かどうかに依存し,種々の節に定義される( 内容~属性~API~event 各節を見よ)。

◎ Which of the accept, alt, autocomplete, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, list, max, maxlength, min, minlength, multiple, pattern, placeholder, readonly, required, size, src, step, and width content attributes, the checked, files, valueAsDate, valueAsNumber, and list IDL attributes, the select() method, the selectionStart, selectionEnd, and selectionDirection, IDL attributes, the setRangeText() and setSelectionRange() methods, the stepUp() and stepDown() methods, and the input and change events apply to an input element depends on the state of its type attribute. The subsections that define each type also clearly define in normative "bookkeeping" sections which of these feature apply, and which do not apply, to each type. The behavior of these features depends on whether they apply or not, as defined in their various sections (q.v. for content attributes, for APIs, for events).

次の規範的でない表に,各~状態に対しどの[ 内容~属性 / ~IDL~member / ~event ]が`適用される$かを要約する(表内の “・” は適用されない / 他は適用される): ◎ The following table is non-normative and summarizes which of those content attributes, IDL attributes, methods, and events apply to each state:

`状態$
`Hidden$st `Text$st, `Search$st `Url$st, `Tel$st `Email$st `Password$st `Date$st, `Month$st, `Week$st, `Time$st `Datetime-local$st `Number$st `Range$st `Color$st `Checkbox$st, `Radio$st `File$st `Submit$st `Image$st `Reset$st, `Button$st
内容~属性 ◎ Content attributes
`accept$a `●^BK
`alt$a `●^BK
`autocomplete$a `●^BK
`checked$a `●^BK
`dirname$a `●^BK
`formaction$a `●^BK
`formenctype$a `●^BK
`formmethod$a `●^BK
`formnovalidate$a `●^BK
`formtarget$a `●^BK
`height$a `●^BK
`inputmode$a `●^BK
`list$a `●^BK
`max$a `●^BK
`maxlength$a `●^BK
`min$a `●^BK
`minlength$a `●^BK
`multiple$a `●^BK
`pattern$a `●^BK
`placeholder$a `●^BK
`readonly$a `●^BK
`required$a `●^BK
`size$a `●^BK
`src$a `●^BK
`step$a `●^BK
`width$a `●^BK
~IDL~member ◎ IDL attributes and methods
`checked$m `●^BK
`files$m `●^BK
`value$m `既定~mode$ `値~mode$ `値~mode$ `値~mode$ `値~mode$ `値~mode$ `値~mode$ `値~mode$ `値~mode$ `値~mode$ `既定か~on~mode$ `~filename~mode$ `既定~mode$ `既定~mode$ `既定~mode$
`valueAsDate$m `●^BK
`valueAsNumber$m `●^BK
`list$m `●^BK
`select()$m† `●^BK
`selectionStart$m `●^BK
`selectionEnd$m `●^BK
`selectionDirection$m `●^BK
`setRangeText()$m `●^BK
`setSelectionRange()$m `●^BK
`stepDown()$m `●^BK
`stepUp()$m `●^BK
~event ◎ Events
`input$et ~event `●^BK
`change$et ~event `●^BK

"テ" と記されたものは、~control内に選択-可能な~textがない場合, `select()$m ~methodは何もしない。 したがって `InvalidStateError$E 例外も投出されない。 ◎ † If the control has no selectable text, the select() method results in a no-op, with no "InvalidStateError" DOMException.

一部の状態には、 `値の消毒~algo@ が定義される。 ◎ Some states of the type attribute define a value sanitization algorithm.

各 要素は、`値$を持ち, `value$m ~IDL属性により公開される。

一部の状態には,次の~algoが定義され、[ `max$a / `min$a / `step$a ]内容~属性, および[ `valueAsDate$m / `valueAsNumber$m / `stepUp()$m ]~IDL~memberにて利用される:

  • `文字列から実数に変換-@する~algo
  • `実数から文字列に変換-@する~algo
  • `文字列から~Date~objに変換-@する~algo
  • `~Date~objから文字列に変換-@する~algo
◎ Each input element has a value, which is exposed by the value IDL attribute. Some states define an algorithm to convert a string to a number, an algorithm to convert a number to a string, an algorithm to convert a string to a Date object, and an algorithm to convert a Date object to a string, which are used by max, min, step, valueAsDate, valueAsNumber, and stepUp().

要素の`~dirty値~flag$は、利用者が~controlと対話して`値$を変更したときには, ~T に設定され~MUST(また、 `value$m ~IDL属性の定義に述べるように,値が~program的に変更された場合も ~T に設定される)。 ◎ An input element's dirty value flag must be set to true whenever the user interacts with the control in a way that changes the value. (It is also set to true when the value is programmatically changed, as described in the definition of the value IDL attribute.)

`value@a 内容~属性は、要素に対する既定の`値$を与える。 この属性が[ 追加- / 設定- / 除去- ]されたときは、~UAは,次を走らせ~MUST:

  1. ~IF[ 要素の`~dirty値~flag$ ~EQ ~T ] ⇒ ~RET
  2. 要素の`値$ ~SET[ 要素が `value$a 内容~属性を有するならば その値 / ~ELSE_ 空~文字列 ]
  3. 要素の`状態$に`値の消毒~algo$は定義されているならば、それを呼出す
◎ The value content attribute gives the default value of the input element. When the value content attribute is added, set, or removed, if the control's dirty value flag is false, the user agent must set the value of the element to the value of the value content attribute, if there is one, or the empty string otherwise, and then run the current value sanitization algorithm, if one is defined.

各 要素には、`~checkedness$があり, `checked$m ~IDL属性により公開される。 ◎ Each input element has a checkedness, which is exposed by the checked IDL attribute.

各 要素は、真偽~値をとる `~dirty~checkedness~flag@ を持つ:

  • ~T の場合、要素は `~dirty~checkedness@ であるという。

    【 和訳では この用語は利用しない。 単に `~dirty~checkedness~flag$を通して述べることにする。 】

  • 要素の作成-時には, ~F にされ~MUST。
  • 利用者が~controlと対話して`~checkedness$を変更したときには, ~T にされ~MUST。
◎ Each input element has a boolean dirty checkedness flag. When it is true, the element is said to have a dirty checkedness. The dirty checkedness flag must be initially set to false when the element is created, and must be set to true whenever the user interacts with the control in a way that changes the checkedness.

`checked@a 内容~属性は、要素の既定の`~checkedness$を与える`真偽~属性$である。 ~UAは、[ ~controlの`~dirty~checkedness~flag$ ~EQ ~F ]の下で, `checked$a 内容~属性が[ 追加-/除去- ]されたときは、要素の`~checkedness$を[ ~T / ~F ]に設定し~MUST。 ◎ The checked content attribute is a boolean attribute that gives the default checkedness of the input element. When the checked content attribute is added, if the control does not have dirty checkedness, the user agent must set the checkedness of the element to true; when the checked content attribute is removed, if the control does not have dirty checkedness, the user agent must set the checkedness of the element to false.

要素に対する`再設定~algo$は、次を走らす: ◎ The reset algorithm for input elements is\

  1. 要素の`~dirty値~flag$ ~SET ~F ◎ to set the dirty value flag and\
  2. 要素の`~dirty~checkedness~flag$ ~SET ~F ◎ dirty checkedness flag back to false,\
  3. 要素の`値$ ~SET [ 要素が `value$a 内容~属性を有するならば その値 / ~ELSE_ 空~文字列 ]に設定する ◎ set the value of the element to the value of the value content attribute, if there is one, or the empty string otherwise,\
  4. 要素の`~checkedness$ ~SET [ 要素が `checked$a 内容~属性を有するならば ~T / ~ELSE_ ~F ] ◎ set the checkedness of the element to true if the element has a checked content attribute and false if it does not,\
  5. `選択された~file~list$があるならば、それを空にする ◎ empty the list of selected files, and then\
  6. 要素の現在の`状態$に`値の消毒~algo$は定義されているならば、それを呼出す ◎ invoke the value sanitization algorithm, if the type attribute's current state defines one.

どの要素も`変異可能$になり得る。 他から指定される場合を除き: ◎ Each input element can be mutable.\

`不能化され$た要素は、`変異可能$でなくなる。 ◎ When an input element is disabled, it is not mutable.

注記: 一部の事例(例えば `Date$st 状態は該当するが, `Checkbox$st 状態は該当しない)では、 `readonly$a 属性も要素を`変異可能$でなくする。 ◎ The readonly attribute can also in some cases (e.g. for the Date state, but not the Checkbox state) stop an input element from being mutable.

要素に対する`~clone時の手続き$は、~clone元~nodeの[ `値$, `~dirty値~flag$, `~checkedness$, `~dirty~checkedness~flag$ ]も,複製へ伝播させ~MUST。 ◎ The cloning steps for input elements must propagate the value, dirty value flag, checkedness, and dirty checkedness flag from the node being cloned to the copy.

要素 %要素 に対する`作動化の挙動$は、次の手続きを走らす: ◎ The activation behavior for input elements are these steps:

  1. ~IF[ %要素 は`変異可能$でない ] ⇒ ~RET ◎ If this element is not mutable, then abort these steps.
  2. %要素 に `~input作動化の挙動@ があれば それを走らす ◎ Run this element's input activation behavior, if any, and do nothing otherwise.

要素 %要素 に対する`旧来の作動化~前の挙動$は、次の手続きを走らす: ◎ The legacy-pre-activation behavior for input elements are these steps:

  1. ~IF[ %要素 は`変異可能$でない ] ⇒ ~RET ◎ If this element is not mutable, then abort these steps.
  2. %要素 の `type$a 属性の状態に応じて:

    `Checkbox$st
    1. ( %C, %I ) ~LET %要素 の ( `~checkedness$, `indeterminate$m ~IDL属性~値 )
    2. %要素 の`~checkedness$ ~SET %C に応じて[ ~F ならば ~T / ~T ならば ~F ]
    3. %要素 の `indeterminate$m ~IDL属性 ~SET ~F
    ◎ If this element's type attribute is in the Checkbox state, then set this element's checkedness to its opposite value (i.e. true if it is false, false if it is true) and set this element's indeterminate IDL attribute to false.
    `Radio$st
    1. %G ~LET %要素 が属する`~radio~button群$
    2. %X ~LET %G 内に[ `~checkedness$ ~EQ ~T ]なるものが[ あれば それ / なければ ε ]
    3. %要素 の`~checkedness$ ~SET ~T
    ◎ If this element's type attribute is in the Radio Button state, then get a reference to the element in this element's radio button group that has its checkedness set to true, if any, and then set this element's checkedness to true.

要素 %要素 に対する`旧来の作動化~取消~時の挙動$は、次の手続きを走らす: ◎ The legacy-canceled-activation behavior for input elements are these steps:

  1. ~IF[ %要素 は`変異可能$でない ] ⇒ ~RET ◎ If the element is not mutable, then abort these steps.
  2. %要素 の `type$a 属性の状態に応じて:

    `Checkbox$st
    %要素 の ( `~checkedness$, `indeterminate$m ~IDL属性 ) ~SET `旧来の作動化~前の挙動$にて得られた ( %C, %I ) ◎ If the element's type attribute is in the Checkbox state, then set the element's checkedness and the element's indeterminate IDL attribute back to the values they had before the legacy-pre-activation behavior was run.
    `Radio$st
    1. ( %G, %X ) ~LET `旧来の作動化~前の挙動$にて得られた ( %G, %X )
    2. ~IF[ %X ~NEQ ε ]~AND[ %要素 ~IN %G ]~AND[ %X ~IN %G ] ⇒ %X の`~checkedness$ ~SET ~T
    3. ~ELSE ⇒ %要素 の`~checkedness$ ~SET ~F
    ◎ If this element's type attribute is in the Radio Button state, then if the element to which a reference was obtained in the legacy-pre-activation behavior, if any, is still in what is now this element's radio button group, if it still has one, and if so, setting that element's checkedness to true; or else, if there was no such element, or that element is no longer in this element's radio button group, or if this element no longer has a radio button group, setting this element's checkedness to false.

新たな要素の作成-時には、次をし~MUST:

  1. 要素の描画と挙動を,その`状態$に対し定義される描画と挙動に設定する。
  2. 要素の`状態$に`値の消毒~algo$は定義されているならば、それを呼出す。
◎ When an input element is first created, the element's rendering and behavior must be set to the rendering and behavior defined for the type attribute's state, and the value sanitization algorithm, if one is defined for the type attribute's state, must be invoked.

要素 %要素 の`状態$が変化したときは、~UAは,次の手続きを走らせ~MUST: ◎ When an input element's type attribute changes state, the user agent must run the following steps:

  1. ( %旧~mode, %新~mode ) ~LET ( 変化-前, 変化-後 ) の`状態$における, %要素 の `value$m ~IDL属性の~mode ◎ ↓
  2. ~IF[ %旧~mode ~EQ `値~mode$ ]~AND[ %要素 の`値$ ~NEQ 空~文字列 ]~AND[ %新~mode ~IN { `既定~mode$, `既定か~on~mode$ } ] ⇒ %要素 の `value$a 内容~属性 ~SET %要素 の`値$ ◎ If the previous state of the element's type attribute put the value IDL attribute in the value mode, and the element's value is not the empty string, and the new state of the element's type attribute puts the value IDL attribute in either the default mode or the default/on mode, then set the element's value content attribute to the element's value.
  3. ~ELIF[ %旧~mode ~NEQ `値~mode$ ]~AND[ %新~mode ~EQ `値~mode$ ]:

    1. %要素 の`値$ ~SET [ %要素 は `value$a 内容~属性を有するならば その値 / ~ELSE_ 空~文字列 ]
    2. %要素 の`~dirty値~flag$ ~SET ~F
    ◎ Otherwise, if the previous state of the element's type attribute put the value IDL attribute in any mode other than the value mode, and the new state of the element's type attribute puts the value IDL attribute in the value mode, then set the value of the element to the value of the value content attribute, if there is one, or the empty string otherwise, and then set the control's dirty value flag to false.
  4. ~ELIF[ %旧~mode ~NEQ `~filename~mode$ ]~AND[ %新~mode ~EQ `~filename~mode$ ] ⇒ %要素 の`値$ ~SET 空~文字列 ◎ Otherwise, if the previous state of the element's type attribute put the value IDL attribute in any mode other than the filename mode, and the new state of the element's type attribute puts the value IDL attribute in the filename mode, then set the value of the element to the empty string.
  5. %要素 の描画と挙動を,新たな`状態$のそれらに更新する ◎ Update the element's rendering and behavior to the new state's.
  6. %要素 に対し, 型~変化を合図する (これは特に、 `Radio$st 状態に利用される。) ◎ Signal a type change for the element. (The Radio Button state uses this, in particular.)
  7. 変化-後の`状態$において %要素 に`値の消毒~algo$は定義されているならば それを呼出す ◎ Invoke the value sanitization algorithm, if one is defined for the type attribute's new state.
  8. ~IF[ 変化-前の`状態$において %要素 に `setRangeText$m は`適用されない$ ]~AND[ 変化-後の`状態$において %要素 に `setRangeText$m は`適用される$ ]:

    1. ~Assert: %要素 は~text~controlを表現する
    2. %要素 の~text手入力~cursor位置 ~SET ~text~controlの先頭
    3. `none^l に %要素 の`選択~方向を設定する$
    ◎ Let previouslySelectable be true if setRangeText() previously applied to the element, and false otherwise. ◎ Let nowSelectable be true if setRangeText() now applies to the element, and false otherwise. ◎ If previouslySelectable is false and nowSelectable is true, set the element's text entry cursor position to the beginning of the text control, and set its selection direction to "none".

各種 内容~属性: ◎ ↓

`indeterminate@m
初期時には ~F に設定され~MUST。 ◎ The indeterminate IDL attribute must initially be set to false.\
取得子は、最後に設定された値を返さ~MUST。 ◎ On getting, it must return the last value it was set to.\
設定子は、所与の値に設定し~MUST。 これは、 `Checkbox$st ~controlの外観を変更する以外に効果はない。 ◎ On setting, it must be set to the new value. It has no effect except for changing the appearance of checkbox controls.
`accept@m
`alt@m
`max@m
`min@m
`multiple@m
`pattern@m
`placeholder@m
`required@m
`size@m
`src@m
`step@m
いずれも,対応する同じ名前の内容~属性を`反映-$し~MUST。 ◎ The accept, alt, max, min, multiple, pattern, placeholder, required, size, src, and step IDL attributes must reflect the respective content attributes of the same name.
`dirName@m
`dirname$a 内容~属性を`反映-$し~MUST。 ◎ The dirName IDL attribute must reflect the dirname content attribute.
`readOnly@m
`readonly$a 内容~属性を`反映-$し~MUST。 ◎ The readOnly IDL attribute must reflect the readonly content attribute.
`defaultChecked@m
`checked$a 内容~属性を`反映-$し~MUST。 ◎ The defaultChecked IDL attribute must reflect the checked content attribute.
`defaultValue@m
`value$a 内容~属性を`反映-$し~MUST。 ◎ The defaultValue IDL attribute must reflect the value content attribute.
`type@m
`既知の値のみに制限され$る下で, `type$a 内容~属性を`反映-$し~MUST。 ◎ The type IDL attribute must reflect the respective content attribute of the same name, limited to only known values.
`inputMode@m
`既知の値のみに制限され$る下で, `inputmode$a 内容~属性を`反映-$し~MUST。 ◎ The inputMode IDL attribute must reflect the inputmode content attribute, limited to only known values.
`maxLength@m
`非負~数のみに制限され$る下で, `maxlength$a 内容~属性を`反映-$し~MUST。 ◎ The maxLength IDL attribute must reflect the maxlength content attribute, limited to only non-negative numbers.
`minLength@m
`非負~数のみに制限され$る下で, `minlength$a 内容~属性を`反映-$し~MUST。 ◎ The minLength IDL attribute must reflect the minlength content attribute, limited to only non-negative numbers.
`width@m
`height@m

取得子は、次を走らせ~MUST:

  1. ~IF[ 画像は`可用$でない ] ⇒ ~RET 0
  2. ~IF[ 画像は視覚~媒体に`描画されて$いる ] ⇒ ~RET `~CSS~pixel$単位による,描画された画像の 横幅 / 縦幅
  3. ~RET `~CSS~pixel$単位による,画像の`内在的~縦幅/横幅$ `CSS$r

[ `状態$ ~EQ `Image$st ]でない限り,要素の画像は`可用$でないとする。

◎ The IDL attributes width and height must return the rendered width and height of the image, in CSS pixels, if an image is being rendered, and is being rendered to a visual medium; or else the intrinsic width and height of the image, in CSS pixels, if an image is available but not being rendered to a visual medium; or else 0, if no image is available. When the input element's type attribute is not in the Image Button state, then no image is available. [CSS]
設定子は、対応する同じ名前の内容~属性を`反映-$しているかのように動作し~MUST。 ◎ On setting, they must act as if they reflected the respective content attributes of the same name.

次に挙げる各種~IDL~memberは:

4.10.5.1. `type$a 属性の各種 状態

4.10.5.1.1. `Hidden^st 状態( `type=hidden^c )

`Hidden$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Hidden state, the rules in this section apply.

要素は、利用者により[ 検分-/操作- ]されないものと意図される値を`表現-$する。 ◎ The input element represents a value that is not intended to be examined or manipulated by the user.

拘束検証 ⇒ この`状態$にある要素は、`拘束検証の対象外$になる。 ◎ Constraint validation: If an input element's type attribute is in the Hidden state, it is barred from constraint validation.

`name$a 属性が在する~AND[ その値 ~EQ 文字列 "`_charset_$v" ]の場合、要素の `value$a 属性は,省略され~MUST。 ◎ If the name attribute is present and has a value that is a case-sensitive match for the string "_charset_", then the element's value attribute must be omitted.

`Hidden^bk

`value$m ~IDL属性は、`既定~mode$になる。

◎ The autocomplete content attribute applies to this element. ◎ The value IDL attribute applies to this element and is in mode default. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, list, max, maxlength, min, minlength, multiple, pattern, placeholder, readonly, required, size, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, list, selectionStart, selectionEnd, selectionDirection, valueAsDate, and valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), stepDown(), and stepUp() methods. ◎ The input and change events do not apply.
4.10.5.1.2. `Text^st ( `type=text^c) 状態, `Search^st 状態( `type=search^c )

[ `Text$st / `Search$st ]`状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Text state or the Search state, the rules in this section apply.

要素は、その`値$を編集するための,一行の素の~text~controlを`表現-$する。 ◎ The input element represents a one line plain text edit control for the element's value.

注記: `Text$st 状態と `Search$st 状態との主な相違は,~style上のものでしかない。 ~search~controlと定例の~text~controlとが判別されるような~platform上では、 `Search$st ~controlの外観は,定例の~text~controlのそれではなく,~platformの~search~controlの外観に合わせられるかもしれない。 ◎ The difference between the Text state and the Search state is primarily stylistic: on platforms where search controls are distinguished from regular text controls, the Search state might result in an appearance consistent with the platform's search controls rather than appearing like a regular text control.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • その`値$を 利用者が編集できるようにするべきである。 ◎ its value should be editable by the user.\
  • 利用者が要素の`値$の中に`改行文字$を挿入できるようにしては~MUST_NOT。 ◎ User agents must not allow users to insert U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the element's value.

要素が`変異可能$な場合、~UAは,利用者が 要素の書字~方向を[ 左横書き / 右横書き ]いずれかに変更できるようにするべきである。 利用者がそれを行った場合、~UAは,次の手続きを走らせ~MUST: ◎ If the element is mutable, the user agent should allow the user to change the writing direction of the element, setting it either to a left-to-right writing direction or a right-to-left writing direction. If the user does so, the user agent must then run the following steps:

  1. 要素の`dir$a 属性 ~SET 利用者が選択した書字~方向に応じて[ 左横書きならば `ltr$v / 右横書きならば `rtl$v ] ◎ Set the element's dir attribute to "ltr" if the user selected a left-to-right writing direction, and "rtl" if the user selected a right-to-left writing direction.
  2. 次を走らす`~taskを待入する$ ⇒ `input$et `~eventを発火する$ ◎ Queue a task to fire an event named input at the input element, with the bubbles attribute initialized to true.

`value$a 属性に指定する値は、`改行文字$を含んでは~MUST_NOT。 ◎ The value attribute, if specified, must have a value that contains no U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters.

`値の消毒~algo$ ⇒ `値$から`改行文字を剥ぐ$。 ◎ The value sanitization algorithm is as follows: Strip newlines from the value.

`Text^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, dirname, inputmode, list, maxlength, minlength, pattern, placeholder, readonly, required, and size content attributes; list, selectionStart, selectionEnd, selectionDirection, and value IDL attributes; select(), setRangeText(), and setSelectionRange() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, formaction, formenctype, formmethod, formnovalidate, formtarget, height, max, min, multiple, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, valueAsDate, and valueAsNumber IDL attributes; stepDown() and stepUp() methods.
4.10.5.1.3. `Tel^st 状態( `type=tel^c )

`Tel$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Telephone state, the rules in this section apply.

要素は、その`値$にて与えられる電話~番号を編集するための~controlを`表現-$する。 ◎ The input element represents a control for editing a telephone number given in the element's value.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,`値$を編集できるようにするべきである。 ◎ its value should be editable by the user.\
  • アキを変更して~MAY。 また、~~一定の~~条件下で,利用者が手入力した`値$の約物を変更して~MAY。 ◎ User agents may change the spacing and, with care, the punctuation of values that the user enters.\
  • 利用者が,要素の`値$の中に`改行文字$を挿入できるようにしては~MUST_NOT。 ◎ User agents must not allow users to insert U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the element's value.

`value$a 属性に指定する値は、`改行文字$を含んでは~MUST_NOT。 ◎ The value attribute, if specified, must have a value that contains no U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters.

`値の消毒~algo$ ⇒ `値$から`改行文字を剥ぐ$。 ◎ The value sanitization algorithm is as follows: Strip newlines from the value.

注記: `Url$st / `Email$st 型と違って、 `Tel$st 型は,特定0の構文を施行しない。 これは意図的である。 妥当な電話~番号は多様なので、実施においては,電話~番号~欄は自由形にされる傾向にある。 特定0の形式を施行する必要がある~systemでは、 `pattern$a 属性や `setCustomValidity()$m ~methodを利用して,~client側の中に検証の仕組みを~hookすることが奨励される。 ◎ Unlike the URL and E-mail types, the Telephone type does not enforce a particular syntax. This is intentional; in practice, telephone number fields tend to be free-form fields, because there are a wide variety of valid phone numbers. Systems that need to enforce a particular format are encouraged to use the pattern attribute or the setCustomValidity() method to hook into the client-side validation mechanism.

`Tel^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, maxlength, minlength, pattern, placeholder, readonly, required, and size content attributes; list, selectionStart, selectionEnd, selectionDirection, and value IDL attributes; select(), setRangeText(), and setSelectionRange() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, max, min, multiple, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, valueAsDate, and valueAsNumber IDL attributes; stepDown() and stepUp() methods.
4.10.5.1.4. `Url^st 状態( `type=url^c )

`Url$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the URL state, the rules in this section apply.

要素は、その`値$にて与えられる単独の`絶対~URL$を編集するための~controlを`表現-$する。 ◎ The input element represents a control for editing a single absolute URL given in the element's value.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,その`値$が表現する~URLを変更できるようにするべきである。 ◎ the user agent should allow the user to change the URL represented by its value.\
  • 利用者が `値$を[ `妥当$urlな`絶対~URL$でない文字列 ]に設定できるようにして~MAYが、`値$が常に`妥当$urlな`絶対~URL$になるよう,利用者により手入力された文字を自動的に~escapeしても~MAY(それが~~実在しない~URLで,利用者が~UI内で編集している場合でも)。 ◎ User agents may allow the user to set the value to a string that is not a valid absolute URL, but may also or instead automatically escape characters entered by the user so that the value is always a valid absolute URL (even if that isn't the actual value seen and edited by the user in the interface).\
  • 利用者が `値$を空~文字列に設定できるようにするべきである。 ◎ User agents should allow the user to set the value to the empty string.\
  • 利用者が `値$の中に`改行文字$を挿入できるようにしては~MUST_NOT。 ◎ User agents must not allow users to insert U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the value.

`value$a 属性に指定する値は、[ 空であるか, または `絶対~URL$を与える`前後~空白~可の妥当な~URL$ ]で~MUST。 ◎ The value attribute, if specified and not empty, must have a value that is a valid URL potentially surrounded by spaces that is also an absolute URL.

`値の消毒~algo$ ⇒ `値$から`改行文字を剥ぐ$。 次に,`値$から`前後の~ASCII空白~列を剥ぐ$。 ◎ The value sanitization algorithm is as follows: Strip newlines from the value, then strip leading and trailing ASCII whitespace from the value.

拘束検証 ⇒ 要素が次を満たしている間は、`型~不一致の難あり$になる ⇒ 要素の`値$は 空~文字列でも`妥当$urlな`絶対~URL$でもない。 ◎ Constraint validation: While the value of the element is neither the empty string nor a valid absolute URL, the element is suffering from a type mismatch.

`Url^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, maxlength, minlength, pattern, placeholder, readonly, required, and size content attributes; list, selectionStart, selectionEnd, selectionDirection, and value IDL attributes; select(), setRangeText(), and setSelectionRange() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, max, min, multiple, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, valueAsDate, and valueAsNumber IDL attributes; stepDown() and stepUp() methods.

文書が次の~markupを包含していて: ◎ If a document contained the following markup:

<input type="url" name="location" list="urls">
<datalist id="urls">
 <option label="MIME: Format of Internet Message Bodies" value="https://tools.ietf.org/html/rfc2045">
 <option label="HTML" value="https://html.spec.whatwg.org/">
 <option label="DOM" value="https://dom.spec.whatwg.org/">
 <option label="Fullscreen" value="https://fullscreen.spec.whatwg.org/">
 <option label="Media Session" value="https://mediasession.spec.whatwg.org/">
 <option label="The Single UNIX Specification, Version 3" value="http://www.unix.org/version3/">
</datalist>

利用者が "spec.w" と打込んだとき、~UAも利用者が近過去に `https://url.spec.whatwg.org/#url-parsing^c, `https://streams.spec.whatwg.org/^c を訪問したことを見出した場合、描画は次の様になるであろう: ◎ ...and the user had typed "spec.w", and the user agent had also found that the user had visited https://url.spec.whatwg.org/#url-parsing and https://streams.spec.whatwg.org/ in the recent past, then the rendering might look like this:

`sample-url.svg:480:150^img
上端の~text~boxには、左端から ~icon, ~text `spec.^l, ~cursorと続き,右端には~drop-down~buttonがある。 その下の~drop-down~boxには、 6 個の~URLが示されていて,うち最初の 4 個の右には 灰色に霞んだ~labelがある。 ~drop-down~boxの右端には,他にも可用な値があることを指示する~scrollbarがある。 ◎ A text box with an icon on the left followed by the text "spec.w" and a cursor, with a drop down button on the right hand side; with, below, a drop down box containing a list of six URLs on the left, with the first four having grayed out labels on the right; and a scroll bar to the right of the drop down box, indicating further values are available.

この見本の最初の 4 個の~URLは、作者が指定した~list内の~URLのうち,利用者が手入力した~textに合致するものからなり、~UAにより定義される何らかの方式で~sortされている(例えば,利用者が~URLを指す~~頻度に基づいて)。 ~UAは、自身の知識を利用して,利用者が~scheme~~成分を省略しても値が~URLになるよう,~domain名に対し~intelligentな照合を遂行していることに注意。 ◎ The first four URLs in this sample consist of the four URLs in the author-specified list that match the text the user has entered, sorted in some UA-defined manner (maybe by how frequently the user refers to those URLs). Note how the UA is using the knowledge that the values are URLs to allow the user to omit the scheme part and perform intelligent matching on the domain name.

最後の 2 個の~URL( ~scrollbarが指示するように,おそらくもっと多くの~URLも可用である)は、~UAの~session履歴~dataに合致するものとして示されている。 この~dataは,頁の~DOMからは可用にはされない。 この事例では、~UAは,それらの値に提供する~titleはない。 ◎ The last two URLs (and probably many more, given the scrollbar's indications of more values being available) are the matches from the user agent's session history data. This data is not made available to the page DOM. In this particular case, the UA has no titles to provide for those values.

4.10.5.1.5. `Email^st 状態( `type=email^c )

`Email$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the E-mail state, the rules in this section apply.

`Email$st 状態が値をどう演算するかは、 `multiple$a 属性が指定されているかどうかに依存する。 ◎ How the E-mail state operates depends on whether the multiple attribute is specified or not.

要素に `multiple$a 属性が指定されていない場合: ◎ When the multiple attribute is not specified on the element

要素は、その`値$にて与えられる~e-mail~addressを編集するための~controlを`表現-$する。 ◎ The input element represents a control for editing an e-mail address given in the element's value.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が[ `値$が表現する~e-mail~address ]を変更できるようにするべきである。 ◎ the user agent should allow the user to change the e-mail address represented by its value.\
  • 利用者が `値$を[ `妥当な~e-mail~address$でない文字列 ]に設定できるようにして~MAY。 ◎ User agents may allow the user to set the value to a string that is not a valid e-mail address.\
  • 利用者は単独の~e-mail~addressを提供するものと期待するので、それに沿う方式で動作するべきである。 ◎ The user agent should act in a manner consistent with expecting the user to provide a single e-mail address.\
  • 利用者が `値$を空~文字列に設定できるようにするべきである。 ◎ User agents should allow the user to set the value to the empty string.\
  • 利用者が `値$の中に`改行文字$を挿入できるようにしては~MUST_NOT。 ◎ User agents must not allow users to insert U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the value.\
  • `値$を表示~用/編集~用に変形して~MAY — 特に、`値$の~domain~label内の~punycodeと, 表示における~IDNとを相互に変換するべきである。 ◎ User agents may transform the value for display and editing; in particular, user agents should convert punycode in the domain labels of the value to IDN in the display and vice versa.

拘束検証 ⇒ 要素が次を満たしている間は、`不良~入力の難あり$になる ⇒ ~UIが~punycodeに変換できない入力を表現している ◎ Constraint validation: While the user interface is representing input that the user agent cannot convert to punycode, the control is suffering from bad input.

`value$a 属性に指定する値は、[ 空であるか, または 単独の `妥当な~e-mail~address$ ]で~MUST。 ◎ The value attribute, if specified and not empty, must have a value that is a single valid e-mail address.

`値の消毒~algo$ ⇒ `値$から`改行文字を剥ぐ$。 次に,`値$から`前後の~ASCII空白~列を剥ぐ$。 ◎ The value sanitization algorithm is as follows: Strip newlines from the value, then strip leading and trailing ASCII whitespace from the value.

拘束検証 ⇒ 要素が次を満たしている間は、要素は,`型~不一致の難あり$になる ⇒ 要素の`値$は,空~文字列でも 単独の`妥当な~e-mail~address$でもない ◎ Constraint validation: While the value of the element is neither the empty string nor a single valid e-mail address, the element is suffering from a type mismatch.

要素に `multiple$a 属性が指定されている場合: ◎ When the multiple attribute is specified on the element

要素は、その`値たち$にて与えられる一連の~e-mail~addressを[ 追加- / 除去- / 編集 ]するための~controlを`表現-$する。 ◎ The input element represents a control for adding, removing, and editing the e-mail addresses given in the element's values.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,その`値たち$が表現する~e-mail~addressを[ 追加- / 除去- / 編集 ]できるようにするべきである。 ◎ the user agent should allow the user to add, remove, and edit the e-mail addresses represented by its values.\
  • 利用者が,`値$の~list内の個々の値を[ `妥当な~e-mail~address$でない文字列 ]に設定できるようにして~MAY。 ◎ User agents may allow the user to set any individual value in the list of values to a string that is not a valid e-mail address,\
  • `値$の~list内の どの個々の値であれ、利用者が[ 文字 `002C^U `,^smb / `改行文字$ ]を包含するような文字列を設定できるようにしては~MUST_NOT。 ◎ but must not allow users to set any individual value to a string containing U+002C COMMA (,), U+000A LINE FEED (LF), or U+000D CARRIAGE RETURN (CR) characters.\
  • 利用者が[ 要素の`値たち$内の~addressすべて ]を除去できるようにするべきである。 ◎ User agents should allow the user to remove all the addresses in the element's values.\
  • `値たち$を表示~用/編集~用に変形して~MAY — 特に、`値$の~domain~label内の~punycodeと, 表示における~IDNとを相互に変換するべきである。 ◎ User agents may transform the values for display and editing; in particular, user agents should convert punycode in the domain labels of the value to IDN in the display and vice versa.

拘束検証 ⇒ 要素が次を満たしている間は、~controlは`不良~入力の難あり$になる ⇒ ~UI内のある~e-mail~address値が[ `002C^U `,^smb を包含しているか ~OR ~punycodeに変換できない入力を表現している ] ◎ Constraint validation: While the user interface describes a situation where an individual value contains a U+002C COMMA (,) or is representing input that the user agent cannot convert to punycode, the control is suffering from bad input.

利用者が要素の`値$を変更する度に、~UAは,次の手続きを走らせ~MUST: ◎ Whenever the user changes the element's values, the user agent must run the following steps:

  1. %~token~list ~LET 要素の`値$の複製 ◎ Let latest values be a copy of the element's values.
  2. %~token~list 内の~EACH ( %~token ) に対し ⇒ %~token の`前後の~ASCII空白~列を剥ぐ$ ◎ Strip leading and trailing ASCII whitespace from each value in latest values.
  3. 要素の`値$ ~LET %~token~list 内の各~値を,そのままの順序で `002C^U `,^smb で区切って連結した結果 ◎ Let the element's value be the result of concatenating all the values in latest values, separating each value from the next by a single U+002C COMMA character (,), maintaining the list's order.

`value$a 属性に指定する値は、`妥当な~e-mail~address~list$で~MUST。 ◎ The value attribute, if specified, must have a value that is a valid e-mail address list.

`値の消毒~algo$: ◎ The value sanitization algorithm is as follows:

  1. %~token~list ~LET 要素の`値$を`~commaで分割-$した結果 ◎ Split on commas the element's value,\
  2. %~token~list 内の~EACH ( %~token ) に対し ⇒ %~token の`前後の~ASCII空白~列を剥ぐ$ ◎ strip leading and trailing ASCII whitespace from each resulting token, if any, and\
  3. 要素の`値たち$ ~SET %~token~list (空になり得る。その中の各~tokenも空~文字列になり得る) ◎ let the element's values be the (possibly empty) resulting list of (possibly empty) tokens, maintaining the original order.
  4. 要素の`値$ ~SET %~token~list 内の各~値を,そのままの順序で 1 個の `002C^U `,^smb で区切って連結した結果 ◎ Let the element's value be the result of concatenating the element's values, separating each value from the next by a single U+002C COMMA character (,), maintaining the list's order.

拘束検証 ⇒ 要素が次を満たしている間は、`型~不一致の難あり$になる ⇒ 要素の`値$は`妥当な~e-mail~address~list$でない ◎ Constraint validation: While the value of the element is not a valid e-mail address list, the element is suffering from a type mismatch.

`multiple$a 属性が[ 設定-/除去- ]されたときは、~UAは,`値の消毒~algo$を走らせ~MUST。 ◎ When the multiple attribute is set or removed, the user agent must run the value sanitization algorithm.

`妥当な~e-mail~address@ は、次の~ABNFによる `email^P 生成規則に合致する文字列である。 この~ABNFの文字~集合は、~Unicodeとする。 この~ABNFは、RFC 1123 に述べられる拡張を実装する。 `ABNF$r `RFC5322$r `RFC1034$r `RFC1123$r ◎ A valid e-mail address is a string that matches the email production of the following ABNF, the character set for which is Unicode. This ABNF implements the extensions described in RFC 1123. [ABNF] [RFC5322] [RFC1034] [RFC1123]

email         = 1*( atext / "." ) "@" label *( "." label )
label         = let-dig [ [ ldh-str ] let-dig ]

ここで:

  • `label^P の長さは、 RFC 1034, 3.5 節により 63 文字までに制限される。
  • `atext^P は、 RFC 5322, 3.2.3 節 に定義される。
  • `let-dig^P, `ldh-str^P は、 RFC 1034, 3.5 節 に定義される。
email         = 1*( atext / "." ) "@" label *( "." label )
label         = let-dig [ [ ldh-str ] let-dig ]  ; limited to a length of 63 characters by RFC 1034 section 3.5
atext         = < as defined in RFC 5322 section 3.2.3 >
let-dig       = < as defined in RFC 1034 section 3.5 >
ldh-str       = < as defined in RFC 1034 section 3.5 >

注記: この要件は、 ~e-mail~addressの構文を定義している RFC 5322 に対する`故意的な違反$である。 それは厳格~過ぎると同時に(文字 `@^l より前の部分),曖昧~過ぎでもあり(文字 `@^l より後の部分)、ここでの実用には甘~過ぎる (ほとんどの利用者にとって馴染みのない方式で[ ~comment / 空白~文字 / 引用符付き文字列 ]が許容されている)。 ◎ This requirement is a willful violation of RFC 5322, which defines a syntax for e-mail addresses that is simultaneously too strict (before the "@" character), too vague (after the "@" character), and too lax (allowing comments, whitespace characters, and quoted strings in manners unfamiliar to most users) to be of practical use here.

注記: 次の ~JS/~perl に互換な正規表現は、上の定義の実装を与える: ◎ The following JavaScript- and Perl-compatible regular expression is an implementation of the above definition.

~RxpEmail

`妥当な~e-mail~address~list@ は、各~tokenが`妥当な~e-mail~address$であるような,`~comma区切りの~token集合$である。 実装は、`妥当な~e-mail~address~list$から~tokenの~listを得るときは、`~commaで分割-$し~MUST。 ◎ A valid e-mail address list is a set of comma-separated tokens, where each token is itself a valid e-mail address. To obtain the list of tokens from a valid e-mail address list, an implementation must split the string on commas.

`Email^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, maxlength, minlength, multiple, pattern, placeholder, readonly, required, and size content attributes; list and value IDL attributes; select() method. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, max, min, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, selectionStart, selectionEnd, selectionDirection, valueAsDate, and valueAsNumber IDL attributes; setRangeText(), setSelectionRange(), stepDown() and stepUp() methods.
4.10.5.1.6. `Password^st 状態( `type=password^c )

`Password$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Password state, the rules in this section apply.

要素は、その`値$を編集するための 一行の素の~text~controlを`表現-$する。 ~UAは、その値を,利用者~以外の者が見れないように遮蔽するべきである。 ◎ The input element represents a one line plain text edit control for the element's value. The user agent should obscure the value so that people other than the user cannot see it.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が `値$を編集できるようにするべきである。 ◎ its value should be editable by the user.\
  • 利用者が `値$の中に`改行文字$を挿入できるようにしては~MUST_NOT。 ◎ User agents must not allow users to insert U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters into the value.

`value$a 属性に指定する値は、`改行文字$を含んでは~MUST_NOT。 ◎ The value attribute, if specified, must have a value that contains no U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters.

`値の消毒~algo$ ⇒ `値$から`改行文字を剥ぐ$。 ◎ The value sanitization algorithm is as follows: Strip newlines from the value.

`Password^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, inputmode, maxlength, minlength, pattern, placeholder, readonly, required, and size content attributes; selectionStart, selectionEnd, selectionDirection, and value IDL attributes; select(), setRangeText(), and setSelectionRange() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, list, max, min, multiple, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, list, valueAsDate, and valueAsNumber IDL attributes; stepDown() and stepUp() methods.
4.10.5.1.7. `Date^st 状態( `type=date^c )

`Date$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Date state, the rules in this section apply.

要素は、その`値$を[ 特定の`日付t$を表現する文字列 ]に設定するための~controlを`表現-$する。 ◎ The input element represents a control for setting the element's value to a string representing a specific date.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,その`値$が表現する`日付t$ — 値を`日付t文字列として構文解析-$して得られるそれ — を変更できるようにするべきである。 ◎ the user agent should allow the user to change the date represented by its value, as obtained by parsing a date from it.\
  • 利用者が,`値$を[ 空でも`妥当な日付t文字列$でもない文字列 ]に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to a non-empty string that is not a valid date string.\
  • ~UAが`日付t$を選択するための~UIを提供する場合、`値$は[ 利用者の選択を表現している`妥当な日付t文字列$ ]に設定され~MUST。 ◎ If the user agent provides a user interface for selecting a date, then the value must be set to a valid date string representing the user's selection.\
  • 利用者が,`値$を空~文字列に設定できるようにするべきである。 ◎ User agents should allow the user to set the value to the empty string.

拘束検証 ⇒ 要素が次を満たしている間は、`不良~入力の難あり$になる ⇒ ~UI内の入力を`妥当な日付t文字列$に変換できない ◎ Constraint validation: While the user interface describes input that the user agent cannot convert to a valid date string, the control is suffering from bad input.

注記: [ 日付t / 時刻t / 実数 ]~form~controlに対する,入力~形式と提出~形式との相違に関する論点は、 序論~節 を見よ。 また、~form~controlの地域化に関しては, 実装~上の注記 を見よ。 ◎ See the introduction section for a discussion of the difference between the input format and submission format for date, time, and number form controls, and the implementation notes regarding localization of form controls.

`value$a 属性に指定する値は、[ 空であるか, または `妥当な日付t文字列$ ]で~MUST。 ◎ The value attribute, if specified and not empty, must have a value that is a valid date string.

`値の消毒~algo$ ⇒ 要素の`値$が`妥当な日付t文字列$でない場合、空~文字列に設定する。 ◎ The value sanitization algorithm is as follows: If the value of the element is not a valid date string, then set it to the empty string instead.

[ `min$a / `max$a ]属性に指定する値は、`妥当な日付t文字列$で~MUST。 ◎ The min attribute, if specified, must have a value that is a valid date string. The max attribute, if specified, must have a value that is a valid date string.

`step$a 属性は日t数で表される。 `~step倍率$は 86400000 = ( 24 × 60 × 60 × 1000 ) とする(これは、他の~algoにて 日t数を~milli秒t数に変換するときに利用される)。 `既定の~step$は 1 日tとする。 ◎ The step attribute is expressed in days. The step scale factor is 86,400,000 (which converts the days to milliseconds, as used in the other algorithms). The default step is 1 day.

要素が`~step不一致の難あり$のときは、~UAは ⇒ そうならなくなるよう,要素の`値$を最も近い`日付t$に丸めて~MAY。 ◎ When the element is suffering from a step mismatch, the user agent may round the element's value to the nearest date for which the element would not suffer from a step mismatch.

`文字列から実数に変換-$する~algo は、所与の文字列 %入力 に対し ⇒ %入力 を`日付t文字列として構文解析-$した結果 ~EQ ~error ならば ~error / ~ELSE_[ 1970-01-01 ~UTC午前 0 時(値 `1970-01-01T00:00:00.0Z^l が表現する時刻t) ]から[ 結果の`日付t$の~UTC午前 0 時 ]までに経過した~milli秒t数 ]を返す — 閏~秒tは無視して。 ◎ The algorithm to convert a string to a number, given a string input, is as follows: If parsing a date from input results in an error, then return an error; otherwise, return the number of milliseconds elapsed from midnight UTC on the morning of 1970-01-01 (the time represented by the value "1970-01-01T00:00:00.0Z") to midnight UTC on the morning of the parsed date, ignoring leap seconds.

`実数から文字列に変換-$する~algo は、所与の実数 %入力 に対し ⇒ [[ 1970-01-01 ~UTC午前 0 時( 値 `1970-01-01T00:00:00.0Z^l が表現する時刻t ) ]から %入力 ~milli秒t後~現在の~UTC`日付t$ ]を表現する`妥当な日付t文字列$を返す。 ◎ The algorithm to convert a number to a string, given a number input, is as follows: Return a valid date string that represents the date that, in UTC, is current input milliseconds after midnight UTC on the morning of 1970-01-01 (the time represented by the value "1970-01-01T00:00:00.0Z").

`文字列から~Date~objに変換-$する~algo は、所与の文字列 %入力 に対し ⇒ [ %入力 を`日付t文字列として構文解析-$した結果 ~EQ ~error ならば ~error / ~ELSE_ `新たな~Date~obj$( 結果の`日付t$の~UTC午前 0 時 ) ]を返す。 ◎ The algorithm to convert a string to a Date object, given a string input, is as follows: If parsing a date from input results in an error, then return an error; otherwise, return a new Date object representing midnight UTC on the morning of the parsed date.

`~Date~objから文字列に変換-$する~algo は、所与の `Date$I object %入力 に対し ⇒ [ %入力 が表現する~UTC時間帯による時刻t現在 ]の`日付t$を表現する`妥当な日付t文字列$を返す。 ◎ The algorithm to convert a Date object to a string, given a Date object input, is as follows: Return a valid date string that represents the date current at the time represented by input in the UTC time zone.

注記: `Date$st 状態(および,後続の節にて述べる,日付t/時刻tに関係する他の状態)は、[ 現今の暦に相対的な精確な日時t ]を確立できない値を手入力するために意図されるものではない。 例えば、 “ビッグバンの 1 ~milli秒t後”, “ジュラ紀の~~早期”, “紀元前 250 年~頃の冬” などの時刻tには不適切になる。 ◎ The Date state (and other date- and time-related states described in subsequent sections) is not intended for the entry of values for which a precise date and time relative to the contemporary calendar cannot be established. For example, it would be inappropriate for the entry of times like "one millisecond after the big bang", "the early part of the Jurassic period", or "a winter around 250 BCE".

~Gregorian暦の導入~以前の日付tの入力に対しては、作者には、`Date$st 状態(および,後続の節にて述べる,日時tに関係する他の状態)は利用しないことが奨励される。 ~UAには、日時tを,より早期から~Gregorian暦へ変換する~supportは要求されないので。 また、利用者に手動で入れるよう請うのは,利用者に過度の負担になるので。 (これは、~Gregorian暦が~~導入された時期が,国ごとに — 16 世紀の途中から 20 世紀の初め頃までにわたり — まちまちであるため、複雑になる)。 作者は代わりに、 `select$e 要素と `Number$st 状態にある要素を利用して,きめ細やかな入力~controlを提供することが奨励される。 ◎ For the input of dates before the introduction of the Gregorian calendar, authors are encouraged to not use the Date state (and the other date- and time-related states described in subsequent sections), as user agents are not required to support converting dates and times from earlier periods to the Gregorian calendar, and asking users to do so manually puts an undue burden on users. (This is complicated by the manner in which the Gregorian calendar was phased in, which occurred at different times in different countries, ranging from partway through the 16th century all the way to early in the 20th.) Instead, authors are encouraged to provide fine-grained input controls using the select element and input elements with the Number state.

`Date^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, max, min, readonly, required, and step content attributes; list, value, valueAsDate, and valueAsNumber IDL attributes; select(), stepDown(), and stepUp() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, maxlength, minlength, multiple, pattern, placeholder, size, src, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, selectionStart, selectionEnd, and selectionDirection IDL attributes; setRangeText(), and setSelectionRange() methods.
4.10.5.1.8. `Month^st 状態( `type=month^c )

`Month$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Month state, the rules in this section apply.

要素は、その`値$を[ 特定の`年月t$を表現する文字列 ]に設定するための~controlを`表現-$する。 ◎ The input element represents a control for setting the element's value to a string representing a specific month.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,その`値$が表現する`年月t$ — 値を`年月t文字列として構文解析-$して得られるそれ — を変更できるようにするべきである。 ◎ the user agent should allow the user to change the month represented by its value, as obtained by parsing a month from it.\
  • 利用者が `値$を[ 空でも`妥当な年月t文字列$でもない文字列 ]に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to a non-empty string that is not a valid month string.\
  • ~UAが`年月t$を選択するための~UIを提供する場合、 `値$は,[ 利用者の選択を表現している`妥当な年月t文字列$ ]に設定され~MUST。 ◎ If the user agent provides a user interface for selecting a month, then the value must be set to a valid month string representing the user's selection.\
  • 利用者が `値$を空~文字列に設定できるようにするべきである。 ◎ User agents should allow the user to set the value to the empty string.

拘束検証 ⇒ 要素が次を満たしている間は、`不良~入力の難あり$になる ⇒ ~UI内の入力を`妥当な年月t文字列$に変換できない ◎ Constraint validation: While the user interface describes input that the user agent cannot convert to a valid month string, the control is suffering from bad input.

注記: `Date^st 状態の注記も見よ。 ◎ See the introduction section for a discussion of the difference between the input format and submission format for date, time, and number form controls, and the implementation notes regarding localization of form controls.

`value$a 属性に指定する値は、[ 空であるか, または `妥当な年月t文字列$ ]で~MUST。 ◎ The value attribute, if specified and not empty, must have a value that is a valid month string.

`値の消毒~algo$ ⇒ 要素の`値$が`妥当な年月t文字列$でない場合、空~文字列に設定する。 ◎ The value sanitization algorithm is as follows: If the value of the element is not a valid month string, then set it to the empty string instead.

[ `min$a / `max$a ]属性に指定する値は、`妥当な年月t文字列$で~MUST。 ◎ The min attribute, if specified, must have a value that is a valid month string. The max attribute, if specified, must have a value that is a valid month string.

`step$a 属性は月t数で表される。 `~step倍率$は 1 とする(~algoは月t数を利用するので 変換は必要ない)。 `既定の~step$は 1 ヶ月tとする。 ◎ The step attribute is expressed in months. The step scale factor is 1 (there is no conversion needed as the algorithms use months). The default step is 1 month.

要素が`~step不一致の難あり$のときは、~UAは ⇒ そうならなくなるよう,要素の`値$を最も近い`年月t$に丸めて~MAY。 ◎ When the element is suffering from a step mismatch, the user agent may round the element's value to the nearest month for which the element would not suffer from a step mismatch.

`文字列から実数に変換-$する~algo は、所与の文字列 %入力 に対し ⇒ %入力 を`年月t文字列として構文解析-$した結果 ~EQ ~error ならば ~error / ~ELSE_ 1970 年 1 月 から結果の`年月t$までの月t~数 を返す。 ◎ The algorithm to convert a string to a number, given a string input, is as follows: If parsing a month from input results in an error, then return an error; otherwise, return the number of months between January 1970 and the parsed month.

`実数から文字列に変換-$する~algo は、所与の実数 %入力 に対し ⇒ [ 1970 年 1 月から %入力 月t~数だけ経過した`年月t$ ]を表現する`妥当な年月t文字列$を返す。 ◎ The algorithm to convert a number to a string, given a number input, is as follows: Return a valid month string that represents the month that has input months between it and January 1970.

`文字列から~Date~objに変換-$する~algo は、所与の文字列 %入力 に対し ⇒ %入力 を`年月t文字列として構文解析-$した結果 ~EQ ~error ならば ~error / ~ELSE_ `新たな~Date~obj$( `年月t$の最初の日tの~UTC午前 0 時 ) ]を返す。 ◎ The algorithm to convert a string to a Date object, given a string input, is as follows: If parsing a month from input results in an error, then return an error; otherwise, return a new Date object representing midnight UTC on the morning of the first day of the parsed month.

`~Date~objから文字列に変換-$する~algo は、所与の `Date$I object %入力 に対し ⇒ [ %入力 が表現する~UTC時間帯による`年月t$現在 ]を表現する`妥当な年月t文字列$を返す。 ◎ The algorithm to convert a Date object to a string, given a Date object input, is as follows: Return a valid month string that represents the month current at the time represented by input in the UTC time zone.

`Month^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, max, min, readonly, required, and step content attributes; list, value, valueAsDate, and valueAsNumber IDL attributes; select(), stepDown(), and stepUp() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, maxlength, minlength, multiple, pattern, placeholder, size, src, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, selectionStart, selectionEnd, and selectionDirection IDL attributes; setRangeText(), and setSelectionRange() methods.
4.10.5.1.9. `Week^st 状態( `type=week^c )

`Week$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Week state, the rules in this section apply.

要素は、その`値$を[ 特定の`年週t$を表現する文字列 ]に設定するための~controlを`表現-$する。 ◎ The input element represents a control for setting the element's value to a string representing a specific week.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,その`値$が表現する`年週t$ — 値を`年週t文字列として構文解析-$して得られるそれ — を変更できるようにするべきである。 ◎ the user agent should allow the user to change the week represented by its value, as obtained by parsing a week from it.\
  • 利用者が `値$を[ 空でも`妥当な年週t文字列$でもない文字列 ]に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to a non-empty string that is not a valid week string.\
  • ~UAが`年週t$を選択するための~UIを提供する場合、`値$は[ 利用者の選択を表現している`妥当な年週t文字列$ ]に設定され~MUST。 ◎ If the user agent provides a user interface for selecting a week, then the value must be set to a valid week string representing the user's selection.\
  • 利用者が,`値$を空~文字列に設定できるようにするべきである。 ◎ User agents should allow the user to set the value to the empty string.

拘束検証 ⇒ 要素が次を満たしている間は、`不良~入力の難あり$になる ⇒ ~UI内の入力を`妥当な年週t文字列$に変換できない ◎ Constraint validation: While the user interface describes input that the user agent cannot convert to a valid week string, the control is suffering from bad input.

注記: `Date^st 状態の注記も見よ。 ◎ See the introduction section for a discussion of the difference between the input format and submission format for date, time, and number form controls, and the implementation notes regarding localization of form controls.

`value$a 属性に指定する値は、[ 空であるか, または `妥当な年週t文字列$ ]で~MUST。 ◎ The value attribute, if specified and not empty, must have a value that is a valid week string.

`値の消毒~algo$ ⇒ 要素の`値$が`妥当な年週t文字列$でない場合、空~文字列に設定する。 ◎ The value sanitization algorithm is as follows: If the value of the element is not a valid week string, then set it to the empty string instead.

[ `min$a / `max$a ]属性に指定する値は、`妥当な年週t文字列$で~MUST。 ◎ The min attribute, if specified, must have a value that is a valid week string. The max attribute, if specified, must have a value that is a valid week string.

`step$a 属性は週t数で表される。 `~step倍率$は 604800000 = ( 7 × 24 × 60 × 60 × 1000 ) とする(これは、他の~algoにて 週t数を~milli秒t数に変換するときに利用される)。 `既定の~step$は 1 週tとする。 `既定の~step基底$は −259200000 = ( −1 × 72 × 60 × 60 × 1000 ) ( 1970 週年tの第 1 週tの開始 = 1970 年の初頭から 72 時間~前)とする。 ◎ The step attribute is expressed in weeks. The step scale factor is 604,800,000 (which converts the weeks to milliseconds, as used in the other algorithms). The default step is 1 week. The default step base is −259,200,000 (the start of week 1970-W01).

要素が`~step不一致の難あり$のときは、~UAは ⇒ そうならなくなるよう,要素の`値$を最も近い`年週t$に丸めて~MAY。 ◎ When the element is suffering from a step mismatch, the user agent may round the element's value to the nearest week for which the element would not suffer from a step mismatch.

`文字列から実数に変換-$する~algo は、所与の文字列 %入力 に対し ⇒ %入力 を`年週t文字列として構文解析-$した結果 ~EQ ~error ならば ~error / ~ELSE_ [ 1970-01-01 ~UTC午前 0 時( 値 `1970-01-01T00:00:00.0Z^l が表現する時刻t ) ]から[ 結果の`年週t$の月曜の~UTC午前 0 時 ]までに経過した~milli秒数 ]を返す — 閏~秒tは無視して。 ◎ The algorithm to convert a string to a number, given a string input, is as follows: If parsing a week string from input results in an error, then return an error; otherwise, return the number of milliseconds elapsed from midnight UTC on the morning of 1970-01-01 (the time represented by the value "1970-01-01T00:00:00.0Z") to midnight UTC on the morning of the Monday of the parsed week, ignoring leap seconds.

`実数から文字列に変換-$する~algo は、所与の実数 %入力 に対し ⇒ 1970-01-01 ~UTC午前 0 時(値 `1970-01-01T00:00:00.0Z^l が表現する時刻t)から %入力 ~milli秒t後~現在の~UTC`年週t$を表現する`妥当な年週t文字列$を返す。 ◎ The algorithm to convert a number to a string, given a number input, is as follows: Return a valid week string that represents the week that, in UTC, is current input milliseconds after midnight UTC on the morning of 1970-01-01 (the time represented by the value "1970-01-01T00:00:00.0Z").

`文字列から~Date~objに変換-$する~algo は、所与の文字列 %入力 に対し ⇒ [ %入力 を`年週t文字列として構文解析-$した結果 ~EQ ~error ならば ~error / ~ELSE_ `新たな~Date~obj$( 結果の`年週t$の月曜の~UTC午前 0 時 ) ]を返す。 ◎ The algorithm to convert a string to a Date object, given a string input, is as follows: If parsing a week from input results in an error, then return an error; otherwise, return a new Date object representing midnight UTC on the morning of the Monday of the parsed week.

`~Date~objから文字列に変換-$する~algo は、所与の `Date$I object %入力 に対し ⇒ [[ ~UTC時間帯における%入力 現在 ]の時刻tが表現する`年週t$ ]を表現する,`妥当な年週t文字列$を返す。 ◎ The algorithm to convert a Date object to a string, given a Date object input, is as follows: Return a valid week string that represents the week current at the time represented by input in the UTC time zone.

`Week^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, max, min, readonly, required, and step content attributes; list, value, valueAsDate, and valueAsNumber IDL attributes; select(), stepDown(), and stepUp() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, maxlength, minlength, multiple, pattern, placeholder, size, src, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, selectionStart, selectionEnd, and selectionDirection IDL attributes; setRangeText(), and setSelectionRange() methods.
4.10.5.1.10. `Time^st 状態( `type=time^c )

`Time$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Time state, the rules in this section apply.

要素は、その`値$を[ 特定の`時刻t$を表現する文字列 ]に設定するための~controlを`表現-$する。 ◎ The input element represents a control for setting the element's value to a string representing a specific time.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,その`値$が表現する`時刻t$ — 値を`時刻t文字列として構文解析-$して得られるそれ — を変更できるようにするべきである。 ◎ the user agent should allow the user to change the time represented by its value, as obtained by parsing a time from it.\
  • 利用者が `値$を[ 空でも`妥当な時刻t文字列$でもない文字列 ]に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to a non-empty string that is not a valid time string.\
  • ~UAが`時刻t$を選択するための~UIを提供する場合、`値$は[ 利用者の選択を表現している`妥当な時刻t文字列$ ]に設定され~MUST。 ◎ If the user agent provides a user interface for selecting a time, then the value must be set to a valid time string representing the user's selection.\
  • 利用者が `値$を空~文字列に設定できるようにするべきである。 ◎ User agents should allow the user to set the value to the empty string.

拘束検証 ⇒ 要素が次を満たしている間は、`不良~入力の難あり$になる ⇒ ~UI内の入力を`妥当な時刻t文字列$に変換できない ◎ Constraint validation: While the user interface describes input that the user agent cannot convert to a valid time string, the control is suffering from bad input.

注記: `Date^st 状態の注記も見よ。 ◎ See the introduction section for a discussion of the difference between the input format and submission format for date, time, and number form controls, and the implementation notes regarding localization of form controls.

`value$a 属性に指定する値は、[ 空であるか, または `妥当な時刻t文字列$ ]で~MUST。 ◎ The value attribute, if specified and not empty, must have a value that is a valid time string.

`値の消毒~algo$ ⇒ 要素の`値$が`妥当な時刻t文字列$でない場合、空~文字列に設定する。 ◎ The value sanitization algorithm is as follows: If the value of the element is not a valid time string, then set it to the empty string instead.

~controlは`周期的範囲$になる。 ◎ The form control has a periodic domain.

[ `min$a / `max$a ]属性に指定する値は、`妥当な時刻t文字列$で~MUST。 ◎ The min attribute, if specified, must have a value that is a valid time string. The max attribute, if specified, must have a value that is a valid time string.

`step$a 属性は秒t数で表される。 `~step倍率$は 1000 とする(これは、他の~algoにて 秒t数を~milli秒t数に変換するときに利用される)。 `既定の~step$は 60 秒tとする。 ◎ The step attribute is expressed in seconds. The step scale factor is 1000 (which converts the seconds to milliseconds, as used in the other algorithms). The default step is 60 seconds.

要素が`~step不一致の難あり$のときは、~UAは ⇒ そうならなくなるよう,要素の`値$を最も近い`時刻t$に丸めて~MAY。 ◎ When the element is suffering from a step mismatch, the user agent may round the element's value to the nearest time for which the element would not suffer from a step mismatch.

`文字列から実数に変換-$する~algo は、所与の文字列 %入力 に対し ⇒ %入力 を`時刻t文字列として構文解析-$した結果 ~EQ ~error ならば ~error / ~ELSE_ 同じ日tの中で[ 午前 0 時から 結果の`時刻t$現在まで ]に経過した~milli秒t数を返す。 ◎ The algorithm to convert a string to a number, given a string input, is as follows: If parsing a time from input results in an error, then return an error; otherwise, return the number of milliseconds elapsed from midnight to the parsed time on a day with no time changes.

`実数から文字列に変換-$する~algo は、所与の実数 %入力 に対し ⇒ 同じ日tの中で[ 午前 0 時から %入力 ~milli秒t経過した`時刻t$ ]を表現する`妥当な時刻t文字列$を返す。 ◎ The algorithm to convert a number to a string, given a number input, is as follows: Return a valid time string that represents the time that is input milliseconds after midnight on a day with no time changes.

`文字列から~Date~objに変換-$する~algo は、所与の文字列 %入力 に対し ⇒ [ %入力 を`時刻t文字列として構文解析-$した結果 ~EQ ~error ならば ~error / ~ELSE_ `新たな~Date~obj$( ~UTC 1970-01-01 における結果の`時刻t$現在 ) ]を返す。 ◎ The algorithm to convert a string to a Date object, given a string input, is as follows: If parsing a time from input results in an error, then return an error; otherwise, return a new Date object representing the parsed time in UTC on 1970-01-01.

`~Date~objから文字列に変換-$する~algo は、所与の `Date$I object %入力 に対し ⇒ [ %入力 が表現する~UTC`時刻t$ 成分 ]を表現する`妥当な時刻t文字列$を返す。 ◎ The algorithm to convert a Date object to a string, given a Date object input, is as follows: Return a valid time string that represents the UTC time component that is represented by input.

`Time^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, max, min, readonly, required, and step content attributes; list, value, valueAsDate, and valueAsNumber IDL attributes; select(), stepDown(), and stepUp() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, maxlength, minlength, multiple, pattern, placeholder, size, src, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, selectionStart, selectionEnd, and selectionDirection IDL attributes; setRangeText(), and setSelectionRange() methods.
4.10.5.1.11. `Datetime-local^st 状態( `type=datetime-local^c )

`Datetime-local$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Local Date and Time state, the rules in this section apply.

要素は、その`値$を[ 偏差~情報を伴わない`局所的~日時t$を表現する文字列 ]に設定するための~controlを`表現-$する。 ◎ The input element represents a control for setting the element's value to a string representing a local date and time, with no time-zone offset information.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,その`値$が表現する`局所的~日時t$ — 値を`局所的~日時t文字列として構文解析-$して得られるそれ — を変更できるようにするべきである。 ◎ the user agent should allow the user to change the date and time represented by its value, as obtained by parsing a date and time from it.\
  • 利用者が,`値$を[ 空でも`妥当な正規化済みの局所的~日時t文字列$でもない文字列 ]に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to a non-empty string that is not a valid normalized local date and time string.\
  • ~UAが`局所的~日時t$を選択するための~UIを提供する場合、`値$は[ 利用者の選択を表現している`妥当な正規化済みの局所的~日時t文字列$ ]に設定され~MUST。 ◎ If the user agent provides a user interface for selecting a local date and time, then the value must be set to a valid normalized local date and time string representing the user's selection.\
  • 利用者が,`値$を空~文字列に設定できるようにするべきである。 ◎ User agents should allow the user to set the value to the empty string.

拘束検証 ⇒ 要素が次を満たしている間は、`不良~入力の難あり$になる ⇒ ~UI内の入力を`妥当な正規化済みの局所的~日時t文字列$に変換できない ◎ Constraint validation: While the user interface describes input that the user agent cannot convert to a valid normalized local date and time string, the control is suffering from bad input.

注記: この状態にも `Date^st 状態の注記 が該当する。 ◎ See the introduction section for a discussion of the difference between the input format and submission format for date, time, and number form controls, and the implementation notes regarding localization of form controls.

`value$a 属性に指定する値は、[ 空であるか, または `妥当な局所的~日時t文字列$ ]で~MUST。 ◎ The value attribute, if specified and not empty, must have a value that is a valid local date and time string.

`値の消毒~algo$ ⇒ 要素の`値$は`妥当な局所的~日時t文字列$である場合、同じ日時tを表現する `妥当な正規化済みの局所的~日時t文字列$に設定する ; 他の場合, 空~文字列に設定する。 ◎ The value sanitization algorithm is as follows: If the value of the element is a valid local date and time string, then set it to a valid normalized local date and time string representing the same date and time; otherwise, set it to the empty string instead.

[ `min$a / `max$a ]属性に指定する値は、`妥当な局所的~日時t文字列$で~MUST。 ◎ The min attribute, if specified, must have a value that is a valid local date and time string. The max attribute, if specified, must have a value that is a valid local date and time string.

`step$a 属性は秒t数で表される。 `~step倍率$は 1000 とする(これは、他の~algoにて 秒t数を~milli秒t数に変換するときに利用される)。 `既定の~step$ は 60 秒tとする。 ◎ The step attribute is expressed in seconds. The step scale factor is 1000 (which converts the seconds to milliseconds, as used in the other algorithms). The default step is 60 seconds.

要素が`~step不一致の難あり$のときは、~UAは ⇒ そうならなくなるよう,要素の`値$を最も近い`局所的~日時t$に丸めて~MAY。 ◎ When the element is suffering from a step mismatch, the user agent may round the element's value to the nearest local date and time for which the element would not suffer from a step mismatch.

`文字列から実数に変換-$する~algo は、所与の文字列 %入力 に対し ⇒ [ %入力 を`局所的~日時t文字列として構文解析-$した結果 ~EQ ~error ならば ~error / ~ELSE_ 1970-01-01 午前 0 時(値 `1970-01-01T00:00:00.0^l が表現する時刻t)から 結果の`局所的~日時t$までに経過した~milli秒t数 ]を返す — 閏~秒tは無視して。 ◎ The algorithm to convert a string to a number, given a string input, is as follows: If parsing a date and time from input results in an error, then return an error; otherwise, return the number of milliseconds elapsed from midnight on the morning of 1970-01-01 (the time represented by the value "1970-01-01T00:00:00.0") to the parsed local date and time, ignoring leap seconds.

`実数から文字列に変換-$する~algo は、所与の実数 %入力 に対し ⇒ [[ 1970-01-01 午前 0 時(値 `1970-01-01T00:00:00.0^l が表現する時刻t) ]から %入力 ~milli秒 後の日時t ]を表現する,`妥当な正規化済みの局所的~日時t文字列$を返す。 ◎ The algorithm to convert a number to a string, given a number input, is as follows: Return a valid normalized local date and time string that represents the date and time that is input milliseconds after midnight on the morning of 1970-01-01 (the time represented by the value "1970-01-01T00:00:00.0").

注記: `Date$st 状態~節の 歴史的~日付tに関する注記 を見よ。 ◎ See the note on historical dates in the Date state section.

`Datetime-local^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, max, min, readonly, required, and step content attributes; list, value, and valueAsNumber IDL attributes; select(), stepDown(), and stepUp() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, maxlength, minlength, multiple, pattern, placeholder, size, src, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, selectionStart, selectionEnd, selectionDirection, and valueAsDate IDL attributes; setRangeText(), and setSelectionRange() methods.

次の例に、航空便予約~appの一部を示す。 この~appは、 `Datetime-local$st `状態$にある要素を利用して,所与の日時tを 選択された空港の時間帯において解釈する。 ◎ The following example shows part of a flight booking application. The application uses an input element with its type attribute set to datetime-local, and it then interprets the given date and time in the time zone of the selected airport.

<fieldset>
 <legend>行き先</legend>
 <p><label>空港: <input type=text name=to list=airports></label></p>
 <p><label>出発時刻: <input type=datetime-local name=totime step=3600></label></p>
</fieldset>
<datalist id=airports>
 <option value=ATL label="Atlanta">
 <option value=MEM label="Memphis">
 <option value=LHR label="London Heathrow">
 <option value=LAX label="Los Angeles">
 <option value=FRA label="Frankfurt">
</datalist>
4.10.5.1.12 `Number^st 状態 (`type=number^c )

`Number$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Number state, the rules in this section apply.

要素は、その`値$を[ 実数を表現する文字列 ]に設定するための~controlを`表現-$する。 ◎ The input element represents a control for setting the element's value to a string representing a number.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,その`値$が表現する実数 — 値を`浮動小数点数として構文解析-$して得られるそれ — を変更できるようにするべきである。 ◎ the user agent should allow the user to change the number represented by its value, as obtained from applying the rules for parsing floating-point number values to it.\
  • 利用者が,`値$を[ 空でも`妥当な浮動小数点数$でもない文字列 ]に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to a non-empty string that is not a valid floating-point number.\
  • ~UAが数を選択するための~UIを提供する場合、`値$は[ 利用者の選択に対する`浮動小数点数として最良の表現$ ]に設定され~MUST。 ◎ If the user agent provides a user interface for selecting a number, then the value must be set to the best representation of the number representing the user's selection as a floating-point number.\
  • 利用者が,`値$を空~文字列に設定できるようにするべきである。 ◎ User agents should allow the user to set the value to the empty string.

拘束検証 ⇒ 要素が次を満たしている間は、`不良~入力の難あり$になる ⇒ ~UI内の入力を`妥当な浮動小数点数$に変換できない ◎ Constraint validation: While the user interface describes input that the user agent cannot convert to a valid floating-point number, the control is suffering from bad input.

注記: この仕様は、~UAが利用する~UIは定義しない。 ~UA~vendorには、利用者の必要性に応えるには何が最善になるか,考慮することが奨励される。 例えば、 ~Persian/~Arabic 市場~向けの~UAは, ~Persian/~Arabic による数値~入力を~supportすることもあろう。 あるいは~French市場向けに設計された~UAは、 3 桁ごとにピリオドで区切り,小数点にコンマを用いて 値を表示し,利用者がその方式で手入力できるようにもし得る。 (いずれにせよ,内部的には、上述した提出に要求される形式に変換しつつ。) ◎ This specification does not define what user interface user agents are to use; user agent vendors are encouraged to consider what would best serve their users' needs. For example, a user agent in Persian or Arabic markets might support Persian and Arabic numeric input (converting it to the format required for submission as described above). Similarly, a user agent designed for Romans might display the value in Roman numerals rather than in decimal; or (more realistically) a user agent designed for the French market might display the value with apostrophes between thousands and commas before the decimals, and allow the user to enter a value in that manner, internally converting it to the submission format described above.

`value$a 属性に指定する値は、[ 空であるか, または `妥当な浮動小数点数$ ]で~MUST。 ◎ The value attribute, if specified and not empty, must have a value that is a valid floating-point number.

`値の消毒~algo$ ⇒ 要素の`値$が`妥当な浮動小数点数$でない場合、空~文字列に設定する。 ◎ The value sanitization algorithm is as follows: If the value of the element is not a valid floating-point number, then set it to the empty string instead.

[ `min$a / `max$a ]属性に指定する値は、`妥当な浮動小数点数$で~MUST。 ◎ The min attribute, if specified, must have a value that is a valid floating-point number. The max attribute, if specified, must have a value that is a valid floating-point number.

`~step倍率$は 1 とする。 `既定の~step$は 1 とする( `~step基底$が整数であれば、利用者が選択できるのは整数に限られることになる)。 ◎ The step scale factor is 1. The default step is 1 (allowing only integers to be selected by the user, unless the step base has a non-integer value).

要素が`~step不一致の難あり$のときは、~UAは ⇒ そうならなくなるよう,要素の`値$を最も近い数に丸めて~MAY。 そのような数が 2 個あるときには、~UAには,正の無限大に近い方を選ぶことが奨励される。 ◎ When the element is suffering from a step mismatch, the user agent may round the element's value to the nearest number for which the element would not suffer from a step mismatch. If there are two such numbers, user agents are encouraged to pick the one nearest positive infinity.

`文字列から実数に変換-$する~algo は、所与の文字列 %入力 に対し ⇒ [ %入力 を`浮動小数点数として構文解析-$した結果 ~NEQ ~error ならば その結果 / ~ELSE_ ~error ]を返す。 ◎ The algorithm to convert a string to a number, given a string input, is as follows: If applying the rules for parsing floating-point number values to input results in an error, then return an error; otherwise, return the resulting number.

`実数から文字列に変換-$する~algo は、所与の実数 %入力 に対し ⇒ %入力 を表現する`妥当な浮動小数点数$を返す。 ◎ The algorithm to convert a number to a string, given a number input, is as follows: Return a valid floating-point number that represents input.

`Number^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, max, min, placeholder, readonly, required, and step content attributes; list, value, and valueAsNumber IDL attributes; select(), stepDown(), and stepUp() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, maxlength, minlength, multiple, pattern, size, src, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, selectionStart, selectionEnd, selectionDirection, and valueAsDate IDL attributes; setRangeText(), and setSelectionRange() methods.

数値~入力~controlの用例: ◎ Here is an example of using a numeric input control:

<label>How much do you want to charge? $<input type=number min=0 step=0.01 name=price></label>

上述したように、~UAは,利用者の地域的~形式による数値~入力も~supportし得る — 上述した,提出に要求される形式に変換しつつ。 これには次の取扱いも含まれ得る: ~group分け区切子( "872,000,000,000" など)/ 種々の 10 進~区切子( "3,99" vs "3.99" など) / 地域的な数字の利用( ~Arabic, ~Devanagari, ~Persian, ~Thai など)。 ◎ As described above, a user agent might support numeric input in the user's local format, converting it to the format required for submission as described above. This might include handling grouping separators (as in "872,000,000,000") and various decimal separators (such as "3,99" vs "3.99") or using local digits (such as those in Arabic, Devanagari, Persian, and Thai).

注記: `Number$st `状態$は,~~数字のみからなるが、厳密には数でない入力~用には,適切でない。 例えば、~credit-card番号や US 郵便番号には不適切になる。 この`状態$を利用するかどうかを決定する単純な仕方は、その入力~controlが 例えば “増減~button” ~UIを備えることが意味0を成すかどうか,考えることである。 ~credit-card番号における誤りは、最後の 1 文字であろうが全部であろうが,小さな間違いではない。 増減~buttonで~credit-card番号を選択することは、利用者にとって意味0を成さない。 増減~button~UIが適切になるならば、この`状態$は,おそらく~~正しい~~選択になる(場合によっては `pattern$a 属性も伴わせて)。 ◎ The type=number state is not appropriate for input that happens to only consist of numbers but isn't strictly speaking a number. For example, it would be inappropriate for credit card numbers or US postal codes. A simple way of determining whether to use type=number is to consider whether it would make sense for the input control to have a spinbox interface (e.g. with "up" and "down" arrows). Getting a credit card number wrong by 1 in the last digit isn't a minor mistake, it's as wrong as getting every digit incorrect. So it would not make sense for the user to select a credit card number using "up" and "down" buttons. When a spinbox interface is not appropriate, type=text is probably the right choice (possibly with a pattern attribute).

4.10.5.1.13. `Range^st 状態( `type=range^c )

`Range$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Range state, the rules in this section apply.

要素は、[ その`値$を,実数を表現する文字列に設定する ]ための~controlを`表現-$する — ただし、その正確な値は重要でなく,~UAは `Number$st 状態のときより単純な~UIを提供するものとされる。 ◎ The input element represents a control for setting the element's value to a string representing a number, but with the caveat that the exact value is not important, letting UAs provide a simpler interface than they do for the Number state.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,`値$が表現する実数 — 値を`浮動小数点数として構文解析-$して得られるそれ — を変更できるようにするべきである。 ◎ the user agent should allow the user to change the number represented by its value, as obtained from applying the rules for parsing floating-point number values to it.\
  • 利用者が,`値$を[ `妥当な浮動小数点数$でない文字列 ]に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to a string that is not a valid floating-point number.\
  • 実数を選択するための~UIを提供する場合、`値$は,`浮動小数点数として最良の表現$に設定され~MUST。 ◎ If the user agent provides a user interface for selecting a number, then the value must be set to a best representation of the number representing the user's selection as a floating-point number.\
  • 利用者が,`値$を空~文字列に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to the empty string.

拘束検証 ⇒ 要素が次を満たしている間は、`不良~入力の難あり$になる ⇒ ~UI内の入力を`妥当な浮動小数点数$に変換できない ◎ Constraint validation: While the user interface describes input that the user agent cannot convert to a valid floating-point number, the control is suffering from bad input.

`value$a 属性に指定する値は、`妥当な浮動小数点数$で~MUST。 ◎ The value attribute, if specified, must have a value that is a valid floating-point number.

`値の消毒~algo$ ⇒ 要素の`値$が`妥当な浮動小数点数$でないならば、`値$を[ `既定~値$に対する`浮動小数点数として最良の表現$ ]に設定する。 ◎ The value sanitization algorithm is as follows: If the value of the element is not a valid floating-point number, then set it to the best representation, as a floating-point number, of the default value.

`既定~値@ は、[ `最大$ ~LT `最小$ならば`最小$ / ~ELSE_ `最小$と`最大$の平均 ]とする。 ◎ The default value is the minimum plus half the difference between the minimum and the maximum, unless the maximum is less than the minimum, in which case the default value is the minimum.

【 `既定の最小$が定義されているので(下記)、`最小$が −∞ になることはない。 `最大$についても同様。 】

~UAは、要素の`値$が: ◎ ↓

  • `~underflowの難あり$のときは ⇒ `値$を[ `最小$に対する`浮動小数点数として最良の表現$ ]に設定し~MUST。 ◎ When the element is suffering from an underflow, the user agent must set the element's value to the best representation, as a floating-point number, of the minimum.
  • `~overflowの難あり$のときは ⇒ [ `最大$ ~GTE `最小$ ]ならば,`値$を[ `最大$を表現する`妥当な浮動小数点数$ ]に設定し~MUST。 ◎ When the element is suffering from an overflow, if the maximum is not less than the minimum, the user agent must set the element's value to a valid floating-point number that represents the maximum.
  • `~step不一致の難あり$のときは ⇒ `値$を[ そうならなくなるような実数 %V ]のうち[ %V ~GTE `最小$ ]~AND[[ `最大$ ~LT `最小$ ]~OR[ %V ~LTE `最大$ ]]を満たすものがあるならば、それらのうち`値$に最も近いものであって,そのような実数が 2 つあるときは正の無限大に近い方に丸め~MUST。 ◎ When the element is suffering from a step mismatch, the user agent must round the element's value to the nearest number for which the element would not suffer from a step mismatch, and which is greater than or equal to the minimum, and, if the maximum is not less than the minimum, which is less than or equal to the maximum, if there is a number that matches these constraints. If two numbers match these constraints, then user agents must use the one nearest to positive infinity.

例えば、~markup `<input type="range" min=0 max=100 step=20 value=50>^c による範囲~controlに対する結果の初期~値は 60 になる。 ◎ For example, the markup <input type="range" min=0 max=100 step=20 value=50> results in a range control whose initial value is 60.

`list$a 属性による自動補完~listを利用する範囲~controlの例を示す。 これは、~controlの範囲~内に とりわけ重要な値がある場合に,有用になり得る — ~~調製済みの光量~levelや,速度~controlとして利用されるときの代表的な速度~制限-など。 次の~markup片に対し: ◎ Here is an example of a range control using an autocomplete list with the list attribute. This could be useful if there are values along the full range of the control that are especially important, such as preconfigured light levels or typical speed limits in a range control used as a speed control. The following markup fragment:

<input type="range" min="-100" max="100" value="0" step="10" name="power" list="powers">
<datalist id="powers">
<option value="0">
<option value="-30">
<option value="30">
 <option value="++50">
</datalist>

次の~stylesheetが適用されるとする: ◎ ...with the following style sheet applied:

input { height: 75px; width: 49px; background: #D5CCBB; color: black; }

描画は次に似たものになるであろう: ◎ ...might render as:

`sample-range.png:49:75^img
縦方向~slider~control。 その色は 前景は黒, 背景はベージュにされている。 ~sliderの両端には 長めに~~描かれる目盛りがあり,中心周りには 3 個の短めの目盛りがある。 ◎ A vertical slider control whose primary color is black and whose background color is beige, with the slider having five tick marks, one long one at each extremity, and three short ones clustered around the midpoint.

~UAは、~stylesheetで指定された `height^p, `width^p ~propの比から~controlの方位を決定することに注意。 色も同様に~stylesheetから導出される。 しかしながら,目盛りは、~markupから導出される。 特に、 `step$a 属性は 目盛りの配置に影響していない — ~UAは、作者が各 `option^e に指定した値のみを利用してそれを決め,それから 両端に長めの目盛りを追加する。 ◎ Note how the UA determined the orientation of the control from the ratio of the style-sheet-specified height and width properties. The colors were similarly derived from the style sheet. The tick marks, however, were derived from the markup. In particular, the step attribute has not affected the placement of tick marks, the UA deciding to only use the author-specified completion values and then adding longer tick marks at the extremes.

妥当でない値 `++50^c は完全に無視されることにも注意。 ◎ Note also how the invalid value ++50 was completely ignored.

別の例として、次の~markup片を考える: ◎ For another example, consider the following markup fragment:

<input name=x type=range min=100 max=700 step=9.09090909 value=509.090909>

~UAは、種々の仕方で表示できる。 具体例として: ◎ A user agent could display in a variety of ways, for instance:

`sample-range-2a.png:231:57^img
~dialとして ◎ As a dial.

あるいは: ◎ Or, alternatively, for instance:

`sample-range-2b.png:445:56^img
目盛りを伴う長い横方向~sliderとして。 ◎ As a long horizontal slider with tick marks.

~UAは、横幅の相違にかかわらず,目盛りに対し同じ解像度を保守できるように,~stylesheetに与えられた寸法に基づいて どれを表示するか選べる。 ◎ The user agent could pick which one to display based on the dimensions given in the style sheet. This would allow it to maintain the same resolution for the tick marks, despite the differences in width.

最後に、~label付きの値を 2 つ伴う範囲~controlの例: ◎ Finally, here is an example of a range control with two labeled values:

<input type="range" name="a" list="a-values">
<datalist id="a-values">
<option value="10" label="Low">
<option value="90" label="High">
</datalist>

~controlを縦方向に描かせる~styleであれば、次に似た見かけになるであろう: ◎ With styles that make the control draw vertically, it might look as follows:

`sample-range-labels.png:103:164^img
縦方向~slider~control。 2 個の目盛り — 上端近くの 'High', 下端近くの 'Low' — がある ◎ A vertical slider control with two tick marks, one near the top labeled 'High', and one near the bottom labeled 'Low'.

注記: この状態においては、利用者の入力中でも,範囲と~stepの拘束が施行されるので、値を空~文字列に設定する仕方はない。 ◎ In this state, the range and step constraints are enforced even during user input, and there is no way to set the value to the empty string.

`min$a 属性に指定する値は、`妥当な浮動小数点数$で~MUST。 `既定の最小$は 0 とする。 `max$a 属性に指定する値は、`妥当な浮動小数点数$で~MUST。 `既定の最大$は 100 とする。 ◎ The min attribute, if specified, must have a value that is a valid floating-point number. The default minimum is 0. The max attribute, if specified, must have a value that is a valid floating-point number. The default maximum is 100.

`~step倍率$は 1 とする。 `既定の~step$は 1 とする( `min$a 属性が整数でない値にされない限り,許容される値は整数に限られるようになる)。 ◎ The step scale factor is 1. The default step is 1 (allowing only integers, unless the min attribute has a non-integer value).

`文字列から実数に変換-$する~algo は、所与の文字列 %入力 に対し ⇒ [ %入力 を`浮動小数点数として構文解析-$した結果 ~NEQ ~error ならば その結果 / ~ELSE_ ~error ]を返す。 ◎ The algorithm to convert a string to a number, given a string input, is as follows: If applying the rules for parsing floating-point number values to input results in an error, then return an error; otherwise, return the resulting number.

`実数から文字列に変換-$する~algo は、所与の実数 %入力 に対し ⇒ %入力 に対する`浮動小数点数として最良の表現$を返す。 ◎ The algorithm to convert a number to a string, given a number input, is as follows: Return the best representation, as a floating-point number, of input.

`Range^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes, IDL attributes, and methods apply to the element: autocomplete, list, max, min, and step content attributes; list, value, and valueAsNumber IDL attributes; stepDown() and stepUp() methods. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, maxlength, minlength, multiple, pattern, placeholder, readonly, required, size, src, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, selectionStart, selectionEnd, selectionDirection, and valueAsDate IDL attributes; select(), setRangeText(), and setSelectionRange() methods.
4.10.5.1.14. `Color^st 状態( `type=color^c )

`Color$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Color state, the rules in this section apply.

要素は、その`値$を[ `単純~色$を表現する文字列 ]に設定するための色選択ボタン( color well control )を`表現-$する。 ◎ The input element represents a color well control, for setting the element's value to a string representing a simple color.

注記: この状態においては,選ばれる色は常にあるので、値を空~文字列に設定する仕方はない。 ◎ In this state, there is always a color picked, and there is no way to set the value to the empty string.

要素が`変異可能$な場合、~UAは: ◎ If the element is mutable,\

  • 利用者が,その`値$が表現する色 — 値を`単純~色として構文解析-$して得られるそれ — を変更できるようにするべきである。 ◎ the user agent should allow the user to change the color represented by its value, as obtained from applying the rules for parsing simple color values to it.\
  • 利用者が,`値$を[ `妥当な小文字~単純~色$でない文字列 ]に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to a string that is not a valid lowercase simple color.\
  • ~UAが色を選択するための~UIを提供する場合、`値$は[ 利用者の選択を`単純~色として直列化-$した結果 ]に設定され~MUST。 ◎ If the user agent provides a user interface for selecting a color, then the value must be set to the result of using the rules for serializing simple color values to the user's selection.\
  • 利用者が,`値$を空~文字列に設定できるようにしては~MUST_NOT。 ◎ User agents must not allow the user to set the value to the empty string.

拘束検証 ⇒ 要素が次を満たしている間は、`不良~入力の難あり$になる ⇒ ~UI内の入力を`妥当な小文字~単純~色$に変換できない ◎ Constraint validation: While the user interface describes input that the user agent cannot convert to a valid lowercase simple color, the control is suffering from bad input.

`value$a 属性に指定する値は、[ 空であるか, または `妥当な単純~色$ ]で~MUST。 ◎ The value attribute, if specified and not empty, must have a value that is a valid simple color.

`値の消毒~algo$ ⇒ 要素の`値$を[ それが`妥当な単純~色$であるならば それを`~ASCII小文字~化$した結果 / ~ELSE_ 文字列 `#000000^l ]に設定する。 ◎ The value sanitization algorithm is as follows: If the value of the element is a valid simple color, then set it to the value of the element converted to ASCII lowercase; otherwise, set it to the string "#000000".

`Color^bk

`value$m ~IDL属性は、`値~mode$になる。

◎ The following common input element content attributes and IDL attributes apply to the element: autocomplete and list content attributes; list and value IDL attributes; select() method. ◎ The value IDL attribute is in mode value. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, max, maxlength, min, minlength, multiple, pattern, placeholder, readonly, required, size, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, selectionStart, selectionEnd, selectionDirection, valueAsDate and, valueAsNumber IDL attributes; setRangeText(), setSelectionRange(), stepDown(), and stepUp() methods.
4.10.5.1.15. `Checkbox^st 状態( `type=checkbox^c )

`Checkbox$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Checkbox state, the rules in this section apply.

要素は、その`~checkedness$を表現する 2 状態をとり得る~controlを`表現-$する。 ~controlは、要素の`~checkedness$が[ ~T ならば肯定的~選択 / ~F ならば否定的~選択 ]を表現する。 要素の `indeterminate$m ~IDL属性 ~EQ ~T の場合、 ~controlの選択は、~controlが第三の不定な状態にあるかのように,遮蔽されるべきである。 ◎ The input element represents a two-state control that represents the element's checkedness state. If the element's checkedness state is true, the control represents a positive selection, and if it is false, a negative selection. If the element's indeterminate IDL attribute is set to true, then the control's selection should be obscured as if the control was in a third, indeterminate, state.

注記: 要素の `indeterminate$m ~IDL属性が ~T に設定されてようが, ~control自体は 決して真の 3 状態をとり得る~controlにはならない。 この~IDL属性は、第三の状態があるかのような外観を与えるのみである。 ◎ The control is never a true tri-state control, even if the element's indeterminate IDL attribute is set to true. The indeterminate IDL attribute only gives the appearance of a third state.

要素の`~input作動化の挙動$は: ◎ The input activation behavior is to\

  1. `input$et `~eventを発火する$ ◎ fire an event named input at the element, with the bubbles attribute initialized to true, and then\
  2. `change$et `~eventを発火する$ ◎ fire an event named change at the element, with the bubbles attribute initialized to true.

拘束検証 ⇒ 要素が次を満たしている間は、`欠落の難あり$になる ⇒ [ `必須$である ]~AND[ `~checkedness$ ~EQ ~F ] ◎ Constraint validation: If the element is required and its checkedness is false, then the element is suffering from being missing.

%input . `indeterminate$m [ = %値 ]

被~設定-時には、現在の値が可視でなくなるように, `Checkbox$st ~controlの描画を上書きする。 ◎ When set, overrides the rendering of checkbox controls so that the current value is not visible.

`Checkbox^bk

`value$m ~IDL属性は、`既定か~on~mode$になる。 ◎ The value IDL attribute is in mode default/on.

◎ The following common input element content attributes and IDL attributes apply to the element: checked, and required content attributes; checked and value IDL attributes. ◎ The value IDL attribute is in mode default/on. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, autocomplete, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, list, max, maxlength, min, minlength, multiple, pattern, placeholder, readonly, size, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: files, list, selectionStart, selectionEnd, selectionDirection, valueAsDate, and valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), stepDown(), and stepUp() methods.
4.10.5.1.16. `Radio^st 状態( `type=radio^c )

`Radio$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Radio Button state, the rules in this section apply.

要素は、 `Radio$st 状態にある他の要素と一緒に `~radio~button群$を形成し,[ それらのうち ただ一つのみが,`~checkedness$が ~T に設定される ]ような~controlを`表現-$する。 ~controlは、要素の`~checkedness$に応じて[ ~T ならば この群~内で選択されている / ~F ならば選択されていない ]ことを表現する。 ◎ The input element represents a control that, when used in conjunction with other input elements, forms a radio button group in which only one control can have its checkedness state set to true. If the element's checkedness state is true, the control represents the selected control in the group, and if it is false, it indicates a control in the group that is not selected.

要素が属する `~radio~button群@ は、要素~自身, および要素と同じ群に属する要素の集合からなる — ここで 2 つの要素が同じ群に属するとは、次のすべてが満たされることを意味する: ◎ The radio button group that contains an input element a also contains all the other input elements b that fulfill all of the following conditions:

  • 両者とも `Radio$st `状態$にある ◎ The input element b's type attribute is in the Radio Button state.
  • 互いの`~form所有者$は、同じである(両者ともない場合も含む) ◎ Either a and b have the same form owner, or they both have no form owner.
  • 互いに同じ`木$内にある ◎ Both a and b are in the same tree.
  • 両者とも `name$a 属性を有していて,それらの値は空でない, かつ 互いに等しい ◎ They both have a name attribute, their name attributes are not empty, and the value of a's name attribute equals the value of b's name attribute.

`木$内にある要素が属する`~radio~button群$は,他にも別の要素を含んでい~MUST。 ◎ A tree must not contain an input element whose radio button group contains only that element.

要素に対し,次のいずれかが生じたときは、その後の時点で[ 要素の`~checkedness$ ~EQ ~T ]ならば,[ その時点で要素が属する`~radio~button群$ ]内の他のすべての要素の`~checkedness$は ~F にされ~MUST: ◎ When any of the following phenomena occur, if the element's checkedness state is true after the occurrence, the checkedness state of all the other elements in the same radio button group must be set to false:

  • `~checkedness$が ~T に変化したとき(理由が何であれ)。 ◎ The element's checkedness state is set to true (for whatever reason).
  • 要素が属する`~radio~button群$が変化したとき — これは、要素に対し次が生じたときに生じる:

    • `name$a 属性が[ 設定- / 変更- / 除去- ]されたとき
    • `~form所有者$が変化したとき
    • 型~変化が合図されたとき
    ◎ The element's name attribute is set, changed, or removed. ◎ The element's form owner changes. ◎ A type change is signalled for the element.

要素の`~input作動化の挙動$は: ◎ The input activation behavior is to\

  1. `input$et `~eventを発火する$ ◎ fire an event named input at the element, with the bubbles attribute initialized to true, and then\
  2. `change$et `~eventを発火する$ ◎ fire an event named change at the element, with the bubbles attribute initialized to true.

拘束検証 ⇒ 要素が次を満たしている間は、`欠落の難あり$になる ⇒ 要素が属する`~radio~button群$を %G とするとき ⇒ [ %G 内のある要素は`必須$である ]~AND[ %G 内のどの要素も,その `~checkedness$ ~EQ ~F ] ◎ Constraint validation: If an element in the radio button group is required, and all of the input elements in the radio button group have a checkedness that is false, then the element is suffering from being missing.

次の例の "クロ" は、何らかの理由で`必須$かつ`不能化され$るように指定されている: ◎ The following example, for some reason, has specified that puppers are both required and disabled:

<form>
 <p><label><input type="radio" name="color" value="クロ" required disabled>クロ</label>
 <p><label><input type="radio" name="color" value="シロ">シロ</label>
 <p><button>選んでください</button>
</form>

利用者が "シロ" を選択しないまま この~formを提出しようとした場合、両 `input$e 要素とも`欠落の難あり$になる — `~radio~button群$内には`必須$の要素(すなわち,最初のもの)があり、この群~内のどの要素も, その`~checkedness$は ~F なので。 ◎ If the user tries to submit this form without first selecting "Doggo", then both input elements will be suffering from being missing, since an element in the radio button group is required (viz. the first element), and both of the elements in the radio button group have a false checkedness.

他方、利用者が "シロ" を選択してから~formを提出した場合、両 `input$e 要素とも,`欠落の難あり$にはならない — この群~内では、他のものが`必須$にされているが, `~checkedness$が ~F でないものもあるので。 ◎ On the other hand, if the user selects "Doggo" and then submits the form, then neither input element will be suffering from being missing, since while one of them is required, not all of them have a false checkedness.

注記: `~radio~button群$ %G 内のどの~radio~buttonも~checkされていない場合、~UIにおいても, %G 内のそれらは 初期時から~checkされないままになる — %G 内のいずれかが(利用者または~scriptにより)~checkされるまでは。 ◎ If none of the radio buttons in a radio button group are checked, then they will all be initially unchecked in the interface, until such time as one of them is checked (either by the user or by script).

`Radio^bk

`value$m ~IDL属性は、`既定か~on~mode$になる。 ◎ The value IDL attribute is in mode default/on.

◎ The following common input element content attributes and IDL attributes apply to the element: checked and required content attributes; checked and value IDL attributes. ◎ The value IDL attribute is in mode default/on. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, autocomplete, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, list, max, maxlength, min, minlength, multiple, pattern, placeholder, readonly, size, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: files, list, selectionStart, selectionEnd, selectionDirection, valueAsDate, and valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), stepDown(), and stepUp() methods.
4.10.5.1.17. `File^st 状態( `type=file^c )

`File$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the File Upload state, the rules in this section apply.

要素は、 `選択された~file~list@ の~listを`表現-$する。 ~list内の各~fileは,その[ 名前, 型, ~data内容 ]からなる。 ◎ The input element represents a list of selected files, each file consisting of a file name, a file type, and a file body (the contents of the file).

~file名は、`~path成分$を包含しては~MUST_NOT — 利用者が ~directory階層~全体を選択しようが,複数の~directoryから同じ名前の複数の~fileを選択しようが。 `File$st 状態の目的0においては、 `~path成分@ は,~file名~内の文字 `005C^U `\^smb で分離される部位である `?^tnote 。 ◎ File names must not contain path components, even in the case that a user has selected an entire directory hierarchy or multiple files with the same name from different directories. Path components, for the purposes of the File Upload state, are those parts of file names that are separated by U+005C REVERSE SOLIDUS character (\) characters.

`multiple$a 属性が設定されない限り,`選択された~file~list$内に複数個の~fileがあっては~MUST_NOT。 ◎ Unless the multiple attribute is set, there must be no more than one file in the list of selected files.

要素の`~input作動化の挙動$は、次の手続きを走らす: ◎ The element's input activation behavior is to run the following steps:

  1. ~IF[ この~algoは、`利用者の作動化により誘発され$てはいない ] ⇒ ~RET ◎ If the algorithm is not triggered by user activation, then abort these steps without doing anything else.
  2. ~RET — ただし、この手続きは`並列的$に継続する ◎ Return, but continue running these steps in parallel.
  3. 任意選択で ⇒ この~algoの実行に先立つ この~algoの別の実行があれば,それらが終了されるまで待機する ◎ Optionally, wait until any prior execution of this algorithm has terminated.
  4. 利用者に,何らかの~fileを指定してもらうよう~promptを表示する: ◎ Display a prompt to the user requesting that the user specify some files.\

    • `multiple$a 属性が設定されていない場合、 複数個の~fileが選択されては~MUST_NOT ◎ If the multiple attribute is not set, there must be no more than one file selected;\
    • 他の場合、選択される個数に上限は無い。 ◎ otherwise, any number may be selected.\

    ~fileは、~filesystemからの場合もあれば,その場で作成されることもある — 例: 利用者の機器に接続されている~cameraから撮られた~~写真など。 ◎ Files can be from the filesystem or created on the fly, e.g. a picture taken from a camera connected to the user's device.

  5. 利用者が選択を終えるまで待機する ◎ Wait for the user to have made their selection.
  6. 次を走らす`~taskを待入する$: ◎ Queue a task\

    1. 要素の`選択された~file~list$を,利用者の選択を表現するように更新する ◎ to first update the element's selected files so that it represents the user's selection, then\
    2. `input$et `~eventを発火する$ ◎ fire an event named input at the input element, with the bubbles attribute initialized to true, and finally\
    3. `change$et `~eventを発火する$ ◎ fire an event named change at the input element, with the bubbles attribute initialized to true.

要素が`変異可能$な場合、~UAは,他の仕方でも 利用者が~list内の~fileを変更できるようにするべきである。 例: ~drag&~dropにより~fileたちを追加したり, 除去するなど。 利用者がそうしたときは、~UAは,次を走らす`~taskを待入し$~MUST: ◎ If the element is mutable, the user agent should allow the user to change the files on the list in other ways also, e.g. adding or removing files by drag-and-drop. When the user does so, the user agent must queue a task\

  1. 要素の`選択された~file~list$を 利用者の新たな選択を表現するように更新する ◎ to first update the element's selected files so that it represents the user's new selection, then\
  2. `input$et `~eventを発火する$ ◎ fire an event named input at the input element, with the bubbles attribute initialized to true, and finally\
  3. `change$et `~eventを発火する$ ◎ fire an event named change at the input element, with the bubbles attribute initialized to true.

要素が`変異可能$でない場合、~UAは,利用者が`選択された~file~list$を変更できるようにしては~MUST_NOT。 ◎ If the element is not mutable, the user agent must not allow the user to change the element's selection.

拘束検証 ⇒ 要素が次を満たしている間は、`欠落の難あり$になる ⇒ [ 要素は`必須$である ]~AND[ `選択された~file~list$は空 ] ◎ Constraint validation: If the element is required and the list of selected files is empty, then the element is suffering from being missing.


`accept@a 属性により、どの~file型が受容されるかについての~hintを~UAに提供できる。 ◎ The accept attribute may be specified to provide user agents with a hint of what file types will be accepted.

この属性に指定する値は、`~comma区切りの~token集合$であって,その それぞれは、`~ASCII大小無視$で次のいずれかに合致する文字列で~MUST: ◎ If specified, the attribute must consist of a set of comma-separated tokens, each of which must be an ASCII case-insensitive match for one of the following:

`audio/*^l ◎ The string "audio/*"
音声~fileが受容されることを指示する。 ◎ Indicates that sound files are accepted.
`video/*^l ◎ The string "video/*"
動画~fileが受容されることを指示する。 ◎ Indicates that video files are accepted.
`image/*^l ◎ The string "image/*"
画像~fileが受容されることを指示する。 ◎ Indicates that image files are accepted.
`~parameterを伴わない妥当な~MIME型$ ◎ A valid MIME type with no parameters
その型の~fileが受容されることを指示する。 ◎ Indicates that files of the specified type are accepted.
最初の文字 ~EQ `002E^U `.^smb ◎ A string whose first character is a U+002E FULL STOP character (.)
その~file拡張子を伴う~fileが受容されることを指示する。 ◎ Indicates that files with the specified file extension are accepted.

どの 2 つの~tokenも、`~ASCII大小無視$で互いに合致しては~MUST_NOT(すなわち,重複は許容されない)。 ~UAは、属性から~tokenの~listを得るときは,その値を`~commaで分割-$し~MUST。 ◎ The tokens must not be ASCII case-insensitive matches for any of the other tokens (i.e. duplicates are not allowed). To obtain the list of tokens from the attribute, the user agent must split the attribute value on commas.

~UAは、この属性の値を,汎用~file~pickerよりも適切な~UIを表示するために利用して~MAY。 具体例として: 値 `image/*^l が与えられたなら,局所的~cameraを利用したり,利用者に写真集から写真を選択してもらう / 値 `audio/*^l が与えられたなら,~headset~microphoneを利用して~clipを録音する などの選択肢を利用者に提供0することもできる。 ◎ User agents may use the value of this attribute to display a more appropriate user interface than a generic file picker. For instance, given the value image/*, a user agent could offer the user the option of using a local camera or selecting a photograph from their photo collection; given the value audio/*, a user agent could offer the user the option of recording a clip using a headset microphone.

~UAは、利用者が これらの~tokenのいずれかに受容されない~fileを選択することを防止するべきでない。 ◎ User agents should prevent the user from selecting files that are not accepted by one (or more) of these tokens.

注記: 作者には、特定の形式による~dataを~~期待するときには,[ ~MIME型,それに対応する拡張子 ]の両者とも指定することが奨励される。 ◎ Authors are encouraged to specify both any MIME types and any corresponding extensions when looking for data in a specific format.

例えば、 Microsoft Word 文書を Open Document Format ~fileに変換する~appを考える。 Microsoft Word 文書の ~MIME型や拡張子には多様なものがあるので、~siteは次のように いくつかを~listできる: ◎ For example, consider an application that converts Microsoft Word documents to Open Document Format files. Since Microsoft Word documents are described with a wide variety of MIME types and extensions, the site can list several, as follows:

<input type="file" accept=".doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document">

~file拡張子のみを利用して~file型を記述する~platformにおいては、ここに~listされる拡張子を 許容される文書を絞込むために利用しつつ、~systemが~MIME型~登録~表を備えていれば,それに基づいて(~MIME型を~systemで利用されている拡張子に対応付けて)他にも許容される拡張子を決定できる。 同様に、~file名や拡張子を文書に付与しないが,内部的には~MIME型を用いるような~systemにおいては、~MIME型を 許容される~fileを選ぶために利用しつつ、拡張子も,~systemが拡張子~登録~表を備えていれば,それに基づいて(既知の拡張子を ~systemで利用されている~MIME型に対応付けて)他にも許容される~MIME型を決定できる。 ◎ On platforms that only use file extensions to describe file types, the extensions listed here can be used to filter the allowed documents, while the MIME types can be used with the system's type registration table (mapping MIME types to extensions used by the system), if any, to determine any other extensions to allow. Similarly, on a system that does not have file names or extensions but labels documents with MIME types internally, the MIME types can be used to pick the allowed files, while the extensions can be used if the system has an extension registration table that maps known extensions to MIME types used by the system.

拡張子は、多義的になる傾向にある(例えば、 `.dat^l 拡張子を利用するような形式は いくつあるかわからず、利用者は概して, ~fileをごく容易に — それが Microsoft Word 文書でなくとも — `.doc^l 拡張子に改称し得る)。 また、~MIME型にも依拠できない傾向にある(例: 多くの形式は、公式的に型が登録されておらず,実施における~MIME型は何種類もある)。 作者は,そのことを頭に入れて、~clientから受取った~dataは,通例のように用心深く扱うべきである — 利用者が敵対的でなかろうが,~UAが `accept$a 属性の要件を全部的に順守していようが、期待される形式でないかもしれないので。 ◎ Extensions tend to be ambiguous (e.g. there are an untold number of formats that use the ".dat" extension, and users can typically quite easily rename their files to have a ".doc" extension even if they are not Microsoft Word documents), and MIME types tend to be unreliable (e.g. many formats have no formally registered types, and many formats are in practice labeled using a number of different MIME types). Authors are reminded that, as usual, data received from a client should be treated with caution, as it may not be in an expected format even if the user is not hostile and the user agent fully obeyed the accept attribute's requirements.

歴史的~理由から、 `value$m ~IDL属性は,~file名に文字列 `C:\fakepath\^l を接頭する。 一部の旧来の~UAは、実際に全部的~pathを含めていた(それは保安~上の脆弱性であった)。 そのため、 `value$m ~IDL属性から後方互換な仕方で~file名を得ることは、自明でない。 次の関数は、~file名を~~相応に互換な方式で抽出する: ◎ For historical reasons, the value IDL attribute prefixes the file name with the string "C:\fakepath\". Some legacy user agents actually included the full path (which was a security vulnerability). As a result of this, obtaining the file name from the value IDL attribute in a backwards-compatible way is non-trivial. The following function extracts the file name in a suitably compatible manner:

function extractFilename(%path) {
  if (%path.substr(0, 12) == "C:\\fakepath\\")
    return %path.substr(12); // ~modern~browser
  var %x;
  %x = %path.lastIndexOf('/');
  if (%x >= 0) // Unix ~path
    return %path.substr(%x + 1);
  %x = %path.lastIndexOf('\\');
  if (%x >= 0) // Windows ~path
    return %path.substr(%x + 1);
  return %path; // 単に~file名のみ
}

これは次のように利用できる: ◎ This can be used as follows:

<p><input type=file name=image onchange="updateFilename(this.value)"></p>
<p>あなたが選んんだ~file名は: <span id="filename">(none)</span></p>
<script>
 function updateFilename(%path) {
   var %name = extractFilename(%path);
   document.getElementById('filename').textContent = %name;
 }
</script>

`File^bk

`value$m ~IDL属性は、`~filename~mode$になる。

要素の `value$a 属性は、省略され~MUST。

◎ The following common input element content attributes and IDL attributes apply to the element: accept, multiple, and required content attributes; files and value IDL attributes; select() method. ◎ The value IDL attribute is in mode filename. ◎ The input and change events apply. ◎ The following content attributes must not be specified and do not apply to the element: alt, autocomplete, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, list, max, maxlength, min, minlength, pattern, placeholder, readonly, size, src, step, and width. ◎ The element's value attribute must be omitted. ◎ The following IDL attributes and methods do not apply to the element: checked, list, selectionStart, selectionEnd, selectionDirection, valueAsDate, and valueAsNumber IDL attributes; setRangeText(), setSelectionRange(), stepDown(), and stepUp() methods.
4.10.5.1.18. `Submit^st 状態( `type=submit^c )

`Submit$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Submit Button state, the rules in this section apply.

要素は、作動化-時に~formを提出する~buttonを`表現-$する。 ~buttonの~labelは、[ 要素が `value$a 属性を有するならば その属性の値 / ~ELSE_ “提出する” に似た何かを意味する実装定義の文字列 ]にされ~MUST。 要素は、`~button$であり,また `提出-~button$でもある。 ~FINGERPRINTING ◎ The input element represents a button that, when activated, submits the form. If the element has a value attribute, the button's label must be the value of that attribute; otherwise, it must be an implementation-defined string that means "Submit" or some such. The element is a button, specifically a submit button. (This is a fingerprinting vector.)

注記: ~buttonの横幅は、指紋収集し得るような少しばかりの情報を漏洩し得る — 既定の~labelは実装定義であり,~buttonの横幅は概してその~labelに依存するので。 この情報は、[ ~UA, 利用者の~locale ]の同一性に強く関係付けられる見込みが高い。 ◎ Since the default label is implementation-defined, and the width of the button typically depends on the button's label, the button's width can leak a few bits of fingerprintable information. These bits are likely to be strongly correlated to the identity of the user agent and the user's locale.

要素の`~input作動化の挙動$は ⇒ [ 要素の`~form所有者$ ~NEQ ~NULL ]~AND[ 要素の`~node文書$は`全部的に作動中$である ]ならば、要素から`~form所有者$を`提出-$する。 他の場合、何もしない。 ◎ The element's input activation behavior is as follows: if the element has a form owner, and the element's node document is fully active, submit the form owner from the input element; otherwise, do nothing.

次の属性は、`~form提出用の属性$である ⇒ `formaction$a, `formenctype$a, `formmethod$a, `formnovalidate$a, `formtarget$a ◎ The formaction, formenctype, formmethod, formnovalidate, and formtarget attributes are attributes for form submission.

注記: `formnovalidate$a 属性は、[ 提出-~buttonが拘束検証を誘発しない ]ようにするために利用できる。 ◎ The formnovalidate attribute can be used to make submit buttons that do not trigger the constraint validation.

`Submit^bk

`value$m ~IDL属性は、`既定~mode$になる。

◎ The following common input element content attributes and IDL attributes apply to the element: formaction, formenctype, formmethod, formnovalidate, and formtarget content attributes; value IDL attribute. ◎ The value IDL attribute is in mode default. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, autocomplete, checked, dirname, height, inputmode, list, max, maxlength, min, minlength, multiple, pattern, placeholder, readonly, required, size, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, list, selectionStart, selectionEnd, selectionDirection, valueAsDate, and valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), stepDown(), and stepUp() methods. ◎ The input and change events do not apply.
4.10.5.1.19. `Image^st 状態( `type=image^c )

`Image$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Image Button state, the rules in this section apply.

要素は、それにより[ 利用者が座標を選択して~formを提出できる画像 / あるいは代替として 利用者が~formを提出できる~button ]を`表現-$する。 要素は`~button$であり,`提出-~button$でもある。 ◎ The input element represents either an image from which a user can select a coordinate and submit the form, or alternatively a button from which the user can submit the form. The element is a button, specifically a submit button.

注記: 要素に対する座標の ( %x, %y ) 成分は、順に,~controlの名前に[ `.x^l, `.y^l ]を付加して導出される 2 個の~entryとして ~form提出の間 に~serverに送信される。 ◎ The coordinate is sent to the server during form submission by sending two entries for the element, derived from the name of the control but with ".x" and ".y" appended to the name with the x and y components of the coordinate respectively.


画像は `src@a 属性により与えられる。 この属性は、次を満たさ~MUST: ◎ The image is given by the src attribute.\

  • 要素~上に在する ◎ The src attribute must be present, and\
  • 値は`前後~空白~可の妥当かつ空でない~URL$を包含する ◎ must contain a valid non-empty URL potentially surrounded by spaces\
  • 対話的でない画像~資源を参照している — ~animate化されていてもよいが、頁をめくるような~UIを備えるもの, ~scriptで動かすものは除外される。 ◎ referencing a non-interactive, optionally animated, image resource that is neither paged nor scripted.

以下に “除外される~UA” を除き、~UAは, “必要が生じた時点” で要素の “画像を~fetch” し~MUST: ◎ When any of the these events occur

  • “必要が生じた時点” とは、次のいずれかが生じたときを意味する:

    • 要素が `src$a 属性を有している下で,要素の`状態$が非 `Image$st から `Image$st に変化したとき(要素の作成-時も含まれる)
    • 要素が `Image$st `状態$にある下で,要素の `src$a 属性が別の値に[ 設定-/変更- ]されたとき

    ただし、~UAが同じ画像への~fetchをすでに試みていた場合は除外される — 具体的には ⇒ 要素が過去のある時点で、 `Image$st `状態$にあって,そのときの `src$a 属性の値が,前項のいずれかが生じた後のそれと同じである場合

    ◎ the input element's type attribute is first set to the Image Button state (possibly when the element is first created), and the src attribute is present ◎ the input element's type attribute is changed back to the Image Button state, and the src attribute is present, and its value has changed since the last time the type attribute was in the Image Button state ◎ the input element's type attribute is in the Image Button state, and the src attribute is set or changed
  • “除外される~UA” とは、次のいずれかを意味する:

    • 画像を~supportしていない
    • 画像の~supportは不能化されている
    • 画像をその場( on demand )で~fetchすることにしている

    【 “その場” とは、画像が実際の呈示に必要になることが判明する時点まで画像の~fetch時機を遅らせることを意味すると思われるが、その挙動は,ここには述べられていない。 】

    ◎ then unless the user agent cannot support images, or its support for images has been disabled, or the user agent only fetches images on demand,\
  • “画像を~fetchする” ときは、次を走らす: ◎ \

    1. 次に従って画像~URLを検査する:

      1. %src ~LET `src$a 属性の値
      2. ~IF [ %src ~EQ 空~文字列 ] ⇒ ~RET
      3. %文書 ~LET 要素の`~node文書$
      4. %~URL ~LET %src を %文書 に`相対的に構文解析-$した`結果の~URL~record$
      5. ~IF[ %~URL ~EQ ~error ] ⇒ ~RET
      ◎ or the src attribute's value is the empty string, the user agent must parse the value of the src attribute value, relative to the element's node document, and if that is successful, then:
    2. %要請 ~LET 次のようにされた新たな `要請$ ⇒ `~url$rq ~SET %~URL,
      `~client$rq ~SET %文書 に`関連する設定群~obj$,
      `種別$rq ~SET `image^l,
      `行先$rq ~SET `image^l,
      `資格証~mode$rq ~SET `include^l,
      `~URL資格証~利用~flag$rq ~SET ~ON ◎ Let request be a new request whose url is the resulting URL record, client is the element's node document's relevant settings object, type is "image", destination is "image", credentials mode is "include", and whose use-URL-credentials flag is set.
    3. %要請 を`~fetch$する ◎ Fetch request.

    画像の~fetchingは、[ 資源が~fetch(下に定義される)されて `~network用~task源$により`待入され$た`~task$ ]が走らされたときまで,要素の`~node文書$の`~load~eventを遅延-$し~MUST。 ◎ Fetching the image must delay the load event of the element's node document until the task that is queued by the networking task source once the resource has been fetched (defined below) has been run.

画像は次をすべて満たすならば `可用@ であるとされる:

  • ~network~errorを伴わずに得られている
  • 画像の型は、~UAが~supportする型である
  • その型の妥当な画像である
◎ If the image was successfully obtained, with no network errors, and the image's type is a supported image type, and the image is a valid image of that type, then the image is said to be available.\

画像が完全に~downloadされる前にこれが満たされる場合、[ 画像が~fetchされている間,`~network用~task源$により`待入され$た 各`~task$ ]は、画像の呈示を適切に更新し~MUST。 ◎ If this is true before the image is completely downloaded, each task that is queued by the networking task source while the image is being fetched must update the presentation of the image appropriately.

【 したがって、画像の描画-可能な~dataが一部でも得られていれば,`可用$とされ得ることになる。 その場合でも,定義に従えば、~network~errorにより~downloadが中断された時点で`可用$でないとされることになる(?)が、その場合の `load^et / `error^et ~eventの取扱いがはっきしりない(両者とも発火するのか? ~UAが`可用$かそうでないかを確定させた時点で片方だけ発火するのか?)。 】

~UAは、画像の型を決定するときには,[ 公式の型として,画像に結付けられている`~Content-Type~metadata$( `Content-Type^h ~header ) ]を与える下で,`画像を~sniffする規則$を適用するべきである。 これらの規則が適用されない場合、画像の`~Content-Type~metadata$が画像の型を与え~MUST。 ◎ The user agent should apply the image sniffing rules to determine the type of the image, with the image's associated Content-Type headers giving the official type. If these rules are not applied, then the type of the image must be the type given by the image's associated Content-Type headers.

~UAは、要素の資源に対しては: ◎ ↓

  • 画像でないものを~supportしては~MUST_NOT。 ◎ User agents must not support non-image resources with the input element.\
  • 埋込まれている実行可能~codeを走らせては~MUST_NOT。 ◎ User agents must not run executable code embedded in the image resource.\
  • 複~頁からなる場合は、最初の頁のみを表示し~MUST。 ◎ User agents must only display the first page of a multipage resource.\
  • 対話的に動作させては~MUST_NOT。 ◎ User agents must not allow the resource to act in an interactive fashion, but\
  • ~animationがあれば尊守するべきである。 ◎ should honor any animation in the resource.

資源が~fetchされたときに `~network用~task源$により`待入され$た`~task$は、次を走らす`~taskを待入し$~MUST:

  1. %~event名 ~LET [ 資源による画像は`可用$である ならば `load$et / ~ELSE_ `error$et ]
  2. 要素に向けて 名前 %~event名 の`~eventを発火-$する
◎ The task that is queued by the networking task source once the resource has been fetched, must, if the download was successful and the image is available, queue a task to fire an event named load at the input element; and otherwise, if the fetching process fails without a response from the remote server, or completes but the image is not a valid or supported image, queue a task to fire an event named error on the input element.

`alt@a 属性は、画像を利用できない利用者や~UAのために,~textによる~labelを~button用に提供する。 要素は、この属性を有して~MUST。 その値は、画像が可用でない場合に等価な~buttonになるような,空でない適切な~labelを与える文字列で~MUST。 ◎ The alt attribute provides the textual label for the button for users and user agents who cannot use the image. The alt attribute must be present, and must contain a non-empty string giving the label that would be appropriate for an equivalent button if the image was unavailable.

要素は、`寸法~属性$を~supportする。 ◎ The input element supports dimension attributes.


要素は、次を`表現-$する:

  • 次に与える条件 (A) が満たされるならば、 `src$a 属性が指定する画像から`座標を選択-$するための~control。

    条件 (A) :

    • 要素は `src$a 属性を有する ~AND
    • 画像は `可用$である ~AND
    • ~UAは その画像を表示するように環境設定されている
    ◎ If the src attribute is set, and the image is available and the user agent is configured to display that image, then: The element represents a control for selecting a coordinate from the image specified by the src attribute;\

    加えて,要素が`変異可能$ならば、~UAは,利用者がこの`座標を選択-$できるようにするべきである。 ◎ if the element is mutable, the user agent should allow the user to select this coordinate, and\ ◎ ↓the element's input activation behavior is as follows: if the element has a form owner, and the element's node document is fully active, take the user's selected coordinate, and submit the input element's form owner from the input element. If the user activates the control without explicitly selecting a coordinate, then the coordinate (0,0) must be assumed.

  • 他の場合、 `alt$a 属性が与える~labelを伴う 提出-~button。 ◎ Otherwise, the element represents a submit button whose label is given by the value of the alt attribute;\ ◎ ↓the element's input activation behavior is as follows: if the element has a form owner, and the element's node document is fully active, set the selected coordinate to (0,0), and submit the input element's form owner from the input element.↓

要素の`~input作動化の挙動$は,次に従わ~MUST:

  1. ~IF[ 要素の`~node文書$は`全部的に作動中$でない ] ⇒ ~RET
  2. %所有者 ~LET 要素の`~form所有者$
  3. ~IF[ %所有者 ~EQ ~NULL ] ⇒ ~RET
  4. `選択された座標$ ~LET ( 0, 0 )
  5. ~IF[ 要素は上に与えた条件 (A) を満たす ]~AND[ 利用者は座標を明示的に選択した ] ⇒ `選択された座標$ ~SET 利用者から`選択された座標$
  6. 要素から %所有者 へ`提出-$する
◎ ↑ ◎ In either case, if the element has no form owner or the element's node document is not fully active, then its input activation behavior must be to do nothing..

`選択された座標@ は、次をすべて満たす実数 ( %x, %y ) を表現する 2 個の`妥当な整数$からなってい~MUST: ◎ The selected coordinate must consist of an x-component and a y-component.\

  • ( %x, %y ) は、画像の座標~空間における位置を表現する。 ◎ The coordinates represent the position relative to the edge of the image,\
  • 座標~空間は、画像の左上隅を原点とし, ( %x, %y ) の正~方向は ( 右方, 下方 ) とする。 ◎ with the coordinate space having the positive x direction to the right, and the positive y direction downwards.
  • − ( 左端~border幅 + 左端~padding幅 ) ~LTE %x ~LTE ( 横幅 + 右端~border幅 + 右端~padding幅 ) ◎ The x-component must be a valid integer representing a number x in the range −(borderleft+paddingleft) ≤ x ≤ width+borderright+paddingright, where width is the rendered width of the image, borderleft is the width of the border on the left of the image, paddingleft is the width of the padding on the left of the image, borderright is the width of the border on the right of the image, and paddingright is the width of the padding on the right of the image, with all dimensions given in CSS pixels.
  • − ( 上端~border幅 + 上端~padding幅 ) ~LTE %y ~LTE ( 縦幅 + 下端~border幅 + 下端~padding幅 ) ◎ The y-component must be a valid integer representing a number y in the range −(bordertop+paddingtop) ≤ y ≤ height+borderbottom+paddingbottom, where height is the rendered height of the image, bordertop is the width of the border above the image, paddingtop is the width of the padding above the image, borderbottom is the width of the border below the image, and paddingbottom is the width of the padding below the image, with all dimensions given in CSS pixels.

ここで,すべての寸法(〜幅)は、実際に描画された画像の `~CSS~pixel$単位による寸法を表すとする。 ◎ Where a border or padding is missing, its width is zero CSS pixels.


次の属性は、`~form提出用の属性$である ⇒ `formaction$a, `formenctype$a, `formmethod$a, `formnovalidate$a, `formtarget$a ◎ The formaction, formenctype, formmethod, formnovalidate, and formtarget attributes are attributes for form submission.

%image . `width$m [ = %value ]
%image . `height$m [ = %value ]
これらの属性は、[ 実際に描画された画像の寸法が既知であれば それ / 他の場合は 0 ]を返す。 ◎ These attributes return the actual rendered dimensions of the image, or zero if the dimensions are not known.
いずれも、設定して,対応する内容~属性を変更できる。 ◎ They can be set, to change the corresponding content attributes.
`Image^bk

`value$m ~IDL属性は、`既定~mode$になる。

要素の `value$a 属性は、省略され~MUST。

◎ The following common input element content attributes and IDL attributes apply to the element: alt, formaction, formenctype, formmethod, formnovalidate, formtarget, height, src, and width content attributes; value IDL attribute. ◎ The value IDL attribute is in mode default. ◎ The following content attributes must not be specified and do not apply to the element: accept, autocomplete, checked, dirname, inputmode, list, max, maxlength, min, minlength, multiple, pattern, placeholder, readonly, required, size, and step. ◎ The element's value attribute must be omitted. ◎ The following IDL attributes and methods do not apply to the element: checked, files, list, selectionStart, selectionEnd, selectionDirection, valueAsDate, and valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), stepDown(), and stepUp() methods. ◎ The input and change events do not apply.

注記: この状態の挙動の多くの側面は、 `img$e 要素の挙動に類似する。 読者には、その節も読むことが奨励される。 同じ要件の多くが,より詳細に述べられているので。 ◎ Many aspects of this state's behavior are similar to the behavior of the img element. Readers are encouraged to read that section, where many of the same requirements are described in more detail.

次の~formがあるとする: ◎ Take the following form:

<form action="process.cgi">
 <input type=image src=map.png name=where alt="所在~listを示す">
</form>

利用者が画像の 座標 ( 127,40 ) を~clickした場合、~formを提出するときに利用される~URLは, `process.cgi?where.x=127&where.y=40^l になる。 ◎ If the user clicked on the image at coordinate (127,40) then the URL used to submit the form would be "process.cgi?where.x=127&where.y=40".

(この例では、利用者が,~mapではなく "所在~listを示す" と~labelされた~buttonを見ていて,それを~clickした場合には、~mapから選ぶ代わりに,~serverに所在の~listを示させて、そこからから選ぶものと見做されている。) ◎ (In this example, it's assumed that for users who don't see the map, and who instead just see a button labeled "Show location list", clicking the button will cause the server to show a list of locations to pick from instead of the map.)

4.10.5.1.20. `Reset^st 状態( `type=reset^c )

`Reset$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Reset Button state, the rules in this section apply.

要素は、[ 作動化-時に~formを再設定する~button ]を`表現-$する。 ~buttonの~labelは、[ 要素が `value$a 属性を有するならば その属性の値 / ~ELSE_ “再設定する” に似た何かを意味する実装定義の文字列 ]にされ~MUST。 要素は`~button$である。 ~FINGERPRINTING ◎ The input element represents a button that, when activated, resets the form. If the element has a value attribute, the button's label must be the value of that attribute; otherwise, it must be an implementation-defined string that means "Reset" or some such. The element is a button. (This is a fingerprinting vector.)

注記: `Reset^st 状態も、 `Submit^st 状態と同様に 指紋収集の対象にされ得る。 ◎ Since the default label is implementation-defined, and the width of the button typically depends on the button's label, the button's width can leak a few bits of fingerprintable information. These bits are likely to be strongly correlated to the identity of the user agent and the user's locale.

要素の`~input作動化の挙動$は ⇒ [ 要素の`~form所有者$ ~NEQ ~NULL ]~AND[ 要素の`~node文書$は`全部的に作動中$である ]ならば,`~form所有者$を`再設定$する。 他の場合、何もしない。 ◎ The element's input activation behavior, if the element has a form owner and the element's node document is fully active, is to reset the form owner; otherwise, it is to do nothing.

拘束検証 ⇒ `拘束検証の対象外$。 ◎ Constraint validation: The element is barred from constraint validation.

`Reset^bk

`value$m ~IDL属性は、`既定~mode$になる。

◎ The value IDL attribute applies to this element and is in mode default. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, autocomplete, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, list, max, maxlength, min, minlength, multiple, pattern, placeholder, readonly, required, size, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, list, selectionStart, selectionEnd, selectionDirection, valueAsDate, and valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), stepDown(), and stepUp() methods. ◎ The input and change events do not apply.
4.10.5.1.21. `Button^st 状態( `type=button^c )

`Button$st `状態$にある `input$e 要素に対しては、この節の規則が適用される。 ◎ When an input element's type attribute is in the Button state, the rules in this section apply.

要素は、既定の挙動を伴わない~buttonを`表現-$する。 ~buttonの~labelは、 `value$a 属性にて提供され~MUST — 空~文字列でも~MAY。 ~buttonの~labelは、[ 要素が `value$a 属性を有するならば その値 / ~ELSE_ 空~文字列 ]にされ~MUST。 要素は`~button$である。 ◎ The input element represents a button with no default behavior. A label for the button must be provided in the value attribute, though it may be the empty string. If the element has a value attribute, the button's label must be the value of that attribute; otherwise, it must be the empty string. The element is a button.

要素の`~input作動化の挙動$はない。 ◎ The element has no input activation behavior.

拘束検証 ⇒ `拘束検証の対象外$。 ◎ Constraint validation: The element is barred from constraint validation.

`Button^bk

`value$m ~IDL属性は、`既定~mode$になる。

◎ The value IDL attribute applies to this element and is in mode default. ◎ The following content attributes must not be specified and do not apply to the element: accept, alt, autocomplete, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, inputmode, list, max, maxlength, min, minlength, multiple, pattern, placeholder, readonly, required, size, src, step, and width. ◎ The following IDL attributes and methods do not apply to the element: checked, files, list, selectionStart, selectionEnd, selectionDirection, valueAsDate, and valueAsNumber IDL attributes; select(), setRangeText(), setSelectionRange(), stepDown(), and stepUp() methods. ◎ The input and change events do not apply.

4.10.5.2. ~form~controlの地域化に関する実装~上の注意

~INFORMATIVE

[ 日付t / 時刻t / 実数 ]~controlにおいて,利用者に示される形式は、~form提出に利用される形式に独立である。 ◎ The formats shown to the user in date, time, and number controls is independent of the format used for form submission.

~browserには、[ `input$e 要素の`言語$が含意する, または 利用者が選好する ]~localeの表記規約に則って[ 日付t / 時刻t / 実数 ]を呈示する~UIを利用することが奨励される。 頁の~localeを利用すれば、頁が提供する~dataとの一貫性は確保されることになる。 ◎ Browsers are encouraged to use user interfaces that present dates, times, and numbers according to the conventions of either the locale implied by the input element's language or the user's preferred locale. Using the page's locale will ensure consistency with page-provided data.

例えば、ある~American英語の頁が "Cirque De Soleil show was going to be showing on 02/03" `“〜公演は2月3日から開幕”^tnote と~~宣伝していて,利用者の~browserが~British英語~localeを利用するように環境設定されている場合、チケット購入の日付t~pickerには日付t "03/02" としか示されず、利用者にとって紛らわしくなる `利用者は、頁の~locale(言語+地域)に基づいて解釈するのが “~~普通” なので^tnote 。 頁の~localeを利用すれば、その日付tは世界中どこでも同じ形式で呈示されることが確保される。 (もちろん,利用者が 1 ヶ月後に到着する羽目になる~riskは依然としてあるが、そのような文化的~相違について行えることは,この程度に限られる…) ◎ For example, it would be confusing to users if an American English page claimed that a Cirque De Soleil show was going to be showing on 02/03, but their browser, configured to use the British English locale, only showed the date 03/02 in the ticket purchase date picker. Using the page's locale would at least ensure that the date was presented in the same format everywhere. (There's still a risk that the user would end up arriving a month late, of course, but there's only so much that can be done about such cultural differences...)

4.10.5.3. `input^e 要素に共通する属性

これらの属性は、 `状態$に対する定義にて,当の属性が`適用される$ものと宣言されているものに限り,要素に`適用される$。 `適用されない$場合、~UAは,以下に与える各種 要件や定義 に関わらず,当の属性を`無視-$し~MUST。 ◎ These attributes only apply to an input element if its type attribute is in a state whose definition declares that the attribute applies. When an attribute doesn't apply to an input element, user agents must ignore the attribute, regardless of the requirements and definitions below.

4.10.5.3.1. `maxlength^a, `minlength^a 属性

`maxlength@a / `minlength@a 属性は、`適用される$ならば,[ ~form~control `minlength^a 属性~form~control `maxlength^a 属性 ]になる。 ◎ The maxlength attribute, when it applies, is a form control maxlength attribute. ◎ The minlength attribute, when it applies, is a form control minlength attribute.

%L を要素の`値に許容される最大~長さ$とするとき、[ %L ~NEQ ε ]ならば,[ 要素の `value$a 属性の値の`~JS文字列~長さ$ ~LTE %L ]で~MUST。 ◎ If the input element has a maximum allowed value length, then the JavaScript string length of the value of the element's value attribute must be equal to or less than the element's maximum allowed value length.

~message用~clientの~text手入力を,ある恣意的な固定的な文字~数に制約して、この媒体を通した会話は簡素で,~~堅い~~論説などは~~抑制するよう強制する例: ◎ The following extract shows how a messaging client's text entry could be arbitrarily restricted to a fixed number of characters, thus forcing any conversation through this medium to be terse and discouraging intelligent discourse.

<label>今何してる? <input name=status maxlength=140></label>

~passwordの最小~長さを与える例: ◎ Here, a password is given a minimum length:

<p><label>ユーザ~~名:<input name=u required></label>
<p><label>パスワード:<input name=p required minlength=12></label>
4.10.5.3.2. `size^a 属性

`size@a 属性は、利用者が要素の`値$を編集している間に見れるような,~UAによる視覚~描画における文字~数を与える。 ◎ The size attribute gives the number of characters that, in a visual rendering, the user agent is to allow the user to see while editing the element's value.

`size$a 属性に指定する値は、 0 でない`妥当な非負~整数$で~MUST。 ◎ The size attribute, if specified, must have a value that is a valid non-negative integer greater than zero.

属性が在する場合、[ その値を`非負~整数として構文解析-$した結果 ~GT 0 ]ならば、~UAは,その文字~数~以上が可視になることを確保するべきである。 ◎ If the attribute is present, then its value must be parsed using the rules for parsing non-negative integers, and if the result is a number greater than zero, then the user agent should ensure that at least that many characters are visible.

`size$m ~IDL属性は、`非~zero数に制限され$る。 また、既定の値は 20 とする。 ◎ The size IDL attribute is limited to only non-negative numbers greater than zero and has a default value of 20.

4.10.5.3.3. `readonly^a 属性

`readonly@a 属性は、`真偽~属性$であり、利用者が~form~controlを編集できるかどうかを制御する。 この属性を有する要素は、`変異可能$でなくなる。 ◎ The readonly attribute is a boolean attribute that controls whether or not the user can edit the form control. When specified, the element is not mutable.

拘束検証 ⇒ 要素が次を満たしている間は、`拘束検証の対象外$になる ⇒ 要素は `readonly$a 属性を有する ◎ Constraint validation: If the readonly attribute is specified on an input element, the element is barred from constraint validation.

注記: `readonly$a (読専)~controlは,一般に 依然として機能し得る一方で、 `disabled$a (不能化)~controlは,一般に 可能化されるまで~controlとして機能しない点で相違する。 これは、この仕様の他所にて,`不能化され$る概念を指す規範的~要件とともに より詳細に記される(例えば、要素の`作動化の挙動$ / `~focus可能~域$になるかどうか / `~form~data集合を構築-$するとき)。 不能化された~controlにおける利用者との対話に関係する他の挙動は — ~textを選択したり複製できるかどうかなど — この仕様では定義されない。 ◎ The difference between disabled and readonly is that read-only controls can still function, whereas disabled controls generally do not function as controls until they are enabled. This is spelled out in more detail elsewhere in this specification with normative requirements that refer to the disabled concept (for example, the element's activation behavior, whether or not it is a focusable area, or when constructing the form data set). Any other behavior related to user interaction with disabled controls, such as whether text can be selected or copied, is not defined in this specification.

読専にできるのは~text~controlに限られる — 他の~control(~checkboxや~buttonなど)には、読専であることと, 不能化されていることの間に有用な~~区別はなく、 `readonly$a 属性は`適用されない$。 ◎ Only text controls can be made read-only, since for other controls (such as checkboxes and buttons) there is no useful distinction between being read-only and being disabled, so the readonly attribute does not apply.

次の例では、既存の品番は改変できないが、新たな製品を表現している行(その品番は~~未入力)と一貫させるため,~formの一部として表示される。 ◎ In the following example, the existing product identifiers cannot be modified, but they are still displayed as part of the form, for consistency with the row representing a new product (where the identifier is not yet filled in).

<form action="products.cgi" method="post" enctype="multipart/form-data">
 <table>
  <tr> <th> 品番 <th> 品名 <th> 価格 <th> ~~操作
  <tr>
   <td> <input readonly name="1.pid" value="H412">
   <td> <input required name="1.pname" value="フロア灯 稲妻">
   <td>¥<input required name="1.pprice" value="4999" type="number" min="0" step="1">
   <td> <button formnovalidate name="action" value="delete:1">~~削除</button>
  <tr>
   <td> <input readonly name="2.pid" value="FG28">
   <td> <input required name="2.pname" value="テーブル灯 雷光">
   <td>¥<input required name="2.pprice" value="2499" type="number" min="0" step="1">
   <td> <button formnovalidate name="action" value="delete:2">~~削除</button>
  <tr>
   <td> <input required name="3.pid" value="" pattern="[A-Z0-9]+">
   <td> <input required name="3.pname" value="">
   <td>¥<input required name="3.pprice" value="" type="number" min="0" step="1">
   <td> <button formnovalidate name="action" value="delete:3">~~削除</button>
 </table>
 <p> <button formnovalidate name="action" value="add">~~追加</button> </p>
 <p> <button name="action" value="update">~~保存</button> </p>
</form>
4.10.5.3.4. `required^a 属性

`required@a 属性は`真偽~属性$である。 この属性を有する要素は、 `必須@ になる。 ◎ The required attribute is a boolean attribute. When specified, the element is required.

拘束検証 ⇒ 要素が次をすべて満たしている間は、`欠落の難あり$になる:

  • `必須$である
  • その `value$m ~IDL属性は、`適用される$, かつ`値~mode$である
  • `変異可能$である
  • その`値$ ~EQ 空~文字列
◎ Constraint validation: If the element is required, and its value IDL attribute applies and is in the mode value, and the element is mutable, and the element's value is the empty string, then the element is suffering from being missing.

次の~formには、~e-mail~address用と~password用の必須の欄がある。 また, 3 個目の欄もあり、~password欄と同じ~passwordを打込んだときに限り,妥当と見なされる。 ◎ The following form has two required fields, one for an e-mail address and one for a password. It also has a third field that is only considered valid if the user types the same password in the password field and this third field.

<h1>新規~accountの作成-</h1>
<form action="/newaccount" method=post
      oninput="up2.setCustomValidity(up2.value != up.value ? '~passwordが合致しません。' : '')">
 <p>
  <label for="username">e-mail~address:</label>
  <input id="username" type=email required name=un>
 <p>
  <label for="password1">~password:</label>
  <input id="password1" type=password required name=up>
 <p>
  <label for="password2">~password確認:</label>
  <input id="password2" type=password name=up2>
 <p>
  <input type=submit value="~accountを作成する">
</form>

~radio~buttonに対しては、 `required$a 属性は, それが属する`~radio~button群$内のどれかの~radio~buttonが選択されているときに限り満たされる。 したがって,次の例では、必須とされているものだけでなく,どの~radio~buttonも~checkできる: ◎ For radio buttons, the required attribute is satisfied if any of the radio buttons in the group is selected. Thus, in the following example, any of the radio buttons can be checked, not just the one marked as required:

<fieldset>
 <legend>その映画はベクデルテストに合格しましたか?</legend>
 <p><label><input type="radio" name="bechdel" value="no-characters">いいえ、女性は 2 人すら登場しませんでした。</label>
 <p><label><input type="radio" name="bechdel" value="no-names">いいえ、女性どうしが会話することは決してありませんでした。</label>
 <p><label><input type="radio" name="bechdel" value="no-topic">いいえ、女性どうしの会話の話題は、常に男性のことでした。</label>
 <p><label><input type="radio" name="bechdel" value="yes" required>はい。</label>
 <p><label><input type="radio" name="bechdel" value="unknown">わかりません。</label>
</fieldset>

`~radio~button群$が必須とされるかどうかについての混同を避けるため、作者には,この属性をこの群~内のすべての~radio~buttonに指定することが奨励される。 一般に,作者には、~radio~button群~内に 初期~時に~checkされている~controlがない~~状態は避けることが奨励される。 そのような~UIは、利用者が元に戻せないので,一般に拙いものと見なされる。 ◎ To avoid confusion as to whether a radio button group is required or not, authors are encouraged to specify the attribute on all the radio buttons in a group. Indeed, in general, authors are encouraged to avoid having radio button groups that do not have any initially checked controls in the first place, as this is a state that the user cannot return to, and is therefore generally considered a poor user interface.

4.10.5.3.5. `multiple^a 属性

`multiple@a 属性は、利用者が 複数の値を指定できるかどうかを指示する`真偽~属性$である。 ◎ The multiple attribute is a boolean attribute that indicates whether the user is to be allowed to specify more than one value.

~e-mail~clientの "宛先" 欄に複数の~e-mail~addressも受容させる例: ◎ The following extract shows how an e-mail client's "To" field could accept multiple e-mail addresses.

<label>宛先: <input type=email multiple name=to></label>

利用者の連絡先~database内に 2 人の友人[ "Spider-Man" ( ~address "spider@parker.example.net" ), "Scarlet Witch" ( ~address "scarlet@avengers.example.net" ) ]がある場合、利用者が "s" と打込んだとき,~UAは これらの 2 人の~e-mail~addressを利用者に示唆するであろう。 ◎ If the user had, amongst many friends in their user contacts database, two friends "Spider-Man" (with address "spider@parker.example.net") and "Scarlet Witch" (with address "scarlet@avengers.example.net"), then, after the user has typed "s", the user agent might suggest these two e-mail addresses to the user.

`sample-email-1.svg:350:100^img

頁はまた、~siteからの 利用者の連絡先~databaseにも~linkさせれる: ◎ The page could also link in the user's contacts database from the site:

<label>宛先: <input type=email multiple name=to list=contacts></label>
...
<datalist id="contacts">
 <option value="hedral@damowmow.com">
 <option value="pillar@example.com">
 <option value="astrophy@cute.example">
 <option value="astronomy@science.example.org">
</datalist>

利用者は、この~text~controlの中に "bob@example.net" を手入力したとして、 "a" から開始される 2 個目の~e-mail~addressを打込み始めたとする。 ~UAは、先に言及した 2 人の友人に加え, `datalist$e 要素~内に与えられている値[ "astrophy@...", "astronomy@..." ]も示すであろう。 ◎ Suppose the user had entered "bob@example.net" into this text control, and then started typing a second e-mail address starting with "s". The user agent might show both the two friends mentioned earlier, as well as the "astrophy" and "astronomy" values given in the datalist element.

`sample-email-2.svg:350:140^img

~e-mail~clientの "添付" 欄に,~uploadのために複数の~fileも受容させる例: ◎ The following extract shows how an e-mail client's "Attachments" field could accept multiple files for upload.

<label>添付: <input type=file multiple name=att></label>
4.10.5.3.6. `pattern^a 属性

`pattern@a 属性は、正規表現を指定する。 ~controlの`値$ — または[ `multiple$a 属性を有する ~AND `multiple$a 属性は`適用される$ ]ならば ~controlの`値たち$ — は、この正規表現により~checkされることになる。 ◎ The pattern attribute specifies a regular expression against which the control's value, or, when the multiple attribute applies and is set, the control's values, are to be checked.

この属性に指定する値は、~JS `Pattern$P 生成規則に合致し~MUST。 ◎ If specified, the attribute's value must match the JavaScript Pattern production.

要素の `~compile済み~patternによる正規表現@ は、[ 要素が `pattern$a 属性を有する ]~AND[ `u^l ~flagのみを指定する下で,属性の値を~JS正規表現として成功裡に~compileできたならば,その結果の正規表現 / ~ELSE_ ε ]とする。 `JAVASCRIPT$r ◎ If an input element has a pattern attribute specified, and the attribute's value, when compiled as a JavaScript regular expression with only the "u" flag specified, compiles successfully, then the resulting regular expression is the element's compiled pattern regular expression. If the element has no such attribute, or if the value doesn't compile successfully, then the element has no compiled pattern regular expression. [JAVASCRIPT]

注記: 値を成功裡に~compileできなかった場合、~UAには,開発者~console内に その事実を~logして~debugを援助することが奨励される。 ◎ If the value doesn't compile successfully, user agents are encouraged to log this fact in a developer console, to aid debugging.

拘束検証 ⇒ 要素が次をすべて満たしている間は、`~pattern不一致の難あり$になる

  • 要素の`値$ ~NEQ 空~文字列
  • 要素の`~compile済み~patternによる正規表現$ ~NEQ ε
  • 次のいずれかが満たされる:
    • 要素は下の条件 (A) を満たさない ~AND 正規表現は要素の`値$の全体に合致しない
    • 要素は下の条件 (A) を満たす ~AND 正規表現は要素の`値たち$の全体に合致しない

    条件 (A) : [ 要素は `multiple$a 属性を有する ]~AND[ `multiple$a 属性は 要素の現在の`状態$に`適用される$ ]

◎ Constraint validation: If the element's value is not the empty string, and either the element's multiple attribute is not specified or it does not apply to the input element given its type attribute's current state, and the element has a compiled pattern regular expression but that regular expression does not match the entirety of the element's value, then the element is suffering from a pattern mismatch. ◎ Constraint validation: If the element's value is not the empty string, and the element's multiple attribute is specified and applies to the input element, and the element has a compiled pattern regular expression but that regular expression does not match the entirety of each of the element's values, then the element is suffering from a pattern mismatch.

`~compile済み~patternによる正規表現$は、文字列の全体に合致するときに限り,合致するものとされ~MUST。 ◎ The compiled pattern regular expression, when matched against a string, must have its start anchored to the start of the string and its end anchored to the end of the string.

注記: これは、この属性に利用される正規表現~言語は, `pattern$a 属性が値の一部分ではなく,値~全体に照合される(~patternの始端/終端に暗黙の (?:^)$ があるかに近い)ことを除いて、~JSにて利用されるそれと同じであることを含意する。 ◎ This implies that the regular expression language used for this attribute is the same as that used in JavaScript, except that the pattern attribute is matched against the entire value, not just any subset (somewhat as if it implied a ^(?: at the start of the pattern and a )$ at the end).

作者は、要素に `pattern$a 属性を指定する場合は,~patternの記述を与える `title@a 属性も与えるべきである。 ~UAは、この属性が在するならば その内容を[ 利用者に~patternに合致していないことを伝えるとき, その他の相応しい時機 ]に利用して~MAY — ~controlが`~focusを得た$とき ~tooltipに示したり,支援~技術により読み上げるなど。 ◎ When an input element has a pattern attribute specified, authors should include a title attribute to give a description of the pattern. User agents may use the contents of this attribute, if it is present, when informing the user that the pattern is not matched, or at any other suitable time, such as in a tooltip or read out by assistive technology when the control gains focus.

例えば、次の~code片: ◎ For example, the following snippet:

<label> 部品~番号:
 <input
   pattern="[0-9][A-Z]{3}"
   name="part"
   title="部品~番号は、先頭の数字に 3 個の大文字を続けます。"
 />
</label>

に対しては、~UAは次のような~alertを表示することもできる: ◎ ...could cause the UA to display an alert such as:

部品~番号は、先頭の数字に 3 個の大文字を続けます。この欄が不正な間は、~formを提出できません。 ◎ A part number is a digit followed by three uppercase letters. You cannot submit this form when the field is incorrect.

~controlが `pattern$a 属性を有する下で、 `title$a 属性が利用される場合、それは~patternについて記述してい~MUST。 利用者が~controlを埋めるのを支援するものである限り,追加の情報も含めれる。 さもなければ、支援~技術は損なわれることになる。 ◎ When a control has a pattern attribute, the title attribute, if used, must describe the pattern. Additional information could also be included, so long as it assists the user in filling in the control. Otherwise, assistive technology would be impaired.

具体例として, `title^a 属性が ~controlの~captionを包含していた場合、支援~技術は,次の様な何かを言う結果になるが、これでは有用にならない ⇒ あなたが手入力した~textは、要求される~patternに合致しません。 Birthday ◎ For instance, if the title attribute contained the caption of the control, assistive technology could end up saying something like The text you have entered does not match the required pattern. Birthday, which is not useful.

~UAは、~errorでない状況であっても `~titleG$a を示して~MAY(例えば、~controlを~hoverしたときに~tooltipとして)。 なので,作者は、 `title$a を ~errorが必ず生じているかのような文面にしないよう,注意深くなるべきである。 ◎ UAs may still show the title in non-error situations (for example, as a tooltip when hovering over the control), so authors should be careful not to word titles as if an error has necessarily occurred.

4.10.5.3.7. `min^a, `max^a 属性

~form~controlには、利用者が提供できる値の範囲を制限するような,明示的な拘束が適用されるものもある。 そのような範囲は,通常は連続的になるが、 `周期的範囲@ にもなり得る — その事例では、~controlがとり得る最も幅広な範囲は有限であり、作者は,その中に境界をまたぐような明示的な範囲を指定できる。 ◎ Some form controls can have explicit constraints applied limiting the allowed range of values that the user can provide. Normally, such a range would be linear and continuous. A form control can have a periodic domain, however, in which case the form control's broadest possible range is finite, and authors can specify explicit ranges within it that span the boundaries.

特に、 `Time$st 状態にある~controlの最も幅広な範囲は,午前 0 時から次の午前 0 時~直前まで( 24 時間 )になるが、作者は、連続的な範囲( 午後 9 時 〜 午後 11 時など)のみならず,午前 0 時をまたぐ不連続な範囲( 午後 11 〜 午前 1 時など)も設定できる。 ◎ Specifically, the broadest range of a type=time control is midnight to midnight (24 hours), and authors can set both continuous linear ranges (such as 9pm to 11pm) and discontinuous ranges spanning midnight (such as 11pm to 1am).

`min@a / `max@a 属性は、要素に許容される値の範囲を指示する。 ◎ The min and max attributes indicate the allowed range of values for the element.

それらの構文は、各種 `状態$を定義する節に定義される。 ◎ Their syntax is defined by the section that defines the type attribute's current state.

要素の `最小@ は、次で与えられる:

  • [ 要素は `min$a 属性を有する ]~AND[ その値を`文字列から実数に変換-$した結果 ~NEQ ~error ]ならば その結果
  • 他の場合,要素の現在の`状態$が `既定の最小@ を定義しているならば、それ。
  • 他の場合、 −∞ (どの実数よりも小さい値)。
◎ If the element has a min attribute, and the result of applying the algorithm to convert a string to a number to the value of the min attribute is a number, then that number is the element's minimum; otherwise, if the type attribute's current state defines a default minimum, then that is the minimum; otherwise, the element has no minimum.

`min$a 属性は、`~step基底$も定義する。 ◎ The min attribute also defines the step base.

要素の `最大@ は、次で与えられる:

  • [ 要素は `max$a 属性を有する ]~AND[ その値を`文字列から実数に変換-$した結果 ~NEQ ~error ]ならば その結果
  • 他の場合,要素の現在の`状態$が `既定の最大@ を定義しているならば、それ。
  • 他の場合、 +∞ (どの実数よりも大きい値)。
◎ If the element has a max attribute, and the result of applying the algorithm to convert a string to a number to the value of the max attribute is a number, then that number is the element's maximum; otherwise, if the type attribute's current state defines a default maximum, then that is the maximum; otherwise, the element has no maximum.

【 最小/最大の値 −∞/+∞ は、要件の記述を簡潔にするため,この訳に導入したもの(原文では、単に “なし” )。 】

要素は、次のすべてを満たしては~MUST_NOT:

  • `周期的範囲$でない
  • `最大$ ~LT `最小$
◎ If the element does not have a periodic domain, the max attribute's value (the maximum) must not be less than the min attribute's value (its minimum).

注記: 上の条件を満たす要素は、`値$を有する限り,`~underflowの難あり$か `~overflowの難あり$になる。 ◎ If an element that does not have a periodic domain has a maximum that is less than its minimum, then so long as the element has a value, it will either be suffering from an underflow or suffering from an overflow.

次のすべてを満たす要素は、 `範囲は裏返されて@ いるとされる:

  • `周期的範囲$である
  • `最大$ ~LT `最小$
◎ An element has a reversed range if it has a periodic domain and its maximum is less than its minimum.

次のいずれかを満たす要素は、 `範囲~制限がある@ とされる:

  • `最大$ ~NEQ +∞
  • `最小$ ~NEQ −∞
◎ An element has range limitations if it has a defined minimum or a defined maximum.

拘束検証

  • 要素が次をすべて満たしている間は、`~underflowの難あり$になる:

    • `範囲は裏返されて$いない
    • `値$を`文字列から実数に変換-$した結果 ~NEQ ~error
    • 前項の結果 ~LT `最小$
    ◎ Constraint validation: When the element has a minimum and does not have a reversed range, and the result of applying the algorithm to convert a string to a number to the string given by the element's value is a number, and the number obtained from that algorithm is less than the minimum, the element is suffering from an underflow.
  • 要素が次をすべて満たしている間は、`~overflowの難あり$になる:

    • `範囲は裏返されて$いない
    • `値$を`文字列から実数に変換-$した結果 ~NEQ ~error
    • `最大$ ~LT 前項の結果
    ◎ Constraint validation: When the element has a maximum and does not have a reversed range, and the result of applying the algorithm to convert a string to a number to the string given by the element's value is a number, and the number obtained from that algorithm is more than the maximum, the element is suffering from an overflow.
  • 要素が次をすべて満たしている間は、`~underflowの難あり$であると同時に `~overflowの難あり$になる:

    • `範囲は裏返されて$いる
    • 要素の`値$を`文字列から実数に変換-$した結果 ~NEQ ~error
    • `最大$ ~LT 前項の結果 ~LT `最小$
    ◎ Constraint validation: When an element has a reversed range, and the result of applying the algorithm to convert a string to a number to the string given by the element's value is a number, and the number obtained from that algorithm is more than the maximum and less than the minimum, the element is simultaneously suffering from an underflow and suffering from an overflow.

次の日付t~controlは、入力を 1980 年より前の日付tに制限する: ◎ The following date control limits input to dates that are before the 1980s:

<input name=bday type=date max="1979-12-31">

次の数~controlは、入力を正~整数に制限する: ◎ The following number control limits input to whole numbers greater than zero:

<input name=quantity required="" type="number" min="1" value="1">

次の時刻t~controlは、入力を[ 午後 9 時 〜 午前 6 時 ]の間に生する分t~数に制限し,午前 0 時を既定にする: ◎ The following time control limits input to those minutes that occur between 9pm and 6am, defaulting to midnight:

<input name="sleepStart" type=time min="21:00" max="06:00" step="60" value="00:00">
4.10.5.3.8. `step^a 属性

`step@a 属性は、許容される値を制限することにより,[ `値$/`値たち$ ]に期待される(かつ要求される)粒度を指示する。 以下に述べる属性の処理では、 `既定の~step@, `~step倍率@, および,一部の事例では `既定の~step基底@ も利用される — これらは、各種 `状態$ごとに,それを定義する節に定義される。 ◎ The step attribute indicates the granularity that is expected (and required) of the value or values, by limiting the allowed values. The section that defines the type attribute's current state also defines the default step, the step scale factor, and in some cases the default step base, which are used in processing the attribute as described below.

【 既定の~step / ~step倍率とも、定義されるならば,正の実数。 】

`step$a 属性に指定する値は、次のいずれかを満たさ~MUST:

  • `妥当な浮動小数点数$であって,`浮動小数点数として構文解析-$した結果 ~GT 0
  • `~ASCII大小無視$で文字列 `any^l に合致する
◎ The step attribute, if specified, must either have a value that is a valid floating-point number that parses to a number that is greater than zero, or must have a value that is an ASCII case-insensitive match for the string "any".

この属性は、要素に対し `許容される値~step@ を提供する — それは、次に従って得られる実数である: ◎ The attribute provides the allowed value step for the element, as follows:

  1. ~IF[ 属性は不在 ] ⇒ ~RET `既定の~step$ × `~step倍率$ ◎ If the attribute is absent, then the allowed value step is the default step multiplied by the step scale factor.
  2. %V ~LET 属性の値
  3. ~IF[ %V は`~ASCII大小無視$で文字列 `any^l に合致する ] ⇒ ~RET ε (`許容される値~step$はない。) ◎ Otherwise, if the attribute's value is an ASCII case-insensitive match for the string "any", then there is no allowed value step.
  4. %N ~LET %V を`浮動小数点数として構文解析-$した結果
  5. ~IF[ %N ~EQ ~error ]~OR[ %N ~LTE 0 ] ⇒ ~RET `既定の~step$ × `~step倍率$ ◎ Otherwise, if the rules for parsing floating-point number values, when they are applied to the attribute's value, return an error, zero, or a number less than zero, then the allowed value step is the default step multiplied by the step scale factor.
  6. ~RET %N × `~step倍率$ ◎ Otherwise, the allowed value step is the number returned by the rules for parsing floating-point number values when they are applied to the attribute's value, multiplied by the step scale factor.

`~step基底@ は、次の~algoが返す値である: ◎ The step base is the value returned by the following algorithm:

  1. ~IF[ 要素は `min$a 内容~属性を有する ]~AND[ その値を`文字列から実数に変換-$した結果 ~NEQ ~error ] ⇒ ~RET その結果 ◎ If the element has a min content attribute, and the result of applying the algorithm to convert a string to a number to the value of the min content attribute is not an error, then return that result and abort these steps.
  2. ~IF[ 要素は `value$a 内容~属性を有する ]~AND[ その値を`文字列から実数に変換-$した結果 ~NEQ ~error ] ⇒ ~RET その結果 ◎ If the element has a value content attribute, and the result of applying the algorithm to convert a string to a number to the value of the value content attribute is not an error, then return that result and abort these steps.
  3. ~IF[ 要素の`状態$に対する `既定の~step基底$は定義されている ] ⇒ ~RET それ ◎ If a default step base is defined for this element given its type attribute's state, then return it and abort these steps.
  4. ~RET 0 ◎ Return zero.

拘束検証 ⇒ 要素が次を満たしている間は、`~step不一致の難あり$になる ⇒ [ 要素の`許容される値~step$ ~NEQ ε ]~AND[ 要素の`値$を`文字列から実数に変換-$した結果 ~NEQ ~error ]~AND[ ( `~step基底$ − その数 ) ~NIN { `許容される値~step$の整数倍 } ] ◎ Constraint validation: When the element has an allowed value step, and the result of applying the algorithm to convert a string to a number to the string given by the element's value is a number, and that number subtracted from the step base is not an integral multiple of the allowed value step, the element is suffering from a step mismatch.

次の範囲~controlは、範囲[ 0 〜 1 ]に入る値のみを受容し,その範囲~内で 256 ~stepを許容する: ◎ The following range control only accepts values in the range 0..1, and allows 256 steps in that range:

<input name=opacity type=range min=0 max=1 step=0.00392156863>

次の~controlは、ある 1 日tの中の任意の時刻tを,任意の~~精度で(例えば 1000 分の 1 秒より細かい)選択できるようにする: ◎ The following control allows any time in the day to be selected, with any accuracy (e.g. thousandth-of-a-second accuracy or more):

<input name=favtime type=time step=any>

通常は、時刻t~controlの~~精度は 1 分tに制限される。 ◎ Normally, time controls are limited to an accuracy of one minute.

4.10.5.3.9. `list^a 属性

`list@a 属性は、[ 利用者に示唆される定義済みの選択肢を~listする要素 ]を識別するために利用される。 ◎ The list attribute is used to identify an element that lists predefined options suggested to the user.

在する場合、その値は,同じ`文書~木~内$にある `datalist$e 要素の `~ID$で~MUST。 ◎ If present, its value must be the ID of a datalist element in the same tree.

`示唆源の要素@ は、次のいずれも満たす要素が[ あれば それ / なければ ε ]とする。

  • `文書~木~内$の[ `~ID$ ~EQ `list$a 属性の値 ]なる要素のうち,`木~順序$で最初の要素†である
  • `datalist$e 要素である

【† すなわち、 `document.getElementById( ID )^m が返す要素。 】

◎ The suggestions source element is the first element in the tree in tree order to have an ID equal to the value of the list attribute, if that element is a datalist element. If there is no list attribute, or if there is no element with that ID, or if the first element with that ID is not a datalist element, then there is no suggestions source element.

[ `示唆源の要素$ ~NEQ ε ]の場合、~UAは: ◎ If there is a suggestions source element, then,\

  • 利用者が要素の`値$を編集できるようにしている場合、利用されている~controlの型に相応しい方式で,`示唆源の要素$が表現する示唆を利用者に提供0するべきである。 ◎ when the user agent is allowing the user to edit the input element's value, the user agent should offer the suggestions represented by the suggestions source element to the user in a manner suitable for the type of control used.\
  • 適切になる場合は、示唆の[ `~label$opt, `値$opt ]を利用して,利用者~向けの示唆を識別するべきである。 ◎ If appropriate, the user agent should use the suggestion's label and value to identify the suggestion to the user.
  • 示唆の個数が多い場合、[ `示唆源の要素$が表現する示唆のうち,最も関連するもの ]のみを含めるように絞込むことが奨励される(例:利用者の入力に基づいて)。 精確な閾値は定義されないが、 4 〜 7 個くらいに抑えるのが適度であろう。 ◎ User agents are encouraged to filter the suggestions represented by the suggestions source element when the number of suggestions is large, including only the most relevant ones (e.g. based on the user's input so far). No precise threshold is defined, but capping the list at four to seven values is reasonable.\
  • 利用者からの入力に基づいて絞込むときは、示唆の[ `~label$opt, `値$opt ]の両者に合致するような部分文字列を利用するべきである。 ◎ If filtering based on the user's input, user agents should use substring matching against both the suggestions' label and value.

次の~text欄では、~JS関数の種別を選べる: ◎ This text field allows you to choose a type of JavaScript function.

<input type="text" list="function-types">
<datalist id="function-types">
  <option value="function">function</option>
  <option value="async function">async function</option>
  <option value="function*">generator function</option>
  <option value="=>">arrow function</option>
  <option value="async =>">async arrow function</option>
  <option value="async function*">async generator function</option>
</datalist>

上述の示唆に従う~UAにおいては、[ `~label$opt, `値$opt ]の両者とも示される: ◎ For user agents that follow the above suggestions, both the label and value would be shown:

`sample-datalist.svg:280:150^img
~text~boxの右端には~drop-down~buttonがあり,その下に~drop-down~boxがある。 ~boxは、左端に 6 個の値からなる~list, 右端に 6 個の~labelからなる~listを包含している。 ◎ A text box with a drop down button on the right hand side; with, below, a drop down box containing a list of the six values the left and the six labels on the right.

ここで, "arrow" または "=>" と打込むと、この~listは,~labelに "arrow function" / "async arrow function" を伴う~entryに絞込まれる。 "generator" または "*" と打込むと、~labelに "generator function" / "async generator function" を伴う~entryに絞込まれる。 ◎ Then, typing "arrow" or "=>" would filter the list to the entries with labels "arrow function" and "async arrow function". Typing "generator" or "*" would filter the list to the entries with labels "generator function" and "async generator function".

通例のように,~UAには、~UIにおいて 特定0の[ 要件, 利用者の事情 ]の組み合わせに対し どれが適切になるかについて,決断を下す自由がある。 しかしながらこれは、歴史的に 実装者, ~web開発者, 利用者~等 にとって混同の元になる~~領域なので、上述は “〜するべき” 示唆として与えられている。 ◎ As always, user agents are free to make user interface decisions which are appropriate for their particular requirements and for the user's particular circumstances. However, this has historically been an area of confusion for implementers, web developers, and users alike, so we've given some "should" suggestions above.

利用者による示唆の選択が どう取扱われるかは、要素が複数の値を受容するかどうかに依存する: ◎ How user selections of suggestions are handled depends on whether the element is a control accepting a single value only, or whether it accepts multiple values:

要素は `multiple$a 属性を有さない ~OR `multiple$a 属性は`適用されない$場合 ◎ If the element does not have a multiple attribute specified or if the multiple attribute does not apply
利用者が示唆を選択したときは、要素の`値$は[ 選択された示唆の`値$opt ]に設定され~MUST — その値を利用者~自身が手入力したかのように。 ◎ When the user selects a suggestion, the input element's value must be set to the selected suggestion's value, as if the user had written that value themself.
[ 要素は `Email$st `状態$にある ]~AND[ 要素は `multiple$a 属性を有する ]場合: ◎ If the element's type attribute is in the Email state and the element has a multiple attribute specified

利用者が示唆を選択したときは — その`値$optを %V とする — ~UAは,次のいずれかをし~MUST — 利用者~自身の手で そうしたかのように:

  • %V を値とする 新たな~entryを要素の`値たち$に追加する。
  • 要素の`値たち$内の既存の~entryの値を %V とるように変更する。

どちらの挙動が適用されるかは、~UAにより定義される方式で,~UIに依存する。

◎ When the user selects a suggestion, the user agent must either add a new entry to the input element's values, whose value is the selected suggestion's value, or change an existing entry in the input element's values to have the value given by the selected suggestion's value, as if the user had themself added an entry with that value, or edited an existing entry to be that value. Which behavior is to be applied depends on the user interface in a user-agent-defined manner.

`list$a 属性が`適用されない$場合、`示唆源の要素$はない。 ◎ If the list attribute does not apply, there is no suggestions source element.

何らかの示唆を提供0する~URL欄の例: ◎ This URL field offers some suggestions.

<label>Homepage: <input name=hp type=url list=hpurls></label>
<datalist id=hpurls>
 <option value="https://www.google.com/" label="Google">
 <option value="https://www.reddit.com/" label="Reddit">
</datalist>

利用者の履歴から 他の~URLを示すこともあり得る — それは~UAに委ねられる。 ◎ Other URLs from the user's history might show also; this is up to the user agent.

以下の例では、自動補完~list特色機能を利用する~formを,旧来の~UAでも有用に退化するように設計する方法を示す。 ◎ This example demonstrates how to design a form that uses the autocompletion list feature while still degrading usefully in legacy user agents.

自動補完~listが単なる援助で,内容には重要でない場合、単純に[ 子 `option$e 要素を伴う `datalist$e 要素 ]を利用することで十分になる。 旧来の~UAで値が描画されるのを防止するためには、それらは,~inlineではなく `~valueO$a 属性の内側に置かれる必要がある。 ◎ If the autocompletion list is merely an aid, and is not important to the content, then simply using a datalist element with children option elements is enough. To prevent the values from being rendered in legacy user agents, they need to be placed inside the value attribute instead of inline.

<p>
 <label>
  品種を~~入力してください:
  <input type="text" name="breed" list="breeds">
  <datalist id="breeds">
   <option value="アビシニアン">
   <option value="アルパカ">
   <!-- ... -->
  </datalist>
 </label>
</p>

しかしながら、旧来の~UAでも それらの値を示す必要がある場合、 `datalist$e 要素の内側に~fallback内容を置ける — 次のように: ◎ However, if the values need to be shown in legacy UAs, then fallback content can be placed inside the datalist element, as follows:

<p>
 <label>
  品種を~~入力してください:
  <input type="text" name="breed" list="breeds">
 </label>
 <datalist id="breeds">
  <label>
   またはリストから選んでください:
   <select name="breed">
    <option value=""> (~~未選択)
    <option>アビシニアン
    <option>アルパカ
    <!-- ... -->
   </select>
  </label>
 </datalist>
</p>

~fallback内容は、 `datalist$e を~supportしない~UAに限って示されることになる。 他方,各~選択肢( `option^e )は、 `datalist$e 要素の子でなくても,すべての~UAから検出されることになる。 ◎ The fallback content will only be shown in UAs that don't support datalist. The options, on the other hand, will be detected by all UAs, even though they are not children of the datalist element.

`datalist$e 要素~内に利用されている `option$e 要素が `selected$a 属性を有する場合、旧来の~UAにおいては,既定でその `option$e が選択されることになるが(それは `select$e 要素に影響するので)、 `datalist$e を~supportする~UAにおいては, `input$e 要素には効果は及ばないことに注意。 ◎ Note that if an option element used in a datalist is selected, it will be selected by default by legacy UAs (because it affects the select), but it will not have any effect on the input element in UAs that support datalist.

4.10.5.3.10. `placeholder^a 属性

`placeholder@a 属性は、短い ~hint(または単語や短い句)を表現し、~controlが値を持たないときに,利用者を援助する~dataを与えるために意図される。 ~hintは、見本の値や,期待される形式についての概略的な記述にすることもできる。 この属性に指定する値は、`改行文字$を含んでは~MUST_NOT。 ◎ The placeholder attribute represents a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format. The attribute, if specified, must have a value that contains no U+000A LINE FEED (LF) or U+000D CARRIAGE RETURN (CR) characters.

`placeholder$a 属性は `label$e の代替として利用されるべきでない。 より長い~hintや他の助言的~textには、 `~titleG$a 属性がより適切になる。 ◎ The placeholder attribute should not be used as an alternative to a label. For a longer hint or other advisory text, the title attribute is more appropriate.

注記: これらの仕組みは互いに よく似るが、微妙に相違する:

  • ~controlの `label$e で与えられる~hintは,いつでも示される。
  • `placeholder$a 属性が与える短い~hintは,利用者が値を手入力する前に示される。
  • `~titleG$a 属性~内の~hintは,利用者が更なる~helpを要請したときに示される。
◎ These mechanisms are very similar but subtly different: the hint given by the control's label is shown at all times; the short hint given in the placeholder attribute is shown before the user enters a value; and the hint in the title attribute is shown when the user requests further help.

~UAは、要素の`値$が空~文字列のときは、この~hintを — `改行文字を剥いだ$上で — 利用者に呈示するべきである — とりわけ,~controlが`~focus$されていないときに。 ◎ User agents should present this hint to the user, after having stripped newlines from it, when the element's value is the empty string, especially if the control is not focused.

~UAは、~controlが `autofocus$a 属性の結果として~focusされたときは,~hintを示すべきである — 通常の`~focus$時には、この~hintを利用者に示さない~UAであっても。 この事例では、利用者が,~focusされる前に~controlを検分する機会はないので。 ◎ If a user agent normally doesn't show this hint to the user when the control is focused, then the user agent should nonetheless show the hint for the control if it was focused as a result of the autofocus attribute, since in that case the user will not have had an opportunity to examine the control before focusing it.

`placeholder$a 属性を利用する~e-mail環境設定~UIの例: ◎ Here is an example of a mail configuration user interface that uses the placeholder attribute:

<fieldset>
 <legend>~e-mail~account</legend>
 <p><label>名前: <input type="text" name="fullname" placeholder="何野某"></label></p>
 <p><label>~address: <input type="email" name="address" placeholder="hanako@example.net"></label></p>
 <p><label>~password: <input type="password" name="password"></label></p>
 <p><label>~~説明: <input type="text" name="desc" placeholder="わたしの~e-mail~account"></label></p>
</fieldset>

~controlの内容は双向的ではなくとも, `placeholder$a 属性の値は双向的にする必要がある状況では、~Unicodeの双向~algo整形~文字を利用できる: ◎ In situations where the control's content has one directionality but the placeholder needs to have a different directionality, Unicode's bidirectional-algorithm formatting characters can be used in the attribute value:

<input name=t1 type=tel placeholder="&#x202B;رقم الهاتف 1&#x202E;">
<input name=t2 type=tel placeholder="&#x202B;رقم الهاتف 2&#x202E;">

同じ例を、~inlineの~Arabicに代えて数値~文字~参照を利用して,もう少し明確に記すなら: ◎ For slightly more clarity, here's the same example using numeric character references instead of inline Arabic:

<input name=t1 type=tel placeholder="&#x202B;&#1585;&#1602;&#1605; &#1575;&#1604;&#1607;&#1575;&#1578;&#1601; 1&#x202E;">
<input name=t2 type=tel placeholder="&#x202B;&#1585;&#1602;&#1605; &#1575;&#1604;&#1607;&#1575;&#1578;&#1601; 2&#x202E;">

4.10.5.4. `input^e 要素に共通する~API

%input . `value$m [ = %value ]
現在の~controlの`値$を返す。 ◎ Returns the current value of the form control.
設定して,値を変更できる。 ◎ Can be set, to change the value.
`File$st ~controlに対しては、空~文字列~以外の値に設定されたときは, `InvalidStateError$E 例外を投出する。 ◎ Throws an "InvalidStateError" DOMException if it is set to any value other than the empty string when the control is a file upload control.
%input . `checked$m [ = %value ]
~controlの現在の `~checkedness$を返す。 ◎ Returns the current checkedness of the form control.
設定して,`~checkedness$を変更できる。 ◎ Can be set, to change the checkedness.
%input . `files$m
~controlにて`選択された~file~list$を表現する `FileList$I ~objを返す。 ◎ Returns a FileList object listing the selected files of the form control.
~controlが `File$st ~controlでない場合、 ~NULLを返す。 ◎ Returns null if the control isn't a file control.
%input . `valueAsDate$m [ = %value ]
適用し得るなら,~controlの`値$を表現する `Date$I ~objを返す。 他の場合、~NULLを返す。 ◎ Returns a Date object representing the form control's value, if applicable; otherwise, returns null.
設定して,値を変更できる。 ◎ Can be set, to change the value.
~controlが日付t/時刻tに基づくものでない場合、 `InvalidStateError$E 例外を投出する。 ◎ Throws an "InvalidStateError" DOMException if the control isn't date- or time-based.
%input . `valueAsNumber$m [ = %value ]
適用し得るなら,~controlの`値$を表現する数を返す。 他の場合、~NaN を返す。 ◎ Returns a number representing the form control's value, if applicable; otherwise, returns NaN.
設定して,値を変更できる。 ~NaN を設定すると,下層の値は空~文字列に設定されることになる。 ◎ Can be set, to change the value. Setting this to NaN will set the underlying value to the empty string.
~controlが日付t/時刻tに基づくものでも数値でもない場合、 `InvalidStateError$E 例外を投出する。 ◎ Throws an "InvalidStateError" DOMException if the control is neither date- or time-based nor numeric.
%input . `stepUp( [ n ] )$m
%input . `stepDown( [ n ] )$m
~form~controlの`値$に ( ( `step$a 属性が与える値 ) × %n ) を加減算する。 %n に対する既定の値は 1 である。 ◎ Changes the form control's value by the value given in the step attribute, multiplied by n. The default value for n is 1.
~controlが日付t/時刻tに基づくものでも数値でもない, または `step$a 属性の値が `any^l の場合、 `InvalidStateError$E 例外を投出する。 ◎ Throws "InvalidStateError" DOMException if the control is neither date- or time-based nor numeric, or if the step attribute's value is "any".
%input . `list$m
`list$a 属性で指示される `datalist$e 要素を返す。 ◎ Returns the datalist element indicated by the list attribute.
`value@m
~scriptから要素の`値$を操作できるようにする。 ◎ ↓

この属性の挙動は、それを定義する 次のいずれかの~modeに依存して,次に従わ~MUST: ◎ The value IDL attribute allows scripts to manipulate the value of an input element. The attribute is in one of the following modes, which define its behavior:

`値~mode@ ◎ value
取得子は、要素の現在の`値$を返す ◎ On getting, return the current value of the element.

設定子は、次を走らす: ◎ On setting:

  1. %旧~値 ~LET 要素の`値$ ◎ Let oldValue be the element's value.
  2. 要素の`値$ ~SET 所与の値 ◎ Set the element's value to the new value.
  3. 要素の`~dirty値~flag$ ~SET ~T ◎ Set the element's dirty value flag to true.
  4. 要素の現在の`状態$に`値の消毒~algo$は定義されているならば それを呼出す ◎ Invoke the value sanitization algorithm, if the element's type attribute's current state defines one.
  5. ~IF[ (`値の消毒~algo$を適用した後の)要素の`値$ ~NEQ %旧~値 ]~AND[ ~controlには~text手入力~cursor位置はある ]: ◎ If the element's value (after applying the value sanitization algorithm) is different from oldValue, and the element has a text entry cursor position,\

    1. ~cursor位置を終端へ移動する ◎ move the text entry cursor position to the end of the text control,\
    2. 選択されている~textは未~選択-にする ◎ unselecting any selected text and\
    3. `none^l に此れの`選択~方向を設定する$ ◎ resetting the selection direction to "none".
`既定~mode@ ◎ default
取得子は、要素が `value$a 内容~属性を[ 有するならば その値 / 有さないならば 空~文字列 ]を返す ◎ On getting, if the element has a value content attribute, return that attribute's value; otherwise, return the empty string. ↓
設定子は、要素の `value$a 内容~属性を所与の値に設定する ◎ On setting, set the value of the element's value content attribute to the new value.
`既定か~on~mode@ ◎ default/on
次を除いて,`既定~mode$と同じにふるまう ⇒ 取得子は、要素が `value$a 内容~属性を有さないならば文字列 `on^l を返す ◎ On getting, if the element has a value content attribute, return that attribute's value; otherwise, return the string "on". ◎ On setting, set the value of the element's value content attribute to the new value.
`~filename~mode@ ◎ filename
取得子は、[ `選択された~file~list$が空ならば 空~文字列 / ~ELSE_ 次の並びからなる文字列 ]を返す ⇒ `C:\fakepath\^l, ~list内の最初の~fileの名前 ◎ On getting, return the string "C:\fakepath\" followed by the name of the first file in the list of selected files, if any, or the empty string if the list is empty.

設定子は、次を走らす:

  1. ~IF[ 所与の値 ~NEQ 空~文字列 ] ⇒ ~THROW `InvalidStateError$E
  2. `選択された~file~list$を空にする
◎ On setting, if the new value is the empty string, empty the list of selected files; otherwise, throw an "InvalidStateError" DOMException.
注記: この "fakepath" 要件は、歴史における残念な~~出来事である。 更なる情報は、 `File^st 状態 節の例 を見よ。 ◎ This "fakepath" requirement is a sad accident of history. See the example in the File Upload state section for more information.
注記: `~path成分$は,`選択された~file~list$内の~file名には許可されないので、 `\fakepath\^l が ~path成分に誤認されることはない。 ◎ Since path components are not permitted in file names in the list of selected files, the "\fakepath\" cannot be mistaken for a path component.
`checked@m
要素の`~checkedness$を~scriptから操作できるようにする。 ◎ The checked IDL attribute allows scripts to manipulate the checkedness of an input element.\
取得子は、要素の現在の`~checkedness$を返さ~MUST。 ◎ On getting, it must return the current checkedness of the element; and\

設定子は、次を走らせ~MUST:

  1. 要素の`~checkedness$ ~SET 所与の値
  2. 要素の`~dirty~checkedness~flag$ ~SET ~T
◎ on setting, it must set the element's checkedness to the new value and set the element's dirty checkedness flag to true.
`files@m
~scriptから要素の`選択された~file~list$へ~accessできるようにする。 ◎ The files IDL attribute allows scripts to access the element's selected files.\

取得子は、次を走らせ~MUST:

  1. ~IF[ この~IDL属性は`適用されない$ ] ⇒ ~RET ~NULL
  2. ~RET 現在の`選択された~file~list$を表現する `FileList$I ~obj `FILEAPI$r
◎ On getting, if the IDL attribute applies, it must return a FileList object that represents the current selected files. The same object must be returned until the list of selected files changes.\
`選択された~file~list$が変更されるまでは、毎回~同じ~objを返さ~MUST。 ◎ If the IDL attribute does not apply, then it must instead return null. [FILEAPI]
`valueAsDate@m
要素の`値$を日付tとして解釈した結果を表現する。 ◎ The valueAsDate IDL attribute represents the value of the element, interpreted as a date.

取得子は、次を走らせ~MUST:

  1. ~IF[ この~IDL属性は`適用されない$ ] ⇒ ~RET ~NULL
  2. ~RET[ 要素の`値$を`文字列から~Date~objに変換-$した結果 ~NEQ ~error ならば その結果 / ~ELSE_ ~NULL ]
◎ On getting, if the valueAsDate attribute does not apply, as defined for the input element's type attribute's current state, then return null. Otherwise, run the algorithm to convert a string to a Date object defined for that state to the element's value; if the algorithm returned a Date object, then return it, otherwise, return null.

設定子は、次を走らせ~MUST:

  1. ~IF[ この~IDL属性は`適用されない$ ] ⇒ ~THROW `InvalidStateError$E
  2. 所与の値に応じて:

    ~NULL
    ~NaN 時刻t値を表現する `Date$I ~objである
    要素の`値$ ~SET 空~文字列
    他の `Date$I ~objである
    要素の`値$ ~SET 所与の値 を`~Date~objから文字列に変換-$した結果
    その他
    ~THROW `TypeError$E
◎ On setting, if the valueAsDate attribute does not apply, as defined for the input element's type attribute's current state, then throw an "InvalidStateError" DOMException; otherwise, if the new value is not null and not a Date object throw a TypeError exception; otherwise if the new value is null or a Date object representing the NaN time value, then set the value of the element to the empty string; otherwise, run the algorithm to convert a Date object to a string, as defined for that state, on the new value, and set the value of the element to the resulting string.
`valueAsNumber@m
要素の`値$を実数として解釈した結果を表現する。 ◎ The valueAsNumber IDL attribute represents the value of the element, interpreted as a number.

取得子は、次を走らせ~MUST:

  1. ~IF[ この~IDL属性は`適用されない$ ] ⇒ ~RET ~NaN
  2. ~RET [ 要素の`値$を`文字列から実数に変換-$した結果 ~NEQ ~error ならば その結果 / ~ELSE_ ~NaN ]
◎ On getting, if the valueAsNumber attribute does not apply, as defined for the input element's type attribute's current state, then return a Not-a-Number (NaN) value. Otherwise, run the algorithm to convert a string to a number defined for that state to the element's value; if the algorithm returned a number, then return it, otherwise, return a Not-a-Number (NaN) value.

設定子は、次を走らせ~MUST:

  1. %値 ~LET 所与の値
  2. ~IF[ %値 ~IN { `-Infinity^c, `Infinity^c } ] ⇒ ~THROW `TypeError$E
  3. ~IF[ この~IDL属性は`適用されない$ ] ⇒ ~THROW `InvalidStateError$E
  4. 要素の`値$ ~SET [ %値 ~EQ ~NaN ならば 空~文字列 / ~ELSE_ %値 を`実数から文字列に変換-$した結果 ]
◎ On setting, if the new value is infinite, then throw a TypeError exception. Otherwise, if the valueAsNumber attribute does not apply, as defined for the input element's type attribute's current state, then throw an "InvalidStateError" DOMException. Otherwise, if the new value is a Not-a-Number (NaN) value, then set the value of the element to the empty string. Otherwise, run the algorithm to convert a number to a string, as defined for that state, on the new value, and set the value of the element to the resulting string.
`stepDown(n)@m
`stepUp(n)@m

被呼出時には、次を走らせ~MUST: ◎ The stepDown(n) and stepUp(n) methods, when invoked, must run the following algorithm:

  1. ~IF[ この~methodは`適用されない$ ] ⇒ ~THROW `InvalidStateError$E ◎ If the stepDown() and stepUp() methods do not apply, as defined for the input element's type attribute's current state, then throw an "InvalidStateError" DOMException, and abort these steps.
  2. ( %値~step, %~step基底, %最小, %最大 ) ~LET 要素の ( `許容される値~step$, `~step基底$, `最小$, `最大$ ) ◎ ↓
  3. ~IF[ %値~step ~EQ ε ] ⇒ ~THROW `InvalidStateError$E ◎ If the element has no allowed value step, then throw an "InvalidStateError" DOMException, and abort these steps.
  4. %符号 ~LET 呼出された~methodに応じて[ `stepDown()$m ならば −1 / `stepUp()$m ならば 1 ]
  5. %S ~LET すべての整数 %N に対する [ %~step基底 + %値~step × %N ]からなる実数の集合
  6. ~IF[[ %最小 ~LTE %V ~LTE %最大 ]を満たす値 %V ~IN %S はない ] ⇒ ~RET ◎ If the element has a minimum and a maximum and the minimum is greater than the maximum, then abort these steps. ◎ If the element has a minimum and a maximum and there is no value greater than or equal to the element's minimum and less than or equal to the element's maximum that, when subtracted from the step base, is an integral multiple of the allowed value step, then abort these steps.
  7. %値 ~LET 要素の`値$を`文字列から実数に変換-$した結果
  8. ~IF[ %値 ~EQ ~error ] ⇒ %値 ~SET 0 ◎ If applying the algorithm to convert a string to a number to the string given by the element's value does not result in an error, then let value be the result of that algorithm. Otherwise, let value be zero.
  9. %旧~値 ~LET %値 ◎ Let valueBeforeStepping be value.
  10. ~IF[ %値 ~NIN %S ] ⇒ %値 ~SET [ %V × %符号 ~GT %値 × %符号 ]を満たす %V ~IN %S のうち, %値 に最も近い値

    【 引数の %n は無視されることになる。 】

    ◎ If value subtracted from the step base is not an integral multiple of the allowed value step, then set value to the nearest value that, when subtracted from the step base, is an integral multiple of the allowed value step, and that is less than value if the method invoked was the stepDown() method, and more than value otherwise.
  11. ~ELSE ⇒ %値 ~INCBY %符号 × %値~step × %n ◎ Otherwise (value subtracted from the step base is an integral multiple of the allowed value step): ◎ • Let n be the argument. ◎ • Let delta be the allowed value step multiplied by n. ◎ • If the method invoked was the stepDown() method, negate delta. ◎ • Let value be the result of adding delta to value.

  12. ~IF[ %値 ~LT %最小 ] ⇒ %値 ~SET [ %V ~GTE %最小 ]を満たす %V ~IN %S のうち,最小の値 ◎ If the element has a minimum, and value is less than that minimum, then set value to the smallest value that, when subtracted from the step base, is an integral multiple of the allowed value step, and that is more than or equal to minimum.
  13. ~IF[ %値 ~GT %最大 ] ⇒ %値 ~SET [ %V ~LTE %最大 ]を満たす %V ~IN %S のうち,最大の値 ◎ If the element has a maximum, and value is greater than that maximum, then set value to the largest value that, when subtracted from the step base, is an integral multiple of the allowed value step, and that is less than or equal to maximum.
  14. ~IF[ %値 × %符号 ~LT %旧~値 × %符号 ] ⇒ ~RET ◎ If either the method invoked was the stepDown() method and value is greater than valueBeforeStepping, or the method invoked was the stepUp() method and value is less than valueBeforeStepping, then abort these steps.

    この段は、次の例にて要素の `stepUp()$m ~methodを呼出しても 要素の`値$は変化しないことを確保する。 ◎ This ensures that invoking the stepUp() method on the input element in the following example does not change the value of that element:

    <input type=number value=1 max=0>
    

    【 %n ~LT 0 の場合も、(無視されないならば)`値$は変化しないことになる。 】

  15. 要素の`値$ ~SET %値 を`実数から文字列に変換-$した結果 ◎ Let value as string be the result of running the algorithm to convert a number to a string, as defined for the input element's type attribute's current state, on value. ◎ Set the value of the element to value as string.
`list@m
現在の`示唆源の要素$ ~NEQ ε ならば それ / ~ELSE_ ~NULL を返さ~MUST。 ◎ The list IDL attribute must return the current suggestions source element, if any, or null otherwise.

4.10.5.5. ~eventに共通する挙動

[ `input$et / `change$et ]~eventは、`適用される$ならば( `input$e 要素のうち[ `~button$, および `Hidden$st `状態$にあるもの ]を除くすべてに該当する)に,利用者が~controlと対話したことを指示するために発火される: ◎ When the input and change events apply (which is the case for all input controls other than buttons and those with the type attribute in the Hidden state), the events are fired to indicate that the user has interacted with the control.\

  • `input$et ~eventは、利用者が~controlの~dataを改変する度に発火される。 ◎ The input event fires whenever the user has modified the data of the control.\
  • `change$et ~eventは、[ 値を~commitすることが当の~controlにて意味0を成すならば そのとき / ~ELSE_ ~controlが`~focusを失う$とき ]に発火される。 ◎ The change event fires when the value is committed, if that makes sense for the control, or else when the control loses focus.\

すべての事例において、 `input$et ~eventは,対応する `change$et ~event(もしあれば)より先に生じる。 ◎ In all cases, the input event comes before the corresponding change event (if any).

これらの~eventを要素に配送する規則は:

  • 要素に~eventが`適用されない$場合、定義されない(~eventは配送されない)。 【 `状態$ ~IN { `Hidden$st, `Reset$st, `Image$st, `Button$st } なるものが該当する。 】
  • 他の場合,要素の`状態$に`~input作動化の挙動$は定義されているならば、それを定義する各~節にて,与えられる。 ( `状態$ ~IN { `Checkbox$st, `Radio$st, `File$st } なるものが該当する。)
  • 他の場合は、以下で与えられる:
◎ When an input element has a defined input activation behavior, the rules for dispatching these events, if they apply, are given in the section above that defines the type attribute's state. (This is the case for all input controls with the type attribute in the Checkbox state, the Radio Button state, or the File Upload state.)
~UIは、対話的(中間の)操作, 明示的~commit動作の両者を孕む場合:

~UAは:

  • 利用者が要素の`値$を変更したときは、次を走らす`~taskを待入し$~MUST ⇒ `input$et `~eventを発火する$
  • 利用者が変更を~commitしたときは、次を走らす`~taskを待入し$~MUST ⇒ `change$et `~eventを発火する$
◎ For input elements without a defined input activation behavior, but to which these events apply, and for which the user interface involves both interactive manipulation and an explicit commit action, then when the user changes the element's value, the user agent must queue a task to fire an event named input at the input element, with the bubbles attribute initialized to true, and any time the user commits the change, the user agent must queue a task to fire an event named change at the input element, with the bubbles attribute initialized to true.
中間の操作も~commit動作を孕むような~UIの例としては、~sliderを利用する `Range$st ~controlが~pointing装置で操作されているときが挙げられる。 `input$et ~eventは、利用者が~controlのつまみを~dragしている間,位置が変化する度に発火される。 `change$et ~eventは、利用者がつまみを離して特定の値を~commitしたときに限り,発火される。 ◎ An example of a user interface involving both interactive manipulation and a commit action would be a Range controls that use a slider, when manipulated using a pointing device. While the user is dragging the control's knob, input events would fire whenever the position changed, whereas the change event would only fire when the user let go of the knob, committing to a specific value.
~UIは、明示的~commit動作のみ孕む場合:

~UAは、利用者が要素の`値$の変更を~commitする度に,次を走らす`~taskを待入し$~MUST:

  1. `input$et `~eventを発火する$
  2. `change$et `~eventを発火する$
◎ For input elements without a defined input activation behavior, but to which these events apply, and for which the user interface involves an explicit commit action but no intermediate manipulation, then any time the user commits a change to the element's value, the user agent must queue a task to first fire an event named input at the input element, with the bubbles attribute initialized to true, and then fire an event named change at the input element, with the bubbles attribute initialized to true.
~commit動作を伴う~UIの例としては、色環を~~出現させる単独の~buttonからなる `Color$st ~controlが挙げられる — その~dialogが閉じられたときに限り,`値$が変化する場合、それは明示的な~commit動作になる。 他方、~controlを操作するに伴い色も対話的に変化する場合、~commit動作は生じないこともある。 `~dialogが開きっぱなしのときなど。^tnote ◎ An example of a user interface with a commit action would be a Color control that consists of a single button that brings up a color wheel: if the value only changes when the dialog is closed, then that would be the explicit commit action. On the other hand, if manipulating the control changes the color interactively, then there might be no commit action.
~commit動作を伴うような~UIの別の例としては、 `Date$st ~controlであって,利用者による[ ~text入力, ~drop-down暦からの選択 ]の両方を許容するものが挙げられる — ~text入力には,明示的な~commit段がないこともある一方、~drop-down暦から日付tを選択してから その~drop-downを退けることは,~commit動作になる。 ◎ Another example of a user interface with a commit action would be a Date control that allows both text-based user input and user selection from a drop-down calendar: while text input might not have an explicit commit step, selecting a date from the drop down calendar and then dismissing the drop down would be a commit action.
~UIは、中間の操作のみを孕む場合:

利用者が 明示的な~commit動作なしに 要素の`値$を変更させる度に、~UAは,次を走らす`~taskを待入し$~MUST:

  1. `input$et `~eventを発火する$

対応する `change$et ~eventがあれば、~controlが`~focusを失う$ときに発火されることになる。

◎ For input elements without a defined input activation behavior, but to which these events apply, any time the user causes the element's value to change without an explicit commit action, the user agent must queue a task to fire an event named input at the input element, with the bubbles attribute initialized to true. The corresponding change event, if any, will be fired when the control loses focus.
利用者が要素の`値$を変更する例としては、利用者が[ ~text~controlの中で 打込む/新たな値を~pasteする/編集を~undoする ]などが挙げられる。 利用者による対話は、値を変更しないこともある — 例えば、空の~text~control内で delete ~keyを叩いたり,~control内のある~textを~clipboardからの~textで置換したが,たまたま正確に同じ~textであったときなど。 ◎ Examples of a user changing the element's value would include the user typing into a text control, pasting a new value into the control, or undoing an edit in that control. Some user interactions do not cause changes to the value, e.g., hitting the "delete" key in an empty text control, or replacing some text in the control with text from the clipboard that happens to be exactly the same text.
利用者が~commit段を伴わずに要素の`値$を変更する 別の例としては、利用者が~slider形の `Range$st ~controlに`~focus$してから,~keyboardで対話することが挙げられる。 ◎ A Range control in the form of a slider that the user has focused and is interacting with using a keyboard would be another example of the user changing the element's value without a commit step.

`~task$が `input$et ~eventだけを発火する事例では、~UAは,その~taskを`待入する$前に,利用者との対話に相応しい間 待機して~MAY — 例えば~UAは、各~keystrokeごとに~eventを発火し続けずに,利用者が手を止めたときに限り 発火するように、例えば, 100 ~milli秒t間 ~keyが叩かれずにいるときまで待機することもできる。 ◎ In the case of tasks that just fire an input event, user agents may wait for a suitable break in the user's interaction before queuing the tasks; for example, a user agent could wait for the user to have not hit a key for 100ms, so as to only fire the event when the user pauses, instead of continuously for each keystroke.

~UAは、要素の`値$を,利用者に利するように変更する場合(例: ~formを事前に埋めておく特色機能の一部として)、次を走らす`~taskを待入し$~MUST:

  1. それに則って`値$を更新する
  2. `input$et `~eventを発火する$
  3. `change$et `~eventを発火する$
◎ When the user agent is to change an input element's value on behalf of the user (e.g. as part of a form prefilling feature), the user agent must queue a task to first update the value accordingly, then fire an event named input at the input element, with the bubbles attribute initialized to true, then fire an event named change at the input element, with the bubbles attribute initialized to true.

注記: これらの~eventは、~scriptが~form~controlの値に加えた変更に呼応して発火されることはない。 (これは、~scriptが,利用者が操作している~controlに呼応して,各~form~controlの値を更新し易くするためである — ~scriptは、無限~loopを避けるために 自身による変更を ふるい落とす必要がなくなるので。) ◎ These events are not fired in response to changes made to the values of form controls by scripts. (This is to make it easier to update the values of form controls in response to the user manipulating the controls, without having to then filter out the script's own changes to avoid an infinite loop.)

これらの`~task$の`~task源$は、`利用者~対話~task源$とする。 ◎ The task source for these tasks is the user interaction task source.