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
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
|
---
title: '<input>: 入力欄 (フォーム入力) 要素'
slug: Web/HTML/Element/input
tags:
- Data entry
- Element
- Forms
- HTML
- HTML forms
- HTML input tag
- HTML フォーム
- HTML:フローコンテンツ
- HTML:対話型コンテンツ
- HTML:記述コンテンツ
- Input
- MakeBrowserAgnostic
- Reference
- Web
- ウェブ
- データ入力
- フォーム
- 要素
translation_of: Web/HTML/Element/input
---
<div>{{HTMLRef}}</div>
<p><span class="seoSummary">HTML の <strong><code><input></code> 要素</strong>は、ユーザーからデータを受け取るための、ウェブベースのフォーム用の対話的なコントロールを作成するために使用します。端末と{{Glossary("user agent", "ユーザーエージェント")}}によりますが、広範に渡る種類のデータ入力やコントロールウィジェットが利用できます。</span> <code><input></code> 要素は入力型と属性の組み合わせの数が非常に多いため、 HTML の中で最も強力かつ最も複雑な要素の一つです。</p>
<div>{{EmbedInteractiveExample("pages/tabbed/input-text.html", "tabbed-shorter")}}</div>
<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div>
<h2 id="input_types"><input> の型</h2>
<p><code><input></code> の動作は {{htmlattrxref("type", "input")}} 属性の値に応じて大きく異なりますので、個別のリファレンスページでさまざまな型を扱っています。この属性を指定しない場合の既定の型は <code>text</code> です。</p>
<p>利用可能な型は次の通りです。</p>
<table class="standard-table">
<colgroup>
<col>
<col style="width: 50%;">
<col>
</colgroup>
<thead>
<tr>
<th>型</th>
<th>説明</th>
<th>基本的な例</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{HTMLElement("input/button", "button")}}</td>
<td>プッシュボタンで、既定の動作を持たず、 {{anch('htmlattrdefvalue', 'value')}} 属性の値 (既定では空) を表示します。</td>
<td id="examplebutton">
<pre class="brush: html hidden">
<input type="button" name="button" /></pre>
{{EmbedLiveSample("examplebutton",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/checkbox", "checkbox")}}</td>
<td>チェックボックスで、選択または未選択のうちひとつの値をとることができます。</td>
<td id="examplecheckbox">
<pre class="brush: html hidden">
<input type="checkbox" name="checkbox"/></pre>
{{EmbedLiveSample("examplecheckbox",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/color", "color")}}</td>
<td>色を指定するためのコントロールです。対応しているブラウザーでは、アクティブになったときにカラーピッカーが開きます。</td>
<td id="examplecolor">
<pre class="brush: html hidden">
<input type="color" name="color"/></pre>
{{EmbedLiveSample("examplecolor",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/date", "date")}}</td>
<td>日付 (時刻を除く年、月、日) を入力するためのコントロールです。対応しているブラウザーでは、アクティブになったときに日付ピッカーまたは年月日の数値のホイールが開きます。</td>
<td id="exampledate">
<pre class="brush: html hidden">
<input type="date" name="date"/></pre>
{{EmbedLiveSample("exampledate",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/datetime-local", "datetime-local")}}</td>
<td>タイムゾーン情報がない日付と時刻を入力するためのコントロールです。対応しているブラウザーでは、アクティブになったときに日付ピッカーまたは日付および時刻部分の数値のホイールが開きます。</td>
<td id="exampledtl">
<pre class="brush: html hidden">
<input type="datetime-local" name="datetime-local"/></pre>
{{EmbedLiveSample("exampledtl",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/email", "email")}}</td>
<td>電子メールアドレスを編集するための欄です。 <code>text</code> 入力欄のように見えますが、対応しているブラウザーや動的なキーボードのある端末では、入力値を検証したり、関連するキーボードを表示したりします。</td>
<td id="exampleemail">
<pre class="brush: html hidden">
<input type="email" name="email"/></pre>
{{EmbedLiveSample("exampleemail",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/file", "file")}}</td>
<td>ユーザーがファイルを選択するコントロールです。 {{anch('htmlattrdefaccept', 'accept')}} 属性を使用して、コントロールが選択することができるファイル形式を定義することができます。</td>
<td id="examplefile">
<pre class="brush: html hidden">
<input type="file" accept="image/*, text/*" name="file"/></pre>
{{EmbedLiveSample("examplefile",'100%',55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/hidden", "hidden")}}</td>
<td>表示されないコントロールですが、その値はサーバーに送信されます。隣の列には例がありますが、非表示です。</td>
<td><input id="userId" name="userId" type="hidden" value="abc123"></td>
</tr>
<tr>
<td>{{HTMLElement("input/image", "image")}}</td>
<td>グラフィックの <code>submit</code> ボタンです。 <code>src</code> 属性で定義された画像を表示します。 {{anch('htmlattrdefalt', 'alt')}} 属性は {{anch('htmlattrdefsrc', 'src')}} の画像が見つからないときに表示されます。</td>
<td id="exampleimage">
<pre class="brush: html hidden">
<input type="image" name="image" src="" alt="image input"/></pre>
{{EmbedLiveSample("exampleimage",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/month", "month")}}</td>
<td>タイムゾーン情報がない年と月を入力するためのコントロールです。</td>
<td id="examplemonth">
<pre class="brush: html hidden">
<input type="month" name="month"/></pre>
{{EmbedLiveSample("examplemonth",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/number", "number")}}</td>
<td>数値を入力するためのコントロールです。対応していればスピナーを表示し、既定の検証を追加します。動的キーボードを持つ一部の端末では、テンキーを表示します。</td>
<td id="examplenumber">
<pre class="brush: html hidden">
<input type="number" name="number"/></pre>
{{EmbedLiveSample("examplenumber",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/password", "password")}}</td>
<td>入力値を隠す単一行テキストフィールド。サイトが安全ではない場合はユーザーに警告します。</td>
<td id="examplepassword">
<pre class="brush: html hidden">
<input type="password" name="password"/></pre>
{{EmbedLiveSample("examplepassword",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/radio", "radio")}}</td>
<td>ラジオボタンで、同じ {{anch('htmlattrdefname', 'name')}} の値を持つ複数の選択肢から一つの値を選択することができます。</td>
<td id="exampleradio">
<pre class="brush: html hidden">
<input type="radio" name="radio"/></pre>
{{EmbedLiveSample("exampleradio",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/range", "range")}}</td>
<td>厳密な値であることが重要ではない数値を入力するためのコントロールです。範囲のウィジェットを表示し、既定では中央の値になります。 {{anch('htmlattrdefmin', 'min')}} と {{anch('htmlattrdefmax', 'max')}} の組み合わせで、受け入れる値の範囲を定義することができます。</td>
<td id="examplerange">
<pre class="brush: html hidden">
<input type="range" name="range" min="0" max="25"/></pre>
{{EmbedLiveSample("examplerange",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/reset", "reset")}}</td>
<td>フォームのコントロールを既定値に初期化するボタンです。推奨しません。</td>
<td id="examplereset">
<pre class="brush: html hidden">
<input type="reset" name="reset"/></pre>
{{EmbedLiveSample("examplereset",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/search", "search")}}</td>
<td>検索文字列を入力するための単一行のテキスト欄です。入力値から改行が自動的に取り除かれます。対応しているブラウザーでは、入力欄を初期化するための削除アイコンが表示されることがあり、欄の内容を消去するために使用することができます。動的なキーパッドを持つ一部の端末では、 Enter キーの代わりに検索アイコンを表示します。</td>
<td id="examplesearch">
<pre class="brush: html hidden">
<input type="search" name="search"/></pre>
{{EmbedLiveSample("examplesearch",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/submit", "submit")}}</td>
<td>フォームを送信するボタンです。</td>
<td id="examplesubmit">
<pre class="brush: html hidden">
<input type="submit" name="submit"/></pre>
{{EmbedLiveSample("examplesubmit",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/tel", "tel")}}</td>
<td>電話番号を入力するためのコントロールです。動的なテンキーを備えた一部の機器では、電話用のテンキーを表示します。</td>
<td id="exampletel">
<pre class="brush: html hidden">
<input type="tel" name="tel"/></pre>
{{EmbedLiveSample("exampletel",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/text", "text")}}</td>
<td>既定値です。単一行のテキスト入力欄です。改行は自動的に入力値から取り除かれます。</td>
<td id="exampletext">
<pre class="brush: html hidden">
<input type="text" name="text"/></pre>
{{EmbedLiveSample("exampletext",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/time", "time")}}</td>
<td>タイムゾーン情報がない時刻を入力するためのコントロールです。</td>
<td id="exampletime">
<pre class="brush: html hidden">
<input type="time" name="time"/></pre>
{{EmbedLiveSample("exampletime",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/url", "url")}}</td>
<td>URL を入力するための入力欄です。 <code>text</code> 入力欄のように見えますが、対応しているブラウザーや動的なキーボードのある端末では、入力値を検証したり、関連するキーボードを表示したりします。</td>
<td id="exampleurl">
<pre class="brush: html hidden">
<input type="url" name="url"/></pre>
{{EmbedLiveSample("exampleurl",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<td>{{HTMLElement("input/week", "week")}}</td>
<td>年と週番号で構成される日付を入力するためのコントロールです。週番号はタイムゾーンを伴いません。</td>
<td id="exampleweek">
<pre class="brush: html hidden">
<input type="week" name="week"/></pre>
{{EmbedLiveSample("exampleweek",200,55,"","", "nobutton")}}</td>
</tr>
<tr>
<th colspan="3">廃止された値</th>
</tr>
<tr>
<td>{{HTMLElement("input/datetime", "datetime")}}</td>
<td>{{deprecated_inline}} {{obsolete_inline}} UTC タイムゾーンに基づく日付と時刻 (時、分、秒、秒の端数) を入力するためのコントロールです。</td>
<td id="exampledatetime">
<pre class="brush: html hidden">
<input type="datetime" name="datetime"/></pre>
{{EmbedLiveSample("exampledatetime",200,75,"","", "nobutton")}}</td>
</tr>
</tbody>
</table>
<h2 id="Attributes">属性</h2>
<p><code><input></code> 要素は属性があるためたいへん強力です。上記の例で説明している {{htmlattrxref("type", "input")}} 属性が最も重要です。すべての <code><input></code> 要素が、 {{domxref("HTMLInputElement")}} インターフェイスに基づいているため、、技術的にはまったく同じ属性を共有しています。しかし実際には、ほとんどの属性は一部の特定の入力型にのみ影響を与えます。さらに、属性によっては入力欄に影響を及ぼす方法が入力型によって異なり、入力型によって異なる方法で影響を与えることがあります。</p>
<p>この節では、すべての属性に簡単な説明を書いた一覧表を示します。その後で、それぞれの属性がどの入力型に関連付けられているか、より詳細に説明された一覧を示します。ほとんど、またはすべての入力型に共通する属性については、以下でより詳細に定義します。特定の入力型に固有の属性、またはすべての入力型に共通するが、特定の入力型で使用されたときに特別な動作をする属性は、それぞれの型のページで示します。この要素は<a href="/ja/docs/Web/HTML/Global_attributes">グローバル属性</a>を含みます。 <code><input></code> に関連して特に重要な属性は強調表示されています。</p>
<table class="standard-table">
<caption>{{htmlelement('input')}} 要素の属性で、 <a href="/ja/docs/Web/HTML/Global_attributes">HTML のグローバル属性</a>を含むもの</caption>
<thead>
<tr>
<th scope="col">属性</th>
<th scope="col">型</th>
<th scope="col">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{anch('htmlattrdefaccept', 'accept')}}</td>
<td>file</td>
<td>ファイルアップロードコントロールで期待されるファイル形式のヒント</td>
</tr>
<tr>
<td>{{anch('htmlattrdefalt', 'alt')}}</td>
<td>image</td>
<td>image 型の alt 属性です。アクセシビリティのために必要です。</td>
</tr>
<tr>
<td>{{anch('htmlattrdefautocomplete', 'autocomplete')}}</td>
<td>すべて</td>
<td>フォームの自動補完機能のためのヒント</td>
</tr>
<tr>
<td>{{anch('htmlattrdefautofocus', 'autofocus')}}</td>
<td>すべて</td>
<td>ページが読み込まれたときに、自動的にそのフォームコントロールにフォーカスを設定する</td>
</tr>
<tr>
<td>{{anch('htmlattrdefcapture', 'capture')}}</td>
<td>file</td>
<td>ファイルアップロードコントロールのメディアキャプチャのインプットメソッド</td>
</tr>
<tr>
<td>{{anch('htmlattrdefchecked', 'checked')}}</td>
<td>radio, checkbox</td>
<td>コマンドやコントロールがチェックされているか</td>
</tr>
<tr>
<td>{{anch('htmlattrdefdirname', 'dirname')}}</td>
<td>text, search</td>
<td>フォーム送信時に要素の書字方向を送信するために使用するフォームフィールドの名前</td>
</tr>
<tr>
<td>{{anch('htmlattrdefdisabled', 'disabled')}}</td>
<td>すべて</td>
<td>コントロールが無効であるかどうか</td>
</tr>
<tr>
<td>{{anch('htmlattrdefform', 'form')}}</td>
<td>すべて</td>
<td>コントロールを form 要素に関連付ける</td>
</tr>
<tr>
<td>{{anch('htmlattrdefformaction', 'formaction')}}</td>
<td>image, submit</td>
<td>フォームの送信に使用する URL</td>
</tr>
<tr>
<td>{{anch('htmlattrdefformenctype', 'formenctype')}}</td>
<td>image, submit</td>
<td>フォームの送信に使用するデータセットのエンコード種別</td>
</tr>
<tr>
<td>{{anch('htmlattrdefformmethod', 'formmethod')}}</td>
<td>image, submit</td>
<td>フォームの送信に使用する HTTP メソッド</td>
</tr>
<tr>
<td>{{anch('htmlattrdefformnovalidate', 'formnovalidate')}}</td>
<td>image, submit</td>
<td>フォームの送信でフォームの検証をバイパス</td>
</tr>
<tr>
<td>{{anch('htmlattrdefformtarget', 'formtarget')}}</td>
<td>image, submit</td>
<td>フォーム送信に使用する閲覧コンテキスト</td>
</tr>
<tr>
<td>{{anch('htmlattrdefheight', 'height')}}</td>
<td>image</td>
<td>{{htmlelement('img')}} の <code>height</code> 属性と同じで、垂直の高さ</td>
</tr>
<tr>
<td>{{anch('htmlattrdeflist', 'list')}}</td>
<td>ほぼすべて</td>
<td>自動補完オプションの入った {{htmlelement('datalist')}} の id 属性の値</td>
</tr>
<tr>
<td>{{anch('htmlattrdefmax', 'max')}}</td>
<td>数値型</td>
<td>最大値</td>
</tr>
<tr>
<td>{{anch('htmlattrdefmaxlength', 'maxlength')}}</td>
<td>password, search, tel, text, url</td>
<td><code>value</code> の最大長 (文字数)</td>
</tr>
<tr>
<td>{{anch('htmlattrdefmin', 'min')}}</td>
<td>数値型</td>
<td>最小値</td>
</tr>
<tr>
<td>{{anch('htmlattrdefminlength', 'minlength')}}</td>
<td>password, search, tel, text, url</td>
<td><code>value</code> の最小長 (文字数)</td>
</tr>
<tr>
<td>{{anch('htmlattrdefmultiple', 'multiple')}}</td>
<td>email, file</td>
<td>論理属性。複数の値を許可するかどうか</td>
</tr>
<tr>
<td>{{anch('htmlattrdefname', 'name')}}</td>
<td>すべて</td>
<td>入力欄コントロールの名前。名前/値の組の部分としてフォームと一緒に送信される</td>
</tr>
<tr>
<td>{{anch('htmlattrdefpattern', 'pattern')}}</td>
<td>password, text, tel</td>
<td><code>value</code> が一致すると妥当となるパターン</td>
</tr>
<tr>
<td>{{anch('htmlattrdefplaceholder', 'placeholder')}}</td>
<td>password, search, tel, text, url</td>
<td>フォームコントロールが空の時にフォームコントロール内に表示される内容</td>
</tr>
<tr>
<td><a href="/ja/docs/Web/HTML/Attributes/readonly">readonly</a></td>
<td>ほぼすべて</td>
<td>論理属性。値が編集できない</td>
</tr>
<tr>
<td><a href="/ja/docs/Web/HTML/Attributes/required">required</a></td>
<td>ほぼすべて</td>
<td>論理属性。フォームが送信できるようにするためには値が必要</td>
</tr>
<tr>
<td>{{anch('htmlattrdefsize', 'size')}}</td>
<td>email, password, tel, text</td>
<td>コントロールの大きさ</td>
</tr>
<tr>
<td>{{anch('htmlattrdefsrc', 'src')}}</td>
<td>image</td>
<td>{{htmlelement('img')}} の <code>src</code> 属性と同じで、画像リソースのアドレス</td>
</tr>
<tr>
<td>{{anch('htmlattrdefstep', 'step')}}</td>
<td>numeric types</td>
<td>妥当と見なされる増分。</td>
</tr>
<tr>
<td>{{anch('htmlattrdeftype', 'type')}}</td>
<td>all</td>
<td>フォームコントロールの型</td>
</tr>
<tr>
<td>{{anch('htmlattrdefvalue', 'value')}}</td>
<td>all</td>
<td>最初、 HTML で明確に指定された場合は初期値。もっと一般的には、このフォームコントロールの現在の値。名前/値の組の部分としてフォームと一緒に送信される。</td>
</tr>
<tr>
<td>{{anch('htmlattrdefwidth', 'width')}}</td>
<td>image</td>
<td>{{htmlelement('img')}} の <code>width</code> 属性と同じ</td>
</tr>
</tbody>
</table>
<p>標準属性の説明に続いて、いくつかの追加の非標準属性を列挙します。</p>
<h3 id="Individual_attributes">個々の属性</h3>
<dl>
<dt id="htmlattrdefaccept">{{htmlattrdef("accept")}}</dt>
<dd>
<p><code>file</code> 入力型に対してのみ有効です。 <code>accept</code> 属性は <code>file</code> アップロードコントロールの中でどのファイル形式が選択可能であるかを定義します。 {{HTMLElement("input/file", "file")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefalt">{{htmlattrdef("alt")}}</dt>
<dd>
<p><code>image</code> ボタンに対してのみ有効です。 <code>alt</code> 属性は画像の代替テキストを提供し、 <a href="#htmlattrdefsrc"><code>src</code></a> の画像が存在しないか、または読み込みに失敗した場合にこの属性の値を表示します。 {{HTMLElement("input/image", "image")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefautocomplete">{{htmlattrdef("autocomplete")}}</dt>
<dd>
<p>(論理属性では<strong>ありません</strong>!) <code><a href="/ja/docs/Web/HTML/Attributes/autocomplete">autocomplete</a></code> 属性は空白区切りの文字列の値を取り、指定された場合は、入力欄が提供する自動補完機能の種類を示します。自動補完のよくある実装は、以前同じ入力欄に入力された値を単に再呼び出しするものですが、もっと複雑な自動補完もあり得ます。例えば、ブラウザーが端末の連絡先リストと連携して、 <code>email</code> 入力欄でメールアドレスを自動補完したりする可能性もあります。許可されている値は<a href="/ja/docs/Web/HTML/Attributes/autocomplete#values">autocomplete 属性の値</a>を参照してください。</p>
<p><code>autocomplete</code> 属性は <code>hidden</code>, <code>text</code>, <code>search</code>, <code>url</code>, <code>tel</code>, <code>email</code>, <code>date</code>, <code>month</code>, <code>week</code>, <code>time</code>, <code>datetime-local</code>, <code>number</code>, <code>range</code>, <code>color</code>, <code>password</code> で有効です。この属性は数値またはテキストデータを返さない入力型では効果がなく、 <code>checkbox</code>, <code>radio</code>, <code>file</code> とすべてのボタン型を除いたすべての入力型で有効になります。</p>
<p>詳しい情報については <a href="/ja/docs/Web/HTML/Attributes/autocomplete">HTML の autocomplete 属性</a>を参照してください。パスワードセキュリティに関する情報や、 <code>autocomplete</code> が <code>hidden</code> に対して他の入力型とどう異なるのかについての情報があります。</p>
</dd>
<dt id="htmlattrdefautofocus">{{htmlattrdef("autofocus")}}</dt>
<dd>
<p>論理属性で、指定された場合は、ページの読み込みが完了したとき (またはその要素を含む {{HTMLElement("dialog")}} が表示されたとき) に、自動的にその入力欄がフォーカスを持つことを示します。</p>
<div class="note">
<p><strong>注:</strong> <code>autofocus</code> 属性がついた要素は、 {{domxref("DOMContentLoaded")}} イベントが発生する前にフォーカスを得ることがあります。</p>
</div>
<p>文書中で一つの要素だけが <code>autofocus</code> 属性を持つことができます。複数の要素に付けた場合は、最初にこの属性を持つ要素がフォーカスを受け取ります。</p>
<p><code>autofocus</code> は <code>hidden</code> 型の入力欄にはフォーカスを受け取ることができないため、使用することができません。</p>
<div class="warning">
<p><strong>警告:</strong> フォームコントロールに自動的にフォーカスを与えると、読み上げ技術を利用している視覚障碍者を混乱させる可能性があります。 <code>autofocus</code> が割り当てられると、読み上げソフトは予告なしにフォームコントロールにその人を「テレポート」させることになるからです。</p>
</div>
<p><code>autofocus</code> 属性を適用する際には、アクセシビリティを慎重に検討してください。フォームコントロールにフォーカスを自動的に設定すると、読み込み時にページのスクロールが発生します。フォーカスを与えると、一部のタッチ端末では動的なキーボードを表示させることにもなります。読み上げソフトはフォーカスを受けているフォームコントロールのラベルをアナウンスする一方、ラベルよりも前は何もアナウンスしませんし、小さな端末を使用している視力のあるユーザーは、同様に先行するコンテンツによって作成された文脈を見逃してしまいます。</p>
</dd>
<dt id="htmlattrdefcapture">{{htmlattrdef("capture")}}</dt>
<dd>
<p>HTML Media Capture 仕様書で導入され、 <code>file</code> 入力型に対してのみ有効です。 <code>capture</code> 属性は、どのメディア (マイク、ビデオ、カメラ) を使用して新しいファイルをキャプチャし、対応するシナリオで <code>file</code> アップロードコントロールを使用してアップロードするかを定義します。 {{HTMLElement("input/file", "file")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefchecked">{{htmlattrdef("checked")}}</dt>
<dd>
<p><code>radio</code> 型と <code>checkbox</code> 型の両方で有効で、 <code>checked</code> は論理属性です。 <code>radio</code> 型に存在した場合、そのラジオボタンが同じ名前のラジオボタンのグループの中で現在選択されているものであることを示します。 <code>checkbox</code> 型に存在した場合、 (ページが読み込まれたとき) 既定でチェックボックスがチェックされていることを示します。このチェックボックスが現在チェックされているかどうかを示すものでは<em>ありません</em>。チェックボックスの状態が変更された場合でも、このコンテンツ属性はその変更を反映しません。 (<a href="/ja/docs/Web/API/HTMLInputElement"><code>HTMLInputElement</code> の <code>checked</code> IDL 属性</a>のみが更新されます。)</p>
<div class="note">
<p><strong>注:</strong> 他の入力コントロールとは異なり、チェックボックスやラジオボタンの値は、現在 <code>checked</code> の状態にある場合だけ送信データに含まれます。存在する場合、チェックされたコントロールの名前と値が送信されます。</p>
<p>例えば、 <code>name</code> が <code>fruit</code> で、 <code>value</code> が <code>cherry</code> であるチェックボックスがチェックされていると、送信されるフォームデータには <code>fruit=cherry</code> が含まれます。チェックボックスがチェックされていない場合、フォームデータには全く含まれません。チェックボックスやラジオボタンの既定の <code>value</code> は <code>on</code> です。</p>
</div>
</dd>
<dt id="htmlattrdefdirname">{{htmlattrdef("dirname")}}</dt>
<dd>
<p><code>text</code> および <code>search</code> 入力型のみに有効で、 <code>dirname</code> 属性によって要素の書字方向を送信することができます。これが含まれていると、フォームコントロールは 2 組の名前と値を送信します。 1 組目は <a href="#htmlattrdefname"><code>name</code></a> と <a href="#htmlattrdefvalue"><code>value</code></a> であり、 2 組目は名前が <code>dirname</code> の値で、値に <code>ltr</code> または <code>rtl</code> がブラウザーによって設定されます。</p>
<pre><form action="page.html" method="post">
<label>Fruit: <input type="text" name="fruit" dirname="fruit.dir" value="cherry"></label>
<input type="submit"/>
</form>
<!-- page.html?fruit=cherry&fruit.dir=ltr -->
</pre>
<p>上記のフォームが送信されると、入力欄は <code>name</code> / <code>value</code> の組である <code>fruit=cherry</code> と、 <code>dirname</code> / 書字方向の組である <code>fruit.dir=ltr</code> が送信されます。</p>
</dd>
<dt id="htmlattrdefdisabled">{{htmlattrdef("disabled")}}</dt>
<dd>
<p>論理属性で、存在する場合、ユーザーが入力欄と対話できないことを示します。無効な入力欄は、ふつうより薄い色や、その他のフィールドが使用できないことを示すことを示す形で表示されます。</p>
<p>特に、無効になった入力欄は {{domxref("Element/click_event", "click")}} イベントを受け取らず、フォームと共に送信されることもありません。</p>
<div class="note">
<p><strong>メモ:</strong> 仕様書で要件とはされていませんが、 Firefox は既定で、ページを再読み込みしても <code><input></code> を <a href="https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing">動的に無効化した状態を維持します</a>。この機能は {{htmlattrxref("autocomplete","input")}} 属性で制御することができます。</p>
</div>
</dd>
<dt id="htmlattrdefform">{{htmlattrdef("form")}}</dt>
<dd>
<p>文字列で、入力欄が関連づけられた {{HTMLElement("form")}} 要素 (つまり、<strong>フォームオーナー</strong>) を指定します。存在する場合、この文字列値は同一文書内の <code><form></code> 要素の {{htmlattrxref("id")}} と一致している必要があります。この属性が指定されない場合は、 <code><input></code> 要素は直近の内包するフォームに (もしあれば) 関連付けられます。</p>
<p><code>form</code> 属性によって、入力欄を文書内のどこに置いても、文書内の他の場所にあるフォームと関連付けることができます。</p>
<div class="note">
<p><strong>メモ:</strong> 入力欄は一つのフォームとしか関連付けることができません。</p>
</div>
</dd>
<dt id="htmlattrdefformaction">{{htmlattrdef('formaction')}}</dt>
<dd>
<p><code>image</code> および <code>submit</code> 入力型でのみ有効です。詳しくは {{HTMLElement("input/submit", "submit")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefformenctype">{{htmlattrdef('formenctype')}}</dt>
<dd>
<p><code>image</code> および <code>submit</code> 入力型でのみ有効です。詳しくは {{HTMLElement("input/submit", "submit")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefformmethod">{{htmlattrdef('formmethod')}}</dt>
<dd>
<p><code>image</code> および <code>submit</code> 入力型でのみ有効です。詳しくは {{HTMLElement("input/submit", "submit")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefformnovalidate">{{htmlattrdef('formnovalidate')}}</dt>
<dd>
<p><code>image</code> および <code>submit</code> 入力型でのみ有効です。詳しくは {{HTMLElement("input/submit", "submit")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefformtarget">{{htmlattrdef('formtarget')}}</dt>
<dd>
<p><code>image</code> および <code>submit</code> 入力型でのみ有効です。詳しくは {{HTMLElement("input/submit", "submit")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefheight">{{htmlattrdef("height")}}</dt>
<dd>
<p><code>image</code> 入力型でのみ有効です。 <code>height</code> はグラフィックの送信ボタンの表現を表示するための画像ファイルの高さを示します。 {{HTMLElement("input/image", "image")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefid">{{htmlattrdef("id")}}</dt>
<dd>
<p>すべての入力欄を含む、すべての要素で有効なグローバル属性で、文書全体で一意でなければならない一意の識別子 (ID) を定義します。その目的は、リンクする際に要素を識別することです。この値は、ラベルとフォームコントロールをリンクするための {{htmlelement('label')}} の <code>for</code> 属性の値として使用されます。 {{htmlelement('label')}} を参照してください。</p>
</dd>
<dt id="htmlattrdefinputmode">{{htmlattrdef("inputmode")}}</dt>
<dd>
<p>すべての要素で有効なグローバル属性です、この要素やその内容を編集する際に使用される仮想キーボード設定の種類をブラウザーに示すヒントを提供します。値としては <code>none</code>, <code>text</code>, <code>tel</code>, <code>url</code>, <code>email</code>, <code>numeric</code>, <code>decimal</code>, <code>search</code> があります。</p>
</dd>
<dt id="htmlattrdeflist">{{htmlattrdef("list")}}</dt>
<dd id="datalist">
<p><code>list</code> 属性で与えられる値は、同じ文書内にある {{HTMLElement("datalist")}} 要素の {{domxref("Element.id", "id")}} としてください。 <code><datalist></code> は、この入力欄でユーザーに提案する事前定義された値のリストを提供します。リストに {{htmlattrxref("type", "input")}} と互換性のない値が含まれていた場合は、提案の選択肢には含まれません。この値は提案として使用されるものであり、要件ではありません。ユーザーはこの定義済みリストから選択することもできるし、別な値を提供することもできます。</p>
<pre class="brush: html hidden"><datalist id="colorsxx">
<option>#ff0000</option>
<option>#ee0000</option>
<option>#dd0000</option>
<option>#cc0000</option>
<option>#bb0000</option>
</datalist>
<datalist id="numbersxx">
<option>0</option>
<option>2</option>
<option>4</option>
<option>8</option>
<option>16</option>
<option>32</option>
<option>64</option>
</datalist>
<datalist id="fruitsxx">
<option>cherry</option>
<option>banana</option>
<option>mango</option>
<option>orange</option>
<option>blueberry</option>
</datalist>
<datalist id="urlsxx">
<option>https://developer.mozilla.org</option>
<option>https://caniuse.com/</option>
<option>https://mozilla.com</option>
<option>https://mdn.github.io</option>
<option>https://www.youtube.com/user/firefoxchannel</option>
</datalist>
<p><label for="textx">Text</label> <input type="text" list="fruitsxx" id="textx"/></p>
<p><label for="colorx">Color</label> <input type="color" list="colorsxx" id="colorx"/></p>
<p><label for="rangex">Range</label> <input type="range" min="0" max="64" list="numbersxx" id="rangex"/></p>
<p><label for="numberx">Number</label> <input type="number" min="0" max="64" list="numbersxx" id="numberx"/></p>
<p><label for="urlx">URL</label> <input type="url" list="urlsxx" id="urlx"/></p></pre>
<p>{{EmbedLiveSample("datalist",400,275,"","", "nobutton")}}</p>
<p>これは <code>text</code>, <code>search</code>, <code>url</code>, <code>tel</code>, <code>email</code>, <code>date</code>, <code>month</code>, <code>week</code>, <code>time</code>, <code>datetime-local</code>, <code>number</code>, <code>range</code>, <code>color</code> で有効です。</p>
<p>仕様書によれば、 <code>list</code> 属性は <code>hidden</code>, <code>password</code>, <code>checkbox</code>, <code>radio</code>, <code>file</code> それにボタン型では対応していません。</p>
<p>ブラウザーによっては、独自のカラーパレットが提案されたり、範囲に沿ったチェックマークが表示されたり、 {{HTMLElement("select")}} のように開くものの、リストにない値を入力できるようになったりすることもあります。他の入力型については<a href="/ja/docs/Web/HTML/Element/datalist#browser_compatibility">ブラウザーの互換性一覧表</a>を参照してください。</p>
<p>{{htmlelement('datalist')}} 要素を参照してください。</p>
</dd>
<dt id="htmlattrdefmax"><a href="/ja/docs/Web/HTML/Attributes/max">{{htmlattrdef("max")}}</a></dt>
<dd>
<p><code>date</code>, <code>month</code>, <code>week</code>, <code>time</code>, <code>datetime-local</code>, <code>number</code>, <code>range</code> で有効であり、許可される値の範囲の最大値を定義します。要素に入力された {{htmlattrxref("value", "input")}} がこれを超えた場合、要素は<a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">制約検証</a>に不合格になります。 <code>max</code> 属性の値が数値でない場合は、要素に最大値は設定されません。</p>
<p>特殊な場合があります。データ型が期間を表す場合 (日付や時刻など)、 <code>max</code> の値は <code>min</code> の値よりも小さくなる場合があり、これは範囲が折り返す可能性があることを表します。例えば、これによって午後10時から午前4時までの自国の範囲を指定することができます。</p>
</dd>
<dt id="htmlattrdefmaxlength">{{htmlattrdef("maxlength")}}</dt>
<dd>
<p><code>text</code>, <code>search</code>, <code>url</code>, <code>tel</code>, <code>email</code>, <code>password</code> で有効であり、ユーザーがフィールドに入力することができる文字数 (UTF-16 コード単位) を定義します。これは <code>0</code> 以上の整数値でなければなりません。 <code>maxlength</code> が指定されなかった場合、または無効な値が指定された場合は、その入力欄には最大長が設定されません。この値は <code>minlength</code> の値以上である必要もあります。</p>
<p>欄に入力されたテキストの文字数が UTF-16 コード単位で <code>maxlength</code> よりも多いと、この入力欄は<a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">制約検証</a>に不合格になります。既定では、ブラウザーはユーザーが <code>maxlength</code> 属性で許可された文字数以上を入力するのを防ぎます。詳しくは{{anch("Client-side validation", "クライアント側検証")}}を参照してください。</p>
</dd>
<dt id="htmlattrdefmin">{{htmlattrdef("min")}}</dt>
<dd>
<p><code>date</code>, <code>month</code>, <code>week</code>, <code>time</code>, <code>datetime-local</code>, <code>number</code>, <code>range</code> で有効であり、許可される値の範囲の最も低い値を定義します。要素に入力された {{htmlattrxref("value", "input")}} がこれを下回った場合、要素は<a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">制約検証</a>に不合格になります。 <code>min</code> 属性の値が数値でない場合は、要素に最小値は設定されません。</p>
<p>この値は <code>max</code> 属性の値以下である必要があります。 <code>min</code> 属性が存在するものの、指定されていなかったり無効であったりした場合は、 <code>min</code> の値は適用されません。 <code>min</code> 属性が有効であり、値が空ではなく <code>min</code> 属性で許可された最小値よりも小さかった場合、制約の検証によりフォームの送信が行われません。詳しくは{{anch("Client-side validation", "クライアント側検証")}}を参照してください。</p>
<p>特殊な場合があります。データ型が期間を表す場合 (日付や時刻など)、 <code>max</code> の値は <code>min</code> の値よりも小さくなる場合があり、これは範囲が折り返す可能性があることを表します。例えば、これによって午後10時から午前4時までの自国の範囲を指定することができます。</p>
</dd>
<dt id="htmlattrdefminlength">{{htmlattrdef("minlength")}}</dt>
<dd>
<p><code>text</code>, <code>search</code>, <code>url</code>, <code>tel</code>, <code>email</code>, <code>password</code> で有効であり、ユーザーがフィールドに入力することができる最小文字数 (UTF-16 コード単位) を定義します。これは負数ではなく、 <code>maxlength</code> で指定された値以下の整数値でなければなりません。 <code>minlength</code> が指定されなかった場合、または無効な値が指定された場合は、その入力欄には最小文字数が設定されません。</p>
<p>欄に入力されたテキストの文字数が UTF-16 コード単位で <code>minlength</code> よりも少ないと、この入力欄は<a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">制約検証</a>に不合格になります。詳しくは{{anch("Client-side validation", "クライアント側検証")}}を参照してください。</p>
</dd>
<dt id="htmlattrdefmultiple">{{htmlattrdef("multiple")}}</dt>
<dd>
<p>論理属性の <code>multiple</code> は、設定されている場合、 email 入力欄ではユーザーがウィジェット内でカンマ区切りで複数のメールアドレスを入力できること、また <code>file</code> 入力欄では複数のファイルを選択することができることを意味します。 {{HTMLElement("input/email", "email")}} および {{HTMLElement("input/file", "file")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefname">{{htmlattrdef("name")}}</dt>
<dd>
<p>入力コントロールの名前を指定する文字列です。この名前はフォームデータが送信される時に、コントロールの値と共に送信されます。</p>
<h5 id="Whats_in_a_name">name に入れるもの</h5>
<p><code>name</code> は (厳密にはそうではありませんが) 必須の属性と考えてください。入力欄に <code>name</code> が指定されていなかった場合や <code>name</code> が空欄だった場合、その入力欄の値はフォームと一緒に送信されません。 (無効なコントロール、チェックされていないラジオボタン、チェックされていないチェックボックス、リセットボタンも送信されません。)</p>
<p>特殊な場合が 2 つあります。</p>
<ol>
<li><code>_charset_</code> : <code><input></code> 要素の {{HTMLElement("input/hidden", "hidden")}} 型として使用された場合、入力欄の <code>value</code> には自動的に、フォームを送信するのに使用される文字エンコーディングが{{Glossary("user agent", "ユーザーエージェント")}}によって設定されます。</li>
<li><code>isindex</code>: 歴史的な理由で、 <code><a href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-name">isindex</a></code> という名前は許可されていません。</li>
</ol>
<h5 id="name_and_radio_buttons">name とラジオボタン</h5>
<p><a href="#htmlattrdefname"><code>name</code></a> 属性はラジオボタンでは独特の動きをします。</p>
<p>同名のラジオボタングループ内で、一度にチェックできるラジオボタンは 1 つのみです。そのグループ内のラジオボタンを選択すると、同じグループ内の現在選択されているラジオボタンの選択が自動的に解除されます。チェックされたラジオボタンの値は、フォームが送信された場合、名前と一緒に送信されます。</p>
<p>同名のラジオボタンが連続したグループにタブ移動した場合、そのうちの 1 つにチェックが入っていると、それがフォーカスを受け取ります。ソース順でグループ化されていない場合、グループのうちの 1 つがチェックされていた場合は、タブ移動でグループ内の最初のラジオボタンに出会ったときに、チェックが入っていないラジオボタンをすべてスキップして、そのグループがフォーカスを受け取ります。言い換えれば、 1 つがチェックされている場合、グループ内のチェックされていないラジオボタンはスキップされます。どれもチェックされていない場合、同名グループの最初のボタンに到達したときに、ラジオボタングループがフォーカスを受け取ります。</p>
<p>グループ内のラジオボタンにフォーカスがある場合、矢印キーを使用すれば、ラジオボタンがソースの順序でグループ化されていなくても、同じ名前のすべてのラジオボタンに移動することができます。</p>
<h5 id="HTMLFormElement.elements">HTMLFormElement.elements</h5>
<p>入力要素に <code>name</code> が与えられると、その名前は所有するフォーム要素の {{domxref("HTMLFormElement.elements")}} プロパティのプロパティになります。 <code>name</code> が <code>guest</code> に設定されている入力と、 <code>name</code> が <code>hat-size</code> に設定されている入力がある場合、以下のコードを使用することができます。</p>
<pre class="brush: js">let form = document.querySelector("form");
let guestName = form.elements.guest;
let hatSize = form.elements["hat-size"];
</pre>
<p>このコードを実行すると、 <code>guestName</code> が {{domxref("HTMLInputElement")}} の <code>guest</code> フィールドになり、 <code>hatSize</code> が <code>hat-size</code> フィールドの</p>
<div class="warning">
<p><strong>警告:</strong> フォームの組み込みプロパティに対応する <code>name</code> をフォーム要素に与えないようにしてください。そうすると、対応する入力欄に参照するとき、定義済みのプロパティやメソッドを上書きしてしまうからです。</p>
</div>
</dd>
<dt id="htmlattrdefpattern">{{htmlattrdef("pattern")}}</dt>
<dd>
<div id="pattern-include">
<p><code>pattern</code> 属性は、指定された場合、入力の {{htmlattrxref("value")}} が一致すれば値が<a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">制約検証</a>を通過したとみなされる正規表現を指定します。これは {{jsxref("RegExp")}} 型で使用される妥当な JavaScript の正規表現でなければならず、これは<a href="/ja/docs/Web/JavaScript/Guide/Regular_Expressions">正規表現のガイド</a>で説明されている通りです。正規表現をコンパイルする際には <code>'u'</code> フラグが指定され、パターンが ASCII ではなく Unicode コードポイントのシーケンスとして扱われます。パターンのテキストの周囲にスラッシュを指定しないでください。</p>
<p><code>pattern</code> 属性が存在するが、指定されていないか無効な場合、正規表現は適用されず、この属性は完全に無視されます。 <code>pattern</code> 属性が有効で、空でない値がパターンと一致しない場合、制約の検証によりフォームの送信ができなくなります。</p>
<div class="note">
<p><strong>ヒント:</strong> <code>pattern</code> 属性を使用する場合は、期待される書式をユーザーに知らせる説明文を近くに配置してください。また、パターンに一致させるための要件が何であるかを説明するために、 {{htmlattrxref("title", "input")}} 属性を含めることもできます。ほとんどのブラウザーはこのタイトルをツールチップとして表示します。ツールチップは改善手段です。</p>
</div>
</div>
<p>詳しくは{{anch("Client-side validation", "クライアント側検証")}}を参照してください。</p>
</dd>
<dt id="htmlattrdefplaceholder">{{htmlattrdef("placeholder")}}</dt>
<dd>
<p><code>placeholder</code> 属性は、フィールドでどのような情報が期待されているかについて、ユーザーに簡単なヒントを与える文字列です。説明やプロンプトではなく、期待されるデータのタイプのヒントとなる単語や短いフレーズである必要があります。テキストには、改行を含めては<em>いけません</em>。例えば、ユーザーの名前を入力するフィールドで、そのラベルが "First Name" の場合、適切なプレースホルダーは "e.g. Mustafa" となります。</p>
<div class="note">
<p><strong>注:</strong> <code>placeholder</code> 属性は、フォームを説明するためには他の方法ほど意味的に有用ではなく、コンテンツに予期せぬ技術的な問題を引き起こす可能性があります。詳細は<a href="#label">ラベル</a>を参照してください。</p>
</div>
</dd>
<dt id="htmlattrdefreadonly">{{htmlattrdef("readonly")}}</dt>
<dd>
<p>論理属性で、存在すれば、ユーザーが入力欄の値を編集できないことを示します。 <code>readonly</code> 属性は <code>text</code>, <code>search</code>, <code>url</code>, <code>tel</code>, <code>email</code>, <code>date</code>, <code>month</code>, <code>week</code>, <code>time</code>, <code>datetime-local</code>, <code>number</code>, <code>password</code> の各入力型が対応しています。</p>
<p>詳しくは <a href="/ja/docs/Web/HTML/Attributes/readonly">HTML 属性: <code>readonly</code></a> を参照してください。</p>
</dd>
<dt id="htmlattrdefrequired">{{htmlattrdef("required")}}</dt>
<dd>
<p><code>required</code> は論理属性であり、所有するフォームが送信される前に、ユーザーが入力欄の値を指定しなければならないことを示します。 <code>required</code> 属性は <code>text</code>, <code>search</code>, <code>url</code>, <code>tel</code>, <code>email</code>, <code>date</code>, <code>month</code>, <code>week</code>, <code>time</code>, <code>datetime-local</code>, <code>number</code>, <code>password</code>, <code>checkbox</code>, <code>radio</code>, <code>file</code> の各入力型で対応しています。</p>
<p>詳しくは{{anch("Client-side validation", "クライアント側検証")}}および <a href="/ja/docs/Web/HTML/Attributes/required">HTML 属性: <code>required</code></a> を参照してください。</p>
</dd>
<dt id="htmlattrdefsize">{{htmlattrdef("size")}}</dt>
<dd><code>email</code>, <code>password</code>, <code>tel</code>, <code>text</code> の <code>input</code> 型でのみ有効です。入力内容をどれだけ表示するかを指定します。基本的には、 CSS の <code>width</code> プロパティを設定するのと同じ効果が得られますが、いくつかの特徴があります。値の実際の単位は、入力型によって異なります。 <code>password</code> や <code>text</code> の場合は文字数 (または <code>em</code> 単位) で既定値は <code>20</code>、それ以外の場合はピクセルとなります。 CSS の width は size 属性よりも優先されます。</dd>
<dt id="htmlattrdefsrc">{{htmlattrdef("src")}}</dt>
<dd>
<p><code>image</code> 入力ボタンにのみ有効で、 <code>src</code> は、グラフィカルな送信ボタンを表現するために表示する画像ファイルの URL を指定する文字列です。 {{HTMLElement("input/image", "image")}} 入力型を参照してください。</p>
</dd>
<dt id="htmlattrdefstep">{{htmlattrdef("step")}}</dt>
<dd>
<div id="step-include">
<p>数値入力型、例えば <code>number</code>、日付/時刻入力型、 <code>range</code> 型で有効です。 <code><a href="/ja/docs/Web/HTML/Attributes/step">step</a></code> 属性は、値が準拠すべき粒度を指定する数値です。</p>
<p>明示的に指定しない場合は次のようになります。</p>
<ul>
<li><code>number</code> と <code>range</code> の場合、 <code>step</code> の既定値は 1 です。</li>
<li>日付や時刻の入力型では、 <code>step</code> は秒単位の表現となり、<strong>既定の step は 60 秒</strong>になります。 step の係数は 1000 です (他のアルゴリズムの場合と同様、秒からミリ秒へ変換します)。</li>
</ul>
<p>値は、正の整数または浮動小数点実数、または特殊な値 <code>any</code> のいずれかでなければなりません。これは、刻みが考慮されず、あらゆる値が許容されることを意味します (<code>{{anch("min")}}</code> や <code>{{anch("max")}}</code> などの他の制約がない場合)。</p>
<p><code>any</code> が明示的に設定されていない場合、 <code>number</code>、日付/時刻、 <code>range</code> の各入力型の妥当な値は、刻みの基数と等しくなります。すなわち <code>{{anch("min")}}</code> の値と、そこから step 値単位で増加させたもの (指定されている場合は <code>{{anch("max")}}</code> まで) です。</p>
<p>例えば、 <code><input type="number" min="10" step="2"></code> とすると、 <code>10</code> 以上の偶数の整数であればすべて妥当となります。 <code><input type="number"></code> のように省略された場合は、整数であれば何でも妥当ですが、浮動小数点実数 (<code>4.2</code> など) は <code>step</code> の既定値が <code>1</code> なので妥当ではありません。 <code>4.2</code> を妥当にするためには、 <code>step</code> に <code>any</code>、0.1、0.2 に設定するか、 <code>min</code> の値を <code>.2</code> で終わる数に (例えば <code><input type="number" min="-5.2"></code> に) 設定する必要があります。</p>
<div class="note">
<p><strong>注:</strong> ユーザーが入力したデータが刻みの設定に従っていない場合、その値は制約検証で無効とみなされ、 <code>:invalid</code> 擬似クラスに一致するようになります。</p>
</div>
</div>
<p>詳しくは{{anch("Client-side validation", "クライアント側検証")}}を参照してください。</p>
</dd>
<dt id="htmlattrdeftabindex">{{htmlattrdef("tabindex")}}</dt>
<dd>
<p>すべての要素、すべての入力型で有効なグローバル属性で、要素が入力フォーカスを受けられる (フォーカス可能) かどうかを示す整数属性であり、順次キーボードナビゲーションに加わるべきかどうかを示します。 hidden 型の入力を除くすべての入力型がフォーカス可能であるため、この属性はフォームコントロールに使用すべきではありません。そうすると文書内のすべての要素のフォーカス順序を管理しなければならず、間違って行うとユーザビリティやアクセシビリティを損なう危険性があるからです。</p>
</dd>
<dt id="htmlattrdeftitle">{{htmlattrdef('title')}}</dt>
<dd>
<p>すべての要素、すべての入力型で有効なグローバル属性で、所属する要素に関連するアドバイス情報を表すテキストを指定します。このような情報は、ふつうツールチップとしてユーザーに提示されますが、必ずそうとは限りません。 title は、フォームコントロールの目的の主たる説明として使用してはいけません。代わりに {{htmlelement('label')}} 要素を使用し、その <code>for</code> 属性でフォームコントロールの {{htmlattrdef('id')}} 属性を指すようにしてください。下記の{{anch("Labels", "ラベル")}}を参照してください。</p>
</dd>
<dt id="htmlattrdeftype">{{htmlattrdef("type")}}</dt>
<dd>
<p>文字列で、表示するコントロールの型を指定します。例えば、チェックボックスを生成するには、 <code>checkbox</code> の値が使用されます。省略された場合 (または不明な値が指定された場合) は、入力型に <code>text</code> が使用され、テキストの入力欄が生成されます。</p>
<p>許可されている値は{{anch("<input> types", "<input> の型")}}にあります。</p>
</dd>
<dt id="htmlattrdefvalue">{{htmlattrdef("value")}}</dt>
<dd>
<p>入力コントロールの値です。 HTML の中で指定されると、これは初期値となり、その後で JavaScript を使用してそれぞれの {{domxref("HTMLInputElement")}} オブジェクトの <code>value</code> プロパティにアクセスすることで、いつでも変更したり受け取ったりすることができます。 <code>value</code> 属性は常に省略可ですが、 <code>checkbox</code>, <code>radio</code>, <code>hidden</code> においては必須だと考えてください。</p>
</dd>
<dt id="htmlattrdefwidth">{{htmlattrdef("width")}}</dt>
<dd>
<p><code>image</code> 入力ボタンにのみ有効で、 <code>width</code> にはグラフィックの送信ボタンを表現するために表示する画像ファイルの幅を指定します。 {{HTMLElement("input/image", "image")}} 入力型を参照してください。</p>
</dd>
</dl>
<h3 id="Non-standard_attributes">標準外の属性</h3>
<p>一部のブラウザーでは、以下の標準外の属性も利用できます。原則として、どうしようもない場合を除き、これらの使用は避けるべきです。</p>
<table class="standard-table">
<thead>
<tr>
<th scope="col">属性</th>
<th scope="col">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>{{anch("autocorrect")}}</code></td>
<td>自動補完が <code>on</code> であるか <code>off</code> であるかを示す文字列です。 <strong>Safari のみ。</strong></td>
</tr>
<tr>
<td><code>{{anch("incremental")}}</code></td>
<td>ユーザーがフィールドの値を編集している途中にライブで検索結果を更新できるように、 {{domxref("HTMLInputElement/search_event", "search")}} イベントを繰り返し送信するかどうかを設定します。 <strong>WebKit および Blink のみ (Safari, Chrome, Opera, など)。</strong></td>
</tr>
<tr>
<td><code>{{anch("mozactionhint")}}</code></td>
<td>文字列で、ユーザーがフィールドの編集中に <kbd>Enter</kbd> キーや <kbd>Return</kbd> キーを押したときに実行されるアクションの種類を示す文字列です。仮想キーボード上で、そのキーに対応する適切なラベルを決定するために使用されます。 <strong>Android 版 Firefox のみ</strong>。</td>
</tr>
<tr>
<td><code>{{anch("orient")}}</code></td>
<td>範囲のスライダーの向きを設定します。 <strong>Firefox のみ</strong>。</td>
</tr>
<tr>
<td><code>{{anch("results")}}</code></td>
<td>以前の検索クエリーのドロップダウンリストに表示する項目の最大数です。 <strong>Safari のみ。</strong></td>
</tr>
<tr>
<td><code>{{anch("webkitdirectory")}}</code></td>
<td>論理属性で、ユーザーがディレクトリー (または <code>{{anch("multiple")}}</code> も存在すれば複数のディレクトリー) を選択できるようにするかどうかを示します。</td>
</tr>
</tbody>
</table>
<dl>
<dt>{{htmlattrdef("autocorrect")}} {{non-standard_inline}}</dt>
<dd>{{page("/ja/docs/Web/HTML/Element/input/text", "autocorrect-include")}}</dd>
<dt>{{htmlattrdef("incremental")}} {{non-standard_inline}}</dt>
<dd>{{page("/ja/docs/Web/HTML/Element/input/search", "incremental-include")}}</dd>
<dt>{{htmlattrdef("mozactionhint")}} {{non-standard_inline}}</dt>
<dd>{{page("/ja/docs/Web/HTML/Element/input/text", "mozactionhint-include")}}</dd>
<dt>{{htmlattrdef("orient")}} {{non-standard_inline}}</dt>
<dd>{{page("/ja/docs/Web/HTML/Element/input/range", "orient-include")}}</dd>
<dt>{{htmlattrdef("results")}} {{non-standard_inline}}</dt>
<dd>{{page("/ja/docs/Web/HTML/Element/input/search", "results-include")}}</dd>
<dt>{{htmlattrdef("webkitdirectory")}} {{non-standard_inline}}</dt>
<dd>{{page("/ja/docs/Web/HTML/Element/input/file", "webkitdirectory-include")}}</dd>
</dl>
<h2 id="Methods">メソッド</h2>
<p>以下のメソッドは DOM 内で <code><input></code> を表現する {{domxref("HTMLInputElement")}} インターフェイスで提供されます。親インターフェイスである {{domxref("HTMLElement")}}, {{domxref("Element")}}, {{domxref("Node")}}, {{domxref("EventTarget")}} で指定されているメソッドも使用できます。</p>
<dl>
<dt>{{domxref("HTMLInputElement.checkValidity", "checkValidity()")}}</dt>
<dd>要素の妥当性チェックを直ちに実行し、値が妥当でない場合は文書に対して {{domxref("HTMLInputElement.invalid_event", "invalid")}} イベントを要素に発生させます。</dd>
<dt>{{domxref("HTMLInputElement.reportValidity", "reportValidity()")}}</dt>
<dd>要素の値が妥当性チェックを通った場合は <code>true</code> を返します。そうでなければ、 <code>false</code> を返します。</dd>
<dt>{{domxref("HTMLInputElement.select", "select()")}}</dt>
<dd>要素が選択可能な場合、 <code><input></code> 要素の内容を選択します。選択可能なテキストコンテンツがない要素 (カラーピッカーまたはカレンダー日付入力など) では、このメソッドは何もしません。</dd>
<dt>{{domxref("HTMLInputElement.setCustomValidity", "setCustomValidity()")}}</dt>
<dd>入力要素の値が妥当ではないときに表示する独自のメッセージを設定します。</dd>
<dt>{{domxref("HTMLInputElement.setRangeText", "setRangeText()")}}</dt>
<dd>入力要素内の文字の指定された範囲のコンテンツを、指定された文字列に設定します。 <code>selectMode</code> 引数を使用して、既存のコンテンツに影響させる方法を制御することができます。</dd>
<dt>{{domxref("HTMLInputElement.setSelectionRange", "setSelectionRange()")}}</dt>
<dd>テキストの入力要素内で、指定された文字の範囲を選択します。テキスト入力欄として表現されない入力欄では何もしません。</dd>
<dt>{{domxref("HTMLInputElement.stepDown", "stepDown()")}}</dt>
<dd>数値入力欄の値を既定で1、または指定された数値の単位だけ減少させます。</dd>
<dt>{{domxref("HTMLInputElement.stepUp", "stepUp()")}}</dt>
<dd>数値入力欄の値を既定で1、または指定された数値の単位だけ増加させます。</dd>
</dl>
<h2 id="CSS">CSS</h2>
<p>置換要素である入力欄には、フォーム要素以外には適用できない特性がいくつかあります。フォームコントロールをその UI の特性に基づいて指定できる CSS セレクターがあり、 UI 擬似クラスとも呼ばれています。また、属性セレクターを使って、 input 要素を型別に指定することもできます。また、特に便利なプロパティもあります。</p>
<h3 id="UI_pseudo-classes">UI 擬似クラス</h3>
<table class="standard-table">
<caption>{{htmlelement("input")}} 要素に関連する説明</caption>
<thead>
<tr>
<th>擬似クラス</th>
<th>説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{Cssxref(":enabled")}}</td>
<td>現在有効な要素で、アクティブ化 (選択、クリック、入力など) またはフォーカスを受け受け取ることができ、無効な状態、すなわちアクティブ化やフォーカスを受け取ることができない状態を持つものです。</td>
</tr>
<tr>
<td>{{Cssxref(":disabled")}}</td>
<td>現在無効な要素で、有効な状態、すなわち無効化されていなければアクティブ化 (選択、クリック、入力など) やフォーカス��受け取ることができる状態になることができるものです。</td>
</tr>
<tr>
<td>{{Cssxref(":read-only")}}</td>
<td>ユーザーが編集することができない要素</td>
</tr>
<tr>
<td>{{Cssxref(":read-write")}}</td>
<td>ユーザーが編集できる要素です。</td>
</tr>
<tr>
<td>{{Cssxref(":placeholder-shown")}}</td>
<td>現在<a href="/ja/docs/Web/HTML/Element/input#attr-placeholder">プレイスホルダーのテキスト</a>を表示している要素で、 {{HTMLElement("input")}} や {{HTMLElement("textarea")}} 要素に {{anch('htmlattrdefplaceholder', 'placeholder')}} 属性が付いていて、まだ値がないものを含みます。</td>
</tr>
<tr>
<td>{{Cssxref(":default")}}</td>
<td>関連する要素のグループの中で、既定となるフォーム要素です。 {{HTMLElement("input/checkbox", "checkbox")}} や {{HTMLElement("input/radio", "radio")}} の入力型のうち、ページの読み込み時やレンダリング時にチェックされていたものに一致します。</td>
</tr>
<tr>
<td>{{Cssxref(":checked")}}</td>
<td>{{HTMLElement("input/checkbox", "checkbox")}} や {{HTMLElement("input/radio", "radio")}} の入力型のうち、現在チェックされている (また {{HTMLElement("select")}} の {{HTMLElement("option")}} のうち現在選択されているもの) に一致します。</td>
</tr>
<tr>
<td>{{Cssxref(":indeterminate")}}</td>
<td>{{HTMLElement("input/checkbox", "checkbox")}} 要素で indeterminate プロパティが JavaScript から true に設定されている場合、 {{HTMLElement("input/radio", "radio")}} 要素で同じ name の値を持つすべてのラジオボタンがチェックされていない場合、 {{HTMLElement("progress")}} 要素が indeterminate の状態にある場合</td>
</tr>
<tr>
<td>{{Cssxref(":valid")}}</td>
<td>フォームコントロールのうち、制約検証が適用でき、現在妥当であるもの。</td>
</tr>
<tr>
<td>{{Cssxref(":invalid")}}</td>
<td>制約条件の検証が適用され、現在妥当ではないフォームコントロール。 {{anch('htmlattrdefrequired', 'required')}}, {{anch('htmlattrdefpattern', 'pattern')}} , {{anch('htmlattrdefstep', 'step')}}, {{anch('htmlattrdefmax', 'max')}} などの属性で設定された制約条件に値が適合しないフォームコントロールに一致します。</td>
</tr>
<tr>
<td>{{Cssxref(":in-range")}}</td>
<td>空でない入力欄のうち、現在の値が {{anch('htmlattrdefmin', 'min')}} および {{anch('htmlattrdefmax', 'max')}} 属性、および {{anch('htmlattrdefstep', 'step')}} 属性で指定された範囲内にあるもの。</td>
</tr>
<tr>
<td>{{Cssxref(":out-of-range")}}</td>
<td>空でない入力欄のうち、現在の値が {{anch('htmlattrdefmin', 'min')}} および {{anch('htmlattrdefmax', 'max')}} 属性の範囲内にないか、 {{anch('htmlattrdefstep', 'step')}} の制約に準拠していないもの。</td>
</tr>
<tr>
<td>{{Cssxref(":required")}}</td>
<td>{{HTMLElement("input")}}, {{HTMLElement("select")}}, {{HTMLElement("textarea")}} の各要素で、 {{ htmlattrxref("required", "input")}} 属性が設定されているもの。必須になる要素のみに一致します。必須にならない要素にこの属性を設定しても、一致するようにはなりません。</td>
</tr>
<tr>
<td>{{Cssxref(":optional")}}</td>
<td>{{HTMLElement("input")}}, {{HTMLElement("select")}}, {{HTMLElement("textarea")}} の各要素で、 {{ htmlattrxref("required", "input")}} 属性が設定されていないもの。必須になることがない属性には一致しません。</td>
</tr>
<tr>
<td>{{Cssxref(":blank")}}</td>
<td>{{HTMLElement("input")}} および {{HTMLElement("textarea")}} 要素のうち現在値がないものです。</td>
</tr>
<tr>
<td>{{Cssxref(":user-invalid")}}</td>
<td><code>:invalid</code> と似ていますが、フォーカスを失ったときに適用されます。無効な入力欄に一致しますが、コントロールにフォーカスが移動したり、コントロールから離れたり、無効なコントロールを含むフォームを送信しようとしたときなど、ユーザーの操作があって初めて一致します。</td>
</tr>
</tbody>
</table>
<h4 id="Examples">例</h4>
<p>チェックボックスのラベルを、そのチェックボックスがチェックされているかどうかに基づいてスタイル付けすることができます。この例では、 {{cssxref('color')}} と {{cssxref('font-weight')}} でチェックされたボックスの直後にある {{htmlelement('label')}} をスタイル付けしています。 <code>input</code> がチェックされていない場合はスタイルを適用しません。</p>
<div id="checkbox_label">
<pre class="brush: html hidden"><input id="checkboxInput" type="checkbox">
<label for="checkboxInput">このチェックボックスのオンとオフを切り替えてください</label>
</pre>
<pre class="brush: css">input:checked + label {
color: red;
font-weight: bold;
}
</pre>
<p>{{EmbedLiveSample('checkbox_label', 500, 80)}}</p>
</div>
<h3 id="Attribute_selectors"">属性セレクター</h3>
<p><a href="/ja/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors">属性セレクター</a>を使用すると、様々なフォームコントロールの型のターゲットを {{anch('htmlattrdeftype', 'type')}} に基づいて絞ることができます。 CSS の属性セレクターは、属性の有無または属性の値に基づいて要素を照合します。</p>
<pre class="brush: css">/* password 入力欄に一致 */
input[type="password"] {}
/* 妥当な値の範囲が限定されているフォームコントロールに一致 */
input[min][max] {}
/* pattern 属性の付いたフォームコントロールに一致 */
input[pattern] {}</pre>
<h3 id="placeholder">::placeholder</h3>
<p>既定では、プレイスホルダーのテキストは半透明または明るい灰色で表示されます。 {{cssxref('::placeholder')}} 擬似要素は入力欄の <a href="/ja/docs/Learn/Forms#the_placeholder_attribute">プレイスホルダーのテキスト</a>です。これは限定された CSS プロパティでスタイル付けすることができます。</p>
<pre class="brush: css no-line-numbers">::placeholder {
color: blue;
}</pre>
<p>{{cssxref("::first-line")}} 擬似要素に適用できる CSS プロパティのサブセットのみが、セレクターに <code>::placeholder</code> を使用した規則で使用することができます。</p>
<h3 id="appearance">appearance</h3>
<p>{{cssxref("appearance")}} プロパティは、 (ほぼ) あらゆる要素をオペレーティングシステムのテーマに基づいたプラットフォームのネイティブのスタイルで表示したり、 <code>none</code> の値でプラットフォームのネイティブのスタイルを削除したりすることができます。</p>
<p><code><div></code> に <code>div {appearance: radio;}</code> を設定してラジオボタンのように見せたり、 <code>[type="checkbox] {appearance: checkbox;}</code> でチェックボックスのように見せたりすることができますが、やらないでください。</p>
<p><code>appearance: none</code> を設定するとプラットフォームのネイティブの境界が削除されますが、機能は削除されません。</p>
<h3 id="caret-color">caret-color</h3>
<p>テキスト入力関連要素に特有のプロパティとして CSS の {{cssxref("caret-color")}} プロパティがあり、テキスト入力欄のキャレットを描くのに使用する色を設定することができます。</p>
<h4 id="HTML">HTML</h4>
<pre class="brush: html"><label for="textInput">赤いキャレットに注意:</label>
<input id="textInput" class="custom" size="32">
</pre>
<h4 id="CSS_2">CSS</h4>
<pre class="brush: css">input.custom {
caret-color: red;
font: 16px "Helvetica", "Arial", "sans-serif"
}
</pre>
<h4 id="Result">結果</h4>
<p>{{EmbedLiveSample('caret-color', 500, 80)}}</p>
<h3 id="object-position_and_object-fit">object-position と object-fit</h3>
<p><code><input></code> 要素は特定の場合 (多くはテキスト以外の入力や特殊なインターフェイス) には、<a href="/ja/docs/Web/CSS/Replaced_element">置換要素</a>になることがあります。その場合、 CSS の {{cssxref("object-position")}} および {{cssxref("object-fit")}} プロパティを使って、要素の枠内での大きさと位置を調整することができます。</p>
<h3 id="Styling">スタイル付け</h3>
<p>HTML の要素に色を追加することの関する詳しい情報は、次の記事を参照してください。</p>
<ul>
<li><a href="/ja/docs/Web/HTML/Applying_color">CSS を使った HTML の要素への色の適用</a></li>
</ul>
<p>こちらも参照してください。</p>
<ul>
<li><a href="/ja/docs/Learn/Forms/Styling_web_forms">HTML フォームへのスタイル設定</a>、<a href="/ja/docs/Learn/Forms/Advanced_form_styling">HTML フォームへの高度なスタイル設定</a>、</li>
<li><a href="/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls"> フォームウィジェット向けプロパティ実装状況一覧</a></li>
</ul>
<h2 id="Additional_features">追加機能</h2>
<h3 id="Labels">ラベル</h3>
<p>ラベルは支援テキストを <code><input></code> に関連付けるために必要です。 {{HTMLElement("label")}} 要素は、フォームの入力欄を説明するために、 (レイアウト方法はさておき) <em>常に</em>適切な手段です。 <code><label></code> を使用して <code><input></code> や {{HTMLElement("textarea")}} に何を入力するべきかを説明することは、決して悪い考えではありません。</p>
<h4 id="Associated_labels">関連付けられたラベル</h4>
<p><code><input></code> 要素と <code><label></code> 要素を意味的に連携させると、読み上げアプリなどの支援技術に役立ちます。 <code><label></code> の {{htmlattrxref("for", "label")}} 属性を使って連携させることで、ラベルと入力欄を結び付け、読み上げアプリがユーザーに入力欄についてより正確に説明できるようになります。</p>
<p><code><input></code> 要素にプレーンテキストが隣接しているだけでは十分ではありません。ユーザビリティとアクセシビリティのためには、暗黙的または明示的な {{HTMLElement("label")}} を含めることが必要です。</p>
<pre class="brush: html"><!-- アクセシブルではない -->
<p>名前を入力してください: <input id="name" type="text" size="30"></p>
<!-- 暗黙的なラベル -->
<p><label>名前を入力してください: <input id="name" type="text" size="30"></label></p>
<!-- 明示的なラベル -->
<p><label for="name">名前を入力してください: </label><input id="name" type="text" size="30"></p></pre>
<p>最初の例は、プロンプトと <code><input></code> 要素の間に関係がないため、アクセシブルではありません。</p>
<p>ラベルはアクセシブルな名前を提供するばかりではなく、マウスやタッチパネルのユーザーがクリックしたりタッチしたりする際に、「ヒット」領域を拡大することができます。 <code><label></code> と <code><input></code> を連携させることで、どちらかをクリックすると <code><input></code> にフォーカスが当たります。入力欄の「ラベル」にプレーンテキストを使用した場合、このようなことは起こりません。入力欄のアクティベーション領域にプロンプト部分が含まれていると、運動制御の条件を持つ人には便利です。</p>
<p>ウェブ開発者として大切なのは、私たちが知っていることを、人々がすべて知っていると思わないことです。ウェブを利用する人々に多様性があるということは、自分のウェブサイトにも及ぶことですが、サイトの訪問者の中には、思考プロセスや状況に何らかの違いがあり、明確で適切なラベルがなければ、あなたのフォームをあなたとは全く異なるように解釈する人がいるということでもあります。</p>
<h4 id="Placeholders_are_not_accessible">プレイスホルダーはアクセシブルではない</h4>
<p>{{htmlattrxref("placeholder", "input")}} 属性で、 <code><input></code> 要素が空の時にコンテンツ領域に表示されるテキストを指定することができます。プレイスホルダーは、フォームを理解するために決して必要なものではありません。プレイスホルダーはラベルではありませんので、代用として使用してはいけません。プレイスホルダーは、入力された値がどのように見えるかのヒントを提供するために使用されるもので、説明やプロンプトではありません。</p>
<p>プレイスホルダーは、読み上げアプリがアクセスできないだけでなく、ユーザーがフォームコントロールにテキストを入力したり、フォームコントロールにすでに値があったりした場合、プレイスホルダーは非表示になります。自動ページ翻訳機能を持つブラウザーは、翻訳時にこの属性をスキップすることがあります。すなわち <code>placeholder</code> は翻訳されないことがあります。</p>
<div class="notecard note">
<p>避けることができるのであれば、 {{htmlattrxref("placeholder", "input")}} 属性を使用しないでください。 <code><input></code> 要素にラベルを付ける必要があるのであれば、 {{HTMLElement("label")}} 属性を使用してください。</p>
</div>
<h3 id="Client-side_validation">クライアント側検証</h3>
<div class="notecard warning">
<p><strong>警告:</strong> クライアント側の検証は便利ですが、サーバーが妥当なデータを受け取ることを保証するものではありません。データが特定の形式でなければならない場合は、必ずサーバー側でも検証を行い、形式が無効な場合は <a href="/ja/docs/Web/HTTP/Status/400">HTTP の 400 レスポンス</a>を返してください。</p>
</div>
<p>上記の {{anch('UI pseudo-classes', 'UI 擬似クラス')}}の節で述べたように、 CSS を用いて、それぞれの入力欄の現在の状態に基づく {{cssxref(":valid")}} または {{cssxref(":invalid")}} の UI 状態に基づいて入力欄にスタイル付けをすることに加え、フォームを送信 (しようと) したときに、ブラウザーはクライアント側の検証を行います。フォームを送信する時に、制約検証に不合格になったフォームコントロールがある場合、対応しているブラウザーは、最初の無効なフォームコントロールにエラーメッセージを表示します。エラー種別に基づいた既定のメッセージを表示したり、ユーザーが設定したメッセージを表示したりします。</p>
<p>一部の入力型やその他の属性によっては、入力に対して妥当な値を制限するものがあります。例えば、 <code><input type="number" min="2" max="10" step="2"></code> の場合、2、4、6、8、10 の数値のみが妥当になります。値が 2 より小さい場合は <code>rangeUnderflow</code> エラー、 10 より大きい場合は <code>rangeOverflow</code>、値が 2 から 10 の間の数字で偶数の整数でない (<code>step</code> 属性の要件に合わない) 場合は <code>typeMismatch</code>、値が数字でない場合は <code>typeMismatch</code> など、いくつかの種類のエラーが発生する可能性があります。</p>
<p>可能な値の範囲が周期的な (つまり、値が取りうる最大値で終了するのではなく、最初に戻る) 入力型では、 {{htmlattrxref("max")}} プロパティと {{htmlattrxref("min")}} プロパティの値を逆にして、許可される値の範囲が <code>min</code> から始まり、可能な最小値まで回り込んで、 <code>max</code> に達するまで続くことを示すことが可能です。これは日付や時刻の場合、例えば午後 8 時から午前 8 時までの範囲を許可したい場合などに特に便利です。</p>
<pre class="brush: html"><input type="time" min="20:00" max="08:00" name="overnight"></pre>
<p>決まった属性と値の組み合わせが、 {{domxref('ValidityState')}} の決まったエラーを発生させます。</p>
<table class="standard-table">
<caption>{{htmlelement('input')}} の属性とその値による検証オブジェクトエラー</caption>
<thead>
<tr>
<th scope="col">属性</th>
<th scope="col">関連するプロパティ</th>
<th scope="col">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{anch('htmlattrdefmax', 'max')}}</td>
<td>{{domxref('validityState.rangeOverflow')}}</td>
<td>値が <code>max</code> 属性で定義された最大値よりも大きい場合に発生する</td>
</tr>
<tr>
<td>{{anch('htmlattrdefmaxlength', 'maxlength')}}</td>
<td>{{domxref('validityState.tooLong')}}</td>
<td><code>maxlength</code> プロパティで許可された値よりも文字数が多い場合に発生する</td>
</tr>
<tr>
<td>{{anch('htmlattrdefmin', 'min')}}</td>
<td>{{domxref('validityState.rangeUnderflow')}}</td>
<td>値が <code>min</code> 属性で定義された最小値よりも小さい場合には発生する</td>
</tr>
<tr>
<td>{{anch('htmlattrdefminlength', 'minlength')}}</td>
<td>{{domxref('validityState.tooShort')}}</td>
<td><code>minlength</code> プロパティで必要とされる値よりも文字数が少ない場合に発生する</td>
</tr>
<tr>
<td>{{anch('htmlattrdefpattern', 'pattern')}}</td>
<td>{{domxref('validityState.patternMismatch')}}</td>
<td>pattern 属性に妥当な正規表現が設定されており、 <code>value</code> がそれに一致しない場合に発生する。</td>
</tr>
<tr>
<td>{{anch('htmlattrdefrequired', 'required')}}</td>
<td>{{domxref('validityState.valueMissing')}}</td>
<td><code>required</code> 属性があるにもかかわらず、値が <code>null</code> であるか、ラジオボタンやチェックボックスがチェックされていない場合に発生する。</td>
</tr>
<tr>
<td>{{anch('htmlattrdefstep', 'step')}}</td>
<td>{{domxref('validityState.stepMismatch')}}</td>
<td>値が step の増分に一致していない。増分の既定値は <code>1</code> であるため、 <code>type="number"</code> で step が指定されていない場合は整数のみが妥当になります。 <code>step="any"</code> ではこのエラーは発生しません。</td>
</tr>
<tr>
<td>{{anch('htmlattrdeftyoe', 'type')}}</td>
<td>{{domxref('validityState.typeMismatch')}}</td>
<td>値が正しい型ではない場合、例えばメールアドレスに <code>@</code> が含まれていない場合や、 URL にプロトコルが含まれていない場合に発生します。</td>
</tr>
</tbody>
</table>
<p>フォームコントロールに <code>required</code> 属性がない場合、値がないことや空文字列は無効にはなりません。 <code>required</code> 以外の上記の属性があった場合も、空文字列でエラーにはなりません。</p>
<p>どのような値を受け入れることができるかの制限を設けることができるので、対応しているブラウザーはこれらのフォームの値をネイティブに検証し、フォームの送信時に誤りがある場合はユーザーに警告を発します。</p>
<p>上記の表で説明したエラーに加え、 <code>validityState</code> インターフェイスには <code>badInput</code>, <code>valid</code>, <code>customError</code> の boolean の読み取り専用プロパティがあります。検証オブジェクトに含まれるのは次の通りです。</p>
<ul>
<li>{{domxref('validityState.valueMissing')}}</li>
<li>{{domxref('validityState.typeMismatch')}}</li>
<li>{{domxref('validityState.patternMismatch')}}</li>
<li>{{domxref('validityState.tooLong')}}</li>
<li>{{domxref('validityState.tooShort')}}</li>
<li>{{domxref('validityState.rangeUnderflow')}}</li>
<li>{{domxref('validityState.rangeOverflow')}}</li>
<li>{{domxref('validityState.stepMismatch')}}</li>
<li>{{domxref('validityState.badInput')}}</li>
<li>{{domxref('validityState.valid')}}</li>
<li>{{domxref('validityState.customError')}}</li>
</ul>
<p>これらの Boolean プロパティではそれぞれ、 <code>true</code> の値で指定された観点の検証に合格しなかった可能性があることを示しますが、 <code>valid</code> プロパティは例外で、その要素の値がすべての検証に合格したときに <code>true</code> になります。</p>
<p>エラーがあった場合、対応しているブラウザーでは、ユーザーに警告するとともに、フォームの送信を阻止します。注意点としては、独自のエラーに真とみなされる値 (空の文字列や <code>null</code> 以外) が設定されていると、フォームの送信が阻止されます。独自のエラーメッセージがなく、他のどのプロパティも true を返さない場合、 <code>valid</code> は true となり、フォームは送信されます。</p>
<pre class="brush: js">function validate(input) {
let validityState_object = input.validity;
if(validityState_object.valueMissing) {
input.setCustomValidity('A value is required');
} else if (input.rangeUnderflow) {
input.setCustomValidity('Your value is too low');
} else if (input.rangeOverflow) {
input.setCustomValidity('Your value is too high');
} else {
input.setCustomValidity('');
}
}</pre>
<p>最後の行、独自の検証メッセージをエラー文字列に設定することが重要です。ユーザーがエラーを起こし、 validity が設定されている場合、すべての値が妥当であっても、メッセージが <code>null</code> になるまで送信に失敗します。</p>
<h4 id="Example">例</h4>
<p>フィールドの検査に不合格になった場合に独自のエラーメッセージを表示させたい場合は、 <code><input></code> (および関連する) 要素で利用できる<a href="/ja/docs/Web/API/Constraint_validation#constraint_validation_interfaces">制約検証機能</a>を使用する必要があります。以下のような形を取ってください。</p>
<pre class="brush: html notranslate"><form>
<label for="name">ユーザー名を入力してください (英大文字および小文字): </label>
<input type="text" name="name" id="name" required pattern="[A-Za-z]+">
<button>Submit</button>
</form></pre>
<p>基本的な HTML フォーム検証機能では、フォームを送信しようとしたときに、妥当な値が入力されていなかったり、 <code>pattern</code> と一致しない値が入力されていたりすると、既定のエラーメッセージを生成します。</p>
<p>独自のエラーメッセージで代替したい場合は、以下のような JavaScript を使用することができます。</p>
<pre class="brush: js">const nameInput = document.querySelector('input');
const form = document.querySelector('form');
nameInput.addEventListener('input', () => {
nameInput.setCustomValidity('');
nameInput.checkValidity();
});
nameInput.addEventListener('invalid', () => {
if(nameInput.value === '') {
nameInput.setCustomValidity('名前を入力してください。');
} else {
nameInput.setCustomValidity('ユーザー名には英大文字と小文字のみが使えます。入力しなおしてください。');
}
});</pre>
<p>この例は次のように表示されます。</p>
<p>{{EmbedLiveSample('Client-side_validation')}}</p>
<p>簡単に言えば、以下の通りです。</p>
<ul>
<li>input 要素が妥当であるかの状態をチェックするために、値が変更されるたびに <code>checkValidity()</code> メソッドを <code>input</code> イベントハンドラーから呼び出します。</li>
<li>値が妥当ではない場合、 <code>invalid</code> イベントが発行され、 <code>invalid</code> イベントのハンドラー関数が実行されます。この関数の中で、値が無効である原因が空欄であるためであるか、パターンに一致しないためであるかを確認し、 <code>if()</code> ブロックを使用して、独自の検証エラーメッセージを設定します。</li>
<li>結果として、送信ボタンが押されたときに入力値が妥当ではない場合は、独自のエラーメッセージのうちの一つが表示されます。</li>
<li>妥当である場合は、期待通りに送信されます。この場合、独自の検証は <code>setCustomValidity()</code> を空文字列で呼び出すことで中断されます。従って、 <code>input</code> イベントが発生するたびにこれが行われます。以前、独自の検証が設定され、これを行わないと、送信時に妥当な値を持っていたとしても、入力欄は無効であるとして登録されます。</li>
</ul>
<div class="notecard note">
<p><strong>注:</strong> 常に、クライアント側とサーバー側の両方で入力値の制約を検証するようにしてください。制約検証は、<em>サーバー側</em>での検証の必要性をなくすものではありません。古いブラウザーや悪意のある人物によって、無効な値が送信される可能性があります。</p>
</div>
<div class="notecard note">
<p><strong>注</strong>: Firefox は多くの版で、同様の方法で独自のエラーメッセージを設定することができる、独自のエラー属性 — <code>x-moz-errormessage</code> — に対応していました。これはバージョン66で削除されました ({{bug(1513890)}} を参照)。</p>
</div>
<h3 id="Localization">ローカライズ</h3>
<p><input> 型によっては、入力可能な文字列がロケールに依存します。ロケールによっては 1,000.00 が妥当な数値である一方、ロケールによっては妥当な数値は 1.000,00 です。</p>
<p>Firefox は (少なくとも <code>type="number"</code> において) ユーザーの入力内容を検証する際に、ロケールを特定するために以下の経験則を使用します。</p>
<ul>
<li>当該要素または親要素の <code>lang</code>/<code>xml:lang</code> 属性で指定された言語</li>
<li>HTTP の Content-Language ヘッダーで指定された言語</li>
<li>何も指定されていない場合は、ブラウザーのロケール</li>
</ul>
<h3 id="Technical_summary">技術的概要</h3>
<table class="properties">
<tbody>
<tr>
<th scope="row"><a href="/ja/docs/Web/Guide/HTML/Content_categories">コンテンツカテゴリ</a></th>
<td><a href="/ja/docs/Web/Guide/HTML/Content_categories#flow_content">フローコンテンツ</a>、リスト化、サブミット可能、リセット可能、フォーム関連要素、<a href="/ja/docs/Web/Guide/HTML/Content_categories#phrasing_content">記述コンテンツ</a>。{{htmlattrxref("type", "input")}} の値が <code>hidden</code> でない場合はラベル付け可能要素、知覚可能コンテンツ。</td>
</tr>
<tr>
<th scope="row">許可されている内容</th>
<td>なし。これは{{Glossary("empty element", "空要素")}}です。</td>
</tr>
<tr>
<th scope="row">タグの省略</th>
<td>開始タグは必須。終了タグを記述してはなりません。</td>
</tr>
<tr>
<th scope="row">許可されている親要素</th>
<td><a href="/ja/docs/Web/Guide/HTML/Content_categories#phrasing_content">記述コンテンツ</a>を受け入れるすべての要素。</td>
</tr>
<tr>
<th scope="row">暗黙の ARIA ロール</th>
<td>
<ul>
<li><code>type=button</code>: <code><a href="/ja/docsWeb/Accessibility/ARIA/Roles/button_role">button</a></code></li>
<li><code>type=checkbox</code>: <code><a href="/ja/docsWeb/Accessibility/ARIA/Roles/checkbox_role">checkbox</a></code></li>
<li><code>type=email</code>
<ul>
<li><code>list</code> 属性がない場合: <code><a href="/ja/docsWeb/Accessibility/ARIA/Roles/textbox_role">textbox</a></code></li>
<li><code>list</code> 属性がある場合: {{ARIARole("combobox")}}</li>
</ul>
</li>
<li><code>type=image</code>: <code><a href="/ja/docsWeb/Accessibility/ARIA/Roles/button_role">button</a></code></li>
<li><code>type=number</code>: {{ARIARole("spinbutton")}}</li>
<li><code>type=radio</code>: {{ARIARole("radio")}}</li>
<li><code>type=range</code>: {{ARIARole("slider")}}</li>
<li><code>type=reset</code>: <code><a href="/ja/docsWeb/Accessibility/ARIA/Roles/button_role">button</a></code></li>
<li><code>type=search</code>
<ul>
<li><code>list</code> 属性がない場合: {{ARIARole("searchbox")}}</li>
<li><code>list</code> 属性がある場合: {{ARIARole("combobox")}}</li>
</ul>
</li>
<li><code>type=submit</code>: <code><a href="/ja/docsWeb/Accessibility/ARIA/Roles/button_role">button</a></code></li>
<li><code>type=tel</code>
<ul>
<li><code>list</code> 属性がない場合: <code><a href="/ja/docsWeb/Accessibility/ARIA/Roles/textbox_role">textbox</a></code></li>
<li><code>list</code> 属性がある場合: {{ARIARole("combobox")}}</li>
</ul>
</li>
<li><code>type=text</code>
<ul>
<li><code>list</code> 属性がない場合: <code><a href="/ja/docsWeb/Accessibility/ARIA/Roles/textbox_role">textbox</a></code></li>
<li><code>list</code> 属性がある場合: {{ARIARole("combobox")}}</li>
</ul>
</li>
<li><code>type=url</code>
<ul>
<li><code>list</code> 属性がない場合: <code><a href="/ja/docsWeb/Accessibility/ARIA/Roles/textbox_role">textbox</a></code></li>
<li><code>list</code> 属性がある場合: {{ARIARole("combobox")}}</li>
</ul>
</li>
<li><code>type=color|date|datetime-local|file|hidden|month|password|time|week</code>: <a href="https://www.w3.org/TR/html-aria/#dfn-no-corresponding-role">no corresponding role</a></li>
</ul>
</td>
</tr>
<tr>
<th scope="row">許可されている ARIA ロール</th>
<td>
<ul>
<li><code>type=button</code>: {{ARIARole("link")}}, {{ARIARole("menuitem")}}, {{ARIARole("menuitemcheckbox")}}, {{ARIARole("menuitemradio")}}, {{ARIARole("option")}}, {{ARIARole("radio")}}, {{ARIARole("switch")}}, {{ARIARole("tab")}}</li>
<li><code>type=checkbox</code>: {{ARIARole("button")}} when used with <code>aria-pressed</code>, {{ARIARole("menuitemcheckbox")}}, {{ARIARole("option")}}, {{ARIARole("switch")}}</li>
<li><code>type=image</code>: {{ARIARole("link")}}, {{ARIARole("menuitem")}}, {{ARIARole("menuitemcheckbox")}}, {{ARIARole("menuitemradio")}}, {{ARIARole("radio")}}, {{ARIARole("switch")}}</li>
<li><code>type=radio</code>: {{ARIARole("menuitemradio")}}</li>
<li><code>type=text</code> で <code>list</code> 属性がない場合: {{ARIARole("combobox")}}, {{ARIARole("searchbox")}}, {{ARIARole("spinbutton")}}</li>
<li><code>type=color|date|datetime|datetime-local|email|file|hidden|month|number|password|range|reset|search|submit|tel|url|week</code> または <code>text</code> に <code>list</code> 属性が付いたもの: 許可されている <code>role</code> なし</li>
</ul>
</td>
</tr>
<tr>
<th scope="row">DOM インターフェイス</th>
<td>{{domxref("HTMLInputElement")}}</td>
</tr>
</tbody>
</table>
<h2 id="Specifications" name="Specifications">仕様書</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">仕様書</th>
<th scope="col">状態</th>
<th scope="col">備考</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('HTML WHATWG', 'forms.html#the-input-element', '<input>')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('HTML Media Capture', '#the-capture-attribute','capture attribute')}}</td>
<td>{{Spec2('HTML Media Capture')}}</td>
<td><code>capture</code> 属性を追加</td>
</tr>
<tr>
<td>{{SpecName('HTML5 W3C', 'sec-forms.html#the-input-element', '<input>')}}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('HTML4.01', 'interact/forms.html#h-17.4', '<form>')}}</td>
<td>{{Spec2('HTML4.01')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Accessibility_concerns">アクセシビリティの考慮</h2>
<h3 id="Labels_2">ラベル</h3>
<p>入力欄を設定する際、ラベルを一緒に付けることがアクセシビリティ上の要件です。これは、支援技術を使っている人が、何のための入力なのかを知るために必要です。また、ラベルをクリックまたはタッチすると、ラベルに関連付けられたフォームコントロールにフォーカスが設定されます。これにより、目の不自由なユーザーのアクセシビリティとユーザビリティが向上し、ユーザーがクリックまたはタッチしてフォームコントロールを起動できる領域が増えます。この機能は、ラジオボタンやチェックボックスのような小さなフォームコントロールに特に便利です。ラベルの詳細については、{{anch("Labels", "ラベル")}}を参照してください。</p>
<p>次の例は、上記の形で <code><label></code> を <code><input></code> 要素に関連付ける方法の例です。 <code><input></code> に <code>id</code> 属性を設定する必要があります。そして <code><label></code> には入力欄の <code>id</code> と同じ値を持つ <code>for</code> 属性が必要になります。</p>
<pre><label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas">
</pre>
<h3 id="Size">大きさ</h3>
<p>フォーム入力欄のような対話型要素は、簡単に有効化できるだけの大きさを持たせてください。これにより、手足の不自由な人や、スタイラスや指のような精度の低い入力方法を使用している人など、様々な人にとって有用です。対話型の大きさとしては、 44×44 <a href="https://www.w3.org/TR/WCAG21/#dfn-css-pixels">CSS ピクセル</a> を最小値とすることが推奨されています。</p>
<ul>
<li><a href="https://www.w3.org/WAI/WCAG21/Understanding/target-size.html">Understanding Success Criterion 2.5.5: Target Size | W3C Understanding WCAG 2.1</a></li>
<li><a href="http://adrianroselli.com/2019/06/target-size-and-2-5-5.html">Target Size and 2.5.5 | Adrian Roselli</a></li>
<li><a href="https://a11yproject.com/posts/large-touch-targets/">Quick test: Large touch targets - The A11Y Project</a></li>
</ul>
<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
<div>{{Compat("html.elements.input")}}</div>
<h2 id="See_also">関連情報</h2>
<ul>
<li><a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">フォーム制約検証</a></li>
<li><a href="/ja/docs/Learn/Forms/Your_first_form">初めての HTML フォーム</a></li>
<li><a href="/ja/docs/Learn/Forms/How_to_structure_a_web_form">HTML フォームを構成する方法</a></li>
<li><a href="/ja/docs/Learn/Forms/Basic_native_form_controls">ネイティブのフォームウィジェット</a></li>
<li><a href="/ja/docs/Learn/Forms/Sending_and_retrieving_form_data">フォームデータの送信</a></li>
<li><a href="/ja/docs/Learn/Forms/Form_validation">フォームデータの検証</a></li>
<li><a href="/ja/docs/Learn/Forms/How_to_build_custom_form_controls">カスタムフォームコントロールの作成方法</a></li>
<li><a href="/ja/docs/Learn/Forms/HTML_forms_in_legacy_browsers">古いブラウザーでの HTML フォーム</a></li>
<li><a href="/ja/docs/Learn/Forms/Styling_web_forms">HTML フォームへのスタイル設定</a></li>
<li><a href="/ja/docs/Learn/Forms/Advanced_form_styling">HTML フォームへの高度なスタイル設定</a></li>
<li><a href="/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls">CSS プロパティの互換性一覧表</a></li>
</ul>
|