1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
|
---
title: 基本的なネイティブフォームコントロール
slug: Learn/Forms/Basic_native_form_controls
tags:
- Beginner
- Controls
- Example
- Forms
- Guide
- HTML
- Input
- Web
- Widgets
translation_of: Learn/Forms/Basic_native_form_controls
original_slug: Learn/Forms/The_native_form_widgets
---
<div>{{LearnSidebar}}</div>
<div>{{PreviousMenuNext("Learn/Forms/How_to_structure_a_web_form", "Learn/Forms/HTML5_input_types", "Learn/Forms")}}</div>
<p class="summary"><a href="/ja/docs/Learn/Forms/How_to_structure_a_web_form">一つ前の記事</a>では、機能的なウェブフォームの例をマークアップし、いくつかのフォームコントロールとよくある構造要素を導入し、アクセシビリティのベストプラクティスを見てきました。次にさまざまなフォームコントロールやウィジェットの機能を詳しく見ていきます。 — 色々な種類のデータを集めるのにどんなオプションが使えるのかを見ていきます。とりわけこの記事では、ウェブの初期からありすべてのブラウザーで利用できる、元からあるフォームコントロールを見ていきます。</p>
<table class="learn-box standard-table">
<tbody>
<tr>
<th scope="row">前提条件:</th>
<td>基本的なコンピューターリテラシーと、基本的な <a href="/ja/docs/Learn/HTML/Introduction_to_HTML">HTML の理解</a>。</td>
</tr>
<tr>
<th scope="row">目的:</th>
<td>データを収集するためにブラウザーで使用できるネイティブフォームウィジェットの種類と、それらを HTML を使用して実装する方法を理解する。</td>
</tr>
</tbody>
</table>
<p>既にいくつかのフォーム要素を見てきました。 {{HTMLelement('form')}}, {{HTMLelement('fieldset')}}, {{HTMLelement('legend')}}, {{HTMLelement('textarea')}}, {{HTMLelement('label')}}, {{HTMLelement('button')}}, {{HTMLelement('input')}} などです。この記事では、以下の要素を扱います。</p>
<ul>
<li>よく使われる入力型である {{HTMLelement('input/button', 'button')}}, {{HTMLelement('input/checkbox', 'checkbox')}}, {{HTMLelement('input/file', 'file')}}, {{HTMLelement('input/hidden', 'hidden')}}, {{HTMLelement('input/image', 'image')}}, {{HTMLelement('input/password', 'password')}}, {{HTMLelement('input/radio', 'radio')}}, {{HTMLelement('input/reset', 'reset')}}, {{HTMLelement('input/submit', 'submit')}}, {{HTMLelement('input/text', 'text')}}</li>
<li>すべてのフォームコントロールに共通する属性のいくつか</li>
</ul>
<div class="note">
<p><strong>注</strong>: この記事で取り上げている機能は、すべてのブラウザーが対応していますが、すべてのフォームコントロールに当てはまるわけではありません。次の 2 回分の記事で、 HTML5 で追加された新しいフォームコントロールを取り上げます。より高度なリファレンスを読みたい方は、 <a href="/ja/docs/Web/HTML/Element#forms">HTML フォーム要素のリファレンス</a>、全般的には <a href="/ja/docs/Web/HTML/Element/input"><input> 型</a> のリファレンスを参照してください。</p>
</div>
<h2 id="Text_input_fields">テキスト入力フィールド</h2>
<p>テキスト入力 ({{htmlelement("input")}}) フィールドは、最も基本的なフォームウィジェットです。これらはユーザーがあらゆる種類のデータを入力できるとても便利な方法です。</p>
<div class="note">
<p><strong>注</strong>: HTML フォームのテキストフィールドは単純なプレーンテキストの入力コントロールです。つまり、これらを使って<a href="/ja/docs/Web/Guide/HTML/Editable_content/Rich-Text_Editing_in_Mozilla">リッチエディット</a> (太字、斜体など) を実現することはできません。見かけるリッチテキストエディターは、すべて HTML、CSS、JavaScript で作成されたカスタムウィジェットです。</p>
</div>
<p>すべてのテキストフィールドに共通する動作があります。</p>
<ul>
<li>{{htmlattrxref("readonly","input")}} (ユーザーは入力値が変更できないが、他のフォームデータとともに送信される) あるいは {{htmlattrxref("disabled","input")}} (入力値が変更できず、他のフォームデータとともに送られない) とすることができます。</li>
<li>{{htmlattrxref("placeholder","input")}} を設定することができます。これは、ボックスの目的を簡単に説明する、ボックス内に表示されるテキストです。</li>
<li><a href="/ja/docs/Web/HTML/Attributes/size"><code>size</code></a> (ボックスの物理的な大きさ) や <a href="/ja/docs/Web/HTML/Attributes/maxlength"><code>maxlength</code></a> (ボックスに入力できる最大文字数) による制限が可能です。</li>
<li>ブラウザーが対応していれば、<a href="/ja/docs/Web/HTML/Element/input#attr-spellcheck">スペルチェック</a>の便宜を図ることができます (<a href="/ja/docs/Web/HTML/Global_attributes/spellcheck"><code>spellcheck</code></a>属性を用いて)。</li>
</ul>
<div class="note">
<p><strong>注</strong>: {{htmlelement("input")}} 要素は <code><a href="/ja/docs/Web/HTML/Attributes/type">type</a></code> 属性によってさまざまな形になるため、 HTML 要素の中でも独特です。単一行のテキストフィールド、時間と日付のコントロール、チェックボックス、ラジオボタン、カラーピッカー、ボタンのようなテキスト入力のないコントロールなど、ほとんどの種類のフォームウィジェットの作成に使用されます。</p>
</div>
<h3 id="Single_line_text_fields">単一行のテキストフィールド</h3>
<p>単一行のテキストフィールドを生成するには、 {{HTMLElement("input")}} 要素で {{htmlattrxref("type","input")}} 属性値を <code>text</code> に設定するか、 {{htmlattrxref("type","input")}} 属性を省略するかします (<code>text</code> が既定値です)。この属性の <code>text</code> の値は、 {{htmlattrxref("type","input")}} 属性に指定した値をブラウザーに認識できない場合 (たとえば <code>type="color"</code> を指定した場合で、ブラウザーがネイティブの色ピッカーに対応していない場合) の代替値になります。</p>
<div class="note">
<p><strong>注</strong>: GitHub の <a href="https://github.com/mdn/learning-area/blob/master/html/forms/native-form-widgets/single-line-text-fields.html">single-line-text-fields.html</a> に、すべての単一行テキストフィールド型の例があります (<a href="https://mdn.github.io/learning-area/html/forms/native-form-widgets/single-line-text-fields.html">ライブで確認できます</a>)。</p>
</div>
<p>基本的な単一行のテキストフィールドの例を示します。</p>
<pre class="brush: html"><input type="text" id="comment" name="comment" value="I'm a text field"></pre>
<p>単一行のテキストフィールドは、ひとつだけ厳密な制約があります。改行を含むテキストを入力した場合、ブラウザーはデータを送信する前に改行を取り除きます。</p>
<p><em>下記のスクリーンショットは macOS での Firefox 71 と Safari、および Windows 10 の Chrome 79 と Edge 18 において、テキストフィールドが既定の場合、フォーカスされた場合、、無効にされた場合を示しています。</em></p>
<p><img alt="Firefox、Safari、Chrome、Edge における、テキスト入力の disabled 属性と既定の :focus スタイルを表示したスクリーンショットです。" src="disabled.png"></p>
<div class="notecard note">
<p><strong>Note</strong>: HTML5 では {{htmlattrxref("type","input")}} 属性に専用の値を追加することで、基本的な単一行のテキストフィールドを拡張しています。これらの値もやはり {{HTMLElement("input")}} 要素を単一行のテキストフィールドにしますが、フィールドに対して追加の制約や機能を付加します。これは次の記事、 <a href="/ja/docs/Learn/Forms/HTML5_input_types">HTML5 の入力型</a>で紹介します。</p>
</div>
<h4 id="Password_field">パスワードフィールド</h4>
<p>元からあった入力型の一つが、 <code>password</code> テキストフィールド型でした。</p>
<pre class="brush: html"><input type="password" id="pwd" name="pwd"></pre>
<p><code>password</code> の値は、入力されるテキストに特別な制約を加えるものではありませんが、フィールドに入力された値を (ドットやアスタリスクなどで) 不明瞭にして、他の人が簡単に読めないようにします。</p>
<p>これはユーザーインターフェイスの機能でしかないことに注意してください。テキストは JavaScript を使用してあなた自身でエンコードしなければ、平文で送信されてしまい、セキュリティ上で好ましくありません。 — 悪意のある第三者がデータを傍受し、パスワードやクレジットカード情報などを盗む可能性があります。このようなことからユーザーを保護する最善の方法は、フォームを含むページを安全な接続 (すなわち、 <code>https://</code> ... のアドレス) でホストし、データを送信する前に暗号化することです。</p>
<p>ブラウザーは、安全でない接続でフォームデータを送信することのセキュリティ上の影響を認識しており、ユーザーが安全でないフォームを使用することを抑止するために警告を表示します。 Firefox が実装している機能の詳細については、<a href="/ja/docs/Web/Security/Insecure_passwords">安全でないパスワード</a>を参照してください。</p>
<h3 id="Hidden_content">hidden コンテンツ</h3>
<p>もう一つの元からあるテキストコントロールは <code>hidden</code> 入力型です。これは、ユーザーには見えないが、送信されると他のフォームデータと一緒にサーバーに送信されるフォームコントロールを作成するために使用されます。 — 例えば、注文が行われた時のタイムスタンプをサーバーに送信したい場合などです。表示されないので、ユーザーは値を見ることも、意図的に編集することもできず、フォーカスを受けることもなく、画面リーダーも知らせることはありません。</p>
<pre class="brush: html"><input type="hidden" id="timestamp" name="timestamp" value="1286705410">
</pre>
<p>このような要素を作成する場合は、 <code>name</code> 属性と <code>value</code> 属性の設定が必要です。この値は JavaScript にて動的にセットできます。<code>hidden</code> 入力型には関連したラベルはありません。</p>
<p>その他のテキスト型、{{HTMLElement("input/search", "search")}}, {{HTMLElement("input/url", "url")}}, {{HTMLElement("input/tel", "tel")}}, は HTML5 で追加されたものです。これは次のチュートリアルの「HTML5 入力型」にて扱います。</p>
<h2 id="Checkable_items">チェック可能項目: チェックボックスとラジオボタン</h2>
<p>チェック可能項目は、そのものや、関連したラベルをクリックすることで状態を変更できるコントロールです。チェック可能項目は 2 種類あります。チェックボックスとラジオボタンです。どちらもそのウィジェットが既定でチェック状態にするかどうかを示すために、 <a href="/ja/docs/Web/HTML/Attributes/checked"><code>checked</code></a> 属性を使用します。</p>
<p>これらのウィジェットは、他のフォームウィジェットと同じようには動作しない点が特徴です。ほとんどのフォームウィジェットでは、フォームを送信すると <a href="/ja/docs/Web/HTML/Attributes/name"><code>name</code></a> 属性を持つすべてのウィジェットが、値が入力されていなくても送信されます。チェック可能項目では、チェックされている場合にのみ値が送信されます。チェックされていない場合は、 name も含めて何も送信されません。チェックされているが値がない場合、 name が <em>on</em> という値で送信されます。</p>
<div class="note">
<p><strong>注</strong>: この節の例は、<a href="https://github.com/mdn/learning-area/blob/master/html/forms/native-form-widgets/checkable-items.html">checkable-items.html</a> として GitHub にあります (<a href="https://mdn.github.io/learning-area/html/forms/native-form-widgets/checkable-items.html">ライブで確認できます</a>)。</p>
</div>
<p>最大限のユーザービリティ/アクセシビリティを実現するために、関連項目の各リストを {{htmlelement("fieldset")}} で囲み、リストの全体的な説明を示す {{htmlelement("legend")}} で囲むことをお勧めします。 {{htmlelement("label")}}/{{htmlelement("input")}} 要素の個々のペアは、それぞれ独自のリスト項目 (または同様のもの) に含める必要があります。関連した {{htmlelement('label')}} はラジオボタンやチェックボックスの直後に、 {{htmlelement("legend")}} の中身にラジオボタンやチェックボックスのグループの説明が置かれます。これは上の例に示されています。</p>
<h3 id="Check_box">チェックボックス</h3>
<p>チェックボックスは、 {{HTMLElement("input")}} 要素で <a href="/ja/docs/Web/HTML/Attributes/type"><code>type</code></a> 属性を {{HTMLElement("input/checkbox", "checkbox")}} に設定して作成します。</p>
<pre class="brush: html"><input type="checkbox" id="questionOne" name="subscribe" value="yes" checked>
</pre>
<p>関連するチェックボックス項目には、同じ {{htmlattrxref("name","input")}} 属性を使用してください。 <code><a href="/ja/docs/Web/HTML/Attributes/checked">checked</a></code> 属性を含めると、ページが読み込まれたときにチェックボックスが自動的にチェックされます。チェックボックス自体または関連づけられたラベルをクリックすると、チェックボックスのオンとオフが切り替わります。</p>
<pre class="brush: html"><fieldset>
<legend>Choose all the vegetables you like to eat</legend>
<ul>
<li>
<label for="carrots">Carrots</label>
<input type="checkbox" id="carrots" name="vegetable" value="carrots" checked>
</li>
<li>
<label for="peas">Peas</label>
<input type="checkbox" id="peas" name="vegetable" value="peas">
</li>
<li>
<label for="cabbage">Cabbage</label>
<input type="checkbox" id="cabbage" name="vegetable" value="cabbage">
</li>
</ul>
</fieldset></pre>
<p>下記のスクリーンショットは macOS での Firefox 71 と Safari、および Windows 10 の Chrome 79 と Edge 18 において、チェックボックスが既定の場合、フォーカスされた場合、、無効にされた場合を示しています。</p>
<p><img alt="Mac での Firefox 71 および Safari 13 と、 Windows 10 での Chrome 79 および Edge 18 の既定、フォーカス、無効状態のチェックボックス" src="checkboxes.png"></p>
<div class="notecard note">
<p><strong>注</strong>: チェックボックスやラジオボタンで読み込み時に <code><a href="/ja/docs/Web/HTML/Attributes/checked">checked</a></code> 属性が付いていれば、チェック状態が解除されても {{cssxref(':default')}} 擬似クラスに一致します。現在チェックされているものは <code>{{cssxref(':checked')}}</code> 擬似クラスに一致します。</p>
</div>
<p>チェックボックスにはオンとオフになるという性質があるため、チェックボックスはトグルボタンと考えられており、多くの開発者やデザイナーが既定のチェックボックスのスタイルを拡張して、トグルスイッチのように見えるボタンを作成しています。<a href="https://mdn.github.io/learning-area/html/forms/toggle-switch-example/">ここで動作する例を</a>見ることができます (<a href="https://github.com/mdn/learning-area/blob/master/html/forms/toggle-switch-example/index.html">ソースコード</a>も見られます)。</p>
<h3 id="Radio_button">ラジオボタン</h3>
<p>ラジオボタンは、 {{HTMLElement("input")}} 要素の {{htmlattrxref("type","input")}} 属性を <code>radio</code> に設定して生成します。</p>
<pre class="brush: html"><input type="radio" id="soup" name="meal" checked></pre>
<p>複数のラジオボタンを結びつけることができます。 {{htmlattrxref("name","input")}} 属性の値が同じであれば、同じグループのボタンであるとみなされます。グループ内のボタンは同時に一つしかチェックできません。つまり、あるボタンがチェックされると、他のボタンは自動的にチェックが外されます。フォームが送信される際には、チェックされたラジオボタンの値のみが送信されます。一つもチェックされていない場合、ラジオボタンのグループ全体が未知の状態であるとみなされ、値はフォームと共に送信されません。同じ名前のグループのラジオボタンの一つがチェックされると、ユーザーはフォームをリセットせずに、すべてのボタンのチェックを外すことはできません。</p>
<pre class="brush: html"><fieldset>
<legend>What is your favorite meal?</legend>
<ul>
<li>
<label for="soup">Soup</label>
<input type="radio" id="soup" name="meal" value="soup" checked>
</li>
<li>
<label for="curry">Curry</label>
<input type="radio" id="curry" name="meal" value="curry">
</li>
<li>
<label for="pizza">Pizza</label>
<input type="radio" id="pizza" name="meal" value="pizza">
</li>
</ul>
</fieldset></pre>
<p>下記のスクリーンショットは macOS での Firefox 71 と Safari、および Windows 10 の Chrome 79 と Edge 18 において、ラジオボタンがチェックされていない場合といる場合、フォーカスがある場合、無効にされていてチェックされていない場合といる場合を示しています。</p>
<p><img alt="Mac の Firefox 71 と Safari 13 および Windows 10 の Chrome 79 と Edge 18 のラジオボタン" src="radios.png"></p>
<h2 id="Actual_buttons">実際のボタン</h2>
<p>ラジオボタンはその名に反して、実際のボタンではありません。実際のボタンを見てみましょう。ボタンを生成するための入力型は 3 種類あります。</p>
<dl>
<dt><code>submit</code></dt>
<dd>フォームデータをサーバーに送信します。{{HTMLElement("button")}} 要素の場合、<code>type</code> 属性を省略した場合 (または <code>type</code> の値が無効であった場合)、送信ボタンが表示されます。</dd>
<dt><code>reset</code></dt>
<dd>すべてのフォームウィジェットを既定値にリセットします。</dd>
<dt><code>button</code></dt>
<dd>自動的な効果のないボタンで、 JavaScript コードを用いてカスタマイズできるものです。</dd>
</dl>
<p>また、ボタンそのものを示す {{htmlelement("button")}} 要素もあります。これは <code>type</code> 属性に <code>submit</code>, <code>reset</code>, <code>button</code> の値を取り、上記の 3 つの <code><input></code> 型を模倣できます。この 2 つの主な違いは、実際の <code><button></code> 要素の方がはるかにスタイル付けしやすいことです。</p>
<div class="notecard note">
<p><strong>注</strong>: <code>image</code> 入力型もボタンとしてレンダリングされます。それについては後で触れます。。</p>
</div>
<div class="note">
<p><strong>注</strong>: この節の例は <a href="https://github.com/mdn/learning-area/blob/master/html/forms/native-form-widgets/button-examples.html">button-examples.html</a> として GitHub にあります (<a href="https://mdn.github.io/learning-area/html/forms/native-form-widgets/button-examples.html">ライブで確認できます</a>)。</p>
</div>
<p>以下に、それぞれのボタンの <code><input></code> 型と、同等の <code><button></code> 型の例を示します。</p>
<h3 id="submit">submit</h3>
<pre class="brush: html"><button type="submit">
これは<strong>送信ボタン</strong>です
</button>
<input type="submit" value="これは送信ボタンです"></pre>
<h3 id="reset">reset</h3>
<pre class="brush: html"><button type="reset">
これは<strong>リセットボタン</strong>です
</button>
<input type="reset" value="これはリセットボタンです"></pre>
<h3 id="anonymous">ただのボタン</h3>
<pre class="brush: html"><button type="button">
これは<strong>ただのボタン</strong>です
</button>
<input type="button" value="これはただのボタンです"></pre>
<p>ボタンは {{HTMLElement("button")}} 要素と {{HTMLElement("input")}} 要素のどちらを使用しても常に同じ動作になります。しかし、上記の例で分かるように、{{HTMLElement("button")}} 要素は中身として HTML を使用することができ、これが <code><button></code> の開始・終了タグの間に挿入されます。一方で{{HTMLElement("input")}} 要素は空要素です。つまり <code>value</code> 属性に中身が挿入され、したがってプレーンテキストのコンテンツのみ使用できます。</p>
<p>下記の例は macOS での Firefox 71 と Safari 13、および Windows 10 の Chrome 79 と Edge 18 にて、ボタンの既定、フォーカス、無効状態を示しています。</p>
<p><img alt="Mac 版の Firefox 71 と Safari 13、 Windows 版の Chrome 79 と Edge 18 の既定、フォーカス、無効状態の button 入力型" src="buttons.png"></p>
<h3 id="Image_button">画像ボタン</h3>
<p><strong>画像ボタン</strong>コントロールは {{HTMLElement("img")}} 要素とまったく同じように表示されますが、ユーザーがクリックすると送信ボタン (前述) のように動作します。</p>
<p>画像ボタンは、 {{HTMLElement("input")}} 要素の{{htmlattrxref("type","input")}} 属性を <code>image</code> に設定することで作成します。この要素は {{HTMLElement("img")}} 要素とまったく同じ属性に対応しており、さらに他のフォームボタンが対応している属性にもすべて対応しています。</p>
<pre class="brush: html"><input type="image" alt="Click me!" src="my-img.png" width="80" height="30"></pre>
<p>画像ボタンをフォームの送信に使用する場合、このウィジェットは自身の値を送信しませんが、代わりに画像上でクリックした位置の X 座標と Y 座標を送信します (座標は画像に対して相対的、つまり画像の左上隅が座標 (0, 0) になります)。座標は 2 つのキーと値の組として送信されます。</p>
<ul>
<li>X 値のキーは {{htmlattrxref("name","input")}} 属性の値の後ろに文字列 "<em>.x</em>" をつけたもの、</li>
<li>Y 値のキーは {{htmlattrxref("name","input")}} 属性の値の後ろに文字列 "<em>.y</em>" をつけたものです。</li>
</ul>
<p>サンプルをご覧ください。フォームの画像上の座標 (123, 456) でクリックすると、 <code>get</code> メソッド経由で送信されて、以下のような値の追加された URL が送信されます。</p>
<pre>http://foo.com?pos.x=123&pos.y=456</pre>
<p>これは「ホットマップ」を作成するためにとても便利な手段です。これらの値がどのように送信あるいは取得されるかについては、<a href="/ja/docs/Learn/Forms/Sending_and_retrieving_form_data">フォームデータの送信</a>の記事で詳しく説明します。</p>
<h2 id="File_picker">ファイルピッカー</h2>
<p>初期の HTML にあった <code><input></code> 型がもう一つあります。ファイル入力型です。フォームで、ファイルをサーバーに送信することができます (この具体的な操作については、<a href="/ja/docs/Learn/Forms/Sending_and_retrieving_form_data">フォームデータの送信</a>の記事でも詳しく触れます)。ファイルピッカーウィジェットで、ユーザーは送信するファイルを 1 つ以上選択することができます。</p>
<p><a href="/ja/docs/Web/HTML/Element/input/file">ファイルピッカーウィジェット</a>を作成するには、 {{HTMLElement("input")}} 要素の {{htmlattrxref("type","input")}} 属性を <code>file</code> に設定します。 {{htmlattrxref("accept","input")}} 属性を使用して、受け入れるファイルの種類を制限することができます。加えて、ユーザーが複数のファイルを選択できるようにしたい場合は、 {{htmlattrxref("multiple","input")}} 属性を付加します。</p>
<h4 id="Example">例</h4>
<p>以下の例では、画像ファイルを要求するファイルピッカーを作成しています。ユーザーは複数のファイルを指定できます。</p>
<pre class="brush: html"><input type="file" name="file" id="file" accept="image/*" multiple></pre>
<p>いくつかのモバイル端末では、ファイルピッカーは、次のようにキャプチャー情報を <code>accept</code> 属性に追加することで、端末のカメラやマイクでキャプチャーされた写真、動画、音声にアクセスすることができます。</p>
<pre><input type="file" accept="image/*;capture=camera">
<input type="file" accept="video/*;capture=camcorder">
<input type="file" accept="audio/*;capture=microphone"></pre>
<h2 id="Common_attributes">共通の属性</h2>
<p>フォームコントロールの定義に使われる要素の多くは、それぞれ固有の属性を持っています。しかし、すべてのフォーム要素に共通する属性があります。これらの属性のいくつかはすでに見たことがあると思いますが、参考までに共通の属性を以下に列挙します。</p>
<table>
<thead>
<tr>
<th scope="col">属性名</th>
<th scope="col">既定値</th>
<th scope="col">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td><code><a href="/ja/docs/Web/HTML/Attributes/autofocus">autofocus</a></code></td>
<td>false</td>
<td>この論理属性を使用すると、ページ読み込み時に自動的に要素に入力フォーカスを設定するように指定できます。この属性を指定できるのは、文書内の 1 つのフォーム関連要素だけです。</td>
</tr>
<tr>
<td><code><a href="/ja/docs/Web/HTML/Attributes/disabled">disabled</a></code></td>
<td>false</td>
<td>この論理属性は、ユーザーが要素と対話できないことを示します。この属性が指定されていない場合、要素はそれを含む要素 (例えば {{HTMLElement("fieldset")}}) からその設定を継承します。<code>disabled</code> 属性が設定されている包含要素がない場合は、その要素が有効になります。</td>
</tr>
<tr>
<td><code><a href="/ja/docs/Web/HTML/Attributes/form">form</a></code></td>
<td></td>
<td>ウィジェットが関連付けられている <code><form></code> 要素で、そのフォーム内に含まれていない場合に使用されます。属性の値は、同じ文書内の {{HTMLElement("form")}} 要素の <code>id</code> 属性でなければなりません。これにより、フォームコントロールをフォームに外側から、他のフォーム要素の中にあったとしても、関連付けることができます。</td>
</tr>
<tr>
<td><code><a href="/ja/docs/Web/HTML/Attributes/name">name</a></code></td>
<td></td>
<td>要素の名前。これはフォームデータとともに送信されます。</td>
</tr>
<tr>
<td><code><a href="/ja/docs/Web/HTML/Attributes/value">value</a></code></td>
<td></td>
<td>要素の初期値です。</td>
</tr>
</tbody>
</table>
<h2 id="Test_your_skills!">スキルをテストしましょう!</h2>
<p>この記事の最後に到着しましたが、もっとも大事な情報を覚えていますか? 次に進む前に、この情報を保持しているか検証するテストがあります — <a href="/ja/docs/Learn/Forms/Test_your_skills:_Basic_controls">Test your skills: Basic controls</a> を見てください。</p>
<h2 id="Summary">まとめ</h2>
<p>この記事では古い入力型を扱ってきました。 — これは HTML の初期の頃に導入された元からのもので、すべてのブラウザーがよく対応しています。次の節では、HTML 5 で追加された新しい <code>type</code> 属性の値を見ていきます。</p>
<p>{{PreviousMenuNext("Learn/Forms/How_to_structure_a_web_form", "Learn/Forms/HTML5_input_types", "Learn/Forms")}}</p>
<h2 id="In_this_module">このモジュール</h2>
<ul>
<li><a href="/ja/docs/Learn/Forms/Your_first_form">初めてのフォーム</a></li>
<li><a href="/ja/docs/Learn/Forms/How_to_structure_a_web_form">フォームの構築方法</a></li>
<li><a href="/ja/docs/Learn/Forms/Basic_native_form_controls">基本的なネイティブフォームコントロール</a></li>
<li><a href="/ja/docs/Learn/Forms/HTML5_input_types">HTML5 の入力型</a></li>
<li><a href="/ja/docs/Learn/Forms/Other_form_controls">その他のフォームコントロール</a></li>
<li><a href="/ja/docs/Learn/Forms/Styling_web_forms">ウェブフォームへのスタイル付け</a></li>
<li><a href="/ja/docs/Learn/Forms/Advanced_form_styling">フォームへの高度なスタイル設定</a></li>
<li><a href="/ja/docs/Learn/Forms/UI_pseudo-classes">UI の擬似クラス</a></li>
<li><a href="/ja/docs/Learn/Forms/Form_validation">クライアント側のフォーム検証</a></li>
<li><a href="/ja/docs/Learn/Forms/Sending_and_retrieving_form_data">フォームデータの送信</a></li>
</ul>
<h3 id="Advanced_Topics">上級トピック</h3>
<ul>
<li><a href="/ja/docs/Learn/Forms/How_to_build_custom_form_controls">カスタムフォームコントロールの作成方法</a></li>
<li><a href="/ja/docs/Learn/Forms/Sending_forms_through_JavaScript">JavaScript によるフォームの送信</a></li>
<li><a href="/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls">フォームウィジェット向けプロパティ実装状況一覧</a></li>
</ul>
|