input 要素
4.10.4 input 要素
Status: Working draft
- カテゴリー
- フロー・コンテンツ
- フレージング・コンテンツ
type属性が Hidden 状態にない場合:インタラクティブ・コンテンツ- リストされ、ラベル付け可能で、サブミット可能で、リセット可能なフォーム関連要素
- この要素を使うことができるコンテキスト:
- フレージング・コンテンツが期待される場所
- コンテンツモデル:
- Empty.
- コンテンツ属性:
- グローバル属性
acceptaltautocompleteautofocuscheckeddisabledformformactionformenctypeformmethodformnovalidateformtargetheightlistmaxmaxlengthminmultiplenamepatternplaceholderreadonlyrequiredsizesrcsteptypevaluewidth- DOMインタフェース:
-
interface HTMLInputElement : HTMLElement { attribute DOMString accept; attribute DOMString alt; attribute boolean autocomplete; attribute boolean autofocus; attribute boolean defaultChecked; attribute boolean checked; attribute boolean disabled; readonly attribute HTMLFormElement form; readonly attribute FileList files; attribute DOMString formAction; attribute DOMString formEnctype; attribute DOMString formMethod; attribute boolean formNoValidate; attribute DOMString formTarget; attribute DOMString height; attribute boolean indeterminate; readonly attribute HTMLElement list; attribute DOMString max; attribute unsigned long maxLength; attribute DOMString min; attribute boolean multiple; attribute DOMString name; attribute DOMString pattern; attribute DOMString placeholder; attribute boolean readOnly; attribute boolean required; attribute unsigned long size; attribute DOMString src; attribute DOMString step; attribute DOMString type; attribute DOMString defaultValue; attribute DOMString value; attribute Date valueAsDate; attribute float valueAsNumber; readonly attribute HTMLOptionElement selectedOption; attribute DOMString width; void stepUp(in long n); void stepDown(in long n); readonly attribute boolean willValidate; readonly attribute ValidityState validity; readonly attribute DOMString validationMessage; boolean checkValidity(); void setCustomValidity(in DOMString error); readonly attribute NodeList labels; void select(); attribute unsigned long selectionStart; attribute unsigned long selectionEnd; void setSelectionRange(in unsigned long start, in unsigned long end); };
input 要素は、タイプ付けされたデータ・フィールドを表します。通常は、ユーザーがデータを編集することができるようにするためのフォーム・コントロールです。
type 属性は、要素のデータ・タイプ(そして関連のコントロール)を制御するものです。これは、列挙属性です。次の表は、この属性のキーワードを状態を示したものです。左のカラムにあるキーワードは、そのキーワードと同じ行の 2 番目の列のセルにある状態に対応します。
| キーワード | 状態 | データ・タイプ | コントロール・タイプ |
|---|---|---|---|
hidden
| Hidden | 任意の文字列 | 該当なし |
text
| Text | 改行無しのテキスト | テキスト・フィールド |
search
| Search | 改行無しのテキスト | 検索フィールド |
tel
| Telephone | 改行なしのテキスト | テキスト・フィールド |
url
| URL | 絶対 IRI | テキスト・フィールド |
email
| メールアドレス、または、そのリスト | テキスト・フィールド | |
password
| Password | 改行なしのテキスト(機密情報) | 入力データが何か分からないようにするテキスト・フィールド |
datetime
| Date and Time | タイム・ゾーンが UTC にセットされた日付けと時間(年、月、日、時、分、秒、小数点以下の秒) | 日時コントロール |
date
| Date | タイムゾーン無しの日付(年、月、日) | 日付コントロール |
month
| Month | タイムゾーン無しの年月 | 月コントロール |
week
| Week | タイムゾーン無しで、week-year number と week number から構成されるデータ | 週コントロール |
time
| Time | タイムゾーン無しの時間(時、分、秒、小数点以下の秒) | 時間コントロール |
datetime-local
| Local Date and Time | タイムゾーン無しの日時(年、月、日、時、分、秒、小数点以下の秒) | 日時コントロール |
number
| Number | 数値 | テキスト・フィールド、または、スピナー・コントロール |
range
| Range | 数値。ただし、正確な値が重要とならないというセマンティクスも持ちます。 | スライダー・コントロール、または、それに類似したもの。 |
color
| Color | 8 ビットの赤、緑、青のコンポーネントを持つ sRGB | 色選択 |
checkbox
| Checkbox | 事前に定義されたリストからの 0 個以上の値のセット | チェック・ボックス |
radio
| Radio Button | 列挙値 | ラジオ・ボタン |
file
| File Upload | 0 個以上のファイル。それぞれ、MIME タイプと任意でファイル名を伴います。 | ラベルとボタン |
submit
| Submit Button | 列挙値で、それは選択された最後の値で、フォーム・サブミットを開始しなければならない、というセマンティクスも持ちます。 | ボタン |
image
| Image Button | イメージのサイズに対する座標。それは選択された最後の値で、フォーム・サブミットを開始しなければならない、というセマンティクスも持ちます。 | クリッカブルなイメージ、または、ボタンのいずれか |
reset
| Reset Button | 該当なし | ボタン |
button
| Button | 該当なし | ボタン |
指定がなかった場合のデフォルトは、Text 状態です。
accept, alt, autocomplete, checked, formaction, formenctype, formmethod, formnovalidate, formtarget, height, list, max, maxlength, min, multiple, pattern, readonly, required, size, src, step, width 属性のどれが input 要素に適用できるかは、その type 属性の状態に依存します。同様に、checked, files, valueAsDate, valueAsNumber, list, selectedOption DOM
属性と、stepUp() そして stepDown() メソッドは、その状態に特化したものです。下表は非規定ですが、どのコンテンツ属性、DOM 属性、メソッドが、どの状態に適用できるのかをまとめたものです:
| Hidden | Text, Search, URL, Telephone | Password | Date and Time, Date, Month, Week, Time | Local Date and Time, Number | Range | Color | Checkbox, Radio Button | File Upload | Submit Button | Image Button | Reset Button, Button | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accept
| · | · | · | · | · | · | · | · | · | Yes | · | · | · |
alt
| · | · | · | · | · | · | · | · | · | · | · | Yes | · |
autocomplete
| · | Yes | Yes | Yes | Yes | Yes | Yes | Yes | · | · | · | · | · |
checked
| · | · | · | · | · | · | · | · | Yes | · | · | · | · |
formaction
| · | · | · | · | · | · | · | · | · | · | Yes | Yes | · |
formenctype
| · | · | · | · | · | · | · | · | · | · | Yes | Yes | · |
formmethod
| · | · | · | · | · | · | · | · | · | · | Yes | Yes | · |
formnovalidate
| · | · | · | · | · | · | · | · | · | · | Yes | Yes | · |
formtarget
| · | · | · | · | · | · | · | · | · | · | Yes | Yes | · |
height
| · | · | · | · | · | · | · | · | · | · | · | Yes | · |
list
| · | Yes | Yes | · | Yes | Yes | Yes | Yes | · | · | · | · | · |
max
| · | · | · | · | Yes | Yes | Yes | · | · | · | · | · | · |
maxlength
| · | Yes | Yes | Yes | · | · | · | · | · | · | · | · | · |
min
| · | · | · | · | Yes | Yes | Yes | · | · | · | · | · | · |
multiple
| · | · | Yes | · | · | · | · | · | · | Yes | · | · | · |
pattern
| · | Yes | Yes | Yes | · | · | · | · | · | · | · | · | · |
placeholder
| · | Yes | Yes | Yes | · | · | · | · | · | · | · | · | · |
readonly
| · | Yes | Yes | Yes | Yes | Yes | · | · | · | · | · | · | · |
required
| · | Yes | Yes | Yes | Yes | Yes | · | · | Yes | Yes | · | · | · |
size
| · | Yes | Yes | Yes | · | · | · | · | · | · | · | · | · |
src
| · | · | · | · | · | · | · | · | · | · | · | Yes | · |
step
| · | · | · | · | Yes | Yes | Yes | · | · | · | · | · | · |
width
| · | · | · | · | · | · | · | · | · | · | · | Yes | · |
checked
| · | · | · | · | · | · | · | · | Yes | · | · | · | · |
files
| · | · | · | · | · | · | · | · | · | Yes | · | · | · |
value
| value | value | value | value | value | value | value | value | default/on | filename | default | default | default |
valueAsDate
| · | · | · | · | Yes | · | · | · | · | · | · | · | · |
valueAsNumber
| · | · | · | · | Yes | Yes | Yes | · | · | · | · | · | · |
list
| · | Yes | Yes | · | Yes | Yes | Yes | Yes | · | · | · | · | · |
selectedOption
| · | Yes | Yes | · | Yes | Yes | Yes | Yes | · | · | · | · | · |
select()
| · | Yes | Yes | Yes | · | · | · | · | · | · | · | · | · |
selectionStart
| · | Yes | Yes | Yes | · | · | · | · | · | · | · | · | · |
selectionEnd
| · | Yes | Yes | Yes | · | · | · | · | · | · | · | · | · |
setSelectionRange()
| · | Yes | Yes | Yes | · | · | · | · | · | · | · | · | · |
stepDown()
| · | · | · | · | Yes | Yes | Yes | · | · | · | · | · | · |
stepUp()
| · | · | · | · | Yes | Yes | Yes | · | · | · | · | · | · |
input event
| · | Yes | Yes | Yes | Yes | Yes | Yes | Yes | · | · | · | · | · |
change event
| · | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | · | · | · |
input 要素の type 属性の状態が変わるときや、その要素が最初に生成されるとき、その要素のレンダリングとビヘイビアは、それに応じて、その新しい状態のものに変更されなければいけません。そして、その type 属性の新しい状態に対して定義されたら、値サニタイゼーション・アルゴリズムが呼び出されなければいけません。
それぞれの input 要素は値を持ちます。それは、value DOM 属性でアクセスできます。いくつかの状態は、文字列を数値に変換するアルゴリズム、数値を文字列に変換するアルゴリズム、文字列を Date オブジェクトに変換するアルゴリズム、そして、Date オブジェクトを文字列に変換するアルゴリズムを定義します。これらは、max, min, step, valueAsDate, valueAsNumber, stepDown(), stepUp()によって利用されます。
それぞれの input 要素は、論理値の汚染値フラグを持ちます。それが true のとき、その要素は汚染値を持つと言います。汚染値は、その要素が生成されるとき、当初は false にセットされなければいけません。そして、ユーザーが値を変更するような操作をしたら必ず true にセットされなければいけません。
value コンテンツ属性は、その input 要素のデフォルトの値を与えます。value コンテンツ属性が追加されたりセットされたり削除されると、そのコントロールは汚染値を持っていないなら、ユーザーエージェントは、その要素の値を、その value コンテンツ属性の値があれば、その値となるようセットし、そうでなければ空文字列となるようセットしなければいけません。それから、現在の値サニタイゼーション・アルゴリズムが定義されていれば、それを実行しなければいけません。
それぞれの input 要素は、チェック状態を持ちます。それは、checked DOM 属性からアクセスできます。
それぞれの input 要素は、論理値の汚染チェック状態フラグを持ちます。それが true のとき、その要素は、汚染チェック状態を持つと言います。汚染チェック状態フラグは、その要素が生成されるとき、当初は false にセットされなければいけません。そして、ユーザーがチェック状態を変更するような操作をしたら必ず trueにセットされなければいけません。
checked コンテンツ属性は、input 要素のデフォルトのチェック状態を与える論理属性です。checked コンテンツ属性が追加されるとき、そのコントロールが汚染チェック状態を持たないなら、ユーザーエージェントは、その要素のチェック状態を true にしなければいけません。checked コンテンツ属性が削除されるとき、そのコントロールが汚染チェック状態を持たないなら、ユーザーエージェントは、その要素のチェック状態を false にしなければいけません。
input 要素のリセット・アルゴリズムは、汚染値フラグと汚染チェック状態フラグを false に戻します。value コンテンツ属性の値があれば、それをその要素の値となるようセットし、なければ空文字列となるようセットします。その要素が checked コンテンツ属性を持つなら、その要素のチェック状態を true とし、なければ false とします。それから、その type 属性の現在の状態が定義されていれば、値サニタイゼーション・アルゴリズムを呼び出します。
それぞれの input 要素は、論理値のミュータビリティ・フラグを持ちます。これが true のとき、その要素はミュータブルであると言います。これが false のとき、その要素はイミュータブルであると言います。それ以外のものが指定されない限り、input 要素は常にミュータブルです。それ以外のものが指定されない限り、ユーザーエージェントは、ユーザーがその要素の値やチェック状態を変更できるようにするべきではありません。
input 要素が、その祖先のひとつとして Document を持たないなら(つまり、それがドキュメントの中にないなら)、それはイミュータブルです。
readonly 属性も、input 要素をイミュータブルにする場合があります(例えば、Date 状態だけれども Checkbox 状態でない場合)。
form 属性は、その input 要素を、そのフォーム・オーナーに明示的に関連付けるために使います。name 属性は、その要素の名前を表します。disabled 属性は、そのコントロールが機能しないようにして、その値がサブミットされないようにするために使います。autofocus 属性はフォーカスを制御します。
indeterminate DOM 属性は、最初は false にセットされなければいけません。取得時は、それにセットされた最後の値を返さなければいけません。セット時は、新しい値にセットされなければいけません。この属性は、チェックボックス・コントロールの見え方が変更される点を除き、何も影響を与えません。
accept, alt, autocomplete, max, min, multiple, pattern, placeholder, required, size, src, step, type DOM 属性は、対応する同じ名前のコンテンツ属性を反映しなければいけません。readOnly DOM
属性は、readonly コンテンツ属性を反映しなければいけません。defaultChecked
DOM 属性は、checked コンテンツ属性を反映しなければいけません。defaultValue
DOM 属性は、value コンテンツ属性を反映しなければいけません。
willValidate, validity, validationMessage 属性と、checkValidity() そして setCustomValidity()
メソッドは、制約バリデーション API の一部です。labels 属性は、その要素の label のリストを提供します。select(), selectionStart,
selectionEnd, setSelectionRange()
メソッドと属性は、その要素のテキスト・セレクションをアクセスできるようにします。
4.10.4.1 type 属性の状態
4.10.4.1.1 Hidden 状態
Status: Last call for comments
この input 要素は、ユーザーが内容を確認したり操作したりすることを想定しない値を表します。
制約バリデーション: input 要素の type 属性が Hidden 状態にあるなら、それは制約バリデーションから除外されます。
name 属性が存在し、文字列 "_charset_" に一致(大文字・小文字を区別します)する値を持つなら、その要素の value 属性は省略されなければいけません。
value DOM 属性はこの要素に適用され、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
autocomplete,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
list,
max,
maxlength,
min,
multiple,
pattern,
placeholder,
readonly,
required,
size,
src,
step,
width.
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
list,
selectedOption,
selectionStart,
selectionEnd,
valueAsDate,
valueAsNumber DOM 属性;
select(),
setSelectionRange(),
stepDown(),
stepUp()メソッド
4.10.4.1.2 Text 状態と Search 状態
Status: Last call for comments
この input 要素は、その要素の値の 1 行プレーン・テキスト編集コントロールを表します。
要素がミュータブルなら、ユーザーがその値を編集することができるようにするべきです。ユーザーエージェントは、ユーザーがその要素の値の中に U+000A LINE FEED (LF) または U+000D CARRIAGE RETURN (CR) 文字を挿入できるようにしてはいけません。
value 属性は、もし指定されたら、U+000A LINE FEED (LF)
または U+000D CARRIAGE RETURN (CR) 文字を含まない値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです: 値から改行を取り除きます。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
maxlength,
pattern,
placeholder,
readonly,
required,
size コンテンツ属性;
list,
selectedOption,
selectionStart,
selectionEnd,
value DOM 属性;
select(), setSelectionRange() メソッド
value DOM 属性は value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
max,
min,
multiple,
src,
step,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
valueAsDate,
valueAsNumber DOM 属性;
stepDown(), stepUp() メソッド
4.10.4.1.3 Telephone 状態
この input 要素は、その要素の値に指定された電話番号を編集するためのコントロールを表します。
この要素がミュータブルなら、ユーザーがその値を編集できるようにするべきです。ユーザーエージェントは、ユーザーが入力する値の句読文字を変更することができます。ユーザーエージェントは、ユーザーがその要素の値の中に U+000A LINE FEED (LF) または U+000D CARRIAGE RETURN (CR) 文字を入れられないようにするべきです。
value 属性は、もし指定されたら、U+000A LINE FEED (LF)
または U+000D CARRIAGE RETURN (CR) 文字を含まない値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです:値から改行を取り除きます。
URL や E-mail タイプとは違い、Telephone タイプは特定の構文を強制しません。これは意図的なものです;実際に、電話番号フィールドはフリー・フォームのフィールドになることが多いと言えます。なぜなら、適正な電話番号といっても様々だからです。特定のフォーマットを強制する必要があるシステムでは、setCustomValidity() メソッドを使って、クライアント側のバリデーション・メカニズムに任せることが推奨されます。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
maxlength,
pattern,
placeholder,
readonly,
required,
size コンテンツ属性;
list,
selectedOption,
selectionStart,
selectionEnd,
value DOM 属性;
select(),
setSelectionRange() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
max,
min,
multiple,
src,
step,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
valueAsDate,
valueAsNumber DOM 属性;
stepDown(),
stepUp() メソッド
4.10.4.1.4 URL 状態
Status: Last call for comments
この input 要素は、その要素の値に指定された単一の絶対 URL を編集するためのコントロールを表します。
この要素がミュータブルなら、ユーザーエージェントは、その値で表された URL をユーザーが変更できるようにするべきです。ユーザーエージェントは、ユーザーが妥当な絶対 URL ではない文字列をその値にセットできるようにすることができますが、ユーザーが入力した文字をエスケープして、その値が常に妥当な絶対 URL となるようにすることもできます(たとえ、それが、実際にユーザーがそのインタフェースで見たり編集した値でなくてもです。)。ユーザーエージェントは、ユーザーがその値に空文字列をセットできるようにするべきです。ユーザーエージェントは、U+000A LINE FEED (LF) や U+000D CARRIAGE RETURN (CR) 文字をその値に入れることができるようにしてはいけません。
value 属性は、もし指定されたら、妥当な絶対 URL となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです:値から改行を取り除きます。
制約バリデーション: この要素の値が妥当な絶対 URL でないときは、この要素はタイプ不一致に陥っていることになります。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
maxlength,
pattern,
placeholder,
readonly,
required,
size コンテンツ属性;
list,
selectedOption,
selectionStart,
selectionEnd,
value DOM 属性;
select(),
setSelectionRange() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
max,
min,
multiple,
src,
step, width.
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
valueAsDate,
valueAsNumber DOM 属性;
stepDown(),
stepUp() メソッド
4.10.4.1.5 E-mail 状態
Status: Last call for comments
この input 要素は、その要素の値に指定されたメールアドレスのリストを編集するためのコントロールを表します。
この要素がミュータブルなら、ユーザーエージェントは、その値で表されたメールアドレスをユーザーが変更できるようにするべきです。multiple 属性が指定されているなら、ユーザーエージェントは、ユーザーが複数のアドレスを選択したり入れたりできるようにするべきです。そうでなければ、ユーザーエージェントは、ユーザーがひとつのメールアドレスを入れると期待するような形式を取るべきです。ユーザーエージェントは、ユーザーが妥当なメールアドレス・リストでない文字列を値にセットできるようにすることができます。ユーザーエージェントは、ユーザーがその値に空文字列をセットできるようにするべきです。ユーザーエージェントは、U+000A LINE FEED
(LF) や U+000D CARRIAGE RETURN (CR) 文字をその値に入れることができるようにしてはいけません。ユーザーエージェントは、表示および編集のために、その値を変換することができます(例えば、値の中に punycode を IDN に、もしくは、その逆向きに変換して表示することができます)。
この要素に multiple 属性が指定される場合、その value は、指定されるなら、妥当なメールアドレス・リストとなる値を持たなければいけません。そうでなければ、その value は、指定されるなら、単一の妥当なメールアドレスとなる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです:値から改行を取り除きます。
制約バリデーション: この要素に multiple 属性が指定された場合、この要素の値が妥当なメールアドレス・リストとならない間は、この要素はタイプ不一致に陥っていることになります。指定がない場合、この要素の値が単一の妥当なメールアドレスとならない間は、この要素はタイプ不一致に陥っていることになります。
妥当なメールアドレス・リストは、カンマ区切りトークンのセットです。ユーザーエージェントは、妥当なメールアドレス・リストからトークンのリストを取得するために、その文字列をカンマで分割しなければいけません。
妥当なメールアドレスは、プロダクション dot-atom-text "@" dot-atom-text に一致する文字列です。
dot-atom-text は RFC 5322 セクション 3.2.3 で定義されています。[RFC5322]
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
maxlength,
multiple,
pattern,
placeholder,
readonly,
required,
size コンテンツ属性;
list,
selectedOption,
selectionStart,
selectionEnd,
value DOM 属性;
select(),
setSelectionRange() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
max,
min,
src,
step,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
valueAsDate,valueAsNumber DOM 属性;
stepDown(),
stepUp() メソッド
4.10.4.1.6 Password 状態
Status: Last call for comments
この input 要素は、その要素の値の 1 行プレーン・テキスト編集コントロールを表します。ユーザーエージェントは、その値を読めないようにして、そのユーザー以外の人がそれを見ることができないようにするべきです。
この要素がミュータブルなら、その値は編集可能となるべきです。ユーザーエージェントは、ユーザーが U+000A LINE FEED (LF) や U+000D CARRIAGE RETURN (CR) 文字をその値に入れることができるようにしてはいけません。
value 属性は、もし指定されたら、U+000A LINE FEED (LF)
または U+000D CARRIAGE RETURN (CR) 文字を含まない値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです:値から改行を取り除きます。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
maxlength,
pattern,
placeholder,
readonly,
required,
size コンテンツ属性;
selectionStart,
selectionEnd, value DOM 属性;
select(),
setSelectionRange() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
list,
max,
min,
multiple,
src,
step,
width.
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
list,
selectedOption,
valueAsDate,
valueAsNumber DOM 属性;
stepDown(),
stepUp() メソッド
4.10.4.1.7 Date and Time 状態
Status: Last call for comments
input 要素の type 属性が Date and Time 状態にあるとき、このセクションのルールが適用されます。
この input 要素は、この要素の値に、特定のグローバル日時を表す文字列をセットするためのコントロールを表します。ユーザーエージェントは、ユーザーにとって適切なタイムゾーンで、その日時を表示することができます。
この要素がミュータブルなら、ユーザーエージェントは、その値で表されたグローバル日時をユーザーが変更できるようにするべきです。その値は、グローバル日時をパースして得られるものです。ユーザーエージェントは、ユーザーが UTC で表される妥当なグローバル日時文字列ではない文字列をその値にセットできるようにしてはいけません。ただし、ユーザーエージェントは、別のタイムゾーンでその時間をユーザーがセットしたり見たりすることができるようにすることができます。また、その値の中で UTC タイムゾーンからの変換、または UTC タイムゾーンへの変換を、暗黙のうちに行うことができます。ユーザーエージェントが、グローバル日時を選択するためのインタフェースをユーザーに提供するなら、その値は、ユーザーの選択した日時を UTC で表した妥当なグローバル日時文字列となるようセットされなければいけません。ユーザーエージェントは、ユーザーが空文字列をその値にセットできるようにするべきです。
value 属性は、もし指定されたら、妥当なグローバル日時文字列となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです:この要素の値が妥当なグローバル日時文字列なら、その値が同じ時点の UTC タイムゾーンで表されたものを表すように、時間を調整します。そうでなければ、代わりに空文字列をそれにセットします。
min 属性は、もし指定されたら、妥当なグローバル日時文字列となる値を持たなければいけません。max 属性は、もし指定されたら、妥当なグローバル日時文字列となる値を持たなければいけません。
step 属性は秒で表現されます。ステップ・スケール・ファクターは 1000 です(秒をミリ秒に変換したもので、他のアルゴリズムでも使われます)。デフォルトのステップは 60 秒です。
この要素がステップ不一致に陥っているとき、ユーザーエージェントは、その要素の値を、もっとも近いグローバル日時に丸めて、その要素がステップ不一致に陥いらないようにすることができます。
文字列を数値に変換するアルゴリズムは、文字列 input を与えると次の通りとなります: input からグローバル日時をパースしてエラーになったら、エラーを返します。そうでなければ、UTC 1970-01-01 午前 0 時("1970-01-01T00:00:00.0Z" という値で表される時間)から、パースされたグローバル日時に至るまでの経過ミリ秒の数値を返します。うるう秒は無視します。
数値を文字列に変換するアルゴリズムは、数値 input を与えると次の通りとなります: UTC 1970-01-01 午前 0 時("1970-01-01T00:00:00.0Z" という値で表される時間)から input ミリ秒後となるグローバル日時を表す妥当なグローバル日時文字列を UTC で返します。
文字列を Date オブジェクトに変換するアルゴリズムは、文字列 input を与えると次の通りとなります: input からグローバル日時をパースしてエラーになったら、エラーを返します。そうでなければ、パースされたグローバル日時を表す Date オブジェクトを UTC で返します。
Date オブジェクトを文字列に変換するアルゴリズムは、Date オブジェクト input を与えると次の通りとなります: input で表されるグローバル日時を表す妥当なグローバル日時文字列を UTC で返します。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
max,
min,
readonly,
required,
step コンテンツ属性;
list,
value,
valueAsDate,
valueAsNumber,
selectedOption DOM 属性;
stepDown(),
stepUp() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
maxlength,
multiple,
pattern,
placeholder,
size,
src,
width.
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
selectionStart,
selectionEnd DOM 属性;
select(),
setSelectionRange() メソッド
4.10.4.1.8 Date 状態
Status: Last call for comments
この input 要素は、この要素の値に特定の日付を表す文字列をセットするためのコントロールを表します。
この要素がミュータブルなら、ユーザーエージェントは、その値で表された日付をユーザーが変更できるようにするべきです。その値は、日付をパースして得られるものです。ユーザーエージェントは、ユーザーが妥当な日付文字列でない文字列をその値にセットできるようにしてはいけません。ユーザーエージェントが日付を選択するためのインタフェースをユーザーに提供するなら、その値は、ユーザーの選択を表す妥当な日付文字列となるようセットされなければいけません。ユーザーエージェントは、ユーザーが空文字列をその値にセットできるようにするべきです。
value 属性は、もし指定されたら、妥当な日付文字列となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです: この要素の値が妥当な日付文字列でないなら、代わりに空文字列をそれにセットします。
min 属性は、もし指定されたら、妥当な日付文字列となる値を持たなければいけません。max 属性は、もし指定されたら、妥当な日付文字列となる値を持たなければいけません。
step 属性は日で表現されます。ステップ・スケール・ファクターは 86,400,000 です(日をミリ秒に変換したもので、他のアルゴリズムでも使われます)。デフォルトのステップは 1 日です。
この要素がステップ不一致に陥っているとき、ユーザーエージェントは、その要素の値を、もっとも近い日付に丸めて、その要素がステップ不一致に陥いらないようにすることができます。
文字列を数値に変換するアルゴリズムは、文字列 input を与えると次の通りとなります:input から日付をパースしてエラーになったら、エラーを返します。そうでなければ、UTC 1970-01-01 午前 0 時("1970-01-01T00:00:00.0Z" という値で表される時間)から、パースされた日付の UTC 午前 0 時に至るまでの経過ミリ秒の数値を返します。うるう秒は無視します。
数値を文字列に変換するアルゴリズムは、数値 input を与えると次の通りとなります: UTC 1970-01-01 午前 0 時("1970-01-01T00:00:00.0Z" という値で表される時間)から input ミリ秒後となるグローバル日時を表す妥当な日付文字列を UTC で返します。
文字列を Date オブジェクトに変換するアルゴリズムは、文字列 input を与えると次の通りとなります:input から日付をパースしてエラーになったら、エラーを返します。そうでなければ、パースされた日付の UTC 午前 0 時を表す Date オブジェクトを UTC で返します。
Date オブジェクトを文字列に変換するアルゴリズムは、Date オブジェクト input を与えると次の通りとなります:UTC タイムゾーンで input で表される時間における日付を表す妥当な日付文字列を返します。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
max,
min,
readonly,
required,
step コンテンツ属性;
list,
value,
valueAsDate,
valueAsNumber,selectedOption DOM 属性;
stepDown(),
stepUp() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
maxlength,
multiple,
pattern,
placeholder,
size,
src,
width.
次の DOM 属性やメソッドは、この要素に適用されません:checked,
selectionStart,
selectionEnd DOM 属性;
select(),
setSelectionRange() メソッド
4.10.4.1.9 Month 状態
Status: Last call for comments
この input 要素は、この要素の値に特定の月を表す文字列をセットするためのコントロールを表します。
この要素がミュータブルなら、ユーザーエージェントは、その値で表された月をユーザーが変更できるようにするべきです。その値は、月をパースして得られるものです。ユーザーエージェントは、ユーザーが妥当な月文字列でない文字列をその値にセットできるようにしてはいけません。ユーザーエージェントが月を選択するためのインタフェースをユーザーに提供するなら、その値は、ユーザーの選択を表す妥当な月文字列となるようセットされなければいけません。ユーザーエージェントは、ユーザーが空文字列をその値にセットできるようにするべきです。
value 属性は、もし指定されたら、妥当な月文字列となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです: この要素の値が妥当な月文字列でないなら、代わりに空文字列をそれにセットします。
min 属性は、もし指定されたら、妥当な月文字列となる値を持たなければいけません。max 属性は、もし指定されたら、妥当な月文字列となる値を持たなければいけません。
step 属性は月で表現されます。ステップ・スケール・ファクターは 1 です(このアルゴリズムが月を扱うときには変換は必要ありません)。デフォルトのステップは 1 ヶ月です。
この要素がステップ不一致に陥っているとき、ユーザーエージェントは、その要素の値を、もっとも近い月に丸めて、その要素がステップ不一致に陥いらないようにすることができます。
文字列を数値に変換するアルゴリズムは、文字列 input を与えると次の通りとなります: input から月をパースしてエラーになったら、エラーを返します。そうでなければ、1970 年 1 月とパースされた月との間にある月数を返します。
数値を文字列に変換するアルゴリズムは、数値 input を与えると次の通りとなります:それと 1970 年との間に input ヶ月を持つ月を表す妥当な月文字列を返します。
文字列を Date オブジェクトに変換するアルゴリズムは、文字列 input を与えると次の通りとなります: input から月をパースしてエラーになったら、エラーを返します。そうでなければ、パースされた月の初日の UTC 午前 0 時を表す Date オブジェクトを返します。
Date オブジェクトを文字列に変換するアルゴリズムは、Date オブジェクト input を与えると次の通りとなります:UTC タイムゾーンで input で表される時間における月を表す妥当な月文字列を返します。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
max,
min,
readonly,
required,
step コンテンツ属性;
list,
value,
valueAsDate,
valueAsNumber,selectedOption DOM 属性;
stepDown(),
stepUp() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
maxlength,
multiple,
pattern,
placeholder,
size,
src,
width.
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
selectionStart,
selectionEnd DOM 属性;
select(), setSelectionRange() メソッド
4.10.4.1.10 Week 状態
Status: Last call for comments
この input 要素は、この要素の値に特定の週を表す文字列をセットするためのコントロールを表します。
この要素がミュータブルなら、ユーザーエージェントは、その値で表された週をユーザーが変更できるようにするべきです。その値は、週をパースして得られるものです。ユーザーエージェントは、ユーザーが妥当な週文字列でない文字列をその値にセットできるようにしてはいけません。ユーザーエージェントが週を選択するためのインタフェースをユーザーに提供するなら、その値は、ユーザーの選択を表す妥当な週文字列となるようセットされなければいけません。ユーザーエージェントは、ユーザーが空文字列をその値にセットできるようにするべきです。
value 属性は、もし指定されたら、妥当な週文字列となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです:この要素の値が妥当な週文字列でないなら、代わりに空文字列をそれにセットします。
min 属性は、もし指定されたら、妥当な週文字列となる値を持たなければいけません。max 属性は、もし指定されたら、妥当な週文字列となる値を持たなければいけません。
step 属性は週で表現されます。ステップ・スケール・ファクターは604,800,000です(週をミリ秒に変換したもので、他のアルゴリズムでも使われます)。デフォルトのステップは 1 週間です。
この要素がステップ不一致に陥っているとき、ユーザーエージェントは、その要素の値を、もっとも近い週に丸めて、その要素がステップ不一致に陥いらないようにすることができます。
文字列を数値に変換するアルゴリズムは、文字列 input を与えると次の通りとなります: input から週をパースしてエラーになったら、エラーを返します。そうでなければ、UTC 1970-01-01 午前 0 時("1970-01-01T00:00:00.0Z" という値で表される時間)から、パースされた週の月曜日の UTC 午前 0 時に至るまでの経過ミリ秒の数値を返します。うるう秒は無視します。
数値を文字列に変換するアルゴリズムは、数値 input を与えると次の通りとなります:UTC 1970-01-01 午前 0 時("1970-01-01T00:00:00.0Z" という値で表される時間)から input ミリ秒後となる週を表す妥当な週文字列を UTC で返します。
文字列を Date オブジェクトに変換するアルゴリズムは、文字列 input を与えると次の通りとなります:input から週をパースしてエラーになったら、エラーを返します。そうでなければ、パースされた週の月曜日の UTC 午前 0 時を表す Date オブジェクトを UTC で返します。
Date オブジェクトを文字列に変換するアルゴリズムは、Date オブジェクト input を与えると次の通りとなります:UTC タイムゾーンで input で表される時間における週を表す妥当な週文字列を返します。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
max,
min,
readonly,
required,
step コンテンツ属性;
list,
value,
valueAsDate,
valueAsNumber, selectedOption DOM 属性;
stepDown(),
stepUp() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
maxlength,
multiple,
pattern,
placeholder,
size,
src,
width.
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
selectionStart,
selectionEnd DOM 属性;
select(),
setSelectionRange() メソッド
4.10.4.1.11 Time 状態
Status: Last call for comments
この input 要素は、この要素の値に特定の時間を表す文字列をセットするためのコントロールを表します。
この要素がミュータブルなら、ユーザーエージェントは、その値で表された週をユーザーが変更できるようにするべきです。その値は、時間をパースして得られるものです。ユーザーエージェントは、ユーザーが妥当な時間文字列でない文字列をその値にセットできるようにしてはいけません。ユーザーエージェントが時間を選択するためのインタフェースをユーザーに提供するなら、その値は、ユーザーの選択を表す妥当な時間文字列となるようセットされなければいけません。ユーザーエージェントは、ユーザーが空文字列をその値にセットできるようにするべきです。
value 属性は、もし指定されたら、妥当な時間文字列となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです:この要素の値が妥当な時間文字列でないなら、代わりに空文字列をそれにセットします。
min 属性は、もし指定されたら、妥当な時間文字列となる値を持たなければいけません。max 属性は、もし指定されたら、妥当な時間文字列となる値を持たなければいけません。
step 属性は秒で表現されます。ステップ・スケール・ファクターは 1000 です(秒をミリ秒に変換したもので、他のアルゴリズムでも使われます)。デフォルトのステップは 60 秒です。
この要素がステップ不一致に陥っているとき、ユーザーエージェントは、その要素の値を、もっとも近い時間に丸めて、その要素がステップ不一致に陥いらないようにすることができます。
文字列を数値に変換するアルゴリズムは、文字列 input を与えると次の通りとなります:input から時間をパースしてエラーになったら、エラーを返します。そうでなければ、時間を変更せずに、一日の中で、そのパースされた時間までの経過ミリ秒の数値を返します。
数値を文字列に変換するアルゴリズムは、数値 input を与えると次の通りとなります:時間を変更せずに、一日の中で、午前 0 時からの input ミリ秒だけ経過した時間を表す妥当な時間文字列を返します。
文字列を Date オブジェクトに変換するアルゴリズムは、文字列 input を与えると次の通りとなります: input から時間をパースしてエラーになったら、エラーを返します。そうでなければ、1970-01-01 のパースされた時間を表す Date オブジェクトを返します。
Date オブジェクトを文字列に変換するアルゴリズムは、Date オブジェクト input を与えると次の通りとなります:UTC タイムゾーンで input で表される時間を表す妥当な時間文字列を返します。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
max,
min,
readonly,
required,
step コンテンツ属性;
list,
value,
valueAsDate,
valueAsNumber, selectedOption DOM 属性;
stepDown(),
stepUp() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
maxlength,
multiple,
pattern,
placeholder,
size,
src,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
selectionStart, selectionEnd DOM 属性;
select(),
setSelectionRange() メソッド
4.10.4.1.12 Local Date and Time 状態
Status: Last call for comments
input 要素の type 属性が Local Date and Time 状態にあるとき、このセクションのルールが適用されます。
この input 要素は、この要素の値に、タイムゾーン情報を持たないローカル日時を表す文字列をセットするためのコントロールを表します。
この要素がミュータブルなら、ユーザーエージェントは、その値で表された日時をユーザーが変更できるようにするべきです。その値は、日時をパースして得られるものです。ユーザーエージェントは、ユーザーが妥当なローカル日時文字列でない文字列をその値にセットできるようにしてはいけません。ユーザーエージェントがローカル日時を選択するためのインタフェースをユーザーに提供するなら、その値は、ユーザーの選択を表す妥当なローカル日時文字列となるようセットされなければいけません。ユーザーエージェントは、ユーザーが空文字列をその値にセットできるようにするべきです。
value 属性は、もし指定されたら、妥当なローカル日時文字列となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです: この要素の値が妥当なローカル日時文字列でないなら、代わりに空文字列をそれにセットします。
min 属性は、もし指定されたら、妥当なローカル日時文字列となる値を持たなければいけません。max 属性は、もし指定されたら、妥当なローカル日時文字列となる値を持たなければいけません。
step 属性は秒で表現されます。ステップ・スケール・ファクターは 1000 です(秒をミリ秒に変換したもので、他のアルゴリズムでも使われます)。デフォルトのステップは 60 秒です。
この要素がステップ不一致に陥っているとき、ユーザーエージェントは、その要素の値を、もっとも近いローカル日時に丸めて、その要素がステップ不一致に陥いらないようにすることができます。
文字列を数値に変換するアルゴリズムは、文字列 input を与えると次の通りとなります:input から日時をパースしてエラーになったら、エラーを返します。そうでなければ、1970-01-01 午前 0 時("1970-01-01T00:00:00.0" という値で表される時間)から、パースされたローカル日時に至るまでの経過ミリ秒の数値を返します。うるう秒は無視します。
数値を文字列に変換するアルゴリズムは、数値 input を与えると次の通りとなります:1970-01-01 午前 0 時("1970-01-01T00:00:00.0" という値で表される時間)から input ミリ秒後となる日時を表す妥当なローカル日時文字列を返します。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
max,
min,
readonly,
required,
step コンテンツ属性;
list,
value,
valueAsNumber,
selectedOption DOM 属性;
stepDown(),
stepUp() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
maxlength,
multiple,
pattern,
placeholder,
size,
src,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
selectionStart,
selectionEnd,
valueAsDate DOM 属性;
select(),
setSelectionRange() メソッド
4.10.4.1.13 Number 状態
Status: Last call for comments
この input 要素は、この要素の値に、数値を表す文字列をセットするためのコントロールを表します。
この要素がミュータブルなら、ユーザーエージェントは、その値で表された数値をユーザーが変更できるようにするべきです。その値は、浮動少数点数値をパースするルールを適用して得られるものです。ユーザーエージェントは、ユーザーが妥当な浮動小数点数でない文字列をその値にセットできるようにしてはいけません。ユーザーエージェントが数値を選択するためのインタフェースをユーザーに提供するなら、その値は、ユーザーの選択を表す浮動小数点数の最適表現なるようセットされなければいけません。ユーザーエージェントは、ユーザーが空文字列をその値にセットできるようにするべきです。
value 属性は、もし指定されたら、妥当な浮動小数点数となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです:この要素の値が妥当な浮動小数点数でないなら、代わりに空文字列をそれにセットします。
min 属性は、もし指定されたら、妥当な浮動小数点数となる値を持たなければいけません。max 属性は、もし指定されたら、妥当な浮動小数点数となる値を持たなければいけません。
ステップ・スケール・ファクターは 1 です。デフォルトのステップは 1 です(min 属性が非整数値を持たない限り、整数のみ受け付けます)。
この要素がステップ不一致に陥っているとき、ユーザーエージェントは、その要素の値を、もっとも近い数値に丸めて、その要素がステップ不一致に陥いらないようにすることができます。
文字列を数値に変換するアルゴリズムは、文字列 input を与えると次の通りとなります: input に浮動少数点数値をパースするルールを適用してエラーになったら、エラーを返します。そうでなければ、結果の数値を返します。
数値を文字列に変換するアルゴリズムは、数値 input を与えると次の通りとなります:input を表す妥当な浮動小数点数を返します。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
max,
min,
readonly,
required, and
step content attributes;
list,
value,
valueAsNumber,
selectedOption DOM 属性;
stepDown(),
stepUp() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
maxlength,
multiple,
pattern,
placeholder,
size,
src,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
selectionStart,
selectionEnd,
valueAsDate DOM 属性;
select(),
setSelectionRange()メソッド
4.10.4.1.14 Range 状態
Status: Last call for comments
この input 要素は、この要素の値に、数値を表す文字列をセットするためのコントロールを表します。しかし、正確な値は重要ではないという警告を伴い、ユーザーエージェントに、Number 状態のものよりもっとシンプルなインタフェースを提供させます。
この状態では、ユーザー入力中ですら、その範囲とステップの制約が強制されます。そして、その値に空文字列をセットする方法はありません。
この要素がミュータブルなら、ユーザーエージェントは、その値で表された数値をユーザーが変更できるようにするべきです。その値は、浮動少数点数値をパースするルールを適用して得られるものです。ユーザーエージェントは、ユーザーが妥当な浮動小数点数でない文字列をその値にセットできるようにしてはいけません。ユーザーエージェントが数値を選択するためのインタフェースをユーザーに提供するなら、その値は、ユーザーの選択を表す浮動小数点数の最適表現なるようセットされなければいけません。ユーザーエージェントは、ユーザーが空文字列をその値にセットできるようにしてはいけません。
value 属性は、もし指定されたら、妥当な浮動小数点数となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです: この要素の値が妥当な浮動小数点数でないなら、デフォルト値を表す妥当な浮動小数点数をそれにセットします。
min 属性は、もし指定されたら、妥当な浮動小数点数となる値を持たなければいけません。デフォルト最小値は 0 です。max 属性は、もし指定されたら、妥当な浮動小数点数となる値を持たなければいけません。デフォルト最大値は 100 です。
デフォルト値とは、最小値 に、最小値と最大値との差の半分を足したものです。ただし、最大値が最小値より小さくない場合に限ります。そうでない場合は、デフォルト値は最小値となります。
この要素がアンダーフローに陥っているとき、ユーザーエージェントは、その要素の値を、最小値を表す妥当な浮動小数点数となるようセットしなければいけません。
この要素がオーバーフローに陥っているとき、最大値が最小値より小さくなければ、ユーザーエージェントは、その要素の値を、最大値を表す妥当な浮動小数点数となるようセットしなければいけません。
ステップ・スケール・ファクターは 1 です。デフォルトのステップは 1 です(min 属性が非整数値を持たない限り、整数のみ受け付けます)
この要素がステップ不一致に陥っているとき、ユーザーエージェントは、その要素の値を、もっとも近い数値に丸めることで、その要素がステップ不一致に陥いらず、最小値より大きいか等しく、そして、最大値が最小値より小さくないなら、最大値より小さいか等しくなるようにしなければいけません。
文字列を数値に変換するアルゴリズムは、文字列 input を与えると次の通りとなります:input に浮動少数点数値をパースするルールを適用してエラーになったら、エラーを返します。そうでなければ、結果の数値を返します。
数値を文字列に変換するアルゴリズムは、数値 input を与えると次の通りとなります: input を表す妥当な浮動小数点数を返します。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list,
max,
min,
step コンテンツ属性;
list,
value,
valueAsNumber,
selectedOption DOM 属性;
stepDown(),
stepUp() メソッド
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
maxlength,
multiple,
pattern,
placeholder,
readonly,
required,
size,
src,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
selectionStart,
selectionEnd, and
valueAsDate DOM attributes;
select() and
setSelectionRange() methods.
4.10.4.1.15 Color 状態
Status: Working draft
この input 要素は、この要素の値に単色を表す文字列をセットするためのコントロールを表します。
この状態では、常に色は選択された状態となり、空文字列を値にセットする方法はありません。
この要素がミュータブルなら、ユーザーエージェントは、その値で表された色をユーザーが変更できるようにするべきです。その値は、単色値をパースするルールを適用して得られるものです。ユーザーエージェントは、ユーザーが妥当な小文字表記の単色でない文字列をその値にセットできるようにしてはいけません。ユーザーエージェントが色を選択するためのインタフェースをユーザーに提供するなら、その値は、ユーザーの選択を表す単色値サニタイジング・ルールの結果となるようセットされなければいけません。ユーザーエージェントは、ユーザーが空文字列をその値にセットできるようにしてはいけません。
value 属性は、もし指定されたら、妥当な単色となる値を持たなければいけません。
値サニタイゼーション・アルゴリズムは次の通りです:この要素の値が妥当な単色なら、その要素の値を小文字に変換したものをそれにセットします。そうでなければ、文字列 "#000000" をそれにセットします。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:autocomplete,
list コンテンツ属性;
list,
value,
selectedOption DOM 属性
value DOM 属性は、value というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
maxlength,
max,
min,
multiple,
pattern,
placeholder,
readonly,
required,
size,
src,
step,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
selectionStart,
selectionEnd,
valueAsDate,
valueAsNumber DOM 属性;
select(),
setSelectionRange(),
stepDown(),
stepUp() メソッド
4.10.4.1.16 Checkbox 状態
Status: Last call for comments
この input 要素は、この要素のチェック状態を表す 2 状態コントロールを表します。この要素のチェック状態が true なら、このコントロールは正の選択を表し、false なら、負の選択を表します。この要素の indeterminate DOM 属性が true にセットされているなら、そのコントロールの選択は、そのコントロールが第 3 の状態、つまり未決定の状態だったかのように、曖昧とするべきです。
このコントロールは、たとえその要素の indeterminate DOM 属性が true にセットされていたとしても、決して真の 3 状態コントロールではありません。indeterminate DOM 属性は、第 3 状態の外見を与えているに過ぎません。
この要素がミュータブルの場合:プレ・クリック・アクティベーション手順では、その要素のチェック状態にその反対の値(つまり、それが false なら true、それが true なら false)をセットし、その要素の indeterminate DOM 属性に false をセットします。キャンセルド・アクティベーション手順では、チェック状態とその要素の indeterminate DOM 属性を、プレ・クリック・アクティベーション手順が実行される前の値に戻します。アクティベーション・ビヘイビアでは、その要素で change というバブリングするシンプルなイベントを発出します。それから、その要素のフォーム・オーナーでformchange イベントをブロードキャストします。
制約バリデーション:この要素が必須でそのチェック状態が false なら、この要素は未入力状態に陥っていることになります。
- input .
indeterminate[ = value ] -
セット時は、チェックボックスのコントロールのレンダリングを上書きして、その現在の値が見えないようにします。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:checked,
required コンテンツ属性;
checked,
value DOM 属性
value DOM 属性は default/onというモードになります。
change イベントが適用されます。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
autocomplete,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
list,
max,
maxlength,
min,
multiple,
pattern,
placeholder,
readonly,
size,
src,
step,
width
次の DOM 属性やメソッドは、この要素に適用されません:files,
list,
selectedOption,
selectionStart,
selectionEnd,
valueAsDate,
valueAsNumber DOM 属性;
select(),
setSelectionRange(),
stepDown(),
stepUp() メソッド
input イベントは適用されません。
4.10.4.1.17 Radio Button 状態
Status: Last call for comments
input 要素の type 属性が Radio Button 状態にあるとき、このセクションのルールが適用されます。
この input 要素は、別の input 要素といっしょに使うと、1 つのコントロールだけが true にセットされたチェック状態を持つことができるラジオボタン・グループを形成するコントロールを表します。この要素のチェック状態が true なら、そのコントロールは、グループ内で選択されたコントロールを表します。false なら、それは、グループ内で選択されていないコントロールを指します。
input 要素 a を含むラジオボタン・グループとは、次の条件をすべて満す別の input 要素 b も含みます:
input要素 b のtype属性は、Radio Button 状態にあります。- a も b もフォーム・オーナーを持たない、または、それらは同じものを持つ、のいずれかとなります。
- それらのいずれも
name属性を持ち、a のname属性の値は、b のname属性の値と大文字・小文字を区別せず一致したものとなります。
ドキュメントに、ラジオボタン・グループに自身しか含まれないような input 要素を入れてはいけません。
次のイベントが発生するとき、そのイベントの後でこの要素のチェック状態が true なら、同じラジオボタン・グループにある別の要素すべてのチェック状態は false にセットされなければいけません:
この要素がミュータブルの場合:プレ・クリック・アクティベーション手順では、その要素のチェック状態に true をセットします。キャンセルド・アクティベーション手順では、その要素のチェック状態を false にセットします。アクティベーション・ビヘイビアでは、その要素で change というバブリングするシンプルなイベントを発出します。それから、その要素のフォーム・オーナーでformchange イベントをブロードキャストします。
制約バリデーション:この要素が必須で、同じラジオボタン・グループにあるすべての input 要素が false となるチェック状態を持つなら、この要素は未入力状態に陥っていることになります。
ドキュメントに挿入されるときにラジオボタン・グループ内にチェックされたラジオボタンがひとつもないなら、当初は、それらは、いずれかひとつがチェックされるときまで(ユーザーによるもの、またはスクリプトによるもの、のいずれか)、インタフェース上ではすべて未チェックとなります。
この要素には、次の input 要素の共通のコンテンツ属性、DOM 属性、メソッドが適用されます:checked,
required コンテンツ属性;
checked,
value DOM 属性
value DOM 属性は default/on というモードになります。
change イベントが適用されます。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
autocomplete,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
list,
max,
maxlength,
min,
multiple,
pattern,
placeholder,
readonly,
size,
src,
step,
width
次の DOM 属性やメソッドは、この要素に適用されません:files,
list,
selectedOption,
selectionStart,
selectionEnd,
valueAsDate,
valueAsNumber DOM 属性;
select(),
setSelectionRange(),
stepDown(),
stepUp() メソッド
input イベントは適用されません。
4.10.4.1.18 File Upload 状態
Status: Last call for comments
input 要素の type 属性が File Upload 状態にあるとき、このセクションのルールが適用されます。
この input 要素は、選択ファイルのリストを表し、それぞれのファイルは、ファイル名、ファイル・タイプ、ファイル本体(ファイルのコンテンツ)を含みます。
この要素がミュータブルなら、ユーザーエージェントは、ユーザーがリスト上のファイルを、例えば追加したり削除するなど、変更できるようにするべきです。ファイルは、ファイルシステムのものや、動的に生成されたものでも構いません。例えば、ユーザーのデバイスに接続されたカメラから取り出した写真等です。
制約バリデーション: この要素が必須で、選択ファイルのリストが空なら、この要素は未入力状態に陥っていることになります。
accept 属性は、サーバーが受け入れることができるであろうファイル・タイプのヒントをユーザーエージェントに提供するために指定することができます。
もし指定されたら、この属性は、カンマ区切りトークンのセットで構成され、それぞれは、次のいずれかひとつに一致しなければいけません。大文字・小文字を区別しません:
- 文字列
audio/* - サウンド・ファイルが受け入れ可能ということを示します。
- 文字列
video/* - ビデオ・ファイルが受け入れ可能と言うことを示します。
- 文字列
image/* - イメージ・ファイルが受け入れ可能ということを示します。
- パラメータなしの妥当な MIME タイプ
- 指定のタイプが受け入れ可能ということを示します。
トークンは、他のトークンと一致してはいけません。大文字と小文字は区別されません(つまり、複製は許されません)。この属性からトークンのリストを取得するために、ユーザーエージェントは属性値をカンマで区切らなければいけません。
ユーザーエージェントは、ユーザーが、これらのトークンの 1 つ(または、それ以上)によって受け入れられないファイルを選択できないようにするべきです。
この要素には、次の input 要素の共通のコンテンツ属性が適用されます:
この要素には、次の input 要素の共通のコンテンツ属性、DOM属性が適用されます:accept,
multiple,
required;
files,
value DOM 属性.
value DOM 属性は filename というモードとなります。
change イベントが適用されます。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:alt,
autocomplete,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
list,
max,
maxlength,
min,
pattern,
placeholder,
readonly,
size,
src,
step,
width
この要素の value
属性は省略できません。
次の DOM 属性やメソッドは、この要素に適用されません:checked,
list,
selectedOption,
selectionStart,
selectionEnd,
valueAsDate, and
valueAsNumber DOM 属性;
select(),
setSelectionRange(),
stepDown(),
stepUp() メソッド
input イベントは適用されません。
4.10.4.1.19 Submit Button 状態
Status: Last call for comments
input 要素の type 属性が Submit Button 状態にあるとき、このセクションのルールが適用されます。
この input 要素はボタンを表し、アクティベートされると、フォームをサブミットします。この要素が value 属性を持つなら、そのボタンのラベルは、その属性の値とならなければいけません。そうでなければ、それは、"Submit" や同類の意味となる実装側で定義された文字列とならなければいけません。この要素はボタンですが、とりわけサブミット・ボタンとなります。
この要素がミュータブルなら、ユーザーエージェントは、ユーザーがこの要素をアクティベートできるようにするべきです。
この要素のアクティベーション・ビヘイビアは、この要素がフォーム・オーナーを持つなら、その input 要素からフォーム・オーナーをサブミットすることです。
formaction, formenctype, formmethod, formnovalidate, formtarget 属性は、フォーム・サブミッション用の属性です。
formnovalidate 属性は、制約バリデーションを起動しないサブミット・ボタンを作るために使うことができます。
この要素には、次の input 要素の共通のコンテンツ属性、DOM属性が適用されます:formaction,
formenctype,
formmethod,
formnovalidate,
formtarget コンテンツ属性;
value DOM 属性
value DOM 属性は default というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
autocomplete,
checked,
height,
list,
max,
maxlength,
min,
multiple,
pattern,
placeholder,
readonly,
required,
size,
src,
step,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
list,
selectedOption,
selectionStart,
selectionEnd,
valueAsDate,
valueAsNumber DOM 属性;
select(),
setSelectionRange(),
stepDown(),
stepUp() メソッド
4.10.4.1.20 Image Button 状態
Status: Last call for comments
input 要素の type 属性が Image Button 状態にあるとき、このセクションのルールが適用されます。
この input 要素は、ユーザーが座標を選択してフォームをサブミットすることができるイメージか、もしくは、ユーザーがフォームをサブミットできるボタンの代わりを表します。この要素はボタンですが、とりわけサブミット・ボタンとなります。
イメージは src 属性によって与えられます。src 属性は必須です。そして、非インタラクティブで、オプションでアニメーションがあるイメージ・リソースを参照する妥当な URL を含まなければいけません。そのイメージ・リソースは、ページを遷移するものでも、スクリプトを実行するものでもありません。
次のイベントが発生するときは、ユーザーエージェントがイメージをサポートすることができるなら、または、イメージのサポートが無効になっていなければ、または、ユーザーエージェントがオン・デマンドで要素をフェッチするだけなら、ユーザーエージェントは、その要素に対して src 属性の値を解決しなければいけません。そして、それが成功したら、その結果となった絶対 URL をフェッチしなければいけません:
- The
inputelement'stypeattribute is first set to the Image Button state (possibly when the element is first created), and thesrcattribute is present. - The
inputelement'stypeattribute is changed back to the Image Button state, and thesrcattribute is present, and its value has changed since the last time thetypeattribute was in the Image Button state. - The
inputelement'stypeattribute is in the Image Button state, and thesrcattribute is set or changed.
Fetching the image must delay the load event of the element's document until the task that is queued by the networking task source once the resource has been fetched (defined below) has been run.
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. 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.
The user agents 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.
User agents must not support non-image resources with the
input element. User agents must not run executable code
embedded in the image resource. User agents must only display the
first page of a multipage resource. User agents must not allow the
resource to act in an interactive fashion, but should honor any
animation in the resource.
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 a simple event called
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 a
simple event called error on
the input element.
alt 属性は、イメージを使うことができないユーザーやユーザーエージェントに対して、代替のボタンにテキスト・ラベルを提供します。alt 属性も必須で、非空文字列を含まなければいけません。
この input 要素はディメンジョン属性をサポートします。
src 属性がセットされ、そのイメージが利用可能で、ユーザーエージェントがそのイメージを表示するよう設定されている場合:この要素は、src 属性で指定されたイメージから座標を選択するためのコントロールを表します。この要素がミュータブルなら、ユーザーエージェントは、ユーザーがこの座標を選択できるようにするべきです。この場合のアクティベーション・ビヘイビアでは、ユーザーが選択した座標を取り出し、この要素がフォーム・オーナーを持つなら、その input 要素から、その input 要素のフォーム・オーナーをサブミットします。ユーザーが座標を明示的に選択せずにコントロールをアクティベートしたら、その座標は (0,0) と見なされなければいけません。
そうでなければ、この要素は、ラベルが alt 属性の値で与えられるサブミット・ボタンを表します。この要素がミュータブルなら、ユーザーエージェントは、ユーザーがそのボタンをアクティベートできるようにするべきです。この場合のアクティベーション・ビヘイビアでは、選択座標を (0,0) となるようセットし、この要素がフォーム・オーナーを持つなら、その input 要素から、その input 要素のフォーム・オーナーをサブミットします。
選択座標は、x コンポーネントと y コンポーネントから構成されます。x コンポーネントは、0 以上でなければならず、CSS ピクセルの単位で、イメージのレンダリング幅、そして、イメージの周囲に左と右のボーダーがあれば、それらの幅も加えたものより小さいか等しくなければいけません。yコンポーネントは、0 以上でなければならず、CSS ピクセルの単位で、イメージのレンダリング高、そして、イメージの周囲に上と下のボーダーがあれば、それらの幅も加えたものより小さいか等しくなければいけません。この座標は、イメージ・ボーダーがあれば、それからの相対でなければいけません。なければ、イメージの端からの相対とならなければいけません。
formaction, formenctype, formmethod, formnovalidate, formtarget 属性は、フォーム・サブミッション用の属性です。
この要素には、次の input 要素の共通のコンテンツ属性、DOM属性が適用されます:alt,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
src,
width コンテンツ属性;
value DOM 属性
value DOM 属性は default というモードになります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
autocomplete,
checked,
list,
max,
maxlength,
min,
multiple,
pattern,
placeholder,
readonly,
required,
size,
step
この要素の value
属性は省略されなければいけません。
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
list,
selectedOption,
selectionStart,
selectionEnd,
valueAsDate,
valueAsNumber DOM 属性;
select(),
setSelectionRange(),
stepDown(),
stepUp() メソッド
この状態のビヘイビアは、img 要素のビヘイビアに似ている点が多くあります。読者のみなさんには、そのセクションを読むことをお勧めします。そこでは多くの同様の要件がさらに詳細に説明されています。
4.10.4.1.21 Reset Button 状態
Status: Last call for comments
input 要素の type 属性が Reset Button 状態にあるとき、このセクションのルールが適用されます。
この input 要素はボタンを表し、アクティベートされると、フォームをリセットします。この要素が value 属性を持つなら、そのボタンのラベルは、その属性の値とならなければいけません。そうでなければ、それは、"Reset" や同類の意味となる実装側で定義された文字列とならなければいけません。この要素はボタンです。
この要素がミュータブルなら、ユーザーエージェントは、ユーザーがこの要素をアクティベートできるようにするべきです。
この要素のアクティベーション・ビヘイビアは、この要素がフォーム・オーナーを持つなら、そのフォーム・オーナーをリセットすることです。
制約バリデーション: この要素は制約バリデーションから除外されます。
value DOM 属性はこの要素に適用され、default というモードとなります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
autocomplete,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
list,
max,
maxlength,
min,
multiple,
pattern,
placeholder,
readonly,
required,
size,
src,
step,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
list,
selectedOption,
selectionStart,
selectionEnd,
valueAsDate,
valueAsNumber DOM 属性;
select(),
setSelectionRange(),
stepDown(),
stepUp() メソッド
4.10.4.1.22 Button 状態
Status: Last call for comments
この input 要素はボタンを表しますが、デフォルト・ビヘイビアはありません。この要素が value 属性を持つなら、そのボタンのラベルは、その属性の値とならなければいけません。そうでなければ、それは、空文字列とならなければいけません。この要素はボタンです。
この要素がミュータブルなら、ユーザーエージェントは、ユーザーがこの要素をアクティベートできるようにするべきです。この要素のアクティベーション・ビヘイビアは何もしません。
制約バリデーション: この要素は制約バリデーションから除外されます。
value DOM 属性はこの要素に適用され、default というモードとなります。
次のコンテンツ属性は、この要素に指定されてはならず、この要素に適用されません:accept,
alt,
autocomplete,
checked,
formaction,
formenctype,
formmethod,
formnovalidate,
formtarget,
height,
list,
max,
maxlength,
min,
multiple,
pattern,
placeholder,
readonly,
required,
size,
src,
step,
width
次の DOM 属性やメソッドは、この要素に適用されません:checked,
files,
list,
selectedOption,
selectionStart,
selectionEnd,
valueAsDate,
valueAsNumber DOM 属性;
select(),
setSelectionRange(),
stepDown(),
stepUp() メソッド
4.10.4.2 共通 input 要素属性
これらの属性は input 要素に適用されるものですが、その属性が適用できると定義されている type 属性の状態にある場合に限ります。属性が input 要素に適用されないとき、ユーザーエージェントは、その属性を無視しなければいけません。
4.10.4.2.1 autocomplete 属性
Status: Last call for comments
autocomplete 属性は列挙属性です。この属性は 3 つの状態を持ちます。on キーワードは on 状態に対応し、off キーワードは off 状態に対応します。この属性は省略することもできます。指定がない場合のデフォルト値は default 状態です。
off 状態とは、このコントロールの入力データが、特にセンシティブ(例えば、核兵器の起動コード)であったり、決して再利用されない値であることを意味します。そのため、ユーザーは、明示的に、都度、データを入力しなければならないでしょう。ユーザーエージェントが値をプリセットしてくれるのを当てにすることはできません。
対して、on 状態とは、その値は特にセンシティブというわけではなく、ユーザーがそのコントロールに入れた値をユーザーエージェントが覚えておいてくれるのを当てにできると期待できることを意味します。
default 状態とは、ユーザーエージェントが、その要素のフォーム・オーナーの autocomplete 属性を使うことになることを意味します。
それぞれの input 要素は、最終オートコンプリート状態を持ち、on または off のいずれかとなります。
input 要素の autocomplete 属性が on 状態にあるとき、input 要素の autocomplete 属性が default 状態にあり、その要素にフォーム・オーナーがないとき、そして、input 要素の autocomplete 属性が default 状態にあり、その要素のフォーム・オーナーの autocomplete 属性が on 状態にあるときは、その input の最終オートコンプリート状態は on となります。そうでなければ、その input 要素の最終オートコンプリート状態は off となります。
input 要素の最終オートコンプリート状態が on のとき、ユーザーエージェントは、ユーザーが入力した値を保存しておいて、そのユーザーが該当のページに戻ってきたら、そのフォームにプリセットすることができます。そうでなければ、ユーザーエージェントは、そのコントロールの値を記憶するべきではありません。
オートコンプリート・メカニズムは、あたかもユーザーがその要素の値を修正したかのように動作するようユーザーエージェントに実装されなければならず、その要素がミュータブルであるとき(例えば、その要素がドキュメントに挿入された直後や、ユーザーエージェントがパースを停止するとき)に作動しなければいけません。
銀行では、ユーザーエージェントにログイン情報をプリセットして欲しくないと考えることが多いでしょう:
<p>Account: <input type="text" name="ac" autocomplete="off"></p> <p>PIN: <input type="text" name="pin" autocomplete="off"></p>
ユーザーエージェントは、ユーザーが最終オートコンプリート状態を書き換え、常に on となるようセットして、その値を記憶してプリセットすることができるようにできます。また、常に off にして、値を決して記憶しないようにすることもできます。しかし、最終オートコンプリート状態を on に書き換えることができたとしても、アクセシブルにならないことは明白です。もし、すべての値が記憶されたら、サイト側の指定かどうかに関わらず、ユーザーにとって重大なセキュリティ問題を抱えることになるかもしれないからです。
4.10.4.2.2 list 属性
Status: Last call for comments
list 属性は、ユーザーにサジェストする定義済みの選択肢をリスト表示する要素を指定するために使います。
存在したら、その値は、同じドキュメントの datalist 要素の ID でなければいけません。
サジェスト・ソース要素とは、そのドキュメント内で list 属性の値と同じ ID を持つ要素のうち、ツリー順で最初の要素のことです。ただし、その要素が datalist 要素である場合に限ります。もし list 属性がない、または、その ID を持った要素がない、または、その ID を持つ最初の要素が datalist 要素でないなら、その場合は、サジェスト・ソース要素がないということになります。
サジェスト・ソース要素があれば、ユーザーエージェントがユーザーに input 要素の値の編集を許すとき、ユーザーエージェントは、使われているコントロールに適した形で、サジェスト・ソース要素で表されたサジェストをユーザーに提供するべきです。ユーザーエージェントは、必要に応じて、そのサジェストを特定するためにサジェストのラベルを使うことができます。ユーザーがサジェストを選択したら、その input 要素の値は、あたかもユーザーが自分自身で書いたかのように、選択されたサジェストの値がセットされなければいけません。
ユーザーエージェントは、その input 要素の値としてユーザーに入力させてはいけないサジェストを隠すべく、そのサジェストをフィルターしなければいけません。また、その要素が制約を満たさないことになってしまうサジェストを隠すべく、そのサジェストをフィルターするべきです。
list 属性が適用されていなければ、サジェスト・ソース要素はありません。
4.10.4.2.3 readonly 属性
Status: Last call for comments
readonly 属性は、そのフォーム・コントロールをユーザーが編集できるかどうかを制御する論理属性です。指定されると、その要素はイミュータブルとなります。
制約バリデーション:readonly 属性が input 要素に指定されたら、その要素は制約バリデーションから除外されます。
4.10.4.2.4 size 属性
Status: Last call for comments
size 属性は、ビジュアル・レンダリングにおいて、その要素の値の編集する際に、ユーザーエージェントがユーザーに見ることになる文字数を与えます。
size 属性は、指定されたら、0 より大きい妥当な非負整数となる値を持たなければいけません。
この属性が存在したら、その値は非負整数パース規則を使ってパースされなければなりません。そして、その結果が 0 より大きい数値なら、ユーザーエージェントは少なくともその文字数分は見えるようにするべきです。
size DOM 属性は、正の 0 ではない数値のみに限定されます。
4.10.4.2.5 required 属性
Status: Last call for comments
required 属性は論理属性です。指定されると、その要素は必須となります。
制約バリデーション: この要素が必須で、その value DOM 属性が適用され value モードであり、この要素がミュータブルで、この要素の値が空文字列なら、この要素は未入力状態に陥っていることになります。
4.10.4.2.6 multiple 属性
Status: Last call for comments
multiple 属性は論理属性で、ユーザーが 1 つより多くの値を指定できるかどうかを指定するものです。
4.10.4.2.7 maxlength 属性
Status: Last call for comments
maxlength 属性は、それが適用されるとき、この input 要素の汚染値フラグによって制御されるフォーム・コントロール maxlength 属性となります。
この input 要素が最大許容値長を持つなら、この要素の value 属性の値のコード・ポイント長は、この要素の最大許容値長と同じか小さくなければいけません。
4.10.4.2.8 pattern 属性
Status: Last call for comments
pattern 属性は、そのコントロールの値のチェックに使う正規表現を指定します。
指定されたら、この属性の値は、JavaScript の Pattern プロダクションに一致しなければいけません。[ECMA262]
制約バリデーション: この要素の値が空文字列ではなく、この要素の pattern 属性が指定され、その属性の値が、disabled となる global, ignoreCase, multiline フラグを伴った JavaScript 正規表現としてコンパイルされるとき(ECMA262
Edition 3, セクション 15.10.7.2 から 15.10.7.4 を参照のこと)、コンパイルは成功するものの、正規表現の結果がこの要素の値に完全に一致しないなら、この要素はパターン不一致に陥っていることになります。[ECMA262]
この属性に使われる正規表現の言語は JavaScript で使われるのと同じということになります。ただし、pattern 属性は値全体を一致させなければならず、部分一致ではないという点を除きます(パターンの最初が ^(?:で、最後が )$ のようなものです)。
input 要素に pattern 属性を指定するとき、ウェブ制作者は、title 属性を入れて、そのパターンの説明を与えるべきです。ユーザーエージェントは、パターン不一致であることをユーザーに通知するなど適切なときに、その属性にコンテンツがあれば、それを使うことができます。 例えば、ツールチップに表示したり、支援テクノロジーであれば、そのコントロールにフォーカスが当たったときに読み上げるために使うことができます。
例えば、次のコードでは:
<label> パート番号:
<input pattern="[0-9][A-Z]{3}" name="part"
title="パート番号は 1 桁の数字の後に 3 桁のアルファベット大文字が続きます。"/>
</label>
... ユーザーエージェントは次のような警告を表示することになるでしょう:
パート番号は 1 桁の数字の後に 3 桁のアルファベット大文字が続きます。 このフィールドが訂正されるまで、このフォームを送信することはできません。
コントロールが pattern 属性を持つとき、その title 属性は、使うのであれば、そのパターンを説明したものでなければいけません。さらに情報を追加することもできますが、そのコントロールにユーザーが入力する助けとなるものでなけれればいけません。そうしないと、支援テクノロジーで十分に機能しないことになってしまいます。
例えば、title 属性にコントロールのキャプションを入れてしまうと、支援テクノロジーでは、あなたが入力したテキストは、必要なパターンに一致していません。誕生日。 といった具合に読み上げられてしまい、使い勝手が悪くなります。
ユーザーエージェントは、エラーではない状況においてでも、title を表示することができます(例えば、そのコントロールにマウス・ポインターを当てたときにツールチップとして表示するなど)。そのため、ウェブ制作者は、エラーが発生したかのような言葉を title に入れないよう注意するべきです。
4.10.4.2.9 min と max 属性
Status: Last call for comments
min and max 属性は、この要素の値の許容範囲を表します。
これらの構文は、その type 属性の現在の状態を定義するセクションで定義されています。
この要素に min 属性が指定され、その min 属性の値に文字列を数値に変換するアルゴリズムを適用した結果が数値であれば、その数値は、この要素の最小値となります。そうでなければ、type 属性の現在の状態がデフォルトの最小値を定義しているなら、それが最小値となります。そうでなければ、この要素は最小値を持ちません。
制約バリデーション:この要素が最小値を持ち、この要素の値に与えられた文字列に文字列を数値に変換するアルゴリズムを適用した結果が数値となり、そのアルゴリズムから得られた数値が最小値より小さければ、この要素はアンダーフローに陥っていることになります。
この要素に max 属性が指定され、その max 属性の値に文字列を数値に変換するアルゴリズムを適用した結果が数値であれば、その数値は、この要素の最大値となります。そうでなければ、type 属性の現在の状態がデフォルトの最大値を定義しているなら、それが最大値となります。そうでなければ、この要素は最大値を持ちません。
制約バリデーション:この要素が最大値を持ち、この要素の値に与えられた文字列に文字列を数値に変換するアルゴリズムを適用した結果が数値となり、そのアルゴリズムから得られた数値が最大値より大きければ、この要素はオーバーフローに陥っていることになります。
max 属性の値(最大値)は、min 属性の値(その最小値)より小さくてはいけません。
もし、この要素が最小値より小さい