Dev Tools & Workflow

Kleurcontrast controleren zonder iets te installeren

Een praktische browser-first workflow om tekst, knoppen, focus-states, grafieken en overlays op afbeeldingen te toetsen aan de contrastvereisten van WCAG.

The Wux Webtools Team The Wux Webtools Team 9 min lezen AI-ondersteund, door mensen beoordeeld
Browser developer tools inspecting color contrast on a web page interface.
Inhoudsopgave
  1. De contrastregels die je echt nodig hebt
  2. Begin met de gerenderde pagina, niet met het ontwerpbestand
  3. Maak eerst een korte auditlijst
  4. Inspecteer tekstcontrast in DevTools
  5. Controleer de echte achtergrond, inclusief opacity
  6. Vergeet states niet
  7. Gebruik Lighthouse, maar besteed je oordeel niet eraan uit
  8. Audit ook niet-tekstcontrast
  9. Leg bevindingen vast in een formaat dat ontwikkelaars kunnen gebruiken
  10. Maak verbeteringen iets sterker dan het minimum
  11. Een no-install checklist voor contrastaudits

Kleurcontrastaudits worden vaak behandeld als een specialistische toegankelijkheidstaak: open een ontwerpbestand, installeer een plugin, exporteer screenshots, draai een rapport, discussieer over merkkleuren. Dat kan nuttig zijn, maar het is niet waar de meeste teams zouden moeten beginnen.

Voor een productiewebsite gebeurt de snelste betrouwbare audit meestal in de browser die je al open hebt. Moderne browser-DevTools kunnen berekende kleuren inspecteren, contrastratio’s tonen, state-stijlen zichtbaar maken en je helpen de lastige gevallen te testen die geautomatiseerde rapporten missen.

Deze gids gaat ervan uit dat je niets installeert. Geen browserextensies. Geen designplugins. Geen betaalde auditsuite. Alleen de pagina, de browser en een eenvoudige methode.

De contrastregels die je echt nodig hebt

Voor het meeste webwerk komt WCAG-contrast neer op een paar drempels:

  • Normale tekst: minimaal 4.5:1 contrast met de achtergrond.
  • Grote tekst: minimaal 3:1. WCAG definieert dit als ongeveer 24 CSS-pixels, of ongeveer 18,66 CSS-pixels als de tekst vet is.
  • UI-componenten en grafische objecten: minimaal 3:1 voor betekenisvolle randen, pictogrammen, states en onderdelen van grafieken die nodig zijn om de interface te begrijpen.
  • Verbeterd contrast: 7:1 voor normale tekst en 4.5:1 voor grote tekst als je verder wilt gaan dan de basis.

Er zijn uitzonderingen, zoals inactieve bedieningselementen, decoratieve elementen en logo’s. Gebruik die uitzonderingen spaarzaam. “Het hoort bij het merk” is geen uitzondering; het is een ontwerpbeperking.

Onthoud ook dat contrast maar één onderdeel is van toegankelijk kleurgebruik. Als een rode foutstatus voldoende contrast heeft maar geen tekst, pictogramlabel of programmatische aanduiding, kan die nog steeds tekortschieten voor gebruikers die rood niet kunnen onderscheiden van nabijgelegen kleuren.

Begin met de gerenderde pagina, niet met het ontwerpbestand

Ontwerpbestanden zijn nuttig, maar ze bevatten niet elke variabele uit de echte wereld: CSS-overschrijvingen, opacity, hover-states, font-rendering in de browser, gebruikerszoom, dark mode, overgeërfde stijlen, CMS-content en marketing-embeds.

Audit de pagina zoals gebruikers die ontvangen.

Open de pagina in een actuele desktopbrowser. Chrome, Edge, Firefox en Safari hebben allemaal nuttige inspectietools. De exacte labels verschillen, maar de workflow is hetzelfde:

  1. Klik met de rechtermuisknop op de tekst of het UI-element.
  2. Kies Inspect.
  3. Zoek de berekende color en background-color.
  4. Gebruik het kleurvak van de browser of het toegankelijkheidspaneel om de contrastratio af te lezen.
  5. Noteer geslaagd, niet geslaagd en onzekerheden.

In Chromium-gebaseerde browsers toont de color picker vaak een contrastratio en WCAG-richtlijnen voor geslaagd/niet geslaagd bij tekst. Firefox DevTools toont ook toegankelijkheidsinformatie en kleurtools. Safari’s Web Inspector kan berekende stijlen en toegankelijkheidsinformatie tonen, al is de workflow iets anders.

Het gaat niet om de specifieke browser. Het gaat erom dat je het berekende resultaat leest, niet de waarde waarvan iemand denkt dat de component die gebruikt.

Maak eerst een korte auditlijst

Inspecteer geen willekeurige tekst tot je moe wordt. Maak een korte inventaris van patronen:

  • Bodytekst op de hoofdachtergrond van de pagina.
  • Gedempte tekst, bijschriften, metadata en placeholders.
  • Links in normale, hover-, visited- en focus-states.
  • Primaire, secundaire en destructieve knoppen.
  • Formulierlabels, hulptekst, fouten en succesberichten.
  • Navigatie-items, breadcrumbs en tabs.
  • Cards, badges, pills en tags.
  • Pictogrammen die betekenis overbrengen.
  • Grafieken, kaarten, voortgangsbalken en statuskleuren.
  • Tekst over afbeeldingen, video, gradients of doorschijnende overlays.

Dit is genoeg om de meeste fouten op een typische site te vinden. Het houdt de audit ook gekoppeld aan componenten, niet aan losse pixels.

Als je audit knoppen bevat, combineer de contrastcontrole dan met de basis in onze checklist voor toegankelijke webknoppen. Contrastproblemen bij knoppen staan vaak naast ontbrekende focus-states, onduidelijke labels of kapot toetsenbordgedrag.

Inspecteer tekstcontrast in DevTools

Voor gewone tekst op een effen achtergrond kan de browser het contrast meestal voor je berekenen.

Inspecteer het element en zoek de eigenschap color. Open de color picker via het kleurvak. Als de browser de achtergrond kan bepalen, toont hij een contrastratio. Sommige tools tekenen ook een lijn in de color picker die laat zien waar de kleur zou slagen voor 3:1, 4.5:1 of 7:1.

Wanneer de browser een fout meldt, geloof dat dan totdat je het tegendeel kunt bewijzen. Wanneer hij een voldoende resultaat meldt, gebruik nog steeds je oordeel. Kleine dunne letters, schermen van lage kwaliteit, zware anti-aliasing en drukke achtergronden kunnen tekst die technisch voldoet toch zwak laten aanvoelen.

Een praktische regel: als bodytekst maar net voldoet met 4.55:1, vier dat dan niet. Geef het meer ruimte. Contrastvereisten zijn minima, geen ideale doelen.

Typografie doet er ook toe. Een groter, duidelijker typesysteem vermindert belasting nog voordat je kleur aanpast. Als de pagina ondanks voldoende contrast moeilijk leesbaar voelt, kijk dan opnieuw naar regellengte, grootte, gewicht en spacing met een bredere leesbaarheidsblik zoals in deze praktische gids voor leesbare typografie.

Controleer de echte achtergrond, inclusief opacity

Veel contrastfouten ontstaan doordat de zichtbare achtergrond niet de gedeclareerde achtergrond is.

Veelvoorkomende valkuilen zijn:

  • Tekst in een halftransparante card.
  • Tekst op een parent waarop opacity is toegepast.
  • Overlays die rgba() of color-mix() gebruiken.
  • Gradients achter koppen.
  • Achtergrondafbeeldingen die variëren over het tekstgebied.
  • Themavariabelen die veranderen in dark mode.

Als DevTools het contrast niet betrouwbaar kan berekenen, bepaal dan handmatig de gerenderde voorgrond- en achtergrondkleuren. Gebruik het paneel met berekende stijlen, schakel lagen tijdelijk uit, of sample de zichtbare kleur met de ingebouwde color picker als je browser dat ondersteunt.

Bij tekst over afbeeldingen moet je niet het mooiste deel van de afbeelding samplen. Sample het slechtst denkbare plausibele gebied achter de tekst. Als de afbeelding verandert via CMS-uploads, carrousels of responsive crops, is dit geen stabiel contrastsysteem. Voeg een betrouwbare overlay, tekstschaduw, effen container of gradient-behandeling toe die de tekst beschermt ongeacht de afbeelding.

Een goed systeem voor afbeeldingsoverlays is saai: dezelfde overlaysterkte, voorspelbaar cropgebied, genoeg contrast zelfs met heldere foto’s. Saai is prima. Gebruikers proberen te lezen.

Vergeet states niet

Statische screenshots missen veel contrastfouten. Audit interactiestates direct in de browser.

Forceer in DevTools pseudo-classes zoals:

  • :hover
  • :focus
  • :focus-visible
  • :active
  • :visited
  • :disabled
  • :checked
  • :invalid

Inspecteer daarna de berekende kleuren opnieuw.

Focusindicatoren verdienen speciale aandacht. WCAG 2.2 heeft de verwachtingen rond focusweergave aangescherpt, en een lichtblauwe outline op een lichtgrijze card is nog steeds een veelvoorkomende fout. De focusindicator heeft genoeg contrast nodig met aangrenzende kleuren en genoeg oppervlak om op te vallen.

Voor uitgeschakelde bedieningselementen hebben de WCAG-contrastregels een uitzondering voor inactieve componenten. Dat betekent niet dat uitgeschakelde bedieningselementen standaard onleesbaar mogen zijn. Als de disabled-state nuttige informatie overbrengt, maak die dan leesbaar. Zo niet, overweeg dan of die überhaupt aanwezig moet zijn.

Gebruik Lighthouse, maar besteed je oordeel niet eraan uit

Browseraudits zoals Lighthouse kunnen sommige contrastfouten snel vinden. Draai de ingebouwde audit als je browser die aanbiedt, en behandel de resultaten daarna als vertrekpunt.

Geautomatiseerde controles zijn goed in het vinden van tekstnodes met duidelijke fouten in berekend contrast. Ze zijn zwakker bij:

  • Tekst die in afbeeldingen is ingebed.
  • Labels die met canvas worden gerenderd.
  • Randgevallen in SVG.
  • Fouten die alleen bij hover optreden.
  • De kwaliteit van focusindicatoren.
  • Grafieken waarin kleurrelaties betekenis dragen.
  • Componenten achter authenticatie, menu’s of formulierstappen.

Als een rapport groen terugkomt, moet je nog steeds representatieve componenten inspecteren. Als een rapport rood terugkomt, raak dan niet in paniek en triageer de fouten op gebruikersimpact. Hetzelfde principe geldt in het algemeen voor performance- en toegankelijkheidsrapporten: lees de tooloutput als bewijs, niet als vonnis. Die houding gebruiken we in onze gids om een Lighthouse-rapport te lezen zonder in paniek te raken, en die past hier net zo goed.

Audit ook niet-tekstcontrast

Tekst krijgt de meeste aandacht, maar WCAG behandelt ook niet-tekstuele content die nodig is om de interface te begrijpen of te bedienen.

Controleer minstens deze gevallen:

  • Invoerranden tegenover de pagina-achtergrond.
  • Outlines van checkboxes en radio buttons.
  • Toggle-states.
  • Knoppen met alleen een pictogram.
  • Foutpictogrammen en waarschuwingssymbolen.
  • Lijnen, balken en labels in grafieken.
  • Voortgangsindicatoren.
  • Indicatoren voor geselecteerde tabs of actieve navigatie.

Het doel is meestal 3:1 tegenover aangrenzende kleuren. Een lichtgrijze invoerrand op een witte achtergrond kan bijvoorbeeld bijna onzichtbaar zijn. Een grafiek met vijf pastelkleurige lijnen kan elegant ogen en toch onbruikbaar zijn.

Voor grafieken is contrast op zichzelf niet genoeg. Gebruik labels, patronen, lijnstijlen, directe annotatie of spacing, zodat de informatie niet alleen van kleur afhankelijk is. Dit helpt kleurenblinde gebruikers, slechtziende gebruikers, mensen die in fel licht kijken en iedereen die een screenshot in een document leest.

Leg bevindingen vast in een formaat dat ontwikkelaars kunnen gebruiken

Een nuttige contrastaudit zegt niet “sommige grijstinten falen”. Die benoemt de component, state, huidige waarden, verwachte drempel en voorgestelde oplossing.

Een compact formaat werkt goed:

| Component | State | Voorgrond | Achtergrond | Ratio | Doel | Resultaat | Voorgestelde oplossing | |---|---:|---:|---:|---:|---:|---|---| | Card metadata | Standaard | #8A8F98 | #FFFFFF | 3.2:1 | 4.5:1 | Niet geslaagd | Gebruik --color-text-muted-strong | | Primaire knop | Hover | #FFFFFF | #2F6FEA | 4.8:1 | 4.5:1 | Geslaagd | Behouden | | Invoerrand | Standaard | #D7DCE2 | #FFFFFF | 1.4:1 | 3:1 | Niet geslaagd | Maak de border-token donkerder |

Koppel oplossingen aan designtokens als de site die heeft. Pas niet twintig losse componenten aan als één zwakke token het echte probleem is.

Maak verbeteringen iets sterker dan het minimum

Contrastfouten zijn vaak makkelijk slecht te repareren. Teams verschuiven een kleur totdat de checker 4.51:1 zegt en gaan dan verder. Dat laat geen marge voor font-rendering, transparantie, browserverschillen, theming, afbeeldingsvariatie of toekomstige merkaanpassingen.

Geef de voorkeur aan comfortabele doelen:

  • Bodytekst: dichter bij 7:1 wanneer praktisch haalbaar.
  • Gedempte tekst: nog steeds boven 4.5:1 als het echte content is.
  • UI-randen en pictogrammen: comfortabel boven 3:1.
  • Tekst over afbeeldingen: gebruik een gecontroleerde overlay in plaats van per afbeelding te gokken.

Het web wordt bekeken op goedkope laptops, gedimde telefoons, heldere trottoirs, getinte monitoren en verouderende schermen. Minimale naleving is niet hetzelfde als comfortabel lezen.

<!-- tool-cta:start -->

💡 Probeer dit: Wanneer je contrastparen controleert die je uit DevTools hebt gehaald, helpt Color Converter met converteren tussen hex, RGB en HSL, zodat de waarden overeenkomen met je auditnotities.

<!-- tool-cta:end -->

Een no-install checklist voor contrastaudits

Gebruik deze volgorde wanneer je een snelle maar geloofwaardige audit nodig hebt:

  1. Open de productiepagina in een moderne browser.
  2. Maak een lijst van de belangrijkste tekst-, UI- en state-patronen.
  3. Inspecteer berekende voorgrond- en achtergrondkleuren in DevTools.
  4. Gebruik de ingebouwde color picker of het toegankelijkheidspaneel om contrast af te lezen.
  5. Forceer hover-, focus-, active-, visited- en invalid-states.
  6. Controleer tekst over afbeeldingen en gradients tegen de slechtst plausibele achtergrond.
  7. Controleer niet-tekstuele UI-onderdelen tegen de 3:1-vereiste.
  8. Draai een ingebouwde geautomatiseerde audit als vangnet, niet als de volledige audit.
  9. Leg fouten vast per component en token.
  10. Corrigeer met marge, niet door net over de drempel te komen.

Dat is genoeg om het merendeel van de contrastproblemen te vinden zonder nog een tool aan je stack toe te voegen. Geavanceerdere audits hebben nog steeds hun plek, vooral voor grote designsystemen, gereguleerde producten of complexe datavisualisatie. Maar voor veel websites geeft de browser je al het bewijs dat je nodig hebt. Het moeilijke deel is systematisch genoeg zijn om het te gebruiken.

Veelgestelde vragen

Kan ik een echte contrastaudit doen zonder browserextensie?
Ja. Moderne browser-DevTools kunnen berekende kleuren inspecteren en tonen vaak direct contrastratio’s in de color picker of het toegankelijkheidspaneel. Extensies kunnen handig zijn, maar ze zijn niet vereist voor een geloofwaardige eerste audit.
Welke contrastratio moet normale bodytekst halen?
WCAG vereist minimaal 4.5:1 voor normale tekst. In de praktijk is bodytekst meestal beter wanneer er meer marge is dan dat, vooral bij lange leesteksten, kleine formaten of dunne fontgewichten.
Moeten uitgeschakelde knoppen aan contrastvereisten voldoen?
Inactieve interfacecomponenten vallen onder een uitzondering in de WCAG-contrastregels. Als de disabled-state echter nuttige informatie communiceert, moet die nog steeds leesbaar zijn. Gebruik de uitzondering niet als reden om belangrijke UI onduidelijk te maken.
Vindt Lighthouse alle kleurcontrastproblemen?
Nee. Lighthouse en vergelijkbare geautomatiseerde controles zijn nuttig, maar ze kunnen hover-states, focusindicatoren, tekst in afbeeldingen, canvas-content, grafiekbetekenis en sommige dynamische UI missen. Gebruik ze als vangnet, niet als de volledige audit.
Hoe ga ik om met tekst over foto’s?
Vertrouw er niet op dat elke afbeelding toevallig donker of eenvoudig genoeg is. Gebruik een consistente overlay, gradient, effen tekstcontainer of andere behandeling die contrast behoudt bij realistische crops en uploads van afbeeldingen.

Bronnen & verder lezen

  1. Web Content Accessibility Guidelines (WCAG) 2.2
  2. Understanding Success Criterion 1.4.3: Contrast (Minimum)
  3. Understanding Success Criterion 1.4.11: Non-text Contrast
  4. Chrome DevTools: Make your website more readable
Over de auteur
The Wux Webtools Team

Laatst bijgewerkt:

Blijf lezen