You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{"WCAG-succescriterium 1.3.5 Identificeer het doel van de input"}
31
41
</WcagHeadingGroup>
32
42
33
-
## Uitleg
34
-
35
43
<Summary />
36
44
37
-
## Gerelateerde NL Design System-richtlijn
45
+
Automatisch invullen werkt alleen als het invoerveld een `autocomplete`-attribuut heeft met de juiste waarde. Zonder dat attribuut herkent de browser het veld niet en kan het niet automatisch worden ingevuld. Het `autocomplete`-attribuut maakt het ook mogelijk om iconen of labels bij velden te tonen die de bezoeker helpen begrijpen wat er wordt verwacht — onafhankelijk van de taal van de pagina.
38
46
39
-
Formulieren: [Autocomplete in een formulier](/richtlijnen/formulieren/voorkom-fouten/autocomplete).
47
+
Dit succescriterium geldt voor invoervelden die persoonlijke gegevens van de bezoeker verzamelen. Bekijk de volledige [lijst van geldige waarden](https://www.w3.org/Translations/WCAG22-nl/#input-purposes).
40
48
41
-
## Bronnen
49
+
## Veelgemaakte fouten
42
50
43
-
- WCAG bevat een volledige lijst van [waarden voor autocomplete](https://www.w3.org/Translations/WCAG22-nl/#input-purposes).
44
-
- Jules Ernst van 200 OK heeft van deze lijst een [Nederlandse interpretatie van autocomplete](https://www.200ok.nl/tips/autocomplete/)gemaakt.
51
+
### Invoerveld voor persoonlijke gegevens mist een autocomplete-attribuut
45
52
46
-
## Gebruikersonderzoek
53
+
Een formulier vraagt om naam, adres, e-mailadres of andere persoonlijke gegevens, maar de velden hebben geen `autocomplete`-attribuut. De browser kan de velden niet automatisch invullen. De bezoeker moet alles handmatig typen, ook als de browser de gegevens al heeft opgeslagen.
47
54
48
-
<CTAGebruikersonderzoek />
55
+
**Hoe te testen:** inspecteer het veld in de <spanlang="en">DevTools</span> en controleer of het `autocomplete`-attribuut aanwezig is.
56
+
57
+
<Guidelineappearance="dont"title="Adresvelden zonder autocomplete">
58
+
```html
59
+
<labelfor="naam">Volledige naam</label>
60
+
<inputtype="text"id="naam" />
61
+
62
+
<labelfor="email">E-mailadres</label>
63
+
<inputtype="email"id="email" />
64
+
65
+
<labelfor="straat">Straat en huisnummer</label>
66
+
<inputtype="text"id="straat" />
67
+
68
+
<labelfor="postcode">Postcode</label>
69
+
<inputtype="text"id="postcode" />
70
+
```
71
+
72
+
</Guideline>
73
+
74
+
<Guidelineappearance="do"title="Adresvelden met autocomplete">
**Wie kan dit oplossen:** een developer voegt het juiste `autocomplete`-attribuut toe aan elk veld dat persoonlijke gegevens verzamelt. Bij sommige contentmanagementsystemen kan de webredactie dit attribuut toevoegen.
92
+
93
+
### Autocomplete-waarde is onjuist
94
+
95
+
Een veld heeft een `autocomplete`-attribuut, maar met een verkeerde waarde. Een veld voor het e-mailadres heeft `autocomplete="e-mail"`, of een veld voor de achternaam heeft `autocomplete="given-name"`. De browser vult dan de verkeerde gegevens in.
96
+
97
+
**Hoe te testen:** klik in een veld en accepteer de autocomplete-suggestie van de browser. Worden de juiste gegevens ingevuld? Inspecteer het veld in de <spanlang="en">DevTools</span> en controleer of de `autocomplete`-waarde overeenkomt met wat het veld vraagt.
**Wie kan dit oplossen:** een developer controleert de `autocomplete`-waarde van elk veld aan de hand van de [lijst met geldige waarden](https://www.w3.org/Translations/WCAG22-nl/#input-purposes).
115
+
116
+
### Autocomplete is uitgeschakeld op velden voor persoonlijke gegevens
117
+
118
+
Een formulier heeft `autocomplete="off"` op velden die persoonlijke gegevens vragen. De browser mag de velden niet automatisch invullen. De bezoeker moet alles handmatig typen. Developers doen dit vaak om beveiligingsredenen, maar voor de meeste velden is het niet nodig en het maakt het formulier onnodig moeilijk te gebruiken.
119
+
120
+
**Hoe te testen:** inspecteer de velden in de <spanlang="en">DevTools</span>. Staat er `autocomplete="off"` op velden voor naam, adres, e-mail of telefoonnummer?
121
+
122
+
<Guidelineappearance="dont"title="Autocomplete uitgeschakeld op een naamveld">
123
+
```html
124
+
<labelfor="naam">Volledige naam</label>
125
+
<inputtype="text"id="naam"autocomplete="off" />
126
+
```
127
+
</Guideline>
128
+
129
+
<Guidelineappearance="do"title="Autocomplete ingeschakeld met de juiste waarde">
130
+
```html
131
+
<labelfor="naam">Volledige naam</label>
132
+
<inputtype="text"id="naam"autocomplete="name" />
133
+
```
134
+
</Guideline>
135
+
136
+
Bij wachtwoordvelden voor een nieuw wachtwoord gebruik je `autocomplete="new-password"`. Dat signaleert aan de browser en wachtwoordmanagers dat het om een nieuw wachtwoord gaat, niet om een bestaand wachtwoord dat moet worden ingevuld.
137
+
138
+
**Wie kan dit oplossen:** een developer vervangt `autocomplete="off"` door de juiste `autocomplete`-waarde.
139
+
140
+
### Betaalvelden missen autocomplete
141
+
142
+
Een betaalformulier vraagt om kaartnummer, vervaldatum en naam op de kaart. Zonder `autocomplete` moet de bezoeker de gegevens handmatig invoeren. Wachtwoordmanagers en browsers kunnen betaalgegevens automatisch invullen als de juiste `autocomplete`-waarden aanwezig zijn.
143
+
144
+
**Hoe te testen:** klik in het kaartnummerveld. Biedt de browser of wachtwoordmanager aan om de betaalgegevens in te vullen?
145
+
146
+
<Guidelineappearance="dont"title="Betaalvelden zonder autocomplete">
147
+
```html
148
+
<labelfor="kaartnummer">Kaartnummer</label>
149
+
<inputtype="text"id="kaartnummer" />
150
+
151
+
<labelfor="vervaldatum">Vervaldatum</label>
152
+
<inputtype="text"id="vervaldatum" />
153
+
154
+
<labelfor="naam-kaart">Naam op de kaart</label>
155
+
<inputtype="text"id="naam-kaart" />
156
+
```
157
+
158
+
</Guideline>
159
+
160
+
<Guidelineappearance="do"title="Betaalvelden met autocomplete">
**Wie kan dit oplossen:** een developer voegt de juiste `autocomplete`-waarden toe aan de betaalvelden.
175
+
176
+
### Inlogvelden missen autocomplete
177
+
178
+
Een inlogformulier vraagt om een e-mailadres en wachtwoord. De velden hebben geen `autocomplete`-attribuut. De browser en wachtwoordmanagers kunnen de opgeslagen inloggegevens niet automatisch invullen.
179
+
180
+
**Hoe te testen:** open een inlogpagina. Inspecteer de invoervelden in de <spanlang="en">DevTools</span>.
181
+
182
+
<Guidelineappearance="dont"title="Inlogvelden zonder autocomplete">
183
+
```html
184
+
<labelfor="email">E-mailadres</label>
185
+
<inputtype="email"id="email" />
186
+
187
+
<labelfor="wachtwoord">Wachtwoord</label>
188
+
<inputtype="password"id="wachtwoord" />
189
+
```
190
+
191
+
</Guideline>
192
+
193
+
<Guidelineappearance="do"title="Inlogvelden met autocomplete">
Bij een registratieformulier gebruik je `autocomplete="new-password"` voor het wachtwoordveld. Dat signaleert aan de browser dat het om een nieuw wachtwoord gaat en biedt aan om een sterk wachtwoord te genereren.
205
+
206
+
**Wie kan dit oplossen:** een developer voegt `autocomplete="username"` en `autocomplete="current-password"` toe aan het inlogformulier en `autocomplete="new-password"` aan het registratieformulier.
207
+
208
+
### Advies: Afwijkend afleveradres en factuuradres delen dezelfde autocomplete-waarden
209
+
210
+
Een bestelformulier heeft een afleveradres en een factuuradres. Beide secties gebruiken dezelfde `autocomplete`-waarden. De browser vult dan hetzelfde adres in bij beide secties.
211
+
212
+
**Hoe te testen:** vul een bestelformulier in met een afwijkend aflever- en factuuradres. Biedt de browser de juiste adressen aan bij de juiste secties?
213
+
214
+
<Guidelineappearance="dont"title="Twee adressecties met dezelfde autocomplete-waarden">
De prefixen <spanlang="en">`shipping`</span> en <spanlang="en">`billing`</span> vertellen de browser welk adres bij welke sectie hoort.
241
+
242
+
**Wie kan dit oplossen:** een developer voegt de juiste prefix toe aan de `autocomplete`-waarden van de adresvelden.
49
243
50
244
## Hoe te testen
51
245
52
-
[Axe DevTools](https://www.deque.com/axe/browser-extensions/) kan controleren op ongeldige waarden (typefouten) voor autocomplete.
246
+
### Voor iedereen
247
+
248
+
1. Open een formulier dat persoonlijke gegevens vraagt, zoals naam, adres, e-mail, telefoon en betaalgegevens. Klik in de velden. Biedt de browser aan om ze automatisch in te vullen? Dat de browser iets aanbiedt, betekent nog niet dat het attribuut aanwezig en correct ingesteld is.
249
+
2. Accepteer de suggestie van de browser. Worden de juiste gegevens in de juiste velden ingevuld?
250
+
3. Test een bestelformulier met een afwijkend aflever- en factuuradres. Worden de adressen bij de juiste secties ingevuld?
251
+
4. Test een inlogpagina. Biedt de browser of wachtwoordmanager de opgeslagen gegevens aan?
252
+
253
+
### Voor developers
254
+
255
+
1. Inspecteer elk invoerveld dat persoonlijke gegevens verzamelt in de <spanlang="en">DevTools</span>. Heeft het veld een `autocomplete`-attribuut met een geldige waarde?
256
+
2. Controleer of de `autocomplete`-waarde overeenkomt met wat het veld vraagt. Vergelijk met de [lijst met geldige waarden](https://www.w3.org/Translations/WCAG22-nl/#input-purposes).
257
+
3. Zoek in de broncode naar `autocomplete="off"` op velden voor persoonlijke gegevens. Vervang die door de juiste waarde.
258
+
4. Advies: Controleer bestelformulieren met meerdere adressecties. Hebben de secties de juiste `shipping` of `billing` prefix?
259
+
5. Gebruik <spanlang="en">axe DevTools</span> of <spanlang="en">Lighthouse</span> voor een eerste scan. Ontbrekende `autocomplete`-attributen op veelvoorkomende veldtypen worden automatisch gedetecteerd.
|`username`| Gebruikersnaam of e-mailadres bij inlog |
275
+
|`current-password`| Huidig wachtwoord bij inlog |
276
+
|`new-password`| Nieuw wachtwoord bij registratie of wijziging |
277
+
|`cc-number`| Creditcardnummer |
278
+
|`cc-exp`| Vervaldatum creditcard |
279
+
|`cc-name`| Naam op de creditcard |
280
+
|`bday`| Geboortedatum |
281
+
282
+
## Gerelateerde succescriteria
53
283
54
-
Inspecteer daarna in de gegenereerde HTML-code van de webpagina de invoervelden, bijvoorbeeld met een [browser inspector](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools).
284
+
-[1.3.1 Info en relaties](https://nldesignsystem.nl/wcag/1.3.1/): labels zijn programmatisch gekoppeld aan hun invoerveld. Autocomplete voegt daar het doel van het veld aan toe.
285
+
-[3.3.2 Labels of instructies](https://nldesignsystem.nl/wcag/3.3.2/): zichtbare labels beschrijven wat er in een veld moet worden ingevuld. Autocomplete helpt de browser om het veld automatisch in te vullen op basis van die beschrijving.
286
+
-[3.3.7 Overbodige invoer](https://nldesignsystem.nl/wcag/3.3.7/): informatie die de bezoeker eerder heeft ingevuld, wordt automatisch aangeboden. Autocomplete is een van de manieren om dit te realiseren.
55
287
56
-
Controleer of de invoervelden van formulieren een autocomplete-attribuut hebben met een juiste waarde.
288
+
## Gerelateerde NL Design System-richtlijn
289
+
290
+
Formulieren: [Autocomplete in een formulier](/richtlijnen/formulieren/voorkom-fouten/autocomplete).
291
+
292
+
## Bronnen
57
293
58
-
**Let op:** dit geldt alleen voor invoervelden waarin persoonlijke gegevens worden uitgevraagd en niet voor bijvoorbeeld een formulier om op de website te zoeken.
294
+
- WCAG bevat een volledige lijst van [waarden voor autocomplete](https://www.w3.org/Translations/WCAG22-nl/#input-purposes).
295
+
- Jules Ernst van 200 OK heeft van deze lijst een [Nederlandse interpretatie van autocomplete](https://www.200ok.nl/tips/autocomplete/) gemaakt.
296
+
297
+
## Gebruikersonderzoek
298
+
299
+
<CTAGebruikersonderzoek />
59
300
60
-
## W3Creferenties
301
+
## W3C-referenties
61
302
62
303
- Engelse tekst van het WCAG-succescriterium: [<spanlang="en">1.3.5 Identify Input Purpose</span>](https://www.w3.org/TR/WCAG22/#identify-input-purpose).
63
304
- Nederlandse vertaling van het WCAG-succescriterium: [1.3.5 Identificeer het doel van de input](https://www.w3.org/Translations/WCAG22-nl/#identify-input-purpose).
Zorg dat de browser (en andere software, zoals een password manager) kan begrijpen wat een gebruiker moet invoeren, zodat die kan helpen en het invoeren makkelijker kan maken.
4
-
5
-
Dit kan door gebruik te maken van het HTML-attribuut `autocomplete`.
3
+
Een bezoeker die een formulier invult, krijgt velden voor naam, adres, e-mailadres en creditcardnummer aangeboden. De browser herkent die velden en biedt aan om ze automatisch in te vullen met opgeslagen gegevens. Dat scheelt tijd, voorkomt typefouten en is essentieel voor bezoekers die moeite hebben met typen of met het onthouden van gegevens.
0 commit comments