Voorbeeld van het Toegankelijkheidsrapport. Harbor & Pine is een fictieve webshop die we met veelvoorkomende toegankelijkheidsfouten hebben gebouwd en daarna hebben getest met dezelfde engine die jouw website scant.
Scan je website gratisVoorbeeld van het Toegankelijkheidsrapport
harborandpine.example
- Platform:
- Shopify
- Gegenereerd:
- 24 sep 2026
- Geteste pagina’s:
- 9
- Engine:
- axe-core 4.13.0
Samenvatting
- We hebben op 24 sep 2026 9 pagina’s van harborandpine.example getest (4 uit je sitemap) met axe-core 4.13.0 tegen WCAG 2.2 A en AA, plus een winkeltest met alleen het toetsenbord.
- Niet geslaagd voor geautomatiseerde WCAG-tests: 8 soorten problemen (131 gevallen). 8 daarvan zijn gemarkeerd als Eerst oplossen.
- Route geblokkeerdEen klant die alleen het toetsenbord gebruikt, loopt vast bij: Opties en aantal kiezen.
- Menselijke controle nodig voor 4 punten: geautomatiseerde tests signaleerden ze, maar konden niet beslissen.
- Begin met: De toetsenbordfocus zit vast in de cookiebanner; Productopties zijn niet met het toetsenbord te kiezen; Knoppen moeten herkenbare tekst hebben.
Geautomatiseerde tests vinden een deel van de toegankelijkheidsproblemen op een site, niet alle. Dit rapport beschrijft wat onze tests vonden en hoe je het oplost. Het is geen juridisch advies en certificeert niet dat je voldoet aan de ADA, de European Accessibility Act of welke wet dan ook.
Overzicht
- P1 · Eerst oplossenHoudt bezoekers tegen op belangrijke pagina’s
- 8
- P2 · Daarna oplossenErnstige of matige drempels
- 0
- P3 · VerbeterenKleine problemen en best practices
- 2
Gevallen per ernst
- Kritiek
- 73
- Ernstig
- 58
- Matig
- 25
- Gering
- 0
- Bevestigde foutenSoorten problemen waarbij een geautomatiseerde test faalde
- 10
- Beoordeling nodigGesignaleerd, maar een mens moet beslissen
- 4
- Geslaagde checksGeautomatiseerde regels zonder fouten
- 32
- Niet getestStappen van de route en handmatige controles
- 7
We hebben 9 pagina’s getest, waarvan 4 als steekproef uit je sitemap. De streefdata zijn suggesties op basis van de ernst; spreek de definitieve data af met je ontwikkelaar.
Overzicht van de website
Herkend aan de hand van openbaar bewijs op de geteste pagina’s. Een label kan onjuist zijn; het bepaalt alleen welke extra checks worden uitgevoerd.
Type website
- WebshopHoge betrouwbaarheid
- Draait op Shopify, een webshopplatform
- Link naar een winkelwagen
- Links naar producten of de winkel
- LandingspaginaGemiddelde betrouwbaarheid
- Slechts 6 interne pagina’s gelinkt
Herkende technologieën
- ShopifyHoge betrouwbaarheid
Bestanden of scripts van Shopify op de pagina
Checks voor deze site
- Universele checks: toegankelijkheid, SEO, snelheid, beveiliging en e-mail
- E-commercemodule: collectie-, product- en winkelwagenpagina’s, en een winkelroute met het toetsenbord tot aan de afrekenknop
- Shopify-notities: stappen voor het thema en de beheeromgeving; headers en cookies die het platform beheert, tonen we ter informatie
Winkelroute met het toetsenbord
We hebben geprobeerd te winkelen met alleen het toetsenbord (Tab, Shift+Tab, Enter, spatiebalk, Escape), zoals mensen die geen muis kunnen gebruiken dat doen. We leggen één artikel in een winkelwagen in een tijdelijke sessie en stoppen bij de afrekenknop: we gaan nooit naar de kassa en typen nooit persoonlijke of betaalgegevens. Doel: Met alleen een toetsenbord van de startpagina naar de afrekenknop komen.
01De hoofdnavigatie bereiken
GeslaagdDe focus bereikte “Shop” in de navigatie na 21 keer Tab.
Verwacht: Met Tab vanaf de bovenkant van de startpagina bereik je de links in de hoofdnavigatie.
- Opmerking: Een cookiebanner hield de toetsenbordfocus vast totdat we op Enter drukten bij “Accept all”.
Zo reproduceer je het
https://harborandpine.example/
- Open de startpagina.
- Klik in de adresbalk van de browser en druk daarna herhaaldelijk op Tab (met Shift+Tab ga je terug).
Focusvolgorde die we zagen
“Shop”
02Een product openen vanuit een collectie
GeslaagdDe focus bereikte “Trail Daypack 22L” na 9 keer Tab, en Enter opende /products/trail-daypack.
Verwacht: Tab bereikt een product in het collectieraster, en Enter opent de productpagina.
Zo reproduceer je het
https://harborandpine.example/collections/all
- Open /collections/all.
- Druk op Tab tot een product in het raster is gemarkeerd en druk dan op Enter.
Focusvolgorde die we zagen
“Harbor & Pine” → “Shop” → “New arrivals” → “Our story” → body > header.site > div.icons > button → “Account” → body > header.site > div.icons > a → “FeaturedPrice, low to highPrice, high to low” → “Trail Daypack 22L”
03Opties en aantal kiezen
Niet geslaagd3 productopties kunnen geen toetsenbordfocus krijgen: “S”, “M”, “L”. Ze reageren op de muis, maar een toetsenbordgebruiker kan ze niet kiezen.
Verwacht: Elke productoptie (maat, kleur, variant) en het aantalveld zijn met Tab bereikbaar.
2.1.1 Toetsenbord · Betrouwbaarheid: hoog

Opties en aantal kiezen: het foute element, omlijnd Zo reproduceer je het
https://harborandpine.example/products/trail-daypack
- Open /products/trail-daypack.
- Druk vanaf de bovenkant van de pagina op Tab en noteer welke elementen de focus krijgen vóór ‘In winkelwagen’.
Focusvolgorde die we zagen
“Harbor & Pine” → “Shop” → “New arrivals” → “Our story” → … nog 5 … → body > header.site > div.icons > a → div.page.product > div.gallery > div.thumbs > button → div.page.product > div.gallery > div.thumbs > button → div.page.product > div.gallery > div.thumbs > button → div.page.product > div > div.swatches > button → div.page.product > div > div.swatches > button → div.page.product > div > div.swatches > button → “1” → “Add to cart”
Element <div class="size-option" data-fr="opt-1">S</div>04Met het toetsenbord in de winkelwagen leggen
Beoordeling nodigEnter op ‘In winkelwagen’ werkte (het aantal in de winkelwagen in de header veranderde, er verscheen een melding ‘toegevoegd aan winkelwagen’), maar we vonden geen statusmelding of dialoogvenster met focus, dus gebruikers van schermlezers horen misschien niet dat het artikel is toegevoegd.
Verwacht: Enter op ‘In winkelwagen’ legt het artikel in de winkelwagen, en de bevestiging wordt doorgegeven: een statusmelding, een dialoogvenster dat de focus krijgt of de winkelwagenpagina.
4.1.3 Statusberichten · Betrouwbaarheid: gemiddeld

Met het toetsenbord in de winkelwagen leggen: de pagina bij deze stap Zo reproduceer je het
https://harborandpine.example/products/trail-daypack
- Open /products/trail-daypack.
- Druk op Tab tot ‘In winkelwagen’ de focus heeft en druk dan op Enter.
- Luister met een schermlezer (VoiceOver: Cmd+F5) of er een bevestiging komt.
05De winkelwagen aanpassen en het afrekenen bereiken
GeslaagdAlle 4 bedieningselementen van de winkelwagen en de afrekenknop (“Check out”) bereikt met 12 keer Tab. We hebben er niet op gedrukt.
Verwacht: Aantalvelden, verwijderknoppen en de afrekenknop zijn allemaal met Tab bereikbaar.
Zo reproduceer je het
https://harborandpine.example/cart
- Leg een willekeurig product in de winkelwagen en open de winkelwagenpagina.
- Druk op Tab en controleer of aantalvelden, verwijderknoppen en de afrekenknop allemaal de focus krijgen.
Focusvolgorde die we zagen
“Harbor & Pine” → “Shop” → “New arrivals” → “Our story” → body > header.site > div.icons > button → “Account” → body > header.site > div.icons > a → “1” → tbody > tr > td > button.remove → “2” → tbody > tr > td > button.remove → “Check out”
06Afrekenen
Niet getestWe stoppen bij de afrekenknop: we gaan nooit naar het afrekenen, maken geen bestelling aan en typen geen betaalgegevens. Bij Shopify worden de afrekenpagina’s door Shopify beheerd, niet door je thema. Controleer het afrekenen zelf (zie Handmatige controles).
Claimoverzicht van de brief
Elke claim in de brief, gekoppeld aan het bewijs uit de scan. Een feitelijke vergelijking, geen juridisch advies.
- Gereproduceerd
“Images lack alternative text, so product photos are not described.”
Afbeeldingen zonder tekstalternatief. 10 gevallen op 3 van de 5 geteste pagina’s.
image-alt
- Gereproduceerd
“Text has insufficient color contrast against its background, including sale badges and prices.”
Te weinig kleurcontrast. 16 gevallen op 5 van de 5 geteste pagina’s.
color-contrast
- Gereproduceerd
“The website cannot be navigated using a keyboard alone.”
Toetsenbordtoegang en focus. De toetsenbordfocus komt vast te zitten in de cookiebanner.
- Gereproduceerd
“Form fields do not have labels, including the newsletter sign-up and the quantity fields in the cart.”
Formuliervelden zonder label. 4 gevallen op 3 van de 5 geteste pagina’s.
select-name, label
- Handmatige controle
“Product videos do not have captions.”
Ondertiteling bij video en audio. Geautomatiseerde scans kunnen ondertiteling niet beoordelen. Controleer elke product- of merkvideo op juiste ondertiteling en een transcript.
- Handmatige controle
“Our client is legally blind and uses screen reader software.”
Andere problemen. Dit is een algemene bewering. Test de belangrijkste routes (zoeken, productpagina, in winkelwagen leggen, afrekenen) met een schermlezer zoals VoiceOver of NVDA.
Herstelplan
| Prioriteit | Probleem | Status | WCAG | Gevallen | Verantwoordelijke | Streefdatum |
|---|---|---|---|---|---|---|
| P1 | De toetsenbordfocus zit vast in de cookiebanner | Bevestigd | 2.1.2 | 1 | app-leverancier | 2026-10-08 |
| P1 | Productopties zijn niet met het toetsenbord te kiezen | Bevestigd | 2.1.1 | 1 | themaontwikkelaar | 2026-10-08 |
| P1 | Knoppen moeten herkenbare tekst hebben | Bevestigd | 4.1.2 | 41 | themaontwikkelaar | 2026-10-08 |
| P1 | Afbeeldingen moeten een tekstalternatief hebben | Bevestigd | 1.1.1 | 22 | contentredacteur | 2026-10-08 |
| P1 | Formulierelementen moeten een label hebben | Bevestigd | 4.1.2 | 7 | themaontwikkelaar | 2026-10-08 |
| P1 | Een keuzelijst (select-element) moet een toegankelijke naam hebben | Bevestigd | 4.1.2 | 1 | themaontwikkelaar | 2026-10-08 |
| P1 | Links moeten herkenbare tekst hebben | Bevestigd | 2.4.4, 4.1.2 | 36 | themaontwikkelaar | 2026-10-08 |
| P1 | Elementen moeten voldoen aan de minimale drempelwaarden voor kleurcontrast | Bevestigd | 1.4.3 | 22 | winkeleigenaar (beheerinstellingen) | 2026-10-08 |
| P3 | Alle content van de pagina zou binnen landmarks moeten staan | Bevestigd | Best practice | 18 | themaontwikkelaar | 2026-11-23 |
| P3 | Kopniveaus zouden steeds maar met één moeten oplopen | Bevestigd | Best practice | 7 | themaontwikkelaar | 2026-11-23 |
Zo los je elk probleem op
De toetsenbordfocus zit vast in de cookiebanner
inspanning: gemiddeld · verantwoordelijke: app-leverancier · 2.1.2 Geen toetsenbordval
Als een toetsenbordgebruiker op Tab drukt, gaat de focus rond door een paar elementen en bereikt die nooit de rest van de pagina.
Gebruikers met alleen een toetsenbord of een schermlezer kunnen helemaal niet winkelen als de focus vastzit (WCAG 2.1.2 Geen toetsenbordval).
Bewijs
- Gevonden door
- Toetsenbordtest (met Tab door de startpagina)
- Status · betrouwbaarheid
- Bevestigde fout · hoog
- Gevonden op
- 24 sep 2026 (UTC)
- Waar
- 1 geval op 1 pagina
Verwacht: Op Tab drukken gaat langs elk interactief element op de pagina en verder naar de rest van de pagina.
Waargenomen: Na 40 keer op Tab drukken bleef de focus rondgaan door: Settings, Accept all.
Zo reproduceer je het
- Open de startpagina.
- Klik in de adresbalk en druk daarna herhaaldelijk op Tab.
- De focus keert steeds terug naar dezelfde paar elementen.
Foute elementen (6 getoond)
SettingsAccept allSettingsAccept allSettingsAccept allBetrokken pagina’s (1)
- https://harborandpine.example/
Zo los je het op
Algemene aanwijzingen- Zoek in de instellingen van je app voor de cookie- of toestemmingsbanner naar een optie voor toegankelijkheid of focusvallen, of vraag de leverancier het op te lossen.
- Een modal mag de focus alleen vasthouden zolang die open is, moet met de Escape-toets sluiten en de focus terugzetten waar die vandaan kwam.
Oplossen met AIToon de prompt
Plak dit samen met je themabestand in ChatGPT, Claude, Cursor of Copilot. Controleer de aanpassing voordat je die publiceert.
Ik beheer een Shopify-webshop (Online Store 2.0-thema, Liquid-sjablonen) op harborandpine.example. Een toegankelijkheidstest vond dit probleem en ik wil het in mijn thema oplossen. Probleem: De toetsenbordfocus zit vast in de cookiebanner (WCAG 2.1.2). Waar: 1 geval op 1 pagina, bijvoorbeeld /. Eén fout element, zoals de browser het weergaf: ```html Settings ``` Waarom het belangrijk is: Gebruikers met alleen een toetsenbord of een schermlezer kunnen helemaal niet winkelen als de focus vastzit (WCAG 2.1.2 Geen toetsenbordval). Wat er moet veranderen: - Zoek in de instellingen van je app voor de cookie- of toestemmingsbanner naar een optie voor toegankelijkheid of focusvallen, of vraag de leverancier het op te lossen. - Een modal mag de focus alleen vasthouden zolang die open is, moet met de Escape-toets sluiten en de focus terugzetten waar die vandaan kwam. Regels voor je antwoord: - Toon de exacte aanpassing als voor en na, en noem het bestand of de instelling waar die hoort. Als je eerst mijn bestand moet zien, vraag me dan om het te plakken. - Laat het visuele ontwerp en al het bestaande gedrag ongewijzigd. - Verzin geen productnamen, prijzen of teksten; gebruik placeholders die ik kan invullen. - Sluit af met hoe ik de oplossing zelf kan controleren. - Vermeld ook hoe ik het kan bevestigen met het toetsenbord en een schermlezer.
Controleer je oplossing
- Laad de startpagina, druk herhaaldelijk op Tab en controleer dat de focus de hoofdnavigatie en de inhoud bereikt.
Gevonden door een geautomatiseerde toetsenbordtest; bevestig het handmatig.
Productopties zijn niet met het toetsenbord te kiezen
inspanning: gemiddeld · verantwoordelijke: themaontwikkelaar · 2.1.1 Toetsenbord
Opties voor maat, kleur of variant reageren op de muis maar kunnen geen toetsenbordfocus krijgen, waardoor toetsenbordgebruikers geen variant kunnen kiezen.
Klanten die alleen het toetsenbord gebruiken, waaronder veel gebruikers van een schermlezer, komen niet voorbij deze stap (WCAG 2.1.1).
Bewijs
- Gevonden door
- Toetsenbordroute
- Status · betrouwbaarheid
- Bevestigde fout · hoog
- Gevonden op
- 24 sep 2026 (UTC)
- Waar
- 1 geval op 1 pagina
Verwacht: Elke productoptie (maat, kleur, variant) en het aantalveld zijn met Tab bereikbaar.
Waargenomen: 3 productopties kunnen geen toetsenbordfocus krijgen: “S”, “M”, “L”. Ze reageren op de muis, maar een toetsenbordgebruiker kan ze niet kiezen.

Zo reproduceer je het
- Open /products/trail-daypack.
- Druk vanaf de bovenkant van de pagina op Tab en noteer welke elementen de focus krijgen vóór ‘In winkelwagen’.
Foute elementen (1 getoond)
<div class="size-option" data-fr="opt-1">S</div>Betrokken pagina’s (1)
- https://harborandpine.example/products/trail-daypack
Zo los je het op
Algemene aanwijzingen- Bouw optiekiezers met native keuzerondjes (of een <select>) met zichtbare labels; geef het label de opmaak van het kleurvakje.
- Houd je eigen elementen aan, dan heeft elke optie tabindex="0" nodig, role="radio" met aria-checked binnen een role="radiogroup", en afhandeling van de pijltjestoetsen en de spatiebalk. Native keuzerondjes geven je dat allemaal vanzelf.
Code
Voorbeelden voor je ontwikkelaar. We hebben de broncode van je thema niet, dus bestandslocaties zijn hints, geen exacte paden.
<div class="size-option" data-fr="opt-1">S</div><fieldset class="variant-picker">
<legend>Size</legend>
<input type="radio" id="size-s" name="Size" value="S" class="visually-hidden">
<label for="size-s" class="size-option">S</label>
<input type="radio" id="size-m" name="Size" value="M" class="visually-hidden">
<label for="size-m" class="size-option">M</label>
</fieldset>Elke optie is een echt keuzerondje, bereikbaar met Tab en te wijzigen met de pijltjestoetsen; het label behoudt de opmaak van je kleurvakje. Gebruik je eigen optienamen en -waarden.
Oplossen met AIToon de prompt
Plak dit samen met je themabestand in ChatGPT, Claude, Cursor of Copilot. Controleer de aanpassing voordat je die publiceert.
Ik beheer een Shopify-webshop (Online Store 2.0-thema, Liquid-sjablonen) op harborandpine.example. Een toegankelijkheidstest vond dit probleem en ik wil het in mijn thema oplossen. Probleem: Productopties zijn niet met het toetsenbord te kiezen (WCAG 2.1.1). Waar: 1 geval op 1 pagina, bijvoorbeeld /products/trail-daypack. Eén fout element, zoals de browser het weergaf: ```html <div class="size-option" data-fr="opt-1">S</div> ``` Waarom het belangrijk is: Klanten die alleen het toetsenbord gebruiken, waaronder veel gebruikers van een schermlezer, komen niet voorbij deze stap (WCAG 2.1.1). Wat er moet veranderen: - Bouw optiekiezers met native keuzerondjes (of een <select>) met zichtbare labels; geef het label de opmaak van het kleurvakje. - Houd je eigen elementen aan, dan heeft elke optie tabindex="0" nodig, role="radio" met aria-checked binnen een role="radiogroup", en afhandeling van de pijltjestoetsen en de spatiebalk. Native keuzerondjes geven je dat allemaal vanzelf. Een voorgestelde aanpassing (Het productformulier van je thema (variantkiezer)): ```html <fieldset class="variant-picker"> <legend>Size</legend> <input type="radio" id="size-s" name="Size" value="S" class="visually-hidden"> <label for="size-s" class="size-option">S</label> <input type="radio" id="size-m" name="Size" value="M" class="visually-hidden"> <label for="size-m" class="size-option">M</label> </fieldset> ``` Regels voor je antwoord: - Toon de exacte aanpassing als voor en na, en noem het bestand of de instelling waar die hoort. Als je eerst mijn bestand moet zien, vraag me dan om het te plakken. - Laat het visuele ontwerp en al het bestaande gedrag ongewijzigd. - Verzin geen productnamen, prijzen of teksten; gebruik placeholders die ik kan invullen. - Sluit af met hoe ik de oplossing zelf kan controleren. - Vermeld ook hoe ik het kan bevestigen met het toetsenbord en een schermlezer.
Controleer je oplossing
- Herhaal de stappen om het te reproduceren met alleen het toetsenbord.
- Vraag vanuit dit rapport een hertest aan: de route wordt opnieuw uitgevoerd.
Afbeeldingen moeten een tekstalternatief hebben
inspanning: gemiddeld · verantwoordelijke: contentredacteur · 1.1.1 Niet-tekstuele content
Afbeeldingen missen een tekstalternatief, waardoor gebruikers van een schermlezer niet weten wat ze tonen.
WCAG 1.1.1 vraagt een tekstalternatief voor betekenisvolle afbeeldingen. Zonder tekstalternatief weet iemand met een schermlezer niet welk product een foto toont.
Bewijs
- Gevonden door
- Geautomatiseerde regel van axe-core
- Status · betrouwbaarheid
- Bevestigde fout · hoog
- Gevonden op
- 24 sep 2026 (UTC)
- Waar
- 22 gevallen op 7 pagina’s
Verwacht: Afbeeldingen moeten een tekstalternatief hebben
Waargenomen: Element heeft geen alt-attribuut. Het aria-label-attribuut bestaat niet of is leeg. Het aria-labelledby-attribuut bestaat niet, verwijst naar elementen die niet bestaan of verwijst naar elementen die leeg zijn. Element heeft geen title-attribuut. De standaardsemantiek van het element is niet overschreven met role="none" of role="presentation".


Zo reproduceer je het
- Open https://harborandpine.example/ in Chrome of Edge.
- Open DevTools (F12) › Elementen, druk op Ctrl+F (Cmd+F op een Mac) en zoek naar: img[src$="hero-photo.jpg"]
- In het deelvenster Toegankelijkheid van DevTools is de berekende naam (Name) van het element leeg.
- Of voer de gratis browserextensie axe DevTools uit op de pagina: die meldt dit als “image-alt”.
Foute elementen (4 getoond)
<img src="/img/hero-photo.jpg" loading="lazy"><img src="/img/mug.svg"><img src="/img/beanie.svg"><img src="/img/jacket.svg">Betrokken pagina’s (7)
- https://harborandpine.example/
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
Zo los je het op
Code opgebouwd uit de markup van je pagina- Open in de Shopify-beheeromgeving Producten > [product] > Media, klik op elke afbeelding en vul ‘Alt-tekst’ in. Voor afbeeldingen in secties open je Webwinkel > Thema’s > Aanpassen en stel je de alt-tekst van de afbeelding in bij de instellingen van de sectie.
- Beschrijf wat voor een klant belangrijk is: productnaam, kleur en de getoonde kant (bijvoorbeeld ‘Canvas tas in olijfgroen, vooraanzicht’).
- Decoratieve afbeeldingen horen een leeg alt-attribuut (alt="") te hebben, zodat schermlezers ze overslaan.
Code
Voorbeelden voor je ontwikkelaar. We hebben de broncode van je thema niet, dus bestandslocaties zijn hints, geen exacte paden.
<img src="/img/hero-photo.jpg" loading="lazy"><img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">Beschrijf wat de afbeelding toont (bij een productfoto: product, kleur, kant). Is de afbeelding puur decoratief, gebruik dan alt="", zodat schermlezers haar overslaan.
<img src="/img/mug.svg"><img src="/img/mug.svg" alt="[Describe the image for a shopper]">Beschrijf wat de afbeelding toont (bij een productfoto: product, kleur, kant). Is de afbeelding puur decoratief, gebruik dan alt="", zodat schermlezers haar overslaan.
<img src="/img/beanie.svg"><img src="/img/beanie.svg" alt="[Describe the image for a shopper]">Beschrijf wat de afbeelding toont (bij een productfoto: product, kleur, kant). Is de afbeelding puur decoratief, gebruik dan alt="", zodat schermlezers haar overslaan.
<img src="/img/jacket.svg"><img src="/img/jacket.svg" alt="[Describe the image for a shopper]">Beschrijf wat de afbeelding toont (bij een productfoto: product, kleur, kant). Is de afbeelding puur decoratief, gebruik dan alt="", zodat schermlezers haar overslaan.
Oplossen met AIToon de prompt
Plak dit samen met je themabestand in ChatGPT, Claude, Cursor of Copilot. Controleer de aanpassing voordat je die publiceert.
Ik beheer een Shopify-webshop (Online Store 2.0-thema, Liquid-sjablonen) op harborandpine.example. Een toegankelijkheidstest vond dit probleem en ik wil het in mijn thema oplossen. Probleem: Afbeeldingen moeten een tekstalternatief hebben (WCAG 1.1.1). Waar: 22 gevallen op 7 pagina’s, bijvoorbeeld /, /collections/all, /products/trail-daypack, /products/pine-wool-beanie. Eén fout element, zoals de browser het weergaf: ```html <img src="/img/hero-photo.jpg" loading="lazy"> ``` Waarom het belangrijk is: WCAG 1.1.1 vraagt een tekstalternatief voor betekenisvolle afbeeldingen. Zonder tekstalternatief weet iemand met een schermlezer niet welk product een foto toont. Wat er moet veranderen: - Open in de Shopify-beheeromgeving Producten > [product] > Media, klik op elke afbeelding en vul ‘Alt-tekst’ in. Voor afbeeldingen in secties open je Webwinkel > Thema’s > Aanpassen en stel je de alt-tekst van de afbeelding in bij de instellingen van de sectie. - Beschrijf wat voor een klant belangrijk is: productnaam, kleur en de getoonde kant (bijvoorbeeld ‘Canvas tas in olijfgroen, vooraanzicht’). - Decoratieve afbeeldingen horen een leeg alt-attribuut (alt="") te hebben, zodat schermlezers ze overslaan. Een voorgestelde aanpassing (Productfoto’s: Shopify-beheeromgeving › Producten › Media › Alt-tekst. Andere afbeeldingen: de code van je thema): ```html <img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]"> ``` Regels voor je antwoord: - Toon de exacte aanpassing als voor en na, en noem het bestand of de instelling waar die hoort. Als je eerst mijn bestand moet zien, vraag me dan om het te plakken. - Laat het visuele ontwerp en al het bestaande gedrag ongewijzigd. - Verzin geen productnamen, prijzen of teksten; gebruik placeholders die ik kan invullen. - Sluit af met hoe ik de oplossing zelf kan controleren. - Vermeld ook hoe ik het kan bevestigen met het toetsenbord en een schermlezer.
Controleer je oplossing
- Scan de betrokken pagina’s opnieuw.
- Gebruik een schermlezer (VoiceOver: Cmd+F5 op een Mac) om te horen hoe de productafbeeldingen worden voorgelezen.
Uitgebreide uitleg: https://dequeuniversity.com/rules/axe/4.13/image-alt?application=playwright
Formulierelementen moeten een label hebben
inspanning: klein · verantwoordelijke: themaontwikkelaar · 4.1.2 Naam, rol, waarde
Sommige formuliervelden hebben geen label, waardoor gebruikers van een schermlezer niet weten wat ze moeten invullen.
WCAG 1.3.1, 3.3.2 en 4.1.2 vragen dat formuliervelden een label hebben. Aanmeldvelden voor de nieuwsbrief en zoekvelden zijn de gebruikelijke boosdoeners.
Bewijs
- Gevonden door
- Geautomatiseerde regel van axe-core
- Status · betrouwbaarheid
- Bevestigde fout · hoog
- Gevonden op
- 24 sep 2026 (UTC)
- Waar
- 7 gevallen op 6 pagina’s
Verwacht: Formulierelementen moeten een label hebben
Waargenomen: Element heeft geen impliciet (omsluitend) <label>. Element heeft geen expliciet <label>. Het aria-label-attribuut bestaat niet of is leeg. Het aria-labelledby-attribuut bestaat niet, verwijst naar elementen die niet bestaan of verwijst naar elementen die leeg zijn. Element heeft geen title-attribuut. Element heeft geen placeholder-attribuut. De standaardsemantiek van het element is niet overschreven met role="none" of role="presentation".


Zo reproduceer je het
- Open https://harborandpine.example/products/trail-daypack in Chrome of Edge.
- Open DevTools (F12) › Elementen, druk op Ctrl+F (Cmd+F op een Mac) en zoek naar: input
- In het deelvenster Toegankelijkheid van DevTools is de berekende naam (Name) van het element leeg.
- Of voer de gratis browserextensie axe DevTools uit op de pagina: die meldt dit als “label”.
Foute elementen (2 getoond)
<input type="number" value="1" min="1"><input type="number" value="2" min="1">Betrokken pagina’s (6)
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/cart
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
Zo los je het op
Code opgebouwd uit de markup van je pagina- Geef elk veld een <label for="field-id">-element, of op zijn minst een aria-label.
- Placeholdertekst alleen telt niet als label.
Code
Voorbeelden voor je ontwikkelaar. We hebben de broncode van je thema niet, dus bestandslocaties zijn hints, geen exacte paden.
<input type="number" value="1" min="1"><input type="number" value="1" min="1" aria-label="Quantity">Het veld heeft geen id, dus de snelste oplossing is een aria-label. Een zichtbaar <label> is beter voor iedereen. De labeltekst “Quantity” is afgeleid uit het veld; pas die zo nodig aan.
<input type="number" value="2" min="1"><input type="number" value="2" min="1" aria-label="Quantity">Het veld heeft geen id, dus de snelste oplossing is een aria-label. Een zichtbaar <label> is beter voor iedereen. De labeltekst “Quantity” is afgeleid uit het veld; pas die zo nodig aan.
Oplossen met AIToon de prompt
Plak dit samen met je themabestand in ChatGPT, Claude, Cursor of Copilot. Controleer de aanpassing voordat je die publiceert.
Ik beheer een Shopify-webshop (Online Store 2.0-thema, Liquid-sjablonen) op harborandpine.example. Een toegankelijkheidstest vond dit probleem en ik wil het in mijn thema oplossen. Probleem: Formulierelementen moeten een label hebben (WCAG 4.1.2). Waar: 7 gevallen op 6 pagina’s, bijvoorbeeld /products/trail-daypack, /cart, /products/pine-wool-beanie, /products/enamel-camp-mug. Eén fout element, zoals de browser het weergaf: ```html <input type="number" value="1" min="1"> ``` Waarom het belangrijk is: WCAG 1.3.1, 3.3.2 en 4.1.2 vragen dat formuliervelden een label hebben. Aanmeldvelden voor de nieuwsbrief en zoekvelden zijn de gebruikelijke boosdoeners. Wat er moet veranderen: - Geef elk veld een <label for="field-id">-element, of op zijn minst een aria-label. - Placeholdertekst alleen telt niet als label. Een voorgestelde aanpassing (De code van je thema (zoek daarin naar de getoonde markup)): ```html <input type="number" value="1" min="1" aria-label="Quantity"> ``` Regels voor je antwoord: - Toon de exacte aanpassing als voor en na, en noem het bestand of de instelling waar die hoort. Als je eerst mijn bestand moet zien, vraag me dan om het te plakken. - Laat het visuele ontwerp en al het bestaande gedrag ongewijzigd. - Verzin geen productnamen, prijzen of teksten; gebruik placeholders die ik kan invullen. - Sluit af met hoe ik de oplossing zelf kan controleren. - Vermeld ook hoe ik het kan bevestigen met het toetsenbord en een schermlezer.
Controleer je oplossing
- Scan opnieuw en controleer dat de regel label niet meer faalt.
- Klik op elk label en controleer dat het bijbehorende veld de focus krijgt.
Uitgebreide uitleg: https://dequeuniversity.com/rules/axe/4.13/label?application=playwright
Een keuzelijst (select-element) moet een toegankelijke naam hebben
inspanning: klein · verantwoordelijke: themaontwikkelaar · 4.1.2 Naam, rol, waarde
Een keuzelijst (vaak een sorteer- of variantkiezer) heeft geen label.
WCAG 4.1.2 vraagt dat keuzelijsten een toegankelijke naam hebben.
Bewijs
- Gevonden door
- Geautomatiseerde regel van axe-core
- Status · betrouwbaarheid
- Bevestigde fout · hoog
- Gevonden op
- 24 sep 2026 (UTC)
- Waar
- 1 geval op 1 pagina
Verwacht: Een keuzelijst (select-element) moet een toegankelijke naam hebben
Waargenomen: Element heeft geen impliciet (omsluitend) <label>. Element heeft geen expliciet <label>. Het aria-label-attribuut bestaat niet of is leeg. Het aria-labelledby-attribuut bestaat niet, verwijst naar elementen die niet bestaan of verwijst naar elementen die leeg zijn. Element heeft geen title-attribuut. De standaardsemantiek van het element is niet overschreven met role="none" of role="presentation".

Zo reproduceer je het
- Open https://harborandpine.example/collections/all in Chrome of Edge.
- Open DevTools (F12) › Elementen, druk op Ctrl+F (Cmd+F op een Mac) en zoek naar: select
- In het deelvenster Toegankelijkheid van DevTools is de berekende naam (Name) van het element leeg.
- Of voer de gratis browserextensie axe DevTools uit op de pagina: die meldt dit als “select-name”.
Foute elementen (1 getoond)
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>Betrokken pagina’s (1)
- https://harborandpine.example/collections/all
Zo los je het op
Code opgebouwd uit de markup van je pagina- Voeg een <label> toe dat aan de keuzelijst is gekoppeld, of een aria-label zoals aria-label="Sort by".
Code
Voorbeelden voor je ontwikkelaar. We hebben de broncode van je thema niet, dus bestandslocaties zijn hints, geen exacte paden.
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select><select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>Het veld heeft geen id, dus de snelste oplossing is een aria-label. Een zichtbaar <label> is beter voor iedereen. Vervang de tekst tussen haakjes door het label van het veld.
Oplossen met AIToon de prompt
Plak dit samen met je themabestand in ChatGPT, Claude, Cursor of Copilot. Controleer de aanpassing voordat je die publiceert.
Ik beheer een Shopify-webshop (Online Store 2.0-thema, Liquid-sjablonen) op harborandpine.example. Een toegankelijkheidstest vond dit probleem en ik wil het in mijn thema oplossen. Probleem: Een keuzelijst (select-element) moet een toegankelijke naam hebben (WCAG 4.1.2). Waar: 1 geval op 1 pagina, bijvoorbeeld /collections/all. Eén fout element, zoals de browser het weergaf: ```html <select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select> ``` Waarom het belangrijk is: WCAG 4.1.2 vraagt dat keuzelijsten een toegankelijke naam hebben. Wat er moet veranderen: - Voeg een <label> toe dat aan de keuzelijst is gekoppeld, of een aria-label zoals aria-label="Sort by". Een voorgestelde aanpassing (De code van je thema (zoek daarin naar de getoonde markup)): ```html <select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select> ``` Regels voor je antwoord: - Toon de exacte aanpassing als voor en na, en noem het bestand of de instelling waar die hoort. Als je eerst mijn bestand moet zien, vraag me dan om het te plakken. - Laat het visuele ontwerp en al het bestaande gedrag ongewijzigd. - Verzin geen productnamen, prijzen of teksten; gebruik placeholders die ik kan invullen. - Sluit af met hoe ik de oplossing zelf kan controleren. - Vermeld ook hoe ik het kan bevestigen met het toetsenbord en een schermlezer.
Controleer je oplossing
- Scan de collectie- en productpagina’s opnieuw.
Uitgebreide uitleg: https://dequeuniversity.com/rules/axe/4.13/select-name?application=playwright
Links moeten herkenbare tekst hebben
inspanning: klein · verantwoordelijke: themaontwikkelaar · 2.4.4 Linkdoel (in context), 4.1.2 Naam, rol, waarde
Sommige links hebben geen tekst die een schermlezer kan voorlezen, vaak links met alleen een icoon, zoals social-media-iconen of het winkelwagenicoon.
WCAG 2.4.4 en 4.1.2 vragen dat links een toegankelijke naam hebben die hun doel beschrijft.
Bewijs
- Gevonden door
- Geautomatiseerde regel van axe-core
- Status · betrouwbaarheid
- Bevestigde fout · hoog
- Gevonden op
- 24 sep 2026 (UTC)
- Waar
- 36 gevallen op 9 pagina’s
Verwacht: Links moeten herkenbare tekst hebben
Waargenomen: Element staat in de tabvolgorde en heeft geen toegankelijke tekst. Daarnaast: Element heeft geen tekst die zichtbaar is voor schermlezers. Het aria-label-attribuut bestaat niet of is leeg. Het aria-labelledby-attribuut bestaat niet, verwijst naar elementen die niet bestaan of verwijst naar elementen die leeg zijn. Element heeft geen title-attribuut.


Zo reproduceer je het
- Open https://harborandpine.example/ in Chrome of Edge.
- Open DevTools (F12) › Elementen, druk op Ctrl+F (Cmd+F op een Mac) en zoek naar: a[href$="cart"]
- In het deelvenster Toegankelijkheid van DevTools is de berekende naam (Name) van het element leeg.
- Of voer de gratis browserextensie axe DevTools uit op de pagina: die meldt dit als “link-name”.
Foute elementen (4 getoond)
<a href="/cart"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 4h2l2.4 11h11l2-8H6.5"></path><circle cx="9" cy="20" r="1.5"></circle><circle cx="18" cy="20" r="1.5"></circle></svg></a><a href="https://instagram.example/harborandpine"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="5"></rect><circle cx="12" cy="12" r="4"></circle></svg></a><a href="https://facebook.example/harborandpine"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M14 8h3V4h-3c-2.8 0-4 1.8-4 4v2H7v4h3v8h4v-8h3l1-4h-4V8.5c0-.3.2-.5.5-.5z"></path></svg></a><a href="https://x.example/harborandpine"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4l16 16M20 4L4 20"></path></svg></a>Betrokken pagina’s (9)
- https://harborandpine.example/
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/cart
- https://harborandpine.example/pages/about
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
Zo los je het op
Code opgebouwd uit de markup van je pagina- Zoek de links in de voorbeelden hieronder. De meeste zijn iconen of afbeeldingen in een <a>-tag.
- Voeg visueel verborgen tekst toe in de link, of een aria-label zoals aria-label="Instagram" of aria-label="Cart".
- Als de link om een afbeelding heen staat, geef de afbeelding dan in plaats daarvan een betekenisvolle alt-tekst.
Code
Voorbeelden voor je ontwikkelaar. We hebben de broncode van je thema niet, dus bestandslocaties zijn hints, geen exacte paden.
<a href="/cart">…</a><a href="/cart" aria-label="Cart">…</a>Geeft de link de naam “Cart”, afgeleid uit het linkadres of de classes. Controleer dat die zegt wat de link doet.
<a href="https://instagram.example/harborandpine">…</a><a href="https://instagram.example/harborandpine" aria-label="Instagram">…</a>Geeft de link de naam “Instagram”, afgeleid uit het linkadres of de classes. Controleer dat die zegt wat de link doet.
<a href="https://facebook.example/harborandpine">…</a><a href="https://facebook.example/harborandpine" aria-label="Facebook">…</a>Geeft de link de naam “Facebook”, afgeleid uit het linkadres of de classes. Controleer dat die zegt wat de link doet.
<a href="https://x.example/harborandpine">…</a><a href="https://x.example/harborandpine" aria-label="X (Twitter)">…</a>Geeft de link de naam “X (Twitter)”, afgeleid uit het linkadres of de classes. Controleer dat die zegt wat de link doet.
Oplossen met AIToon de prompt
Plak dit samen met je themabestand in ChatGPT, Claude, Cursor of Copilot. Controleer de aanpassing voordat je die publiceert.
Ik beheer een Shopify-webshop (Online Store 2.0-thema, Liquid-sjablonen) op harborandpine.example. Een toegankelijkheidstest vond dit probleem en ik wil het in mijn thema oplossen. Probleem: Links moeten herkenbare tekst hebben (WCAG 2.4.4, 4.1.2). Waar: 36 gevallen op 9 pagina’s, bijvoorbeeld /, /collections/all, /products/trail-daypack, /cart. Eén fout element, zoals de browser het weergaf: ```html <a href="/cart"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 4h2l2.4 11h11l2-8H6.5"></path><circle cx="9" cy="20" r="1.5"></circle><circle cx="18" cy="20" r="1.5"></circle></svg></a> ``` Waarom het belangrijk is: WCAG 2.4.4 en 4.1.2 vragen dat links een toegankelijke naam hebben die hun doel beschrijft. Wat er moet veranderen: - Zoek de links in de voorbeelden hieronder. De meeste zijn iconen of afbeeldingen in een <a>-tag. - Voeg visueel verborgen tekst toe in de link, of een aria-label zoals aria-label="Instagram" of aria-label="Cart". - Als de link om een afbeelding heen staat, geef de afbeelding dan in plaats daarvan een betekenisvolle alt-tekst. Een voorgestelde aanpassing (De code van je thema (zoek daarin naar de getoonde markup)): ```html <a href="/cart" aria-label="Cart">…</a> ``` Regels voor je antwoord: - Toon de exacte aanpassing als voor en na, en noem het bestand of de instelling waar die hoort. Als je eerst mijn bestand moet zien, vraag me dan om het te plakken. - Laat het visuele ontwerp en al het bestaande gedrag ongewijzigd. - Verzin geen productnamen, prijzen of teksten; gebruik placeholders die ik kan invullen. - Sluit af met hoe ik de oplossing zelf kan controleren. - Vermeld ook hoe ik het kan bevestigen met het toetsenbord en een schermlezer.
Controleer je oplossing
- Scan opnieuw en controleer dat link-name verdwenen is.
- Ga met Tab naar elke link terwijl een schermlezer draait en luister naar de naam.
Uitgebreide uitleg: https://dequeuniversity.com/rules/axe/4.13/link-name?application=playwright
Elementen moeten voldoen aan de minimale drempelwaarden voor kleurcontrast
inspanning: klein · verantwoordelijke: winkeleigenaar (beheerinstellingen) · 1.4.3 Contrast (minimum)
Sommige tekst steekt niet genoeg af tegen de achtergrond om leesbaar te zijn voor slechtziende mensen.
WCAG 1.4.3 vraagt een contrastverhouding van minimaal 4,5:1 voor normale tekst en 3:1 voor grote tekst. Vage prijzen, badges en banners zijn moeilijk te lezen voor slechtziende mensen, en voor iedereen in fel licht.
Bewijs
- Gevonden door
- Geautomatiseerde regel van axe-core
- Status · betrouwbaarheid
- Bevestigde fout · hoog
- Gevonden op
- 24 sep 2026 (UTC)
- Waar
- 22 gevallen op 9 pagina’s
Verwacht: Elementen moeten voldoen aan de minimale drempelwaarden voor kleurcontrast
Waargenomen: Element heeft onvoldoende kleurcontrast van 3.09 (voorgrondkleur: #ffffff, achtergrondkleur: #e76f51, tekstgrootte: 9.8pt (13px), tekstdikte: normal). Verwachte contrastverhouding van 4.5:1.


Zo reproduceer je het
- Open https://harborandpine.example/ in Chrome of Edge.
- Open DevTools (F12) › Elementen, druk op Ctrl+F (Cmd+F op een Mac) en zoek naar: .announce
- Klik in het deelvenster Stijlen op het kleurvakje naast de kleur van het element om de gemeten contrastverhouding te zien.
- Of voer de gratis browserextensie axe DevTools uit op de pagina: die meldt dit als “color-contrast”.
Foute elementen (4 getoond)
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div><span class="badge">Sale</span><span class="compare">$72</span><span class="compare">$40</span>Betrokken pagina’s (9)
- https://harborandpine.example/
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/cart
- https://harborandpine.example/pages/about
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
Zo los je het op
Code opgebouwd uit de markup van je pagina- Open de foute elementen hieronder en noteer de voorgrond- en achtergrondkleur uit de samenvatting van de fout.
- Maak in Webwinkel > Thema’s > Aanpassen > Thema-instellingen > Kleuren de tekstkleur donkerder of de achtergrond lichter voor het betrokken kleurenschema, tot de verhouding minimaal 4,5:1 is.
- Let vooral op kortingsbadges, placeholdertekst, links in de footer en knoppen op afbeeldingen.
Code
Voorbeelden voor je ontwikkelaar. We hebben de broncode van je thema niet, dus bestandslocaties zijn hints, geen exacte paden.
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>.announce {
background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}Gemeten: 3,09:1 voor tekst van 13px; WCAG 1.4.3 vraagt 4,5:1. #b95941 behoudt dezelfde tint en slaagt. Dit is de selector die onze test gebruikte; je thema gebruikt misschien een bredere class voor dezelfde stijl.
<span class="badge">Sale</span>.badge {
background-color: #9f693f; /* was #f4a261: 2.06:1, now 4.59:1 */
}Gemeten: 2,06:1 voor vetgedrukte tekst van 12px; WCAG 1.4.3 vraagt 4,5:1. #9f693f behoudt dezelfde tint en slaagt. Dit is de selector die onze test gebruikte; je thema gebruikt misschien een bredere class voor dezelfde stijl.
<span class="compare">$72</span>.compare {
color: #78736c; /* was #b0a99f: 2.29:1, now 4.62:1 */
}Gemeten: 2,29:1 voor tekst van 14px; WCAG 1.4.3 vraagt 4,5:1. #78736c behoudt dezelfde tint en slaagt. Dit is de selector die onze test gebruikte; je thema gebruikt misschien een bredere class voor dezelfde stijl.
Oplossen met AIToon de prompt
Plak dit samen met je themabestand in ChatGPT, Claude, Cursor of Copilot. Controleer de aanpassing voordat je die publiceert.
Ik beheer een Shopify-webshop (Online Store 2.0-thema, Liquid-sjablonen) op harborandpine.example. Een toegankelijkheidstest vond dit probleem en ik wil het in mijn thema oplossen.
Probleem: Elementen moeten voldoen aan de minimale drempelwaarden voor kleurcontrast (WCAG 1.4.3).
Waar: 22 gevallen op 9 pagina’s, bijvoorbeeld /, /collections/all, /products/trail-daypack, /cart.
Eén fout element, zoals de browser het weergaf:
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```
Waarom het belangrijk is: WCAG 1.4.3 vraagt een contrastverhouding van minimaal 4,5:1 voor normale tekst en 3:1 voor grote tekst. Vage prijzen, badges en banners zijn moeilijk te lezen voor slechtziende mensen, en voor iedereen in fel licht.
Wat er moet veranderen:
- Open de foute elementen hieronder en noteer de voorgrond- en achtergrondkleur uit de samenvatting van de fout.
- Maak in Webwinkel > Thema’s > Aanpassen > Thema-instellingen > Kleuren de tekstkleur donkerder of de achtergrond lichter voor het betrokken kleurenschema, tot de verhouding minimaal 4,5:1 is.
- Let vooral op kortingsbadges, placeholdertekst, links in de footer en knoppen op afbeeldingen.
Een voorgestelde aanpassing (Thema-instellingen › Kleuren, of het CSS-bestand van je thema):
```css
.announce {
background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}
```
Regels voor je antwoord:
- Toon de exacte aanpassing als voor en na, en noem het bestand of de instelling waar die hoort. Als je eerst mijn bestand moet zien, vraag me dan om het te plakken.
- Laat het visuele ontwerp en al het bestaande gedrag ongewijzigd.
- Verzin geen productnamen, prijzen of teksten; gebruik placeholders die ik kan invullen.
- Sluit af met hoe ik de oplossing zelf kan controleren.
- Vermeld ook hoe ik het kan bevestigen met het toetsenbord en een schermlezer.Controleer je oplossing
- Voer de scan opnieuw uit en controleer dat color-contrast niet meer voorkomt.
- Controleer steekproefsgewijs met een contrastchecker op de exacte kleuren.
Uitgebreide uitleg: https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright
Alle content van de pagina zou binnen landmarks moeten staan
inspanning: gemiddeld · verantwoordelijke: themaontwikkelaar
Sommige content staat niet in een landmark van de pagina (header, nav, main of footer).
Met landmarks springen gebruikers van een schermlezer snel naar delen van de pagina. Dit is een best practice die WCAG 1.3.1 en 2.4.1 ondersteunt.
Bewijs
- Gevonden door
- Geautomatiseerde regel van axe-core
- Status · betrouwbaarheid
- Bevestigde fout · hoog
- Gevonden op
- 24 sep 2026 (UTC)
- Waar
- 18 gevallen op 9 pagina’s
Verwacht: Alle content van de pagina zou binnen landmarks moeten staan
Waargenomen: Een deel van de content van de pagina staat niet in landmarks.


Zo reproduceer je het
- Open https://harborandpine.example/ in Chrome of Edge.
- Open DevTools (F12) › Elementen, druk op Ctrl+F (Cmd+F op een Mac) en zoek naar: .announce
- Of voer de gratis browserextensie axe DevTools uit op de pagina: die meldt dit als “region”.
Foute elementen (2 getoond)
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div><p>We use cookies to improve your experience and measure traffic.</p>Betrokken pagina’s (9)
- https://harborandpine.example/
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/cart
- https://harborandpine.example/pages/about
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
Zo los je het op
Algemene aanwijzingen- Zet losse content (aankondigingsbalken, pop-ups, chatwidgets) in de juiste landmark, of plaats die binnen <main>.
Oplossen met AIToon de prompt
Plak dit samen met je themabestand in ChatGPT, Claude, Cursor of Copilot. Controleer de aanpassing voordat je die publiceert.
Ik beheer een Shopify-webshop (Online Store 2.0-thema, Liquid-sjablonen) op harborandpine.example. Een toegankelijkheidstest vond dit probleem en ik wil het in mijn thema oplossen. Probleem: Alle content van de pagina zou binnen landmarks moeten staan. Waar: 18 gevallen op 9 pagina’s, bijvoorbeeld /, /collections/all, /products/trail-daypack, /cart. Eén fout element, zoals de browser het weergaf: ```html <div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div> ``` Waarom het belangrijk is: Met landmarks springen gebruikers van een schermlezer snel naar delen van de pagina. Dit is een best practice die WCAG 1.3.1 en 2.4.1 ondersteunt. Wat er moet veranderen: - Zet losse content (aankondigingsbalken, pop-ups, chatwidgets) in de juiste landmark, of plaats die binnen <main>. Regels voor je antwoord: - Toon de exacte aanpassing als voor en na, en noem het bestand of de instelling waar die hoort. Als je eerst mijn bestand moet zien, vraag me dan om het te plakken. - Laat het visuele ontwerp en al het bestaande gedrag ongewijzigd. - Verzin geen productnamen, prijzen of teksten; gebruik placeholders die ik kan invullen. - Sluit af met hoe ik de oplossing zelf kan controleren. - Vermeld ook hoe ik het kan bevestigen met het toetsenbord en een schermlezer.
Controleer je oplossing
- Scan de betrokken pagina’s opnieuw.
Uitgebreide uitleg: https://dequeuniversity.com/rules/axe/4.13/region?application=playwright
Kopniveaus zouden steeds maar met één moeten oplopen
inspanning: gemiddeld · verantwoordelijke: themaontwikkelaar
Kopniveaus worden overgeslagen (bijvoorbeeld van H2 naar H4), waardoor de paginastructuur verwarrend is voor gebruikers van een schermlezer.
Gebruikers van een schermlezer navigeren via koppen. Dit is een best practice die WCAG 1.3.1 ondersteunt.
Bewijs
- Gevonden door
- Geautomatiseerde regel van axe-core
- Status · betrouwbaarheid
- Bevestigde fout · hoog
- Gevonden op
- 24 sep 2026 (UTC)
- Waar
- 7 gevallen op 7 pagina’s
Verwacht: Kopniveaus zouden steeds maar met één moeten oplopen
Waargenomen: Volgorde van de koppen is ongeldig.


Zo reproduceer je het
- Open https://harborandpine.example/collections/all in Chrome of Edge.
- Open DevTools (F12) › Elementen, druk op Ctrl+F (Cmd+F op een Mac) en zoek naar: article:nth-child(1) > a[href$="trail-daypack"] > h3
- Of voer de gratis browserextensie axe DevTools uit op de pagina: die meldt dit als “heading-order”.
Foute elementen (3 getoond)
<h3>Trail Daypack 22L</h3><h3>Reviews</h3><h3>Started on the trail</h3>Betrokken pagina’s (7)
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/pages/about
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
Zo los je het op
Algemene aanwijzingen- Pas de kopniveaus in de betrokken secties aan, zodat ze op volgorde lopen zonder niveaus over te slaan.
- Verander alleen de tag, niet de opmaak (gebruik CSS-classes voor de grootte).
Code
Voorbeelden voor je ontwikkelaar. We hebben de broncode van je thema niet, dus bestandslocaties zijn hints, geen exacte paden.
<h3>Trail Daypack 22L</h3><h2 class="h3">Trail Daypack 22L</h2>Gebruik het niveau dat volgt op de vorige kop op de pagina (vaak één niveau hoger) en behoud het uiterlijk met een class. Controleer de kopstructuur van de pagina voordat je iets verandert.
<h3>Reviews</h3><h2 class="h3">Reviews</h2>Gebruik het niveau dat volgt op de vorige kop op de pagina (vaak één niveau hoger) en behoud het uiterlijk met een class. Controleer de kopstructuur van de pagina voordat je iets verandert.
<h3>Started on the trail</h3><h2 class="h3">Started on the trail</h2>Gebruik het niveau dat volgt op de vorige kop op de pagina (vaak één niveau hoger) en behoud het uiterlijk met een class. Controleer de kopstructuur van de pagina voordat je iets verandert.
Oplossen met AIToon de prompt
Plak dit samen met je themabestand in ChatGPT, Claude, Cursor of Copilot. Controleer de aanpassing voordat je die publiceert.
Ik beheer een Shopify-webshop (Online Store 2.0-thema, Liquid-sjablonen) op harborandpine.example. Een toegankelijkheidstest vond dit probleem en ik wil het in mijn thema oplossen. Probleem: Kopniveaus zouden steeds maar met één moeten oplopen. Waar: 7 gevallen op 7 pagina’s, bijvoorbeeld /collections/all, /products/trail-daypack, /pages/about, /products/pine-wool-beanie. Eén fout element, zoals de browser het weergaf: ```html <h3>Trail Daypack 22L</h3> ``` Waarom het belangrijk is: Gebruikers van een schermlezer navigeren via koppen. Dit is een best practice die WCAG 1.3.1 ondersteunt. Wat er moet veranderen: - Pas de kopniveaus in de betrokken secties aan, zodat ze op volgorde lopen zonder niveaus over te slaan. - Verander alleen de tag, niet de opmaak (gebruik CSS-classes voor de grootte). Een voorgestelde aanpassing (De code van je thema (zoek daarin naar de getoonde markup)): ```html <h2 class="h3">Trail Daypack 22L</h2> ``` Regels voor je antwoord: - Toon de exacte aanpassing als voor en na, en noem het bestand of de instelling waar die hoort. Als je eerst mijn bestand moet zien, vraag me dan om het te plakken. - Laat het visuele ontwerp en al het bestaande gedrag ongewijzigd. - Verzin geen productnamen, prijzen of teksten; gebruik placeholders die ik kan invullen. - Sluit af met hoe ik de oplossing zelf kan controleren. - Vermeld ook hoe ik het kan bevestigen met het toetsenbord en een schermlezer.
Controleer je oplossing
- Scan opnieuw en controleer de kopstructuur met een browserextensie zoals HeadingsMap.
Uitgebreide uitleg: https://dequeuniversity.com/rules/axe/4.13/heading-order?application=playwright
Handmatige beoordeling nodig
Geautomatiseerde tests signaleerden deze punten, maar konden niet beslissen, bijvoorbeeld tekst over een afbeelding of content die misschien niet op een telefoonscherm past. Ze tellen niet mee als fout. Vraag je ontwikkelaar om elk punt te controleren.
- Beoordeling nodigWCAG 4.1.3
Toetsenbordroute: Met het toetsenbord in de winkelwagen leggen
Enter op ‘In winkelwagen’ werkte (het aantal in de winkelwagen in de header veranderde, er verscheen een melding ‘toegevoegd aan winkelwagen’), maar we vonden geen statusmelding of dialoogvenster met focus, dus gebruikers van schermlezers horen misschien niet dat het artikel is toegevoegd.
1 geval op 1 pagina · Zo controleer je dit
- Beoordeling nodigWCAG 1.4.10
De productpagina past misschien niet op een smal scherm zonder horizontaal te scrollen
Op 320 CSS-pixels breed (gelijk aan 400% zoom) is de pagina 200px breder dan het scherm. Datatabellen en kaarten mogen scrollen; tekst en bedieningselementen niet.
2 gevallen op 1 pagina · Zo controleer je dit
Te controleren elementen (2 getoond)
div.icons <div class="icons"> <button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></budiv <div> <p style="color:#6a6a60;font-size:14px">Harbor & Pine</p> <h1>Trail Daypack 22L</h1> <p class="price" style="font-size:22px">$128<span class="compare">$150</span></p> <p class="opt-label">Si - Beoordeling nodigWCAG 1.4.10
De startpagina past misschien niet op een smal scherm zonder horizontaal te scrollen
Op 320 CSS-pixels breed (gelijk aan 400% zoom) is de pagina 55px breder dan het scherm. Datatabellen en kaarten mogen scrollen; tekst en bedieningselementen niet.
3 gevallen op 1 pagina · Zo controleer je dit
Te controleren elementen (3 getoond)
div.icons <div class="icons"> <button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></buarticle.card <article class="card"><span class="badge">Sale</span><a href="/products/trail-daypack"><img src="/img/beanie.svg"><h3>Pine Wool Beanie</h3></a><p class="price">$32<span class="compare">$40</span></p><button.btn.light <button class="btn light" type="submit">Subscribe</button> - Beoordeling nodigWCAG 1.4.3
Elementen moeten voldoen aan de minimale drempelwaarden voor kleurcontrast
Element's achtergrondkleur kon niet worden bepaald vanwegen een image node.
1 geval op 1 pagina · Zo controleer je dit
Te controleren elementen (1 getoond)
h1 <h1>Gear for the long way home</h1>
Test je oplossingen opnieuw
Voer een hertest uit zodra je ontwikkelaar aanpassingen heeft gedaan. We voeren dezelfde geautomatiseerde checks op dezelfde pagina’s, de toetsenbordtest en de toetsenbordroute opnieuw uit, en laten zien welke problemen we niet meer kunnen reproduceren. 5 hertests zijn inbegrepen.
Hertests zijn beschikbaar bij betaalde rapporten.
Handmatige controles
Geautomatiseerde tools kunnen deze punten niet beoordelen. Voer ze uit voordat je het werk als afgerond beschouwt.
- Rond het afrekenen af met alleen het toetsenbord: onze geautomatiseerde route stopt bij de afrekenknop en gaat nooit naar de kassa.
- Herhaal dit met een schermlezer (VoiceOver op een Mac: Cmd+F5; NVDA op Windows) en controleer dat prijzen, varianten en foutmeldingen worden voorgelezen.
- Zoom de browser in tot 200% en controleer dat niets overlapt of verdwijnt.
- Controleer dat product- en merkvideo’s juiste ondertiteling hebben.
- Verstuur formulieren met fouten (nieuwsbrief, contact, afrekenen) en controleer dat de fouten in tekst worden beschreven.
- Controleer dat carrousels en pop-ups gepauzeerd of gesloten kunnen worden, ook met de Escape-toets.
Concept-toegankelijkheidsverklaring
Pas de delen tussen haakjes aan en publiceer de tekst op een pagina waarnaar je footer linkt.
Toegankelijkheidsverklaring voor harborandpine.example We willen dat iedereen kan winkelen op harborandpine.example, ook mensen die een schermlezer, toetsenbordnavigatie, vergroting of andere hulptechnologie gebruiken. We streven ernaar te voldoen aan de Web Content Accessibility Guidelines (WCAG) 2.2 op niveau AA. Wat we doen - We testen onze webshop met geautomatiseerde toegankelijkheidstools en lossen de problemen op die ze vinden. - We testen belangrijke stappen in het winkelen (bladeren, productpagina’s, winkelwagen en afrekenen) met een toetsenbord en een schermlezer. - We controleren apps en widgets van derden op toegankelijkheid voordat we ze toevoegen. Bekende beperkingen (stand van 24 september 2026) - Toetsenbordtoegang en focus (WCAG 2.1.1). We zijn van plan dit uiterlijk 2026-10-08 op te lossen. - Links en knoppen zonder naam (WCAG 2.4.4, 4.1.2). We zijn van plan dit uiterlijk 2026-10-08 op te lossen. - Afbeeldingen zonder tekstalternatief (WCAG 1.1.1). We zijn van plan dit uiterlijk 2026-10-08 op te lossen. - Formuliervelden zonder label (WCAG 4.1.2). We zijn van plan dit uiterlijk 2026-10-08 op te lossen. - Te weinig kleurcontrast (WCAG 1.4.3). We zijn van plan dit uiterlijk 2026-10-08 op te lossen. Feedback en hulp Heb je moeite met een deel van onze webshop? Neem dan contact met ons op via [je e-mailadres] of [je telefoonnummer]. Vertel ons om welke pagina en welk probleem het gaat, dan helpen we je je aankoop af te ronden en reageren we binnen 5 werkdagen. Deze verklaring is opgesteld op 24 september 2026 en wordt minstens één keer per jaar herzien.
Bewijslogboek
Elke pagina is geladen in Chromium en getest met axe-core 4.13.0. De SHA-256-hash identificeert de ruwe resultaten van elke pagina.
| Pagina | Getest (UTC) | HTTP | Problemen | SHA-256 |
|---|---|---|---|---|
| Startpaginahttps://harborandpine.example/ | 2026-09-24 14:05:00 | 200 | 15 | da1e5470a57859a864332912dd1e4f62b4c4f64487ba144865b74879519599a3 |
| Collectiepaginahttps://harborandpine.example/collections/all | 2026-09-24 14:05:09 | 200 | 20 | 28d8dfcf5ca953af353264a930a351bea3cf23f98a303874b32e5da355a4c8b0 |
| Productpaginahttps://harborandpine.example/products/trail-daypack | 2026-09-24 14:05:18 | 200 | 20 | 68a173ddfd16eeeef5e36d6c0fa9d426769f0d96e358c5e35b67608dd84139b4 |
| Winkelwagenhttps://harborandpine.example/cart | 2026-09-24 14:05:27 | 200 | 12 | 5b7945c2cdf779dcef2bd8975d96eb8f42d8dedbf10e767ec80199dd22ce257c |
| Contentpaginahttps://harborandpine.example/pages/about | 2026-09-24 14:05:36 | 200 | 9 | daf61ae856358a574e63f9357db0bfd9ae6079065acf3aebd5b3c5a7f460e53f |
| Extra paginahttps://harborandpine.example/products/pine-wool-beanie | 2026-09-24 14:08:00 | 200 | 20 | f708ccd7de34dfb65d59d3716580b6ec15a6420020c8387fa4da4e2ff5bd52d3 |
| Extra paginahttps://harborandpine.example/products/enamel-camp-mug | 2026-09-24 14:08:07 | 200 | 19 | c619bcd29e89d06099d174b9fc19305a42f2fa9bdddb600a750c867fc7477022 |
| Extra paginahttps://harborandpine.example/products/harbor-lantern | 2026-09-24 14:08:14 | 200 | 20 | 5720b7433b75050ba413ac74c2bd726b0620aaa68f7918083052383257d5c418 |
| Extra paginahttps://harborandpine.example/products/insulated-bottle | 2026-09-24 14:08:21 | 200 | 19 | 6f1972c22e477c9a63e2dfde1123ed759718f6a75e1606b23f208848691510fd |
Reikwijdte en methode
Wat we hebben getest
- 9 pagina’s (startpagina, collectiepagina, productpagina, winkelwagen, contentpagina, extra pagina) geladen in Chromium op 1366×900.
- Regels van axe-core 4.13.0 voor WCAG 2.0, 2.1 en 2.2 niveau A en AA, plus best-practice-regels (getoond als P3).
- Een toetsenbordtest: 40 keer op Tab drukken op de startpagina, op zoek naar focusvallen en ontbrekende focusindicatoren.
- Een winkelroute met alleen het toetsenbord van de startpagina tot aan de afrekenknop (zie hierboven).
- Een reflowcheck op 320 CSS-pixels breed op startpagina en productpagina (WCAG 1.4.10).
Wat we niet hebben getest
- Afreken- en betaalpagina’s, het versturen van formulieren, accountpagina’s en pagina’s achter een login.
- Wat een schermlezer werkelijk voorleest, buiten de geautomatiseerde regels.
- Ondertiteling en audiodescriptie bij video’s, pdf-documenten en content in frames van derden.
- Begrijpelijke taal, cognitieve toegankelijkheid en alles wat verder een menselijk oordeel vraagt (zie Handmatige controles).
Zo lees je de resultaten
- Bevestigde fout
- Een geautomatiseerde test of de toetsenbordroute faalde; het bewijs wordt getoond.
- Beoordeling nodig
- Een test signaleerde iets waarover die niet kon beslissen; een mens moet het controleren.
- Geslaagd
- De geautomatiseerde regel vond geen fouten op de geteste pagina’s.
- Niet getest
- Valt buiten wat geautomatiseerde tests hier kunnen dekken; zie Handmatige controles.
Krijg dit rapport voor je eigen website.
Begin met de gratis scan om je problemen te zien en hoe ze overeenkomen met je brief. Het Toegankelijkheidsrapport kost eenmalig $249 en is in ongeveer 10 minuten klaar.
Scan je website gratisDit rapport beschrijft de resultaten van geautomatiseerde tests en geeft advies om de problemen op te lossen. Het is geen juridisch advies en certificeert niet dat je voldoet aan de ADA, de European Accessibility Act of een andere wet.

