Inhoudsopgave
Form Field Error Message
Community
Toont een foutmelding die informeert wat er is fout gegaan en hoe dit is op te lossen.
Checklist voor toegankelijkheid
Hier beschrijven we waar de component al aan voldoet en wat je zelf nog moet doen om de component toegankelijk én gebruiksvriendelijk in te zetten.
Acceptatiecriteria bij gebruik
Een component gebruik je in de context van een pagina, website of applicatie. Hoe toegankelijk en gebruiksvriendelijk een component is, hangt daarom voor een groot deel af van context. We hebben onderstaande criteria verdeeld op rol: de developer, de designer en de contentmaker. Vanuit iedere rol kun je je steentje bijdragen om een toegankelijke en gebruiksvriendelijke ervaring te bieden aan je gebruikers.
1 van de 1 items zijn nu zichtbaar.
De Form Field Error Message bevat geen informatieve icons en decoratieve icons zijn verborgen voor hulpsoftware.
Zorg ervoor dat de tekst in de Form Field Error Message duidelijk genoeg is om de foutmelding te begrijpen. Het is dan niet nodig om informatieve icons te gebruiken die een alternatieve tekst nodig hebben voor bezoekers die het scherm niet kunnen zien.
Bekijk de acceptatiecriteria voor de Icon component.
NL Design System richtlijnen:
De Form Field Error Message is gekoppeld aan het bijbehorende element voor formulierinvoer
Koppel de Form Field Error Message met
aria-describedbyaan het bijbehorende element voor formulierinvoer:<p><label for="name">Naam</label></p> <p id="description-name">Vul je voor- en achternaam in.</p> <p id="error-name">Het veld 'Naam' is een verplicht veld.</p> <p><input id="name" aria-describedby="description-name error-name" autocomplete="name" type="text" /></p>NL Design System richtlijnen:
De Form Field Error Message staat tussen het label en het element voor formulierinvoer.
Zorg ervoor dat foutmeldingen op een logische plek staan en gekoppeld zijn aan het element voor formulierinvoer.
De meest gebruiksvriendelijke plek voor foutmeldingen is tussen het label en het element voor formulierinvoer. Als foutmeldingen onder de formulierinvoer staan, worden ze mogelijk bedekt door de autocomplete-functionaliteit van de browser.
Een screenreader schakelt in een formulierveld over van leesmodus naar focusmodus. Als een bezoeker daarna foutmeldingen tússen de velden wil lezen, moet diegene weer handmatig terugschakelen naar de leesmodus. Koppel foutmeldingen daarom ook aan het element voor formulierinvoer met
aria-describedby. Op die manier wordt de foutmeldingen voorgelezen wanneer de toetsenbordfocus op dat element staat.Voorbeeld:
<p><label for="name">Naam</label></p> <p id="description-name">Vul je voor- en achternaam in.</p> <p id="error-name">Het veld 'Naam' is een verplicht veld.</p> <p><input id="name" aria-describedby="description-name error-name" autocomplete="name" type="text" /></p>NL Design System richtlijnen:
Instructies in de Form Field Error Message zijn op een inclusieve manier beschreven.
Geef instructies op een inclusieve manier. De instructies kunnen begrijpen moet niet afhankelijk zijn van eigenschappen die sommige gebruikers niet ervaren.
Het gaat hierbij om eigenschappen zoals vorm, kleur, afmeting, locatie op het scherm, richting, of geluid. Bijvoorbeeld:
- “De fouten zijn met een rode rand gemarkeerd”. Niet iedereen kan zien, niet iedereen kan de kleur rood van zwart onderscheiden.
- “Klik op de meest rechtse knop”. Niet iedereen kan zien, sommige gebruikers zijn ingezoomd waardoor de knoppen op twee regels staan.
- “Als je het geluid hoort, heb je nog 5 minuten.” Niet iedereen kan dat geluid goed horen of heeft het geluid aanstaan.
Als kleuren worden gebruikt om aan te geven dat er een fout gemaakt is, dan is er ook ten minste één andere manier om de foutmelding te herkennen.
Zorg ervoor dat kleur niet het enige visuele middel is om informatie over te brengen, een actie aan te geven, tot een reactie op te roepen of een visueel element te onderscheiden. Niet iedereen kan kleuren zien of verandering in kleur of kleurcontrast opmerken.
Bijvoorbeeld: geef een foutmelding niet alleen aan met een rood randje, maar ook in tekst en eventueel met een icoontje dat een foutmelding markeert.
De tekst in de Form Field Error Message heeft een contrastratio van minimaal 4,5:1 met de achtergrondkleur.
De contrastverhouding van de tekstkleur met de achtergrondkleur is hoog genoeg. Minimale contrastverhoudingen:
- 4,5:1 contrast voor normale tekst.
- 3:1 contrast voor grotere letters (vanaf 24 pixels).
- 3:1 contrast voor vette letters (vet en groter of gelijk aan 19 pixels).
Hogere verhoudingen mogen natuurlijk altijd. Met de Contrast checker kun je controleren of je gekozen kleuren voldoen. Denk erom dat dit moet gelden voor alle achtergrondkleuren waarop de tekst geplaatst kan worden. Het kan dus zijn dat je meerdere checks moet doen.
NL Design System richtlijnen:
Als je de tekst van de Form Field Error Message vergroot tot 200% blijft deze in zijn geheel zichtbaar.
Als je de tekst vergroot tot 200%, via browserzoom of via de browserinstellingen voor tekstgrootte, blijft de tekst volledig zichtbaar.
Zorg ervoor dat de component meegroeit met de tekst. Definieer hoogte en de breedte niet in
px, maar gebruik een relatieve waarde alsemofrem.Definieer in de CSS een wijze om lange woorden af te breken en te laten doorlopen op de volgende regel. Gebruik hiervoor bijvoorbeeld
word-break: break-word; hyphens: auto;in combinatie mettext-wrap-style: prettyoftext-wrap-style: balance. Zo ontstaat er geen horizontale scrollbar en wordt tekst niet onleesbaar. Doe dit bij voorkeur niet alleen op de specifieke styling van het element of component, maar op globaal (:root) niveau.NL Design System richtlijnen:
De bezoeker kan de Form Field Error Message tot 400% vergroten zonder verlies van functionaliteit of informatie.
De gebruiker moet de webpagina 400% kunnen vergroten in de browser. Het gaat hierbij om alle elementen van een webpagina.
Er mag geen inhoud buiten beeld vallen, onbereikbaar of verborgen zijn of gedeeltelijk verborgen worden door andere inhoud wanneer de gebruiker 400% inzoomt of op een buitengewoon klein scherm werkt (320 bij 256 pixels).
Zorg ervoor dat er geen horizontale scrollbar nodig is. Uitzonderingen zijn voor onderdelen die in essentie twee-dimensionaal zijn, zoals tabellen, grafieken, video’s en landkaarten.
Definieer in de CSS een wijze om lange woorden af te breken en te laten doorlopen op de volgende regel. Gebruik hiervoor bijvoorbeeld
word-break: break-word; hyphens: auto;in combinatie mettext-wrap-style: prettyoftext-wrap-style: balance. Zo ontstaat er geen horizontale scrollbar en wordt tekst niet onleesbaar. Doe dit bij voorkeur op:rootniveau.De Form Field Error Message is niet bereikbaar en bedienbaar met het toetsenbord.
Componenten en elementen die niet interactief zijn, zijn niet bereikbaar en bedienbaar met het toetsenbord.
Een uitzondering geldt voor situaties waarbij een interactief element zoals een Skip Link of een Link in een Side Navigation, de bezoeker direct naar de component of het element stuurt.
NL Design System richtlijnen:
De Form Field Error Message komt niet voor in de normale focusvolgorde van de pagina.
Componenten en elementen die niet interactief zijn, komen niet voor in de normale toetsenbord-focusvolgorde van de pagina.
Een uitzondering geldt voor situaties waarbij een interactief component een Skip Link of een Link in een Side Navigation, de bezoeker direct naar de component of het element stuurt.
NL Design System richtlijnen:
Als de Form Field Error Message in een andere taal is dan de taal van de pagina, dan heeft het een lang-attribuut met de juiste taalcode.
Als een tekst in een andere taal is dan de taal van de pagina, dan heeft het element een
lang-attribuut met de juiste taalcode.Denk bijvoorbeeld aan buttons voor het veranderen van de taal van een pagina, bij meertalige websites. Of aan een citaat in het Engels, op een Nederlandstalige pagina.
NL Design System richtlijnen:
Foutmeldingen over fouten die de bezoeker heeft gemaakt worden meteen voorgelezen aan bezoekers die een screenreader gebruiken.
Een foutmelding vertelt de bezoeker dat er iets fout is gegaan. Zorg ervoor dat deze informatie ook meteen beschikbaar is voor bezoekers die een screenreader gebruiken.
Dit kun je op verschillende manieren doen:
- Door de focus naar het formulierveld met een foutmelding te verplaatsen. Als de Form Field Error Message gekoppeld is aan het formulierveld met
aria-describedbywordt de melding nu voorgelezen. Dit werkt alleen goed als er maar één foutmelding is. Foutmeldingen bij andere velden worden niet voorgelezen. - Door een samenvattende foutmelding met de rol
alertboven het formulier te plaatsen. De rolalertzorgt ervoor dat een screenreader de informatie meteen voorleest. De foutmeldingen bij de velden hoeven nu niet voorgelezen te worden, want de bezoeker heeft de belangrijke informatie uit de samenvattende foutmelding al. - Door de Form Field Error Message zelf de rol
alertte geven. Als er meerdere Form Field Error Messages zijn, worden ze allemaal op volgorde voorgelezen.
Kies de methode die het best bij het formulier past.
NL Design System richtlijnen:
- Door de focus naar het formulierveld met een foutmelding te verplaatsen. Als de Form Field Error Message gekoppeld is aan het formulierveld met
Acceptatiecriteria van de component
Als je de NL Design System component gebruikt kun je er vanuit gaan dat onderstaande checks zijn gedaan. Maar door keuzes in de website of applicaties kan het natuurlijk zijn dat ze toch niet helemaal werken. Voor de zekerheid is het dus goed om ook op onderstaande punten te letten.
1 van de 1 items zijn nu zichtbaar.
De Form Field Error Message kan aan een element voor formulierinvoer gekoppeld worden
De Form Field Error Message kan met
aria-describedbyaan het bijbehorende element voor formulierinvoer worden gekoppeld.<p><label for="name">Naam</label></p> <p id="description-name">Vul je voor- en achternaam in.</p> <p id="error-name">Het veld 'Naam' is een verplicht veld.</p> <p><input id="name" aria-describedby="description-name error-name" autocomplete="name" type="text" /></p>NL Design System richtlijnen:
Tekst in de Form Field Error Message blijft leesbaar wanneer de tekstafstand vergroot wordt.
Als je de tekstafstand vergroot blijft de tekst in zijn geheel zichtbaar. Dit gaat om regelhoogte, afstand tussen alinea’s, letterafstand en ruimte tussen woorden. Gebruikers kunnen dit instellen vanuit hun browser. Het is niet nodig om hier buttons voor te maken in de website zelf.
Zorg ervoor dat de component mee kan groeien met de tekst. Geef de breedte en de hoogte dus niet hard op in pixels.
Definieer in de CSS een wijze om lange woorden af te breken en te laten doorlopen op de volgende regel. Gebruik hiervoor bijvoorbeeld
word-break: break-word; hyphens: auto;in combinatie mettext-wrap-style: prettyoftext-wrap-style: balance. Zo ontstaat er geen horizontale scrollbar en wordt tekst niet onleesbaar. Doe dit bij voorkeur niet alleen op de specifieke styling van het element of component, maar op globaal (:root) niveau.Je moet de afstand kunnen vergroten naar deze waardes:
- Regelhoogte (regelafstand) naar ten minste 1,5 keer de lettergrootte.
- Afstand tussen alinea’s naar ten minste 2 keer de lettergrootte.
- Letterafstand (spatiëren van letters) naar ten minste 0,12 keer de lettergrootte.
- Spatiëren van woorden naar ten minste 0,16 keer de lettergrootte.
Dit is te testen met een extensie zoals Stylus of User CSS, een bookmarklet of door in de inspector van de browser de volgende code toe te voegen aan de
headvan de pagina:<style> body * { line-height: 1.5 !important; letter-spacing: 0.12em !important; word-spacing: 0.16em !important; } body p { margin-bottom: 2em !important; } </style>NL Design System richtlijnen:
De Form Field Error Message is standaard niet bereikbaar en bedienbaar met het toetsenbord.
Niet-interactieve componenten en elementen zijn standaard niet bereikbaar en bedienbaar met het toetsenbord.
NL Design System richtlijnen:
De Form Field Error Message komt standaard niet voor in de focusvolgorde van de pagina.
Niet-interactieve componenten en elementen komen standaard niet voor in de toetsenbord-focusvolgorde van de pagina.
NL Design System richtlijnen:
Het is mogelijk om de Form Field Error Message de rol `alert` te geven.
Het is mogelijk om de Form Field Error Message de rol
alertte geven, zodat een screenreader de foutmelding direct voorleest.
Definition of Done
Community implementaties
Utrecht
11 van 11 stappen gedocumenteerd op het Community Utrecht projectbord
Snel aan de slag
- utrecht-form-field-error-message in Figma
- utrecht-form-field-error-message voor visuele regressie tests
utrecht-form-field-error-message in CSS
- utrecht-form-field-error-message (CSS) op NPM
- utrecht-form-field-error-message (CSS) op GitHub
- utrecht-form-field-error-message (CSS) in Storybook van Community Utrecht
utrecht-form-field-error-message in Web Component
- utrecht-form-field-error-message (Web Component) op GitHub
- utrecht-form-field-error-message (Web Component) in Storybook van Community Utrecht
- utrecht-form-field-error-message (Web Component) op NPM
utrecht-form-field-error-message in React
Amsterdam
10 van 11 stappen gedocumenteerd op het Community Amsterdam projectbord
Snel aan de slag
ams-error-message in CSS
- ams-error-message (CSS) op NPM
- ams-error-message (CSS) op GitHub
- ams-error-message (CSS) in Storybook van Community Amsterdam
ams-error-message in React
Den Haag
10 van 11 stappen gedocumenteerd op het Community Den Haag projectbord
Snel aan de slag
denhaag-form-field-error-message in CSS
Help om deze component te verbeteren
We vinden het belangrijk dat de component Form Field Error Message goed te gebruiken is door iedereen. Help je mee?
- Vul de GitHub Discussion aan met de eisen en wensen voor jouw project of organisatie.
- Draag bij aan de voortgang van Form Field Error Message door te zorgen dat deze aan meer checkpoints van de Definition of Done voldoet. Deze houden we bij in de projectborden bij de publieke GitHub Backlog.