1 |
wakaba |
1.1 |
* [CODE(HTMLe)@en[input]] 要素 [CODE(HTMLa)@en[step]] 属性 (HTML)
|
2 |
|
|
|
3 |
|
|
[2] [[HTML]] の [CODE(HTMLe)@en[[[input]]]] [[要素]]の
|
4 |
|
|
[DFN[[CODE(HTMLa)@en[step]] [[属性]]]]は、
|
5 |
|
|
[[フォーム制御子]]の[[精度]]を制御します。
|
6 |
|
|
[[日時]]や[[数値]]に関係する [CODE(HTMLa)@en[[[type]]]]
|
7 |
|
|
に対して有効です。
|
8 |
|
|
[SRC@en[WF2 2.4.2]]
|
9 |
|
|
|
10 |
|
|
[4]
|
11 |
|
|
:状態:[[WHATWG]] [[WD]]
|
12 |
|
|
:[[要素型]]:[CODE(HTMLe)@en[[QN[[[input]]][[[http://www.w3.org/1999/xhtml]]]]]]
|
13 |
|
|
:[CODE(HTMLa)@en[[[type]]]]:
|
14 |
|
|
[CODE(HTML)@en[[[date]]]],
|
15 |
|
|
[CODE(HTML)@en[[[datetime]]]],
|
16 |
|
|
[CODE(HTML)@en[[[datetime-local]]]],
|
17 |
|
|
[CODE(HTML)@en[[[month]]]],
|
18 |
|
|
[CODE(HTML)@en[[[time]]]],
|
19 |
|
|
[CODE(HTML)@en[[[week]]]],
|
20 |
|
|
[CODE(HTML)@en[[[number]]]],
|
21 |
|
|
[CODE(HTML)@en[[[range]]]]
|
22 |
|
|
:[[属性名]]:[CODE(HTMLa)@en[[[step]]]]
|
23 |
|
|
([Q@en[[[step]]]] ([Q[[[段階]]]]) より)
|
24 |
|
|
:[[属性値]]:[CODE(HTMLa)@en[[[type]]]] に依存 (>>5)
|
25 |
|
|
:[[既定値]]:[CODE(HTMLa)@en[[[type]]]] に依存 (>>6)
|
26 |
|
|
|
27 |
|
|
[3] 仕様書:
|
28 |
|
|
- [[Web Forms 2.0]]
|
29 |
|
|
-- [CSECTION@en[2.4.2. Precision]]
|
30 |
|
|
<IW:WF2:"#precision">
|
31 |
|
|
|
32 |
|
|
** 属性値
|
33 |
|
|
|
34 |
|
|
[5] [SRC@en[WF2 2.4, 2.4.2]]
|
35 |
|
|
,[CODE(HTMLa)@en[[[type]]]],[[属性値]],[[既定値]]
|
36 |
|
|
,[CODE(HTML)@en[[[date]]]],[[日]]数,[CODE(HTML)[[[1]]]] (1[[日]])
|
37 |
|
|
,[CODE(HTML)@en[[[datetime]]]],[[秒]]数,[CODE(HTML)[[[60]]]] (1[[分]])
|
38 |
|
|
,[CODE(HTML)@en[[[datetime-local]]]],[[秒]]数,[CODE(HTML)[[[60]]]] (1[[分]])
|
39 |
|
|
,[CODE(HTML)@en[[[month]]]],[[月]]数,[CODE(HTML)[[[1]]]] (1ヶ[[月]])
|
40 |
|
|
,[CODE(HTML)@en[[[number]]]],値,[CODE(HTML)[[[1]]]]
|
41 |
|
|
,[CODE(HTML)@en[[[range]]]],値,[CODE(HTML)[[[1]]]]
|
42 |
|
|
,[CODE(HTML)@en[[[time]]]],[[秒]]数,[CODE(HTML)[[[60]]]] (1[[分]])
|
43 |
|
|
,[CODE(HTML)@en[[[week]]]],[[週]]数,[CODE(HTML)[[[1]]]] (1[[週間]])
|
44 |
|
|
|
45 |
|
|
[12]
|
46 |
|
|
[[時刻]]系[[制御子]]では、
|
47 |
|
|
[CODE(HTMLa)@en[[[step]]]] [[属性値]]は[[秒]]数です。
|
48 |
|
|
[[秒]][[未満]]の値のために[[小数]]を使用[['''して構いません''']]。
|
49 |
|
|
書式は、それぞれの [CODE(HTML)@en[[[number]]]]
|
50 |
|
|
の[[値]]に用いられるものと同じですが、
|
51 |
|
|
[[零]]よりも大きく[['''しなければなりません''']]。
|
52 |
|
|
[SRC@en[WF2 2.4.2]]
|
53 |
|
|
|
54 |
|
|
[6]
|
55 |
|
|
[[日付]]系[[制御子]]では、
|
56 |
|
|
[CODE(HTMLa)@en[[[step]]]] [[属性値]]は[[日]]、[[週]]、[[月]]の数です。
|
57 |
|
|
書式は1[[桁]][[以上]]の [CODE(HTML)[[[0]]]]〜[CODE(HTML)[[[9]]]]
|
58 |
|
|
で、[[十進数]]として解釈されます。
|
59 |
|
|
[[零]]は[[既定値]]として解釈されます。
|
60 |
|
|
[SRC@en[WF2 2.4.2]]
|
61 |
|
|
|
62 |
|
|
[14]
|
63 |
|
|
[[数値]]系[[制御子]]では、
|
64 |
|
|
書式は [CODE(HTML)@en[[[number]]]] の[[値]]と同じですが、
|
65 |
|
|
[[零]]よりも大きく[['''しなければなりません''']]。
|
66 |
|
|
[SRC@en[WF2 2.4.2]]
|
67 |
|
|
|
68 |
|
|
[18]
|
69 |
|
|
更に、いずれの [CODE(HTMLa)@en[[[type]]]] でも、
|
70 |
|
|
[CODE(HTML)@en[[[any]]]]
|
71 |
|
|
という特別な値を使用[['''して構いません''']]。
|
72 |
|
|
この[[値]]は、どんな[[値]]も使用[['''して構いません''']]と示すことになります。
|
73 |
|
|
[SRC@en[WF2 2.4.2]]
|
74 |
|
|
|
75 |
|
|
;; [CODE(HTMLa)@en[[[step]]]] に関する制約はなくなりますが、
|
76 |
|
|
その他の制約は通常通り適用されます。
|
77 |
|
|
|
78 |
|
|
[22] [[著者]]が与えた [CODE(HTMLa)@en[[[step]]]]
|
79 |
|
|
が適切な[[値]]でなければ、
|
80 |
|
|
[[既定値]]が用いられます。
|
81 |
|
|
[SRC@en[WF2 2.4.2]]
|
82 |
|
|
|
83 |
|
|
[[#comment]]
|
84 |
|
|
|
85 |
|
|
** 妥当性
|
86 |
|
|
|
87 |
|
|
[7] [[フォーム制御子]]が[[妥当]]となるためには、
|
88 |
|
|
基準点から [CODE(HTMLa)@en[[[step]]]]
|
89 |
|
|
の[[整数倍]]の[[値]]を有[['''しなければなりません''']]。
|
90 |
|
|
[SRC@en[WF2 2.4.2]]
|
91 |
|
|
|
92 |
|
|
[8] ここでいう基準点は、
|
93 |
|
|
[CODE(HTMLa)@en[[[min]]]] [[属性値]]か、
|
94 |
|
|
なければ [CODE(HTMLa)@en[[[max]]]]
|
95 |
|
|
[[属性値]]か、それもなければ[[零点]]です。
|
96 |
|
|
[SRC@en[WF2 2.4.2]]
|
97 |
|
|
|
98 |
|
|
[20]
|
99 |
|
|
[[値]]が [CODE(HTMLa)@en[[[step]]]] に照らして適切でなければ、
|
100 |
|
|
[CODE(DOM)@en[[[stepMismatch]]]] [[妥当性検証誤り]]が用いられます。
|
101 |
|
|
しかし、[[利用者エージェント]]は、この[[誤り]]を[[報告]]する代わりに、
|
102 |
|
|
[[数値]]を [CODE(HTMLa)@en[[[step]]]] で認められる直近の[[値]]に黙って[[丸め]]ることに[['''して構いません''']]。
|
103 |
|
|
[SRC@en[WF2 2.4.2]]
|
104 |
|
|
|
105 |
|
|
;; しかし、その[[丸め]]により、
|
106 |
|
|
[[値]]が範囲外になり、 [CODE(DOM)@en[[[rangeOverflow]]]]
|
107 |
|
|
などの[[妥当性検証誤り]]が生じることもあります。
|
108 |
|
|
|
109 |
|
|
[[#comment]]
|
110 |
|
|
|
111 |
|
|
** レンダリング
|
112 |
|
|
|
113 |
|
|
[11]
|
114 |
|
|
[CODE(HTMLa)@en[[[step]]]] [[属性]]を[[利用者界面]]にどう反映させるべきかは、
|
115 |
|
|
[[Web Forms 2.0]] では規定していませんが、
|
116 |
|
|
[CODE(HTMLa)@en[[[step]]]] が [CODE(HTML)[[[1]]]]
|
117 |
|
|
の [CODE(HTML)@en[[[datetime]]]] について、
|
118 |
|
|
|
119 |
|
|
<IMG:http://www.whatwg.org/specs/web-forms/current-work/sample-datetime-ui-1>
|
120 |
|
|
|
121 |
|
|
のように、[[文章入力制御子]]のうち、
|
122 |
|
|
[[年]]〜[[秒]]がそれぞれ編集可能になっており、
|
123 |
|
|
[[暦]]や[[時計]]を表示するための[[ボタン]]が付されている例を示しています。
|
124 |
|
|
[SRC@en[WF2 2.4.2]]
|
125 |
|
|
|
126 |
|
|
[[#comment]]
|
127 |
|
|
|
128 |
|
|
** 実装の精度
|
129 |
|
|
|
130 |
|
|
[21]
|
131 |
|
|
[[著者]]が [CODE(HTMLa)@en[[[step]]]]
|
132 |
|
|
で指定した[[値]]が[[利用者エージェント]]にとって小さすぎる時、
|
133 |
|
|
[[利用者エージェント]]は [CODE(HTML)@en[[[any]]]]
|
134 |
|
|
であるかのように取り扱い[['''するべきです''']]。
|
135 |
|
|
[SRC@en[WF2 2.4.2]]
|
136 |
|
|
|
137 |
|
|
;; 例えば、多くの[[利用者エージェント]]では
|
138 |
|
|
[CODE(HTML)@en[[[1e-9999999]]]]
|
139 |
|
|
は [[underflow]] になり、扱えませんので、
|
140 |
|
|
[CODE(HTML)@en[[[any]]]] であるかのように扱うべきです。
|
141 |
|
|
|
142 |
|
|
[23]
|
143 |
|
|
[[利用者エージェント]]は[[利用者]]や[[著者]]が指定した[[値]]を[[二進表現]]に変換せずに、
|
144 |
|
|
元の[[文字列]]形のままで[[比較]]を行うことが[['''推奨''']]されます。
|
145 |
|
|
それにより、[[十進数]]と[[二進数]]の変換による[[誤差]]が生じるのを防ぐことができます。
|
146 |
|
|
[SRC@en[WF2 2.4.2]]
|
147 |
|
|
|
148 |
|
|
[24]
|
149 |
|
|
[[利用者エージェント]]がどうしても[[二進数]]に変換する必要がある時は、
|
150 |
|
|
[[ECMA 262]] の 9.3.1 節 ([CODE@en[[[ToNumber]]]])
|
151 |
|
|
や 8.5 節 ([CODE(JS)@en[[[Number]]]])
|
152 |
|
|
で定義されているものと[[等価]]な[[算法]]を
|
153 |
|
|
(扱える[[数値]]の範囲はその[[利用者エージェント]]で適当なものと読み替えて)
|
154 |
|
|
使用[['''するべきです''']]。
|
155 |
|
|
[SRC@en[WF2 2.4.2]]
|
156 |
|
|
|
157 |
|
|
[[#comment]]
|
158 |
|
|
|
159 |
|
|
** 例
|
160 |
|
|
|
161 |
|
|
[9]
|
162 |
|
|
[PRE(HTML example code)[
|
163 |
|
|
<input type="datetime" step="120" name="start">
|
164 |
|
|
]PRE]
|
165 |
|
|
|
166 |
|
|
この例では、任意の[[年月日]]を選択できますが、
|
167 |
|
|
[[時刻]]は[[偶数]][[分]]丁度でなければなりません。
|
168 |
|
|
[SRC@en[WF2 2.4.2]]
|
169 |
|
|
|
170 |
|
|
[10]
|
171 |
|
|
[PRE(HTML example code)[
|
172 |
|
|
<input type="time" min="00:00:15.20" name="t">
|
173 |
|
|
]PRE]
|
174 |
|
|
|
175 |
|
|
この例では、[[時]]と[[分]]はいつでも構いませんが、
|
176 |
|
|
[[分]]丁度から15と10分の2[[秒]]後でなければなりません。
|
177 |
|
|
従って、
|
178 |
|
|
[CODE(HTML)[00:00:15.2]],
|
179 |
|
|
[CODE(HTML)[00:01:15.2]],
|
180 |
|
|
[CODE(HTML)[00:02:15.2]], ...
|
181 |
|
|
[CODE(HTML)[23:59:15.2]]
|
182 |
|
|
が選択肢となります。
|
183 |
|
|
[SRC@en[WF2 2.4.2]]
|
184 |
|
|
|
185 |
|
|
;; [CODE(HTMLa)@en[[[step]]]] の[[既定値]]が
|
186 |
|
|
[CODE(HTML)[[[60]]]] (1[[分]]) だからです。
|
187 |
|
|
|
188 |
|
|
[13]
|
189 |
|
|
[PRE(HTML example code)[
|
190 |
|
|
<input type="date" min="1900-01-07" step="7" name="sunday">
|
191 |
|
|
]PRE]
|
192 |
|
|
|
193 |
|
|
この例では、[[1900]]年以降の[[日曜日]]だけが選択できます。
|
194 |
|
|
[SRC@en[WF2 2.4.2]]
|
195 |
|
|
|
196 |
|
|
[15]
|
197 |
|
|
[PRE(HTML example code)[
|
198 |
|
|
<input type="number" step="25e-2" max="-1.1">
|
199 |
|
|
]PRE]
|
200 |
|
|
|
201 |
|
|
この例では、
|
202 |
|
|
[CODE(HTML)[-1.1]],
|
203 |
|
|
[CODE(HTML)[-1.35]],
|
204 |
|
|
[CODE(HTML)[-1.60]],
|
205 |
|
|
[CODE(HTML)[-1.85]],
|
206 |
|
|
[CODE(HTML)[-2.1]], ...
|
207 |
|
|
が認められる値となります。
|
208 |
|
|
[SRC@en[WF2 2.4.2]]
|
209 |
|
|
|
210 |
|
|
[16]
|
211 |
|
|
[PRE(HTML example code)[
|
212 |
|
|
<input type="range" step="2" name="evenN">
|
213 |
|
|
]PRE]
|
214 |
|
|
|
215 |
|
|
この例では、[[偶数]]だけが認められます。
|
216 |
|
|
[SRC@en[WF2 2.4.2]]
|
217 |
|
|
|
218 |
|
|
;; [CODE(HTML)@en[[[range]]]] では [CODE(HTMLa)@en[[[min]]]]
|
219 |
|
|
の[[既定値]]が [CODE(HTML)[[[0]]]] だからです。
|
220 |
|
|
|
221 |
|
|
[17]
|
222 |
|
|
[PRE(HTML invalid example code)[
|
223 |
|
|
<input type="range" step=".1" name="n">
|
224 |
|
|
]PRE]
|
225 |
|
|
|
226 |
|
|
この例では、 [CODE(HTMLa)@en[[[step]]]] [[属性]]の書式が不適当なので、
|
227 |
|
|
[CODE(HTMLa)@en[[[step]]]] [[属性値]]は使われず、
|
228 |
|
|
[[既定値]]の [CODE(HTML)[[[1]]]] が使われます。
|
229 |
|
|
[SRC@en[WF2 2.4.2]]
|
230 |
|
|
|
231 |
|
|
;; 十分の一は、 [CODE(HTML example)[[[0.1]]]]
|
232 |
|
|
と書かなければなりません。
|
233 |
|
|
|
234 |
|
|
[19]
|
235 |
|
|
[PRE(HTML example code)[
|
236 |
|
|
<input type="number" step="any" name="n">
|
237 |
|
|
]PRE]
|
238 |
|
|
|
239 |
|
|
この例では、任意の[[浮動小数点数]]が使用できます。
|
240 |
|
|
[SRC@en[WF2 2.4.2]]
|
241 |
|
|
|
242 |
|
|
[[#comment]]
|
243 |
|
|
|
244 |
|
|
* メモ
|
245 |
|
|
- [1] 日本語では[[歩み]], [[歩調]], [[段]], [[段階]], [[手順]], [[踊り方]], [[音程]],[[手段]], [[処置]], [[階級]]など。
|
246 |
wakaba |
1.2 |
|
247 |
|
|
|
248 |
|
|
[1901] [CITE@en[Web Applications 1.0 r7517 Make it possible for <input type="time" name="t" value="14:39:24"> to be submitted (before, it couldn't because it didn't match the step, but now, if possible, the step is based on the default value rather than zero if there's no min).]] |
249 |
|
|
( ([TIME[2012-11-21 04:49:00 +09:00]] 版)) |
250 |
|
|
<http://html5.org/tools/web-apps-tracker?from=7516&to=7517> |