4.10.18.8. ~autofill

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

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

`input$e 要素が %X `状態にある@ とは、要素は[ その `type$a 属性の状態 ~EQ %X ]を満たしていることの略記である。

4.10.18.8.1. ~form~controlの~autofill法: `autocomplete^a 属性

~UAは、利用者が~formを~fillする(埋める)のを助けるための特色機能を備えるときもある — 例えば、利用者の~addressを早期の利用者~入力に基づいて~prefillする(予め埋めておく)など。 `autocomplete@a 内容~属性は、そのような特色機能を[ ~~実際に供するかどうか/どう供するか ]について,~UA向けに~hintを与えるために利用できる。 ◎ User agents sometimes have features for helping users fill forms in, for example prefilling the user's address based on earlier user input. The autocomplete content attribute can be used to hint to the user agent how to, or indeed whether to, provide such a feature.

`autocomplete$a 属性は、次のいずれかを纏うものとされる — それに応じて,異なる仕方で利用される:

`~autofill~anchor@ ( autofill anchor mantle )
この属性は、 `Hidden$st `状態にある$ `input$e 要素が有する場合には,これを纏う。
これを纏っている下では、この属性は,所与の値の意味を述べる。
【 所与の値とは、要素の( `value^a 属性の値で与えられる)`値$を指すと思われる。 すなわち、この属性の値は,要素の`値$の意味(種類)を指示する。 】
`~autofill期待@ ( autofill expectation mantle )
この属性は、`~autofill~anchor$を纏わないときは,これを纏う。
これを纏っている下では、この属性は,何が利用者からの入力として期待されるかを述べる。
【 すなわち、この属性の値は,期待される値の種類(意味)を指示する。 】

【 この訳では、 “mantle(マント)” は訳出しない。 “纏う” 自体にその意味が含まれるので。 】

◎ There are two ways this attribute is used. When wearing the autofill expectation mantle, the autocomplete attribute describes what input is expected from users. When wearing the autofill anchor mantle, the autocomplete attribute describes the meaning of the given value. ◎ On an input element whose type attribute is in the Hidden state, the autocomplete attribute wears the autofill anchor mantle. In all other cases, it wears the autofill expectation mantle.

`autocomplete$a 属性に指定する値は、次のいずれかを満たす[ 有順序の`空白区切りの~token集合$ ]で~MUST:

  • `~autofill期待$を纏っているときに限り ⇒ 1 個の~tokenのみからなっていて,それは 文字列[ `off$v / `on$v ]に`~ASCII大小無視$で合致する(`~autofill~anchor$を纏っている場合、これらの~keywordは許容されない)
  • `~autofill詳細~token列$である
◎ When wearing the autofill expectation mantle, the autocomplete attribute, if specified, must have a value that is an ordered set of space-separated tokens consisting of either a single token that is an ASCII case-insensitive match for the string "off", or a single token that is an ASCII case-insensitive match for the string "on", or autofill detail tokens. ◎ When wearing the autofill anchor mantle, the autocomplete attribute, if specified, must have a value that is an ordered set of space-separated tokens consisting of just autofill detail tokens (i.e. the "on" and "off" keywords are not allowed).

`~autofill詳細~token列@ は、次に与える並びに合致する文字列である — 以下において “(省略可)” が付記されたものは、省略できることを表す(すなわち, 0 個または 1 個): ◎ Autofill detail tokens are the following, in the order given below:

  1. 次を満たす~token(省略可) ⇒ 最初から 8 文字は`~ASCII大小無視$で文字列 `section-@v に合致する — 当の欄は、ある名前の~groupに所属することを意味する。 ◎ Optionally, a token whose first eight characters are an ASCII case-insensitive match for the string "section-", meaning that the field belongs to the named group.

    例えば~form内に 2 個の出荷先( `shipping$v )~addressがある場合、次のように~mark-upすることもできる: ◎ For example, if there are two shipping addresses in the form, then they could be marked up as:

    <fieldset>
     <legend>Ship the blue gift to...</legend>
     <p> <label> Address:     <textarea name=ba autocomplete="section-blue shipping street-address"></textarea> </label>
     <p> <label> City:        <input name=bc autocomplete="section-blue shipping address-level2"> </label>
     <p> <label> Postal Code: <input name=bp autocomplete="section-blue shipping postal-code"> </label>
    </fieldset>
    <fieldset>
     <legend>Ship the red gift to...</legend>
     <p> <label> Address:     <textarea name=ra autocomplete="section-red shipping street-address"></textarea> </label>
     <p> <label> City:        <input name=rc autocomplete="section-red shipping address-level2"> </label>
     <p> <label> Postal Code: <input name=rp autocomplete="section-red shipping postal-code"> </label>
    </fieldset>
    
  2. 次に挙げるいずれかの文字列に`~ASCII大小無視$で合致する~token(省略可): ◎ Optionally, a token that is an ASCII case-insensitive match for one of the following strings:

    • `shipping@v — 当の欄は、出荷先の[ ~address/連絡先 ]情報の一部であることを意味する。 ◎ "shipping", meaning the field is part of the shipping address or contact information
    • `billing@v — 当の欄は、請求先の[ ~address/連絡先 ]情報の一部であることを意味する。 ◎ "billing", meaning the field is part of the billing address or contact information
  3. 次のいずれか: ◎ Either of the following two options:

    • [ 次に挙げる`~autofill欄$名のうち,当の`~controlには不適切$でないもの ]いずれかに`~ASCII大小無視$で合致する~token: ◎ A token that is an ASCII case-insensitive match for one of the following autofill field names, excluding those that are inappropriate for the control:

      • `name$v
      • `honorific-prefix$v
      • `given-name$v
      • `additional-name$v
      • `family-name$v
      • `honorific-suffix$v
      • `nickname$v
      • `username$v
      • `new-password$v
      • `current-password$v
      • `organization-title$v
      • `organization$v
      • `street-address$v
      • `address-line1$v
      • `address-line2$v
      • `address-line3$v
      • `address-level4$v
      • `address-level3$v
      • `address-level2$v
      • `address-level1$v
      • `country$v
      • `country-name$v
      • `postal-code$v
      • `cc-name$v
      • `cc-given-name$v
      • `cc-additional-name$v
      • `cc-family-name$v
      • `cc-number$v
      • `cc-exp$v
      • `cc-exp-month$v
      • `cc-exp-year$v
      • `cc-csc$v
      • `cc-type$v
      • `transaction-currency$v
      • `transaction-amount$v
      • `language$v
      • `bday$v
      • `bday-day$v
      • `bday-month$v
      • `bday-year$v
      • `sex$v
      • `url$v
      • `photo$v

      (これらの値については,下の`~autofill名~一覧$に述べる。) ◎ (See the table below for descriptions of these values.)

    • 次に与える順による並び: ◎ The following, in the given order:

      1. 次の表の左列に挙げるいずれかの文字列に`~ASCII大小無視$で合致する~token(省略可): ◎ Optionally, a token that is an ASCII case-insensitive match for one of the following strings:

        ~token 意味
        `home@v 当の欄は、その居宅に居る誰かの連絡先~用にあることを意味する。 ◎ "home", meaning the field is for contacting someone at their residence
        `work@v 当の欄は、その職場に居る誰かの連絡先~用にあることを意味する。 ◎ "work", meaning the field is for contacting someone at their workplace
        `mobile@v 当の欄は、所在に関わらず誰かの連絡先~用にあることを意味する。 ◎ "mobile", meaning the field is for contacting someone regardless of location
        `fax@v 当の欄は、~fax機の連絡先を詳細に述べることを意味する。 ◎ "fax", meaning the field describes a fax machine's contact details
        `pager@v 当の欄は、~pager/~beeperの連絡先を詳細を述べることを意味する。 ◎ "pager", meaning the field describes a pager's or beeper's contact details
      2. [ 次に挙げる`~autofill欄$名のうち,当の`~controlには不適切$でないもの ]いずれかに`~ASCII大小無視$で合致する~token: ◎ A token that is an ASCII case-insensitive match for one of the following autofill field names, excluding those that are inappropriate for the control:

        • `tel$v
        • `tel-country-code$v
        • `tel-national$v
        • `tel-area-code$v
        • `tel-local$v
        • `tel-local-prefix$v
        • `tel-local-suffix$v
        • `tel-extension$v
        • `email$v
        • `impp$v

        (これらの値については,下の`~autofill名~一覧$に述べる。) ◎ (See the table below for descriptions of these values.)

前述したように, `autocomplete$a 属性とその各種~keywordの意味は、属性が纏っているものに依存する: ◎ As noted earlier, the meaning of the attribute and its keywords depends on the mantle that the attribute is wearing.

`~autofill期待$を纏っている場合: ◎ When wearing the autofill expectation mantle...

~keyword `off@v は、次のいずれかを指示する: ◎ The "off" keyword indicates either that\

  • 当の~controlの入力~dataは特に機密的である(例えば、核兵器の作動化~code) ◎ the control's input data is particularly sensitive (for example the activation code for a nuclear weapon); or that\
  • 決して再利用されない値である(例えば、銀行~login用の使捨鍵)。 したがって,利用者は、~UAがそれらに対し値を~prefillするのに依拠する代わりに,毎回~明示的に~dataを手入力する必要があることになる。 ◎ it is a value that will never be reused (for example a one-time-key for a bank login) and the user will therefore have to explicitly enter the data each time, instead of being able to rely on the UA to prefill the value for them; or that\
  • 当の文書は、自動補完-( autocomplete )する自前の仕組みを供していて,~UAに自動補完~値を供するよう求めていない。 ◎ the document provides its own autocomplete mechanism and does not want the user agent to provide autocompletion values.

~keyword `on@v は、次の 2 つを指示する: ◎ The "on" keyword indicates that\

  • ~UAには,利用者に自動補完~値を供することが許容される ◎ the user agent is allowed to provide the user with autocompletion values, but\
  • 利用者~手入力するよう期待され得る~dataの種類については,それ以上の情報は供さない — ~UAは、どの自動補完~値を示唆するか決めるときに,経験則を利用する必要がある。 ◎ does not provide any further information about what kind of data the user might be expected to enter. User agents would have to use heuristics to decide what autocompletion values to suggest.
上に挙げた`~autofill欄$は、[ ~UAには利用者に自動補完~値を供することが許容される ]ことを指示し,[ どの種類の値が期待されるか ]を指定する。 そのような各~keywordの意味は、下の`~autofill名~一覧$に述べる。 ◎ The autofill field listed above indicate that the user agent is allowed to provide the user with autocompletion values, and specifies what kind of value is expected. The meaning of each such keyword is described in the table below.
要素の `autocomplete$a 属性が省略された場合、代わりに既定の値 — 要素の`~form所有者$ ~NEQ ~NULL ならば その`~autocomplete0$a 属性の状態に対応する値( `on$v または `off$v ) / ~ELSE_ `on$v — が利用される。 ◎ If the autocomplete attribute is omitted, the default value corresponding to the state of the element's form owner's autocomplete attribute is used instead (either "on" or "off"). If there is no form owner, then the value "on" is used.
`~autofill~anchor$を纏っている場合: ◎ When wearing the autofill anchor mantle...
上に挙げた`~autofill欄$は、それが指定する[ 特定0の[ 値の種類 ]]の値は,この要素に供された値になることを指示する。 そのような各~keywordの意味は、下の`~autofill名~一覧$に述べる。 ◎ The autofill field listed above indicate that the value of the particular kind of value specified is that value provided for this element. The meaning of each such keyword is described in the table below.
【 下の例の “通貨” で言えば、 `transaction-currency$v が値の種類になり、要素に供された`値$( `value^a 属性の値 `CHF^v )が,この種類の値を与えることになる。 】

次の例の頁では、通貨( `transaction-currency$v )と取引~額( `transaction-amount$v )が明示的に指定されている。 ~formは、~credit-cardその他の請求先の詳細を要請する。 ~UAは、[ 残高は十分ある, かつ関連する通貨を~supportする ]ものと知っている~credit-cardを示唆するとき,この情報を利用することもできる。 ◎ In this example the page has explicitly specified the currency and amount of the transaction. The form requests a credit card and other billing details. The user agent could use this information to suggest a credit card that it knows has sufficient balance and that supports the relevant currency.

<form method=post action="step2.cgi">
 <input type=hidden autocomplete=transaction-currency value="CHF">
 <input type=hidden autocomplete=transaction-amount value="15.00">
 <p><label>~credit-card番号:<input type=text inputmode=numeric autocomplete=cc-number></label>
 <p><label>失効日:<input type=month autocomplete=cc-exp></label>
 <p><input type=submit value="続ける">
</form>

各 `~autofill欄@ ~keywordは、下の`~autofill名~一覧$に述べるように互いに関係する。 この表の各行に挙げる欄~名は、同じ行の “意味” 列に与える意味に対応する。 他の欄の下位部分に対応する欄もある(表の中では、より幅狭な欄として示される)。 例えば,~credit-cardの失効日は、失効日の月t, 年t 両者 ( `cc-exp$v )を与える 1 個の欄としても, 2 個の欄 — 月tを与える欄( `cc-exp-month$v ), 年tを与える欄( `cc-exp-year$v )— としても表せる。 そのような事例では、上位にある幅広な欄~名が,その下位にある幅狭な一群の欄を~~集約する。 ◎ The autofill field keywords relate to each other as described in the table below. Each field name listed on a row of this table corresponds to the meaning given in the cell for that row in the column labeled "Meaning". Some fields correspond to subparts of other fields; for example, a credit card expiry date can be expressed as one field giving both the month and year of expiry ("cc-exp"), or as two fields, one giving the month ("cc-exp-month") and one the year ("cc-exp-year"). In such cases, the names of the broader fields cover multiple rows, in which the narrower fields are defined.

一般に,作者には、より幅狭な欄ではなく,より幅広な欄を利用することが奨励される — より幅狭な欄は、西欧に偏向する傾向にあるので。 例えば一部の西欧~文化では[ ~given-name, ~family-name ]の順に記すのが共通的である(なので `~first-name^i, `~surname^i と称されることも多い)一方、多くの文化では[ ~family-name, ~given-name ]の順にされ、他の多くは単純に名は 1 つだけである( `~mononym^i )。 したがって,単独の欄の方がより柔軟である。 ◎ Generally, authors are encouraged to use the broader fields rather than the narrower fields, as the narrower fields tend to expose Western biases. For example, while it is common in some Western cultures to have a given name and a family name, in that order (and thus often referred to as a first name and a surname), many cultures put the family name first and the given name second, and many others simply have one name (a mononym). Having a single field is therefore more flexible.

一部の`~autofill欄$名は、ある種の~form~controlに限り適切になる。 所与の、[ `~autofill欄$名 %名前 , ~control ]に対し,次が満たされるならば、 %名前 は当の `~controlには不適切@ とされる ⇒ ~controlは、 %名前 に対応する~group — [ 下の表にて %名前 を挙げている最初の行 ]の 5 列目に示す~group — に所属しない。

どの~controlがどの~groupに所属するかは、この表の下に述べる。

◎ Some fields are only appropriate for certain form controls. An autofill field name is inappropriate for a control if the control does not belong to the group listed for that autofill field in the fifth column of the first row describing that autofill field in the table below. What controls fall into each group is described below the table.
~autofill名とその意味の一覧
欄~名 意味 正準的~形式 正準的~形式の例 ~control~group
`name@v 全部的な~name ◎ Full name 無改行自由形text Sir Timothy John Berners-Lee, OM, KBE, FRS, FREng, FRSA `Text$cG
`honorific-prefix@v 接頭辞または~title(例: "Mr.", "Ms.", "Dr.", " Mlle" ) ◎ Prefix or title (e.g. "Mr.", "Ms.", "Dr.", "Mlle") 無改行自由形text Sir `Text$cG
`given-name@v ~given-name(一部の西欧~文化では、 `~first-name^i とも称される ) ◎ Given name (in some Western cultures, also known as the first name) 無改行自由形text Timothy `Text$cG
`additional-name@v 追加の~name( 一部の西欧~文化では、`~middle-name^iとも称される,~first-name以外の~forename) ◎ Additional names (in some Western cultures, also known as middle names, forenames other than the first name) 無改行自由形text John `Text$cG
`family-name@v ~family-name(一部の西欧~文化では、 `~last-name^i / `~surname^i とも称される) ◎ Family name (in some Western cultures, also known as the last name or surname) 無改行自由形text Berners-Lee `Text$cG
`honorific-suffix@v 接尾辞(例: "Jr.", "B.Sc.", "MBASW", "II" ) ◎ Suffix (e.g. "Jr.", "B.Sc.", "MBASW", "II") 無改行自由形text OM, KBE, FRS, FREng, FRSA `Text$cG
`nickname@v ~nickname, ~screen-name, ~handle など — 概して,全部的な~nameの代わりに利用される短い~name ◎ Nickname, screen name, handle: a typically short name used instead of the full name 無改行自由形text Tim `Text$cG
`organization-title@v 肩書き(例: 肩書ex) ◎ Job title (e.g. "Software Engineer", "Senior Vice President", "Deputy Managing Director") 無改行自由形text 教授◎ Professor `Text$cG
`username@v ~username ◎ A username 無改行自由形text timbl `Text$cG
`new-password@v 新たな~password(例:~accountを作成するとき/~passwordを変更するとき) ◎ A new password (e.g. when creating an account or changing a password) 無改行自由形text GUMFXbadyrS3 `Password$cG
`current-password@v `username$v 欄で識別される~account用の現在の~password(例: ~log-inするとき) ◎ The current password for the account identified by the username field (e.g. when logging in) 無改行自由形text qwerty `Password$cG
`organization@v この欄に結付けられている他の欄~内の[ 個人, ~address, その他の連絡先~情報 ]に対応している会社~名 ◎ Company name corresponding to the person, address, or contact information in the other fields associated with this field 無改行自由形text World Wide Web Consortium `Text$cG
`street-address@v ~street~address(複数行, 改行文字は保全される) ◎ Street address (multiple lines, newlines preserved) 自由形の~text ◎ Free-form text 32 Vassar Street
MIT Room 32-G524
`Multiline$cG
`address-line1@v ~street~address(欄ごとに 1 行) ◎ Street address (one line per field) 無改行自由形text 32 Vassar Street `Text$cG
`address-line2@v 無改行自由形text MIT Room 32-G524 `Text$cG
`address-line3@v 無改行自由形text `Text$cG
`address-level4@v 行政区分が 4 ~~段階あるときの,~addressにおける最も細かい`行政区分$ ◎ The most fine-grained administrative level, in addresses with four administrative levels 無改行自由形text `Text$cG
`address-level3@v 行政区分が 3 段階以上あるときの,~addressにおける 3 番目に広域な`行政区分$ ◎ The third administrative level, in addresses with three or more administrative levels 無改行自由形text `Text$cG
`address-level2@v 行政区分が 2 段階以上あるときの,~addressにおける 2 番目に広域な`行政区分$。 行政区分が 2 ~~段階の国では、これは,関連する~street~addressが見出される市区町村等になる。 ◎ The second administrative level, in addresses with two or more administrative levels; in the countries with two administrative levels, this would typically be the city, town, village, or other locality within which the relevant street address is found 無改行自由形text Cambridge `Text$cG
`address-level1@v ~address内で最も広域な`行政区分$ — すなわち,当の区域( ~locality )が見出される~~地方( ~province )。 これは例えば、日本では都道府県,米国では州( ~state ),スイスでは~canton,英国では~post~townになる。 ◎ The broadest administrative level in the address, i.e. the province within which the locality is found; for example, in the US, this would be the state; in Switzerland it would be the canton; in the UK, the post town 無改行自由形text MA `Text$cG
`country@v 国~code ◎ Country code 妥当な `ISO 3166-1-alpha-2 国~code$ `ISO3166$r ◎ Valid ISO 3166-1-alpha-2 country code [ISO3166] US `Text$cG
`country-name@v 国~名 ◎ Country name 無改行自由形text — 一部の事例では `country^v から導出される ◎ Free-form text, no newlines; derived from country in some cases US `Text$cG
`postal-code@v 郵便番号等( CEDEX の場合, `address-level2$v 欄に関連する場合は "CEDEX" , arrondissement を付加する) ◎ Postal code, post code, ZIP code, CEDEX code (if CEDEX, append "CEDEX", and the arrondissement, if relevant, to the address-level2 field) 無改行自由形text 02139 `Text$cG
`cc-name@v 支払手段に与えた全部的な~name ◎ Full name as given on the payment instrument 無改行自由形text Tim Berners-Lee `Text$cG
`cc-given-name@v 支払手段に与えた~given-name (一部の西欧~文化では、`~first-name^iとも称される) ◎ Given name as given on the payment instrument (in some Western cultures, also known as the first name) 無改行自由形text Tim `Text$cG
`cc-additional-name@v 支払手段に与えた追加の~name (一部の西欧~文化では `~middle-name^i とも称される,~first-name以外の~forename) ◎ Additional names given on the payment instrument (in some Western cultures, also known as middle names, forenames other than the first name) 無改行自由形text `Text$cG
`cc-family-name@v 支払手段に与えた~family-name (一部の西欧~文化では、`~last-name^i / `~surname^i とも称される) ◎ Family name given on the payment instrument (in some Western cultures, also known as the last name or surname) 無改行自由形text Berners-Lee `Text$cG
`cc-number@v 支払手段を識別する~code(例:~credit-card番号) ◎ Code identifying the payment instrument (e.g. the credit card number) `~ASCII数字$ ◎ ASCII digits 4114360123456785 `Text$cG
`cc-exp@v 支払手段の失効~日付t ◎ Expiration date of the payment instrument `妥当な年月t文字列$ ◎ Valid month string 2014-12 `Month$cG
`cc-exp-month@v 支払手段の失効~日付tの月t成分 ◎ Month component of the expiration date of the payment instrument 範囲 { 1 〜 12 } に入る`妥当な整数$ ◎ Valid integer in the range 1..12 12 `Numeric$cG
`cc-exp-year@v 支払手段の失効~日付tの年t成分 ◎ Year component of the expiration date of the payment instrument ~zeroより大きい`妥当な整数$ ◎ Valid integer greater than zero 2014 `Numeric$cG
`cc-csc@v 支払手段の~security~codeの類( CSC( card security code ), CVC( card validation code ), CVV( card verification value ), SPC( signature panel code ), CCID( credit card ID ), 等々とも称される) ◎ Security code for the payment instrument (also known as the card security code (CSC), card validation code (CVC), card verification value (CVV), signature panel code (SPC), credit card ID (CCID), etc) `~ASCII数字$列 ◎ ASCII digits 419 `Text$cG
`cc-type@v 支払手段の種別 ◎ Type of payment instrument 無改行自由形text Visa `Text$cG
`transaction-currency@v 利用者が利用する取引に選好する通貨 ◎ The currency that the user would prefer the transaction to use ~ISO 4217通貨~code `ISO4217$r ◎ ISO 4217 currency code [ISO4217] GBP `Text$cG
`transaction-amount@v 利用者が~~希望する取引~額(例: 入札/売出し価格を手入力するとき) ◎ The amount that the user would like for the transaction (e.g. when entering a bid or sale price) `妥当な浮動小数点数$ ◎ Valid floating-point number 401.00 `Numeric$cG
`language@v 選好される言語 ◎ Preferred language 妥当な ~BCP 47 言語~tag `BCP47$r ◎ Valid BCP 47 language tag [BCP47] en `Text$cG
`bday@v 誕生日 ◎ Birthday `妥当な日付t文字列$ ◎ Valid date string 1955-06-08 `Date$cG
`bday-day@v 誕生日の日t成分 ◎ Day component of birthday 範囲 { 1 〜 31 } に入る`妥当な整数$ ◎ Valid integer in the range 1..31 8 `Numeric$cG
`bday-month@v 誕生日の月t成分 ◎ Month component of birthday 範囲 { 1 〜 12 } に入る`妥当な整数$ ◎ Valid integer in the range 1..12 6 `Numeric$cG
`bday-year@v 誕生日の年t成分 ◎ Year component of birthday ~zeroより大きい`妥当な整数$ ◎ Valid integer greater than zero 1955 `Numeric$cG
`sex@v 性別(例: 女性, fa'afafine ) ◎ Gender identity (e.g. Female, Fa'afafine) 無改行自由形text Male `Text$cG
`url@v この欄に結付けられている他の欄~内の[ 会社 / 個人 / ~address / 連絡先~情報 ]に対応する~home頁その他の~Web頁 ◎ Home page or other Web page corresponding to the company, person, address, or contact information in the other fields associated with this field `妥当な~URL文字列$ ◎ Valid URL string https://www.w3.org/People/Berners-Lee/ `URL$cG
`photo@v この欄に結付けられている他の欄~内の[ 会社 / 個人 / ~address / 連絡先~情報 ]に対応する[ 写真, ~icon, その他の画像 ] ◎ Photograph, icon, or other image corresponding to the company, person, address, or contact information in the other fields associated with this field `妥当な~URL文字列$ ◎ Valid URL string https://www.w3.org/Press/Stock/Berners-Lee/2001-europaeum-eighth.jpg `URL$cG
`tel@v 国~codeも含む全部的な電話番号 ◎ Full telephone number, including country code `002B^U ( `+^l )が接頭された { `~ASCII数字$, `0020^U SPACE } からなる並び ◎ ASCII digits and U+0020 SPACE characters, prefixed by a U+002B PLUS SIGN character (+) +1 617 253 5702 `Tel$cG
`tel-country-code@v 電話番号の国~code成分 ◎ Country code component of the telephone number `002B^U ( `+^l )が接頭された`~ASCII数字$列 ◎ ASCII digits prefixed by a U+002B PLUS SIGN character (+) +1 `Text$cG
`tel-national@v ~county~code成分のない電話番号 — 適用-可能なら,国内用の接頭辞も含まれる ◎ Telephone number without the county code component, with a country-internal prefix applied if applicable { `~ASCII数字$, `0020^U SPACE } からなる並び ◎ ASCII digits and U+0020 SPACE characters 617 253 5702 `Text$cG
`tel-area-code@v 電話番号の地区~code成分 — 適用-可能なら,国内用の接頭辞も含まれる ◎ Area code component of the telephone number, with a country-internal prefix applied if applicable `~ASCII数字$ ◎ ASCII digits 617 `Text$cG
`tel-local@v 国~code/地区~code 両~成分とも伴わない,電話番号 ◎ Telephone number without the country code and area code components `~ASCII数字$ ◎ ASCII digits 2535702 `Text$cG
`tel-local-prefix@v 電話番号の地区~codeに後続する成分が 2 個の成分からなるときの, 1 個目の部分 ◎ First part of the component of the telephone number that follows the area code, when that component is split into two components `~ASCII数字$ ◎ ASCII digits 253 `Text$cG
`tel-local-suffix@v 電話番号の地区~codeに後続する成分が 2 個の成分からなるときの, 2 個目の部分 ◎ Second part of the component of the telephone number that follows the area code, when that component is split into two components `~ASCII数字$ ◎ ASCII digits 5702 `Text$cG
`tel-extension@v 電話番号の内部~拡張~code ◎ Telephone number internal extension code `~ASCII数字$ ◎ ASCII digits 1000 `Text$cG
`email@v ~e-mail~address ◎ E-mail address `妥当な~e-mail~address$ ◎ Valid e-mail address timbl@w3.org `E-mail$cG
`impp@v ~instant-messaging~protocolの端点を表現している~URL (例: `aim:goim?screenname=example^l や `~xmpp0^l ) ◎ URL representing an instant messaging protocol endpoint (for example, "aim:goim?screenname=example" or "xmpp:fred@example.net") `妥当な~URL文字列$ ◎ Valid URL string irc://example.org/timbl,isuser `URL$cG

所与の[ `autocomplete$a を指定できる要素, %~group (下の “~group一覧” の左列に挙げられるいずれか) ]に対し,[ 要素が表現する~controlが %~group に所属するかどうか ]は、要素に応じて,次に従って決定される: ◎ The groups correspond to controls as follows:

`textarea$e
`select$e
%~group に所属する( %~group が何であれ)。
`input$e

[ 要素は[ 次の “~group一覧” 内で %~group が現れる行 ]の右列に挙げられる,いずれかの`状態にある$ ]ならば %~group に所属し,そうでなければ所属しない。

~group一覧
~group 状態
`Text@cG `Hidden$st / `Text$st / `Search$st
`Multiline@cG `Hidden$st
`Password@cG `Hidden$st / `Text$st / `Search$st / `Password$st
`URL@cG `Hidden$st / `Text$st / `Search$st / `URL$st
`E-mail@cG `Hidden$st / `Text$st / `Search$st / `E-mail$st
`Tel@cG `Hidden$st / `Text$st / `Search$st / `Telephone$st
`Numeric@cG `Hidden$st / `Text$st / `Search$st / `Number$st
`Month@cG `Hidden$st / `Text$st / `Search$st / `Month$st
`Date@cG `Hidden$st / `Text$st / `Search$st / `Date$st
◎ Text • input elements with a type attribute in the Hidden state • input elements with a type attribute in the Text state • input elements with a type attribute in the Search state • textarea elements • select elements Multiline • input elements with a type attribute in the Hidden state • textarea elements • select elements Password • input elements with a type attribute in the Hidden state • input elements with a type attribute in the Text state • input elements with a type attribute in the Search state • input elements with a type attribute in the Password state • textarea elements • select elements URL • input elements with a type attribute in the Hidden state • input elements with a type attribute in the Text state • input elements with a type attribute in the Search state • input elements with a type attribute in the URL state • textarea elements • select elements E-mail • input elements with a type attribute in the Hidden state • input elements with a type attribute in the Text state • input elements with a type attribute in the Search state • input elements with a type attribute in the E-mail state • textarea elements • select elements Tel • input elements with a type attribute in the Hidden state • input elements with a type attribute in the Text state • input elements with a type attribute in the Search state • input elements with a type attribute in the Telephone state • textarea elements • select elements Numeric • input elements with a type attribute in the Hidden state • input elements with a type attribute in the Text state • input elements with a type attribute in the Search state • input elements with a type attribute in the Number state • textarea elements • select elements Month • input elements with a type attribute in the Hidden state • input elements with a type attribute in the Text state • input elements with a type attribute in the Search state • input elements with a type attribute in the Month state • textarea elements • select elements Date • input elements with a type attribute in the Hidden state • input elements with a type attribute in the Text state • input elements with a type attribute in the Search state • input elements with a type attribute in the Date state • textarea elements • select elements

~address~level: `行政区分@ ( administrative level ) — `address-level1$v 〜 `address-level4$v 欄 — は、~street~addressの区域を述べるために利用される。 ~levelの個数は地域ごとに異なり、例えば[ 米国では 2 個の~level( ~state, ~town) / 英国では~addressに依存して 1 〜 2 個(~post~town, 場合により~localityも) / 中国では 3 個(~province, ~city, ~district ) ]が利用されている。 `address-level1$v 欄は、最も広い行政区を表現する。 欄の順序も地域ごとに異なり、例えば[ 米国では ~town(~level 2), ~state(~level 1 )/ 日本では ~prefecture(~level 1), ~city(~level 2), ~district(~level 3 ) ]の順にされている。 ~formを供する作者には、国の表記規約に合致するような仕方で呈示することが奨励される(利用者が国を変更するに伴い,各~欄を[ 隠す / 示す /再配列する ]など)。 ◎ Address levels: The "address-level1" – "address-level4" fields are used to describe the locality of the street address. Different locales have different numbers of levels. For example, the US uses two levels (state and town), the UK uses one or two depending on the address (the post town, and in some cases the locality), and China can use three (province, city, district). The "address-level1" field represents the widest administrative division. Different locales order the fields in different ways; for example, in the US the town (level 2) precedes the state (level 1); while in Japan the prefecture (level 1) precedes the city (level 2) which precedes the district (level 3). Authors are encouraged to provide forms that are presented in a way that matches the country's conventions (hiding, showing, and rearranging fields accordingly as the user changes the country).

4.10.18.8.2. 処理~model

各[ `input$e 要素のうち `autocomplete$a 属性が`適用される$もの / `select$e 要素 / `textarea$e 要素 ]は、次のものを持つ: ◎ Each input element to which the autocomplete attribute applies, each select element, and each textarea element, has an autofill hint set, an autofill scope, an autofill field name, and an IDL-exposed autofill value.

`~autofill欄~名@
当の欄に期待される~dataの種類を指定する。 ◎ The autofill field name specifies the specific kind of data expected in the field,\
例: `street-address$v / `cc-exp$v ◎ e.g. "street-address" or "cc-exp".
`~autofill~hint集合@
~UAがどの種別の[ ~address/連絡先 ]情報を基にするかを識別する。 ◎ The autofill hint set identifies what address or contact information type the user agent is to look at,\
例: `shipping$v / `fax$v / `billing$v ◎ e.g. "shipping fax" or "billing".
`~autofill視野@
`~autofill視野$が互いに一致する一群の欄は、同じ対象0について~~配慮する情報を有すると~~見なされる。 それは、`~autofill~hint集合$に加えて, 0 〜 1 個の[ "`section-$v" が接頭された~keyword ]からなる。 ◎ The autofill scope identifies the group of fields whose information concerns the same subject, and consists of the autofill hint set with, if applicable, the "section-*" prefix,\
例: `billing^v / `section-parent shipping^v / `section-child shipping home^v ◎ e.g. "billing", "section-parent shipping", or "section-child shipping home".
`~IDLに公開される~autofill値@
要素の `autocomplete$m ~IDL属性に公開される値

所与の要素 %要素 が持つこれらの値は、次を走らせた結果として定義される: ◎ These values are defined as the result of running the following algorithm:

  1. ~IF[ %要素 は `autocomplete$a 属性を有さない ] ⇒ ~GOTO `既定^i ◎ If the element has no autocomplete attribute, then jump to the step labeled default.
  2. %~token列 ~LET `~ASCII空白で分割する$( `autocomplete$a 属性の値 ) ◎ Let tokens be the result of splitting the attribute's value on ASCII whitespace.
  3. ~IF[ %~token列 は空である ] ⇒ ~GOTO `既定^i ◎ If tokens is empty, then jump to the step labeled default.
  4. %現~token ~LET ε

    以下、この手続きの中で `最後の~tokenを取り出して小文字~化する@ と記された所では、次を走らすとする:

    1. ~IF[ %~token列 は空である ] ⇒ ~GOTO `済み^i
    2. %現~token ~SET `~ASCII小文字~化する$( %~token列 内の最後の~token )
    3. %~token列 から最後の~tokenを除去する
    ◎ ↓↓
  5. `最後の~tokenを取り出して小文字~化する$ ◎ Let index be the index of the last token in tokens.
  6. %現~token を次に従って処理する:

    1. %行 ~LET %現~token は下の “~token分類” 表の 1 列目に現れるならばその行 / ~ELSE_ ε
    2. ~IF[ %行 ~EQ ε ] ⇒ ~GOTO `既定^i
    3. ~IF[ ( %~token列 内の~tokenの個数 − 1 ) ~GT ( %行 の “最大~個数” 列に与える数 ) ] ⇒ ~GOTO `既定^i
    4. %欄 ~LET %現~token
    5. %分類 ~LET %行 の “分類” 列に与える値
    ◎ If the indexth token in tokens is not an ASCII case-insensitive match for one of the tokens given in the first column of the following table, or if the number of tokens in tokens is greater than the maximum number given in the cell in the second column of that token's row, then jump to the step labeled default. Otherwise, let field be the string given in the cell of the first column of the matching row, and let category be the value of the cell in the third column of that same row.
    ~token分類
    ~token 最大~個数 ◎ Maximum number of tokens 分類 ◎ Category
    `off$v 1 `Off^i
    `on$v 1 `自動的^i
    `name$v 3 `通常^i
    `honorific-prefix$v 3 `通常^i
    `given-name$v 3 `通常^i
    `additional-name$v 3 `通常^i
    `family-name$v 3 `通常^i
    `honorific-suffix$v 3 `通常^i
    `nickname$v 3 `通常^i
    `organization-title$v 3 `通常^i
    `username$v 3 `通常^i
    `new-password$v 3 `通常^i
    `current-password$v 3 `通常^i
    `organization$v 3 `通常^i
    `street-address$v 3 `通常^i
    `address-line1$v 3 `通常^i
    `address-line2$v 3 `通常^i
    `address-line3$v 3 `通常^i
    `address-level4$v 3 `通常^i
    `address-level3$v 3 `通常^i
    `address-level2$v 3 `通常^i
    `address-level1$v 3 `通常^i
    `country$v 3 `通常^i
    `country-name$v 3 `通常^i
    `postal-code$v 3 `通常^i
    `cc-name$v 3 `通常^i
    `cc-given-name$v 3 `通常^i
    `cc-additional-name$v 3 `通常^i
    `cc-family-name$v 3 `通常^i
    `cc-number$v 3 `通常^i
    `cc-exp$v 3 `通常^i
    `cc-exp-month$v 3 `通常^i
    `cc-exp-year$v 3 `通常^i
    `cc-csc$v 3 `通常^i
    `cc-type$v 3 `通常^i
    `transaction-currency$v 3 `通常^i
    `transaction-amount$v 3 `通常^i
    `language$v 3 `通常^i
    `bday$v 3 `通常^i
    `bday-day$v 3 `通常^i
    `bday-month$v 3 `通常^i
    `bday-year$v 3 `通常^i
    `sex$v 3 `通常^i
    `url$v 3 `通常^i
    `photo$v 3 `通常^i
    `tel$v 4 `連絡先^i
    `tel-country-code$v 4 `連絡先^i
    `tel-national$v 4 `連絡先^i
    `tel-area-code$v 4 `連絡先^i
    `tel-local$v 4 `連絡先^i
    `tel-local-prefix$v 4 `連絡先^i
    `tel-local-suffix$v 4 `連絡先^i
    `tel-extension$v 4 `連絡先^i
    `email$v 4 `連絡先^i
    `impp$v 4 `連絡先^i
  7. ~IF[ %分類 ~IN { `Off^i, `自動的^i } ]:

    1. ~IF[ %要素 の `autocomplete$a 属性は`~autofill~anchor$を纏っている ] ⇒ ~GOTO `既定^i
    2. %onoff ~LET %分類 に応じて[ `Off^i ならば `off^l / `自動的^i ならば `on^l ]
    3. %要素 の`~autofill欄~名$ ~LET %onoff
    4. %要素 の`~autofill~hint集合$ ~LET 空~集合
    5. %要素 の`~IDLに公開される~autofill値$ ~LET %onoff
    6. ~RET
    ◎ If category is Off or Automatic but the element's autocomplete attribute is wearing the autofill anchor mantle, then jump to the step labeled default. ◎ If category is Off, let the element's autofill field name be the string "off", let its autofill hint set be empty, and let its IDL-exposed autofill value be the string "off". Then, return. ◎ If category is Automatic, let the element's autofill field name be the string "on", let its autofill hint set be empty, and let its IDL-exposed autofill value be the string "on". Then, return.
  8. %視野~token列 ~LET 空~list ◎ Let scope tokens be an empty list.

  9. %~hint~token集合 ~LET 空~集合 ◎ Let hint tokens be an empty set.
  10. %~IDL値 ~LET %欄 のみからなる~list ◎ Let IDL value have the same value as field.
  11. `最後の~tokenを取り出して小文字~化する$ ◎ If the indexth token in tokens is the first entry, then skip to the step labeled done. ◎ Decrement index by one.
  12. ~IF[ %分類 ~EQ `連絡先^i ]~AND[ %現~token ~IN { `home$v, `work$v, `mobile$v, `fax$v, `pager$v } ]: ◎ If category is Contact and the indexth token in tokens is an ASCII case-insensitive match for one of the strings in the following list, then run the substeps that follow: ◎ "home" ◎ "work" ◎ "mobile" ◎ "fax" ◎ "pager" ◎ The substeps are:

    1. %連絡先 ~LET %現~token ◎ Let contact be the matching string from the list above.

    2. %連絡先 を %視野~token列 の先頭に挿入する ◎ Insert contact at the start of scope tokens.
    3. %連絡先 を %~hint~token集合 に追加する ◎ Add contact to hint tokens.
    4. %連絡先 を%~IDL値 の先頭に挿入する ◎ Let IDL value be the concatenation of contact, a U+0020 SPACE character, and the previous value of IDL value (which at this point will always be field).
    5. `最後の~tokenを取り出して小文字~化する$ ◎ If the indexth entry in tokens is the first entry, then skip to the step labeled done. ◎ Decrement index by one.
  13. ~IF[ %現~token ~IN { `shipping$v, `billing$v } ]: ◎ If the indexth token in tokens is an ASCII case-insensitive match for one of the strings in the following list, then run the substeps that follow: ◎ "shipping" ◎ "billing" ◎ The substeps are:

    1. %~mode ~LET %現~token ◎ Let mode be the matching string from the list above.
    2. %~mode を %視野~token列 の先頭に挿入する ◎ Insert mode at the start of scope tokens.
    3. %~mode を %~hint~token集合 に追加する ◎ Add mode to hint tokens.
    4. %~mode を %~IDL値 の先頭に挿入する ◎ Let IDL value be the concatenation of mode, a U+0020 SPACE character, and the previous value of IDL value (which at this point will either be field or the concatenation of contact, a space, and field).
    5. `最後の~tokenを取り出して小文字~化する$ ◎ If the indexth entry in tokens is the first entry, then skip to the step labeled done. ◎ Decrement index by one.
  14. ~IF[ %~token列 は空でない ] ⇒ ~GOTO `既定^i ◎ If the indexth entry in tokens is not the first entry, then jump to the step labeled default.
  15. ~IF[[ %現~token の最初から 8 文字 ] ~NEQ `section-$v ] ⇒ ~GOTO `既定^i ◎ If the first eight characters of the indexth token in tokens are not an ASCII case-insensitive match for the string "section-", then jump to the step labeled default.
  16. %section ~LET %現~token ◎ Let section be the indexth token in tokens, converted to ASCII lowercase.
  17. %section を %視野~token列 の先頭に挿入する ◎ Insert section at the start of scope tokens.
  18. %section を %~IDL値 の先頭に挿入する ◎ Let IDL value be the concatenation of section, a U+0020 SPACE character, and the previous value of IDL value.
  19. `済み^i:

    1. %要素 の`~autofill~hint集合$ ~SET %~hint~token集合
    2. %要素 の`~autofill視野$ ~SET %視野~token列
    3. %要素 の`~autofill欄~名$ ~SET %欄
    4. %要素 の`~IDLに公開される~autofill値$ ~SET %~IDL値 の各項を `0020^U SPACE で区切って順に連結した結果
    5. ~RET
    ◎ Done: Let the element's autofill hint set be hint tokens. ◎ Let the element's autofill scope be scope tokens. ◎ Let the element's autofill field name be field. ◎ Let the element's IDL-exposed autofill value be IDL value. ◎ Return.
  20. `既定^i:

    1. %要素 の`~IDLに公開される~autofill値$ ~SET 空~文字列
    2. %要素 の`~autofill~hint集合$ ~SET 空
    3. %要素 の`~autofill視野$ ~SET 空
    4. %要素 の`~autofill欄~名$ ~SET[ %要素 の `autocomplete$a 属性は`~autofill~anchor$を纏っているならば 空~文字列 / ~ELSE_ [ 要素の`~form所有者$ %~form ~NEQ ~NULL ]~AND[ %~form の`~autocomplete0$a 属性の状態 ~EQ `off$st ]ならば `off$v / ~ELSE_ `on$v ]
    ◎ Default: Let the element's IDL-exposed autofill value be the empty string, and its autofill hint set and autofill scope be empty. ◎ If the element's autocomplete attribute is wearing the autofill anchor mantle, then let the element's autofill field name be the empty string and return. ◎ Let form be the element's form owner, if any, or null otherwise. ◎ If form is not null and form's autocomplete attribute is in the off state, then let the element's autofill field name be "off". ◎ Otherwise, let the element's autofill field name be "on".

~autofillの目的においては、 `~controlの~data@ は ~controlの種類に依存する: ◎ For the purposes of autofill, a control's data depends on the kind of control:

`input$e 要素 ◎ An input element\
要素は[ `E-mail$st `状態にある$ ]~AND[ `~multiple0$a 属性を有する ]ならば 要素の`値たち$ / ~ELSE_ 要素の`値$ ◎ with its type attribute in the E-mail state and with the multiple attribute specified ◎ • The element's values. ◎ ↓
`textarea$e 要素 ◎ Any other input element ◎ A textarea element
要素の`値$ ◎ The element's value.
`select$e 要素 ◎ A select element with its multiple attribute specified
要素の`選択肢~list$内の `option$e 要素のうち,`選択有無$opt ~EQ ~T なるもの(要素が`~multiple1$a 属性を有するならば複数個になり得る) ◎ The option elements in the select element's list of options that have their selectedness set to true. ◎ Any other select element ◎ The option element in the select element's list of options that has its selectedness set to true.

[ `~autofill~hint集合$ / `~autofill視野$ / `~autofill欄~名$ ]をどう処理するかは、 `autocomplete$a 属性が纏っているものに依存する: ◎ How to process the autofill hint set, autofill scope, and autofill field name depends on the mantle that the autocomplete attribute is wearing.

`~autofill期待$を纏っている場合: ◎ When wearing the autofill expectation mantle...
要素の`~autofill欄~名$ ~EQ `off$v 場合、~UAは,[ `~controlの~data$を覚える / 利用者に過去の値を提供する ]べきでない。 ◎ When an element's autofill field name is "off", the user agent should not remember the control's data, and should not offer past values to the user.
加えて,[ 要素の`~autofill欄~名$ ~EQ `off$v ]の場合、`履歴を走査する$ときには`値は再設定-$される。 ◎ In addition, when an element's autofill field name is "off", values are reset when traversing the history.

銀行は、~UAが~login情報を~prefillするよう求めることは頻繁にはない: ◎ Banks frequently do not want UAs to prefill login information:

<p><label>Account: <input type="text" name="ac" autocomplete="off"></label></p>
<p><label>PIN: <input type="password" name="pin" autocomplete="off"></label></p>

要素の`~autofill欄~名$ ~NEQ `off$v の下では、~UAは: ◎ When an element's autofill field name is not "off", the user agent\

  • その`~controlの~data$を格納してしてよい。 ◎ may store the control's data, and\
  • 以前に格納した値を利用者に提供してよい。 ◎ may offer previously stored values to the user.

例えば、利用者が 次の~controlを伴う頁を訪問したとする: ◎ For example, suppose a user visits a page with this control:

<select name="country">
 <option>Afghanistan
 <option>Albania
 <option>Algeria
 <option>Andorra
 <option>Angola
 <option>Antigua and Barbuda
 <option>Argentina
 <option>Armenia
 <!-- ... -->
 <option>Yemen
 <option>Zambia
 <option>Zimbabwe
</select>

これは、次のように具現化されるであろう: ◎ This might render as follows:

長い~alphabet順の国~listからなる~drop-down~control。 ◎ A drop-down control with a long alphabetical list of countries.

利用者は,この頁を最初に訪問したとき "Zambia" を選定したとする。 2 回目に訪問したときは、~UAは,~UI内で "Zambia" を~listの上端に~~複製することもできる — 次の様に: ◎ Suppose that on the first visit to this page, the user selects "Zambia". On the second visit, the user agent could duplicate the entry for Zambia at the top of the list, so that the interface instead looks like this:

同じ~alphabet順の国~listからなるが、上端に Zambia も伴う。 ◎ The same drop-down control with the alphabetical list of countries, but with Zambia as an entry at the top.
[ `~autofill欄~名$ ~EQ `on$v ]の下では、~UAは,経験則の利用を試みて,利用者に提供するのに最も適切な値を決定するべきである — 例えば、要素の `name$a 値, 要素の`木$内における位置, ~form内に他のどの欄が存在するか, 等々に基づいて。 ◎ When the autofill field name is "on", the user agent should attempt to use heuristics to determine the most appropriate values to offer the user, e.g. based on the element's name value, the position of the element in its tree, what other fields exist in the form, and so forth.
`~autofill欄~名$ ~IN { `~autofill名~一覧$に与えた~autofill欄~名たち } の下では、~UAは,その名前の意味に合致する示唆を供するべきである。 可能な示唆が複数ある場合は、`~autofill~hint集合$を利用して選定するべきである。 ◎ When the autofill field name is one of the names of the autofill fields described above, the user agent should provide suggestions that match the meaning of the field name as given in the table earlier in this section. The autofill hint set should be used to select amongst multiple possible suggestions.

例えば、利用者が以前に `shipping$v ~keywordを利用している欄の中に ある~addressを手入力して, `billing$v ~keywordを利用している欄の中に別の~addressを手入力していたなら、後続の~formにおいては,その~form~controlのうち `~autofill~hint集合$が: ◎ For example, if a user once entered one address into fields that used the "shipping" keyword, and another address into fields that used the "billing" keyword, then in subsequent forms\

  • ~keyword `shipping$v を包含するものに対しては、前者の~addressだけ示唆されることになる。 ◎ only the first address would be suggested for form controls whose autofill hint set contains the keyword "shipping".\
  • 両~keywordとも包含しないものに対しては、~addressに関係していれば,両~addressとも示唆されるであろう。 ◎ Both addresses might be suggested, however, for address-related form controls whose autofill hint set does not contain either keyword.
`~autofill~anchor$を纏っている場合: ◎ When wearing the autofill anchor mantle...
[ `~autofill欄~名$ ~NEQ 空~文字列 ]のときは、~UAは,利用者が次を行ったかのように動作し~MUST ⇒ 所与の[ `~autofill~hint集合$, `~autofill視野$, `~autofill欄~名$ ]の組合わせ用に,`~controlの~data$を指定した ◎ When the autofill field name is not the empty string, then the user agent must act as if the user had specified the control's data for the given autofill hint set, autofill scope, and autofill field name combination.

~UAは, `~form~controlを~autofill@ するときは: ◎ When the user agent autofills form controls,\

  • [ `~form所有者$, `~autofill視野$ ]とも互いに同じになる各 欄に対しては: ◎ elements with the same form owner and the same autofill scope\

    • 同じ[ 個人, ~address, 支払手段, 連絡先~詳細 ]に関係している~dataを利用して~fillし~MUST。 ◎ must use data relating to the same person, address, payment instrument, and contact details.\
    • それらのうち[ `country$v / `country-name$v ]を伴うものに対しては、 ~UAが `country$v 欄(たち)に対する値を有しているならば, `country-name$v 欄(たち)は,その値が表す国の人が読める名を用いて~fillし~MUST。 ◎ When a user agent autofills "country" and "country-name" fields with the same form owner and autofill scope, and the user agent has a value for the country" field(s), then the "country-name" field(s) must be filled using a human-readable name for the same country.\
  • [ `~form所有者$, `~autofill欄~名$, `~autofill視野$ ]とも互いに同じになる各 欄を,まとめて~fillするときは、すべて同じ値で~fillし~MUST。 ◎ When a user agent fills in multiple fields at once, all fields with the same autofill field name, form owner and autofill scope must be filled with the same value.

~UAは 2 個の電話番号[ +1 555 123 1234, +1 555 666 7777 ]を知っているとする。 ~UAが `autocomplete^a="`shipping tel-local-prefix^v" を伴う欄を値 "123" で~fillして,同じ~form内の `autocomplete^a="`shipping tel-local-suffix^v" を伴う別の欄を値 "7777" で~fillすることは、適合にならない。 前述の情報で~prefillされる値が妥当になるのは、順に[ "123", "1234" ]にするか, 順に[ "666", "7777" ]にする場合に限られる。 ◎ Suppose a user agent knows of two phone numbers, +1 555 123 1234 and +1 555 666 7777. It would not be conforming for the user agent to fill a field with autocomplete="shipping tel-local-prefix" with the value "123" and another field in the same form with autocomplete="shipping tel-local-suffix" with the value "7777". The only valid prefilled values given the aforementioned information would be "123" and "1234", or "666" and "7777", respectively.

同様に,ある~formが何らかの理由で `cc-exp$v, `cc-exp-month$v 両~欄を包含していて,~UAがその~formを~prefillする場合、前者の月t成分は,後者に合致する必要がある。 ◎ Similarly, if a form for some reason contained both a "cc-exp" field and a "cc-exp-month" field, and the user agent prefilled the form, then the month component of the former would have to match the latter.

この要件には、`~autofill~anchor$も関わる。 次の~markup片を考える: ◎ This requirement interacts with the autofill anchor mantle also. Consider the following markup snippet:

<form>
 <input type=hidden autocomplete="nickname" value="TreePlate">
 <input type=text autocomplete="nickname">
</form>

適合~UAが~text~control内に示唆できる値は、 `hidden^a を有する `input$e 要素に与えられた値 "`TreePlate^v" のみである。 ◎ The only value that a conforming user agent could suggest in the text control is "TreePlate", the value given by the hidden input element.

`~autofill視野$における どの `section-*^v ~tokenも不透明である — ~UAは、これらの~tokenの精確な値から意味を導出しようと試みては~MUST_NOT。 ◎ The "section-*" tokens in the autofill scope are opaque; user agents must not attempt to derive meaning from the precise values of these tokens.

例えば,利用者の配偶者( “spouse” )の~addressを知っている~UAが、`~autofill視野$に `section-spouse^l を与えている要素に対し, `spouse^l から意味 “配偶者” を導出して,配偶者の~addressを提供すると決めた場合、適合にならない。 ◎ For example, it would not be conforming if the user agent decided that it should offer the address it knows to be the user's daughter's address for "section-child" and the addresses it knows to be the user's spouses' addresses for "section-spouse".

自動補完の仕組みは: ◎ The autocompletion mechanism\

  • [ `~controlの~data$を改変したのは利用者であるかのように,~UAが動作している ]かのように実装され~MUST。 ◎ must be implemented by the user agent acting as if the user had modified the control's data, and\
  • 自動補完は、要素が`変異-可能$になってから行われ~MUST(例: 要素を文書の中に挿入した直後や,~UAが`構文解析を停止-$した時点)。 ◎ must be done at a time where the element is mutable (e.g. just after the element has been inserted into the document, or when the user agent stops parsing).\
  • ~UAは、利用者が手入力できない値で~controlを~prefillしては~MUST_NOT。 ◎ User agents must only prefill controls using values that the user could have entered.

例えば、次の様な `select$e 要素があるとする: ◎ For example, if a select element\

  • `選択肢~list$は、値[ "Steve", "Rebecca", "Jay", "Bob" ]を伴う 4 個の `option$e 要素のみからなる ◎ only has option elements with values "Steve" and "Rebecca", "Jay", and "Bob", and\
  • `~autofill欄~名$は `given-name$v にされている ◎ has an autofill field name "given-name",\

~UAは、この欄を "Evan" で~prefillする案しかない場合,その欄を~prefillできない。 `select$e 要素の値を何らかの方法で "Evan" に設定するのは、適合にならない — 利用者~自身はそれ行えないので。 ◎ but the user agent's only idea for what to prefill the field with is "Evan", then the user agent cannot prefill the field. It would not be conforming to somehow set the select element to the value "Evan", since the user could not have done so themselves.

~UAは、~form~controlに対する~prefill時の扱いを[ `文書~木~内$にあるのか`接続されて$いるのか ]に応じて差別化しては~MUST_NOT — すなわち、~autofillするかどうかの裁定を[ 要素の`根$が,`~shadow根$か `Document$I かどうか ]に基づいて下すことは適合でない。 ◎ A user agent prefilling a form control must not discriminate between form controls that are in a document tree and those that are connected; that is, it is not conforming to make the decision on whether or not to autofill based on whether the element's root is a shadow root versus a Document.

~UAは、`値$に拘束がある~form~controlを~prefillするときは: ◎ A user agent prefilling a form control's value\

  • ~controlを[ `型~不一致の難あり$/ `長過ぎる難あり$ / `短か過ぎる難あり$ / `~underflowの難あり$ / `~overflowの難あり$ / `~step不一致の難あり$ / `~pattern不一致の難あり$ ]にしては~MUST_NOT。 ◎ must not cause that control to suffer from a type mismatch, suffer from being too long, suffer from being too short, suffer from an underflow, suffer from an overflow, or suffer from a step mismatch. A user agent prefilling a form control's value must not cause that control to suffer from a pattern mismatch either.\
  • 可能な所では,`~autofill名~一覧$にて与えた正準的~形式を利用し~MUST — 値に正準的~形式を利用できない場合、経験則を用いて値を変換して,利用できるよう試みるべきである。 ◎ Where possible given the control's constraints, user agents must use the format given as canonical in the aforementioned table. Where it's not possible for the canonical format to be used, user agents should use heuristics to attempt to convert values so that they can be used.

例えば~UAが利用者の~middle-nameは "Ines" と知っていて 次の様な見かけの~form~controlを~prefillしようと試みた場合: ◎ For example, if the user agent knows that the user's middle name is "Ines", and attempts to prefill a form control that looks like this:

<input name=middle-initial maxlength=1 autocomplete="`additional-name$v">

... ~UAは、 `maxlength^a による拘束が満たされるよう, "Ines" を "I" に変換して~prefillすることもできる。 ◎ ...then the user agent could convert "Ines" to "I" and prefill it that way.

月t値を伴う,より手の込んだ例を次に示す。 ~UAは利用者の誕生日 — 2012 年 7 月 27 日とする — を知っている場合、次の各~controlに対し,この情報から~~導出される(少し異なる)値で~prefillしようと試行するであろう: ◎ A more elaborate example would be with month values. If the user agent knows that the user's birthday is the 27th of July 2012, then it might try to prefill all of the following controls with slightly different values, all driven from this information:

<input
  name=b
  type=month
  autocomplete="bday"
>
2012-07 日tは落とされる — `Month$st 状態が受容するのは、月t, 年tの組合わせに限られるので。 (この例は適合でないことに注意 — `~autofill欄~名$ `bday$v は `Month$st 状態には許容されないので。) ◎ The day is dropped since the Month state only accepts a month/year combination. (Note that this example is non-conforming, because the autofill field name bday is not allowed with the Month state.)
<select
  name=c
  autocomplete="bday"
>
 <option>Jan
 <option>Feb
 ...
 <option>Jul
 <option>Aug
 ...
</select>
Jul

~UAは、次のいずれかにより,挙げられた選択肢から月tを選び取ることになる: ◎ The user agent picks the month from the listed options, either\

  • 12 個の選択肢があることを~~見出して, 7 番目を選び取ることにより。 ◎ by noticing there are twelve options and picking the 7th, or\
  • 文字列のいずれかが(~UAが~supportするある言語 【この例では英語】 にて、(尾部の空白を除けば) 3 文字の `Jul^l が 7 月を表す月tの名( July )に近く合致することを認識することにより。 ◎ by recognizing that one of the strings (three characters "Jul" followed by a newline and a space) is a close match for the name of the month (July) in one of the user agent's supported languages, or\
  • 類似する他の何らかの仕組みを通して。 ◎ through some other similar mechanism.
<input
  name=a
  type=number
  min=1
  max=12
  autocomplete="bday-month"
>
7 ~UAは、 "7 月" を範囲 { 1 〜 12 } に入る月t数(左欄の 7 )に変換する。 ◎ User agent converts "July" to a month number in the range 1..12, like the field.
<input
  name=a
  type=number
  min=0
  max=11
  autocomplete="bday-month"
>
6 ~UAは、 "7 月" を範囲 { 0 〜 11 } に入る月t数(左欄の 6 )に変換する。 ◎ User agent converts "July" to a month number in the range 0..11, like the field.
<input
  name=a
  type=number
  min=1
  max=11
  autocomplete="bday-month"
>
~UAは欄~内を~fillしない — ~formが何を期待しているか,良い推測が見つけられないので。 ◎ User agent doesn't fill in the field, since it can't make a good guess as to what the form expects.

~UAは、利用者が要素の`~autofill欄~名$を上書きするのを許容してよい — 例えば: ◎ A user agent may allow the user to override an element's autofill field name, e.g.\

  • `off$v から `on$v へ変更して,頁~作者に異論があろうが~prefillされるよう,値が覚えられるのを許容する。 ◎ to change it from "off" to "on" to allow values to be remembered and prefilled despite the page author's objections, or\
  • あるいは、決して値が覚えられないよう常に `off$v にする。 ◎ to always "off", never remembering values.

より特定的には,~UAは、[ `~autofill欄~名$ ~IN { `on$v, `off$v } ]のときは,[ 下の表の 1 列目に与えられる記述に合致する~form~controlの`~autofill欄~名$を,同じ行の 2 列目に与える値に置換する ]ことを特に考慮してよい: ◎ More specifically, user agents may in particular consider replacing the autofill field name of form controls that match the description given in the first column of the following table, when their autofill field name is either "on" or "off", with the value given in the second cell of that row.\

  • この表を利用する場合の置換は、`木~順序$で行わ~MUST — 1 行目を除くどの要素も、先行する要素の`~autofill欄~名$を参照するので。 ◎ If this table is used, the replacements must be done in tree order, since all but the first row references the autofill field name of earlier elements.\
  • 表の中で,他の~form~controlが[ 先行-/後続- ]すると記述された所では、それらは[ `~listされる要素$であって, かつ 互いが同じ`~form所有者$を共有している ]ものに限るとする。 ◎ When the descriptions below refer to form controls being preceded or followed by others, they mean in the list of listed elements that share the same form owner.
~form~control ◎ Form control 新たな`~autofill欄~名$ ◎ New autofill field name
`Text$st `状態にある$ `input$e 要素のうち, `Password$st `状態にある$ `input$e 要素が後続しているもの ◎ an input element whose type attribute is in the Text state that is followed by an input element whose type attribute is in the Password state `username$v
`Password$st `状態にある$ `input$e 要素のうち,[ `~autofill欄~名$ ~EQ `username$v ]なる `input$e 要素が先行しているもの ◎ an input element whose type attribute is in the Password state that is preceded by an input element whose autofill field name is "username" `current-password$v
`Password$st `状態にある$ `input$e 要素のうち,[ `~autofill欄~名$ ~EQ `current-password$v ]なる `input$e 要素が先行しているもの ◎ an input element whose type attribute is in the Password state that is preceded by an input element whose autofill field name is "current-password" `new-password$v
`Password$st `状態にある$ `input$e 要素のうち,[ `~autofill欄~名$ ~EQ `new-password$v ]なる `input$e 要素が先行しているもの ◎ an input element whose type attribute is in the Password state that is preceded by an input element whose autofill field name is "new-password" `new-password$v

`autocomplete@m ~IDL属性の取得子は、要素の`~IDLに公開される~autofill値$を返さ~MUST。 設定子は、同じ名の内容~属性を`反映-$し~MUST。 ◎ The autocomplete IDL attribute, on getting, must return the element's IDL-exposed autofill value, and on setting, must reflect the content attribute of the same name.