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
|
---
title: 'Attribut HTML : step'
slug: Web/HTML/Attributes/step
tags:
- Attribute
- Attributes
- Constraint validation
- HTML
- Reference
- step
translation_of: Web/HTML/Attributes/step
---
<div>{{HTMLSidebar}}</div>
<p>L'attribut <strong><code>step</code></strong> est un nombre qui indique l'incrément que la valeur doit suivre ou le mot-clé <code>any</code>. Il est valable pour les types de saisie numérique, notamment les <a href="/fr/docs/Web/HTML/Element/Input/date"><code>date</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/month"><code>month</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/week"><code>week</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/time"><code>time</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/datetime-local"><code>datetime-local</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/number"><code>number</code></a> et <a href="/fr/docs/Web/HTML/Element/Input/range"><code>range</code></a>.</p>
<p><code>step</code> définit l'incrément obtenu lors du clic sur les boutons déroulants haut et bas, du déplacement d'un curseur vers la gauche et la droite sur une plage, et de la validation des différents types de date. S'il n'est pas explicitement inclus, <code>step</code> prend par défaut la valeur 1 pour <code>number</code> et <code>range</code>, et 1 type d'unité (minute, semaine, mois, jour) pour les types d'entrée date/heure. La valeur doit être un nombre positif - entier ou flottant - ou la valeur spéciale <code>any</code>, ce qui signifie qu'aucun incrément n'est impliqué et que toute valeur est autorisée (sauf autres contraintes, comme <a href="/fr/docs/Web/HTML/Attributes/min"><code>min</code></a> et <a href="/fr/docs/Web/HTML/Attributes/max"><code>max</code></a>).</p>
<p>La valeur des incréments par défaut pour les entrées <code>number</code> est 1, ce qui permet de ne saisir que des nombres entiers, <em>à moins que</em> la valeur initiale ne soit pas un nombre entier. La valeur de pas par défaut pour les entrées <code>time</code> est de 1 seconde, 900 étant égal à 15 minutes.</p>
<h2 id="syntax">Syntaxe</h2>
<table class="standard-table">
<caption>Valeurs d'incrémentation par défaut</caption>
<thead>
<tr>
<th scope="col">Type d'entrée</th>
<th scope="col">Valeur</th>
<th scope="col">Exemple</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/fr/docs/Web/HTML/Element/Input/date"><code>date</code></a></td>
<td>1 (jour)</td>
<td><pre class="brush: html"><input type="date" min="2019-12-25" step="1"></pre></td>
</tr>
<tr>
<td><a href="/fr/docs/Web/HTML/Element/Input/month"><code>month</code></a></td>
<td>1 (mois)</td>
<td><pre class="brush: html"><input type="month" min="2019-12" step="12"></pre></td>
</tr>
<tr>
<td><a href="/fr/docs/Web/HTML/Element/Input/week"><code>week</code></a></td>
<td>1 (semaine)</td>
<td><pre class="brush: html"><input type="week" min="2019-W23" step="2"></pre></td>
</tr>
<tr>
<td><a href="/fr/docs/Web/HTML/Element/Input/time"><code>time</code></a></td>
<td>60 (secondes)</td>
<td><pre class="brush: html"><input type="time" min="09:00" step="900"></pre></td>
</tr>
<tr>
<td><a href="/fr/docs/Web/HTML/Element/Input/datetime-local"><code>datetime-local</code></a></td>
<td>1 (jour)</td>
<td><pre class="brush: html"><input type="datetime-local" min="019-12-25T19:30" step="7"></pre></td>
</tr>
<tr>
<td><a href="/fr/docs/Web/HTML/Element/Input/number"><code>number</code></a></td>
<td>1</td>
<td><pre class="brush: html"><input type="number" min="0" step="0.1" max="10"></pre></td>
</tr>
<tr>
<td><a href="/fr/docs/Web/HTML/Element/Input/range"><code>range</code></a></td>
<td>1</td>
<td><pre class="brush: html"><input type="range" min="0" step="2" max="10"></pre></td>
</tr>
</tbody>
</table>
<p>Si <code>any</code> n'est pas explicitement défini, les valeurs valides pour les types de saisie <code>number</code>, date/heure, et les types d'entrée <code>range</code> sont égales à la base du pas — la valeur <a href="/fr/docs/Web/HTML/Attributes/min"><code>min</code></a> et les incréments de la valeur du pas, jusqu'à la valeur <a href="/fr/docs/Web/HTML/Attributes/max"><code>max</code></a>, si spécifiée. Par exemple, si on a <code><input type="number" min="10" step="2"></code> tout entier pair, 10 ou grand, est valide. S'il est omis, <code><input type="number"></code>, tout entier est valide, mais les flottants, comme <code>4,2</code>, ne le sont pas, car <code>step</code> est par défaut à 1. Pour que <code>4,2</code> soit valide, <code>step</code> aurait dû être défini à <code>any</code>, <code>0,1</code>, <code>0,2</code>, et la valeur min aurait dû être un nombre se terminant par .2, comme <code><input type="number" min="-5.2"></code>.</p>
<h3 id="min_impact_on_step">L'impact de min sur step</h3>
<p>Les valeurs de <code>min</code> et <code>step</code> définissent ce que sont les valeurs valides, même si l'attribut <code>step</code> n'est pas inclus, car <code>step</code> a par défaut la valeur <code>0</code>.</p>
<p>Nous ajoutons une grande bordure rouge autour des entrées invalides :</p>
<pre class="brush: css">input:invalid {
border: solid red 3px;
}</pre>
<p>Nous définissons ensuite un champ avec une valeur minimale de 7,2, en omettant l'attribut "step", qui a la valeur 1 par défaut.</p>
<pre class="brush: html"><input id="myNumber" name="myNumber" type="number" step="2" min="1.2"></pre>
<p>Les valeurs valides comprennent <code>1,2</code>, <code>3,2</code>, <code>5,2</code>, <code>7,2</code>, <code>9,2</code>, <code>11,2</code>, et ainsi de suite. Les nombres entiers et les nombres pairs suivis de .2 ne sont pas valides. Comme nous avons inclus une valeur non valide, les navigateurs qui prennent en charge cette valeur l'afficheront comme non valide. Le compteur de nombres, s'il est présent, n'affichera que les valeurs flottantes valides de <code>1,2</code> et plus.</p>
<div>{{EmbedLiveSample("min_impact_on_step","",50)}}</div>
<div class="note">
<p><strong>Note :</strong>Lorsque les données saisies par l'utilisateur ne respectent pas la configuration indiquée par l'incrément, la valeur est considérée comme non valide dans la validation des contraintes et correspondra aux pseudoclasses <a href="/fr/docs/Web/CSS/:invalid"><code>:invalid</code></a> et <a href="/fr/docs/Web/CSS/:out-of-range"><code>:out-of-range</code></a>.</p>
</div>
<p>Voir <a href="/fr/docs/Web/Guide/HTML/HTML5/Constraint_validation">Validation côté client</a> et <a href="/fr/docs/Web/API/ValidityState/stepMismatch"><code>stepMismatch</code></a> pour plus d'informations.</p>
<h2 id="accessibility_concerns">Accessibilité</h2>
<p>Fournissez des instructions pour aider les utilisateurs à comprendre comment remplir le formulaire et utiliser les contrôles individuels du formulaire. Indiquez toute entrée obligatoire et facultative, les formats de données et toute autre information pertinente. Lorsque vous utilisez l'attribut <code>min</code>, assurez-vous que cette exigence minimale est comprise par l'utilisateur. Fournir des instructions dans l'élément <a href="/fr/docs/Web/HTML/Element/Label"><code><label></code></a> peut être suffisant. Si vous fournissez des instructions en dehors des étiquettes, ce qui permet un positionnement et une conception plus souples, envisagez d'utiliser <a href="/fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute"><code>aria-labelledby</code></a> ou <a href="/fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute"><code>aria-describedby</code></a>.</p>
<h2 id="specifications">Spécifications</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Spécification</th>
<th scope="col">Statut</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('HTML WHATWG', 'input.html#the-step-attribute', 'l\'attribut step')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
</tr>
<tr>
<td>{{SpecName('HTML5 W3C', 'input.html#the-step-attribute', 'l\'attribut step')}}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
</tr>
</tbody>
</table>
<h2 id="see_also">Voir aussi</h2>
<ul>
<li>L'attribut <a href="/fr/docs/Web/HTML/Attributes/max"><code>max</code></a></li>
<li>L'attribut <a href="/fr/docs/Web/HTML/Attributes/min"><code>min</code></a></li>
<li><a href="/fr/docs/Web/Guide/HTML/HTML5/Constraint_validation">Validation des contraintes</a></li>
<li>L'API <a href="/fr/docs/Web/API/Constraint_validation">Constraint validation</a></li>
<li>La propriété <a href="/fr/docs/Web/API/validityState/stepMismatch"><code>validityState.stepMismatch</code></a></li>
<li>La pseudo-classe <a href="/fr/docs/Web/CSS/:out-of-range"><code>:out-of-range</code></a></li>
<li>L'élément <a href="/fr/docs/Web/HTML/Element/Input"><code><input></code></a></li>
<li>Les types <a href="/fr/docs/Web/HTML/Element/Input/date"><code>date</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/month"><code>month</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/week"><code>week</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/time"><code>time</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/datetime-local"><code>datetime-local</code></a>, <a href="/fr/docs/Web/HTML/Element/Input/number"><code>number</code></a> et <a href="/fr/docs/Web/HTML/Element/Input/range"><code>range</code></a>, ainsi que l'élément <a href="/fr/docs/Web/HTML/Element/Meter"><code><meter></code></a></li>
</ul>
|