Direct naar de inhoud

Redacteur

Als redacteur ben je verantwoordelijk voor de toegankelijkheid van de content. Je moet weten hoe mensen met functiebeperkingen websites gebruiken en welke toegankelijkheidsproblemen ze ervaren.

Afbeeldingen

  • Afbeeldingen van tekst

    Afbeeldingen waar (voornamelijk) tekst op staat, en waar die tekst bedoeld is om informatie over te dragen, noemen we afbeeldingen van tekst. Voor deze afbeeldingen geldt: Als dezelfde weergave ook met alleen echte tekst kan worden gemaakt, gebruik dan geen afbeelding van tekst maar gebruik echte tekst.

    Afbeeldingen van tekst zijn voor sommige mensen niet handig omdat een schermlezer de tekst niet standaard voorleest. Ook kunnen de stijleigenschappen van tekst in een afbeelding niet worden aangepast naar eigen wensen of behoeften van iemand, zoals het vergroten van de lettergrootte of het veranderen van de kleur.

    Open dit onderwerp op een eigen pagina

  • Flitsende content

    Flitsende of knipperende content kan gemakkelijk de aandacht trekken. Dit kan bijvoorbeeld voorkomen in animaties of mediabestanden. Deze content kan een epileptische aanval veroorzaken bij mensen die daar gevoelig voor zijn.

    Flitsende content mag daarom niet meer dan 3 keer per seconde flitsen, tenzij het flitsende gedeelte maar een klein oppervlak van het scherm inneemt.

    Open dit onderwerp op een eigen pagina

  • Tekstalternatief bij een afbeelding

    Afbeeldingen die informatie overdragen noemen we informatieve afbeeldingen. Informatieve afbeeldingen zijn belangrijk voor het begrijpen van een tekst of pagina. Deze afbeeldingen vertellen iets over de inhoud of maken een pagina duidelijker.

    Deze afbeeldingen moeten een tekstalternatief hebben dat nauwkeurig beschrijft of uitlegt wat er op de afbeelding te zien is. Beschrijf dit in een korte, duidelijke zin. Vermijd daarmee te algemene termen en probeer specifiek te zijn over wat de afbeelding weergeeft. Deze tekst moet beschrijvend genoeg zijn, zodat het de afbeelding kan vervangen als je die niet kunt zien.

    Een tekstalternatief voor een <​​img​>-element wordt gegeven met het alt-attribuut.

    In de code ziet dat er zo uit:

    <img src="poes.jpg" alt="Witte poes speelt met een rode bal">

    Open dit onderwerp op een eigen pagina

  • Complexe afbeeldingen

    Complexe afbeeldingen, zoals infographics, grafieken of diagrammen voegen veel informatie toe aan een tekst of pagina. Ze vertellen iets over de inhoud of maken een pagina duidelijker.

    Deze afbeeldingen moeten een tekstalternatief hebben. Omdat er vaak erg veel informatie op de afbeelding staat, is het moeilijk om alles beknopt te beschrijven in een kort tekstalternatief. In dat geval is het nuttig om daarnaast ook een meer uitgebreide beschrijving te geven in de omringende tekst. Een handige manier om de visuele informatie ook in tekst aan te bieden, is bijvoorbeeld door de informatie helemaal uit te schrijven. Als het gaat om een diagram of grafiek, gebruik dan bijvoorbeeld een datatabel.

    In de code ziet dat er zo uit:

    <img src="grafiek.jpg" alt="Verkoopcijfers zijn in 2021 met 18% gestegen">
    <div>
      <p>De groei van maandelijkse verkopen in 2021 tegen 2020 verliep als volgt:</p>
      <ul>
        <li>Januari: +22%</li>
        <li>...

    Je kunt ook een link bij de afbeelding plaatsen die verwijst naar een andere pagina met een uitgebreide beschrijving van de informatie op de afbeelding. Zet deze link direct voor of direct na de afbeelding.

    Open dit onderwerp op een eigen pagina

  • Decoratieve afbeeldingen

    Afbeeldingen die puur decoratief zijn voegen geen informatie toe. Ze maken een pagina aantrekkelijker, maar zijn niet echt nodig om een tekst of pagina te begrijpen. Mensen die gebruik maken van schermlezers, hebben eigenlijk niets aan deze plaatjes. Zorg daarom dat decoratieve afbeeldingen worden verborgen voor schermlezers.

    Decoratieve afbeeldingen kunnen het best met CSS worden geplaatst.

    In de code ziet dat er zo uit:

    <div class="line"></div>
    .line {
     background-image: url("horizontale-lijn.jpg");
    }

    Als het niet mogelijk is om een decoratieve afbeelding met CSS te plaatsen, dan moet het alt-attribuut in het <​img​>-element worden leeg gelaten. Het alt-attribuut moet wel aanwezig zijn maar het heeft dan geen tekst.

    In de code ziet dat er zo uit:

    <img src="horizontale-lijn.jpg" alt="">

    Open dit onderwerp op een eigen pagina

Formulieren

  • Foutmelding: waar en wat

    Bij formulieren hoort een foutcontrole ingebouwd te zijn. De foutcontrole controleert automatisch of een verplicht onderdeel leeg is gelaten of dat een invoerveld verkeerd is ingevuld. Als er een fout is gevonden, dan moet de foutmelding in tekst worden weergegeven. Deze tekst kan worden aangevuld met andere visuele aanwijzingen, zoals een andere kleur of een icoon.

    Benoem in de tekst van de foutmelding de naam van het veld dat verkeerd is ingevuld en benoem precies wat de fout is. Schrijf dus niet:

    • Dit veld is verplicht.

    Maar schrijf:

    • Het veld ‘Telefoonnummer’ mag niet leeg zijn.

    In de code kan ook worden aangegeven welk veld verkeerd is ingevuld. Gebruik hiervoor het attribuut aria-invalid. Daarnaast hoort de foutmelding in de code aan het bijbehorende invoerveld te worden gekoppeld. Dit voorkomt verwarring bij bezoekers die gebruik maken van hulptechnologieën. Een foutmelding kan op een aantal manieren worden gekoppeld zoals met een aria-describedby-attribuut.

    In de code ziet dat er zo uit:

    <label for="veld1">Telefoonnummer:</label>
    <input type="text" id="veld1" aria-invalid="true" aria-describedby="fout">
    <span id="fout">Het veld &lsquo;Telefoonnummer&rsquo; mag niet leeg zijn.</span>

    Open dit onderwerp op een eigen pagina

  • Labels en instructies

    Zorg voor labels bij invoervelden

    Labels zijn het belangrijkste element voor een toegankelijk formulier. Zorg voor labels bij alle invoervelden of ander formulierelementen zoals selectievakjes, keuzerondjes en keuzelijsten. Een duidelijk label beschrijft precies wat er in het veld ingevuld moet worden, is zichtbaar voor alle bezoekers en staat dichtbij het invoerveld.

    Het label moet in de code worden gekoppeld aan het invoerveld. Zo maak je het invoerveld ook toegankelijk voor bezoekers die gebruik maken van hulptechnologieën. Het label is de naam van het invoerveld. Een label vergroot ook het klikbare gebied waarmee een invoerveld kan worden geselecteerd. Dit is handig voor bijvoorbeeld bezoekers met een motorische beperking.

    Koppel labels in de code aan een invoerveld

    Labels worden geplaatst met het <​label​>-element. Het koppelen van een <​label​>-element aan een formulierelement gebeurt met een for/id-koppeling. Geef hiervoor het <​label​>-element een for-attribuut en het bijbehorende formulierelement een id-attribuut met dezelfde waarde.

    In de code ziet dat er zo uit:

    <label for="veld1">Naam:</label>
    <input type="text" id="veld1">
    
    <label for="veld2">Kies je kleur:</label>
    <select id="veld2">
      <option value="0">Rood</option>
      <option value="1">Groen</option>
      <option value="2">Blauw</option>
    </select>
    
    <input type="checkbox" id="veld3">
    <label for="veld3">Meld mij aan voor de nieuwsbrief</label>

    Er zijn ook manieren om de labels visueel te verbergen. Vraag je dan wel goed af waarom je dat zou willen doen. Het invoerveld verliest dan het grotere klikbare gebied en het wordt misschien minder duidelijk voor bezoekers. Als het label toch visueel wordt verborgen, zorg er dan er wel voor dat er een label beschikbaar is voor hulptechnologieën. Gebruik hiervoor het attribuut aria-label, aria-labelledby of een title-attribuut. Deze zijn niet zichtbaar.

    In de code ziet dat er zo uit:

    <input type="text" aria-label="Naam">

    Let op: Placeholdertekst mag niet als enige manier worden gebruikt om een label toe te voegen aan een invoerveld.

    Groepeer meerdere secties van gerelateerde invoervelden

    Als een formulier meerdere secties van gerelateerde invoervelden heeft dan wordt een <​fieldset​>-element gebruikt om deze te groeperen. Geef het <​fieldset​>-element een label door een <​legend​>-element in het <​fieldset​>-element te plaatsen. Hulptechnologieën gebruiken het <​legend​>-element alsof het een onderdeel is van het label van de elementen in het <​fieldset​>-element.

    Het <​fieldset​>-element is vooral relevant voor het groeperen selectierondjes en keuzevakjes maar kan ook worden gebruikt om andere invoervelden te groeperen.

    In de code ziet dat er zo uit:

    <fieldset>
      <legend>Ben jij al orgaandonor?</legend>
    
      <input type="radio" id="veld1">
      <label for="veld1" value="ja">Ja, ik ben orgaandonor</label>
    
      <input type="radio" id="veld2">
      <label for="veld2" value="nee">Nee, ik ben geen orgaandonor</label>
    </fieldset>

    Zorg voor instructies bij invoervelden

    Instructies geven een extra hint voor de invoer in het invoerveld. De instructies in een formulier moeten aangeven of er verplichte velden zijn en eventueel of er een verplicht invoerformaat is.

    Geef aan dat een invoerveld verplicht is

    Het aangeven van een verplicht invoerveld kan in tekst of bijvoorbeeld met een asteriks (*). Zorg dat deze aanduiding in het <​label​>-element is geplaatst.

    In de code ziet dat er zo uit:

    <label for="veld1">Naam: (verplicht)</label>
    <input type="text" id="veld1">

    Als de instructies niet duidelijk per invoerveld worden benoemd dan hoort voorafgaand aan het eerste invoerveld in tekst worden aangegeven op welke manier de verplichte velden zijn aangeduid.

    In de code ziet dat er zo uit:

    <p>Alle velden met een * zijn verplicht.</p>
    
    <label for="veld1">Naam: *</label>
    <input type="text" id="veld1">
    
    <label for="veld2">Favoriete dier: *</label>
    <input type="text" id="veld2">

    Markeer verplichte velden ook in de code. Gebruik hiervoor bij voorkeur het aria-required-attribuut.

    <p>Alle velden met een * zijn verplicht.</p>
    
    <label for="veld1">Naam: *</label>
    <input type="text" id="veld1" aria-required="true">
    
    <fieldset>
      <legend>Ben jij al orgaandonor? *</legend>
    
      <input type="radio" id="veld2" value="ja" aria-required="true">
      <label for="veld2">Ja, ik ben orgaandonor</label>
    
      <input type="radio" id="veld3" value="nee" aria-required="true">
      <label for="veld3">Nee, ik ben geen orgaandonor</label>
    </fieldset>

    Geef het aan als er een verplicht invoerformaat is verplicht is

    Ook bij verplichte invoerformaten, zoals een postcode of een e-mailadres die moet worden ingevuld, moeten blijken uit de instructies wat de eisen zijn aan de invoer. Dit kan direct in het <​label​>-element.

    In de code ziet dat er zo uit:

    <label for="veld1">Geboortedatum (dd-mm-jjjj):</label>
    <input type="text" id="veld1">

    Maar dit kan ook via het attribuut aria-describedby.

    In de code ziet dat er zo uit:

    <label for="veld1">Geboortedatum:</label>
    <input type="text" id="veld1" aria-describedby="beschrijving">
    <span id="beschrijving">dd-mm-jjjj</span>

    Open dit onderwerp op een eigen pagina

Media

Navigatie

  • Consistente hulp: als sjabloononderdeel

    De oplossing is een afspraak en geen techniek. Kies één plek voor de hulp en wijk daar niet van af.

    Bouw het als één sjabloononderdeel en zet dat op elke pagina neer. Dan kán het niet verspringen, want er is maar één plek waar het vandaan komt:

    <!-- in de voettekst, op elke pagina, in deze volgorde -->
    <h2>Contact</h2>
    <dl>
      <dt>E-mail</dt><dd><a href="mailto:info@voorbeeld.nl">info@voorbeeld.nl</a></dd>
      <dt>Telefoon</dt><dd><a href="tel:+31000000000">000 – 00 00 000</a></dd>
    </dl>
    <p><a href="/contact/">Bezoek de contactpagina</a></p>

    Een chatknop rechtsonder mag, zolang hij op elke pagina rechtsonder staat. Verspringt hij naar linksonder op de bestelpagina omdat daar een knop in de weg zat, dan voldoet de site niet meer.

    Let erop dat de hulp niet over de inhoud valt als iemand inzoomt. Dat raakt 1.4.10 Reflow en 2.4.11.

    Open dit onderwerp op een eigen pagina

  • Vaste namen: wat het criterium vraagt

    Onderdelen die hetzelfde doen horen overal dezelfde naam te krijgen. Dat geldt voor de zichtbare tekst en voor het alternatief van een pictogram. Heet dezelfde knop op de ene pagina “Zoeken”, op de andere “Zoek”, en staat er elders alleen een vergrootglas zonder tekst, dan is dat voor wie kijkt één ding en voor wie luistert drie.

    Waar het vaak misgaat:

    • Een pictogram zonder tekst, met per pagina een ander alternatief: “zoeken”, “zoek”, “vergrootglas”.
    • Downloadlinks: “Download pdf”, “Pdf downloaden”, “Bekijk het rapport” — voor hetzelfde bestand.
    • De knop die een formulier verstuurt: “Versturen”, “Verzenden”, “Aanvragen”, “Ok”.
    • Een sluitkruisje dat de ene keer “Sluiten” heet en de andere keer “Annuleren”.

    Dit telt het zwaarst bij spraakbediening. Wie zijn computer met zijn stem bedient zegt “klik Zoeken”. Heet de knop op die pagina “Zoek”, dan gebeurt er niets.

    Dezelfde naam voor twee dingen die iets anders doen is de omgekeerde fout. Twee links die allebei “Lees meer” heten maar naar verschillende pagina’s gaan, botsen met 2.4.4.

    Open dit onderwerp op een eigen pagina

  • Paginatitel

    Webpagina’s moeten een titel hebben die het onderwerp of doel van de pagina beschrijft. Met een goede paginatitel kunnen gebruikers een pagina gemakkelijk terugvinden als er bijvoorbeeld meerdere tabbladen open staan.

    De paginatitel wordt ook gebruikt door mensen die een schermlezer gebruiken om snel een idee van de inhoud van de pagina te krijgen.

    Een paginatitel voor een webpagina wordt gegeven met het <​​title>-element in het <​​head>-element. In het <​​title>-element moet altijd tekst staan.

    In de code ziet dat er zo uit:

    <html lang="nl">
      <head>
        <title>WCAG.nl - Digitale toegankelijkheid voor iedereen</title>
        ...

    Open dit onderwerp op een eigen pagina

  • Vaste namen: de namen vastleggen

    Dit is geen technisch probleem. Het ontstaat doordat verschillende mensen op verschillende momenten een knop een naam geven. De oplossing is een afspraak.

    Maak een lijst met de tien tot twintig onderdelen die overal terugkomen, en spreek per stuk één naam af:

    Zoeken            (niet: Zoek, Vind, Search)
    Versturen         (niet: Verzenden, Ok, Aanvragen)
    Sluiten           (niet: Annuleren, Terug, X)
    Download pdf      (niet: Pdf downloaden, Bekijk pdf)
    Neem contact op   (niet: Contact, Mail ons)

    Een pictogram zonder tekst heeft een naam nodig die niet zichtbaar is. Gebruik overal dezelfde:

    <button aria-label="Zoeken">
      <svg aria-hidden="true">…</svg>
    </button>

    Staat er wel tekst naast het pictogram, dan is die tekst de naam. Zet het pictogram dan op aria-hidden, anders wordt de naam twee keer voorgelezen.

    Let op de vertaling van je thema. Knoppen die uit WordPress of een plugin komen — “Lees verder”, “Vorige”, “Zoeken” — hebben hun eigen vertaling, en die kan afwijken van wat er elders op de site staat. Dat is een van de vaakst gemiste oorzaken van deze fout.

    Open dit onderwerp op een eigen pagina

  • Consistente hulp: zo test je het

    Deze test doe je met het oog en een handvol pagina’s.

    Ga als volgt te werk:

    • Kies vijf pagina’s die niet op elkaar lijken: de homepage, een dienstenpagina, een formulier, een artikel en een bevestigingspagina.
    • Zoek op elke pagina alle vormen van hulp: telefoon, e-mail, contact, chat, veelgestelde vragen.
    • Noteer waar ze staan en in welke volgorde.
    • Leg de vijf lijstjes naast elkaar.

    Waar het meestal misgaat:

    • De bestelpagina zonder voettekst, bewust weggehaald om afleiding te voorkomen — precies waar een bezoeker vastloopt.
    • Een chatknop die alleen op sommige pagina’s staat.
    • Een telefoonnummer in de koptekst op de homepage en alleen in de voettekst op de rest.
    • Een volgorde die wisselt: op de ene pagina eerst chat en dan telefoon, op de andere andersom.

    Doe de test daarna nog eens op 200% zoom. Onderdelen die op een breed scherm naast elkaar staan komen dan onder elkaar, soms in een andere volgorde per pagina. Dat telt mee.

    Open dit onderwerp op een eigen pagina

  • Vaste namen: zo test je het

    Je zoekt onderdelen die hetzelfde doen maar anders heten. Die vind je door de namen naast elkaar te leggen.

    Haal de namen op met dit script in de console:

    [...document.querySelectorAll('button, a, [role=button]')]
      .map(function (el) {
        return (el.getAttribute('aria-label') || el.textContent).trim();
      })
      .filter(Boolean)
      .forEach(function (n) { console.log(n); });

    Doe dit op vijf verschillende pagina’s en zet de uitkomsten onder elkaar in een tekstbestand.

    Waar je op let:

    • Varianten van hetzelfde woord: zoeken, zoek, search.
    • Knoppen die hetzelfde doen maar anders heten.
    • Pictogrammen zonder naam. Die komen als lege regel terug.
    • Namen die twee keer voorkomen maar iets anders doen. Dat is de omgekeerde fout.

    Doe ook de test met je stem. Zet spraakbediening aan en zeg “klik Zoeken” op drie verschillende pagina’s. Werkt het niet overal, dan is de afwijking niet alleen aangetoond maar ook gevoeld.

    Open dit onderwerp op een eigen pagina

  • Consistente hulp: wat het criterium vraagt

    Biedt een website op meerdere pagina’s hulp aan, dan hoort die hulp op elke pagina op dezelfde plek te staan, in dezelfde volgorde. Staat het telefoonnummer op de ene pagina rechtsboven en op de volgende ergens anders, dan raakt de bezoeker het kwijt op het moment dat hij het nodig heeft.

    Het gaat er niet om óf er hulp wordt aangeboden — dat is een eigen keuze. Het gaat erom dat de hulp niet per pagina verspringt. Dit criterium is nieuw in WCAG 2.2 en staat op niveau A, dus het valt onder de wettelijke eis.

    Als hulp telt:

    • Een telefoonnummer of e-mailadres.
    • Een link naar contact of een contactformulier.
    • Een chatvenster of een chatbot.
    • Een link naar veelgestelde vragen of een helpdesk.
    • Een link naar een zelfhulppagina bij een specifieke stap.

    Wordt er alleen een telefoonnummer aangeboden, dan sluit dat iedereen uit die niet kan bellen: wie doof is, wie moeilijk spreekt, of wie in een omgeving zit waar bellen niet kan. Zorg dat er altijd een schriftelijke weg naast staat.

    Open dit onderwerp op een eigen pagina

Ontwerp

  • Contrast voor grafische objecten

    Genoeg contrast tussen twee kleuren is van belang voor mensen die niet goed kunnen zien. Het helpt om het verschil tussen kleuren beter te zien.

    De richtlijnen vereisen voor deze onderdelen een contrastverhouding van ten minste 3:1 tegen alle aangrenzende kleuren. Het kan dus zijn dat een contrast op meerdere plekken gemeten moet worden.

    Formulierelementen

    Formulierelementen, zoals invoervelden, keuzerondjes en selectievakjes moeten genoeg contrast hebben. Zorg voor een duidelijke rand of een achtergrondkleur met voldoende contrast. Ook de verschillende statussen van deze elementen moeten genoeg contrast hebben. Het moet duidelijk zijn of een keuzerondje of selectievakje is geselecteerd of juist niet.

    Iconen

    Informatieve iconen en iconen die ook worden gebruik als link of knop moeten genoeg contrast hebben.

    Grafieken en diagrammen

    Ook onderdelen in grafieken en diagrammen moeten genoeg contrast hebben. Denk hierbij aan de lijnen in een grafiek en de onderdelen in een diagram.

    Open dit onderwerp op een eigen pagina

  • Contrast voor tekst

    Genoeg contrast tussen twee kleuren is van belang voor mensen die niet goed kunnen zien. Het helpt om het verschil tussen kleuren beter te zien.

    De contrastverhouding voor tekst moet voldoen aan minimaal:

    • 4,5:1 voor tekst die kleiner is dan 24px of 18,5px vetgedrukt.
    • 3:1 voor tekst die groter is dan 24px of 18,5px vetgedrukt.

    Deze contrasteisen gelden ook voor tekst op afbeeldingen.

    Let op: De contrastverhoudingen worden niet afgerond. Als een contrastverhouding van minimaal 4,5:1 is vereist, dan is 4,49:1 dus nog niet genoeg.

    Er zijn tools die kunnen helpen bij het berekenen van de contrastverhouding. Bijvoorbeeld de contrast checker op de website van WebAIM of de Colour Contrast Analyser (software) van The Paciello Group.

    Open dit onderwerp op een eigen pagina

PDF

  • Word-bestand klaarmaken

    Het meeste werk aan een toegankelijke PDF gebeurt in Word. Wat daar goed staat komt goed in de PDF terecht; wat ontbreekt moet je later in Acrobat met de hand herstellen, en dat kost een veelvoud van de tijd.

    Loop dit na voordat je exporteert:

    • Documenttitel. Ga naar Bestand, Info, Eigenschappen en vul de titel in. Die mag afwijken van de bestandsnaam en komt in de PDF terug.
    • Stijlen voor koppen. Gebruik Kop 1, Kop 2 en Kop 3 in plaats van tekst vet en groot te maken. De stijl geeft de betekenis; de opmaak doet dat niet.
    • Titel en ondertitel op het voorblad. Gebruik daarvoor de stijlen Titel en Ondertitel.
    • Alternatieve tekst bij afbeeldingen. Rechtermuisknop, Alternatieve tekst weergeven, en vul in wat de afbeelding overbrengt. Is de afbeelding decoratief, laat het veld dan leeg.
    • Een automatische inhoudsopgave. Die bouwt Word uit je koppen, en voorleessoftware gebruikt diezelfde structuur.
    • Echte lijsten en echte tabellen. Geen streepjes en geen tabs, maar de lijst- en tabelfunctie van Word.
    • Een bijschrift bij elke tabel, en kopcellen die als kopcel zijn gemarkeerd.

    Een logo in de koptekst of voettekst hoeft geen alternatieve tekst. Die gebieden worden in de PDF als artefact behandeld: decoratie die wordt overgeslagen. Zet het logo daarom op het voorblad, want daar wordt het wel voorgelezen.

    Open dit onderwerp op een eigen pagina

  • Exporteren naar PDF

    Word biedt meerdere manieren om een PDF te maken. Kies Opslaan als en niet Afdrukken naar PDF: afdrukken levert een plaatje van je document op, zonder structuur.

    Ga als volgt te werk:

    1. Kies bij het bestandstype voor PDF.
    2. Klik op Meer opties.
    3. Kies bij Optimaliseren voor “Standaard (online publiceren en afdrukken)”.
    4. Vink onder Opties voor niet-afdrukbare informatie aan: “Bladwijzers maken met Koppen” en “Labels voor documentstructuur voor toegankelijkheid”.
    5. Vink onder PDF-opties “Voldoet aan PDF/A” aan, zodat het lettertype in het document wordt ingesloten.
    6. Klik op Opslaan.

    Door PDF/A staat het bestand op Alleen lezen en kun je het in Acrobat niet meteen bewerken. Dat is geen fout. Klik in Acrobat op de knop “Bewerken inschakelen” in de blauwe balk bovenaan en sla het document opnieuw op.

    Open dit onderwerp op een eigen pagina

  • Openen in Acrobat Pro

    Bij het eerste openen staat de PDF op Alleen lezen, omdat er bij de export voor PDF/A is gekozen. Klik op “Bewerken inschakelen” in de blauwe balk bovenaan, bevestig met OK, en sla het document opnieuw op om die instelling te bewaren.

    Zet daarna drie zijpanelen klaar. Zonder die panelen is de rest van het werk niet te doen:

    • Toegankelijkheidstags. Hier voeg je tags toe en pas je ze aan. Dit is het paneel waar je het meeste werkt.
    • Leesvolgorde. Hiermee controleer je in welke volgorde voorleessoftware het document doorloopt.
    • Inhoud. Hiermee selecteer je losse onderdelen op de pagina.

    Maak vanaf nu regelmatig een kopie van het bestand. De functie Ongedaan maken werkt in Acrobat niet altijd betrouwbaar bij het bewerken van tags. Met een kopie kun je altijd terug naar een eerdere versie.

    Open dit onderwerp op een eigen pagina

  • Documenteigenschappen

    Begin in Acrobat altijd bij de documenteigenschappen. Vier instellingen moeten daar goed staan voordat je aan de tags begint.

    1. Titel. Controleer of die goed is overgekomen uit Word. Is het veld leeg, vul hem dan hier in.
    2. Weergeven bij openen. Zet achter Tonen de waarde “Documenttitel”. De andere optie is “Bestandsnaam”, en die zegt de lezer niets.
    3. PDF/UA-naleving. Kies op het tabblad Geavanceerd, onder Toegankelijkheid, de optie “PDF/UA v1”.
    4. Taal. Controleer onder Leesopties of de taal klopt. Dit gaat bij export regelmatig mis.

    De taal bepaalt met welke uitspraak voorleessoftware het document voorleest. Staat er Engels terwijl het document Nederlands is, dan is de tekst onverstaanbaar — ook al staat er geen letter verkeerd.

    Open dit onderwerp op een eigen pagina

  • Eerste controle in PAC

    PAC is een gratis programma dat een PDF toetst tegen de PDF/UA-norm en de WCAG. Draai het één keer voordat je begint, zodat je weet wat er te doen staat, en nog een keer als je klaar bent.

    Ga als volgt te werk:

    1. Open PAC en klik op Document openen.
    2. Kies de PDF. Het bestand wordt gescand en de fouten verschijnen.
    3. Klik op Gedetailleerde resultaten voor de losse meldingen.

    De uitkomst is verdeeld over tabbladen voor PDF/UA, WCAG en kwaliteit. Die overlappen grotendeels: los je iets op voor de WCAG, dan verdwijnt meestal ook de bijbehorende PDF/UA-melding. Dat geldt bijvoorbeeld voor ontbrekende begrenzingsvlakken bij afbeeldingen en voor kopcellen in tabellen.

    PAC toetst wat een machine kan toetsen. Of een alternatieve tekst klopt, of de leesvolgorde logisch is en of een kop de juiste kop is, moet je zelf beoordelen. Een groene uitslag is dus geen bewijs dat het document toegankelijk is.

    Open dit onderwerp op een eigen pagina

  • Een bladwijzer maken

    Hyperlinks, ook wel bladwijzers genoemd, maken het eenvoudig om snel naar specifieke onderdelen binnen een PDF te navigeren. Dit is vooral handig in uitgebreide documenten met veel pagina’s, waar het anders lastig kan zijn om relevante informatie terug te vinden. Bladwijzers bieden een gebruiksvriendelijke manier om met één klik naar een bepaald hoofdstuk, subhoofdstuk of bijlage te springen. Hoe ga je te werk om bladwijzers toe te voegen?

    Voorbereiding van het document

    Zorg er eerst voor dat je document goed gestructureerd is voordat je bladwijzers toevoegt. Het is belangrijk dat de PDF voorzien is van toegankelijkheidstags, zodat bijvoorbeeld schermlezers het document kunnen voorlezen en de inhoud gestructureerd is. Tags zoals koppen (h1, h2, h3, enz.) helpen om de hiërarchie van het document duidelijk weer te geven.

    Het bladwijzerspaneel openen

    De meeste PDF-programma’s, zoals Adobe Acrobat, hebben aan de rechterkant van het scherm een bladwijzerspaneel. Door hierop te klikken, kun je dit paneel openen.

    Een bladwijzer toevoegen

    Navigeer naar de pagina of sectie van het document waarvoor je een bladwijzer wilt maken. Selecteer de gewenste tekst met de selectietool. Vervolgens kun je in het bladwijzerspaneel op de knop ‘Bladwijzer toevoegen’ klikken of gebruik maken van de sneltoets Ctrl + B. De nieuwe bladwijzer verschijnt dan in het paneel, met de geselecteerde tekst als naam.

    Bladwijzers een naam geven

    Je kunt de naam van een bladwijzer aanpassen door erop te dubbelklikken in het paneel. Kies een duidelijke en beschrijvende naam die de inhoud goed samenvat. Dit maakt het voor lezers gemakkelijker om de juiste bladwijzer te vinden. Voorbeelden van namen zijn: “Hoofdstuk 1 – Inleiding”, “Inhoudsopgave” of “2.1.1. Onderwerp”.

    Bladwijzers ordenen

    Om de structuur van het document verder te verbeteren, kun je bladwijzers rangschikken op verschillende niveaus. In het bladwijzerspaneel kun je bladwijzers onder elkaar slepen, bijvoorbeeld om subhoofdstukken onder een hoofdstuk te groeperen. Dit maakt het document overzichtelijker en gebruiksvriendelijker, zodat lezers de inhoud sneller kunnen doorgronden.

    Thema’s

    Open dit onderwerp op een eigen pagina

  • De taal van een PDF

    Het aanpassen van de documenttaal in een PDF is een eenvoudig proces. Dit kan gedaan worden via de documenteigenschappen. Volg deze stappen om de documenttaal in te stellen:

    1. Open het document in Adobe Acrobat PRO.
    2. Klik op Bestand > Documenteigenschappen om het documenteigenschappen-paneel te openen.
    3. Selecteer het tabblad ‘Geavanceerd’.
    4. Helemaal onderaan zie je het vakje ‘Taal’ staan. Kies uit de keuzelijst de juiste taal.
    5. Klik onderaan het documenteigenschappen-paneel op de ‘OK’-knop om de instellingen op te slaan.
    Thema’s

    Open dit onderwerp op een eigen pagina

  • De titel van een PDF

    Het aanpassen van de titel in een PDF is een eenvoudig proces. Dit kan gedaan worden via de documenteigenschappen. Volg deze stappen om de titel in te stellen:

    1. Open het document in Adobe Acrobat PRO.
    2. Klik op Bestand > Documenteigenschappen om het documenteigenschappen-paneel te openen.
    3. Selecteer het tabblad ‘Beschrijving’.
    4. Helemaal bovenaan zie je het invoerveld ‘Titel’ staan. Vul hier een beschrijvende titel in.
    5. Klik onderaan het documenteigenschappen-paneel op de ‘OK’-knop om de instellingen op te slaan.
    Thema’s
    Succescriteria

    Open dit onderwerp op een eigen pagina

Tekst

  • Contrast voor tekst

    Genoeg contrast tussen twee kleuren is van belang voor mensen die niet goed kunnen zien. Het helpt om het verschil tussen kleuren beter te zien.

    De contrastverhouding voor tekst moet voldoen aan minimaal:

    • 4,5:1 voor tekst die kleiner is dan 24px of 18,5px vetgedrukt.
    • 3:1 voor tekst die groter is dan 24px of 18,5px vetgedrukt.

    Deze contrasteisen gelden ook voor tekst op afbeeldingen.

    Let op: De contrastverhoudingen worden niet afgerond. Als een contrastverhouding van minimaal 4,5:1 is vereist, dan is 4,49:1 dus nog niet genoeg.

    Er zijn tools die kunnen helpen bij het berekenen van de contrastverhouding. Bijvoorbeeld de contrast checker op de website van WebAIM of de Colour Contrast Analyser (software) van The Paciello Group.

    Open dit onderwerp op een eigen pagina

  • Instructies zonder kleur of vorm

    Verwijs in instructies niet alleen naar zintuiglijke eigenschappen van componenten zoals vorm, kleur, omvang, locatie, oriëntatie of geluid. Gebruik daarnaast ook tekst.

    Schrijf dus niet:

    • Gebruik de ronde knop om je gegevens te verzenden. (vorm)
    • Op de dagen met een groen bolletje zijn wij beschikbaar. (kleur)
    • Klik op de knop rechts onderaan de pagina om naar de volgende pagina te gaan. (locatie)

    Maar zeg wel:

    • Gebruik de (ronde, groene) knop (onderaan) met tekst “Verzenden” om je gegevens te in te sturen.

    Instructies waarin alleen zintuiglijke eigenschappen worden gebruikt zijn niet door alle bezoekers goed te volgen. Zo kunnen bezoekers die blind of slechtziend zijn vorm, omvang of locatie niet waarnemen. Instructies waarin alleen geluid wordt gebruikt zijn niet, of niet goed, te volgen voor bezoekers die doof of slechthorend zijn.

    Open dit onderwerp op een eigen pagina

  • Koppen die het onderwerp noemen

    Koppen moeten het onderwerp of doel van de onderliggende tekst beschrijven. Koppen helpen mensen om snel te begrijpen waar een webpagina of document over gaat. Gebruik daarom verschillende kopniveaus om de content goed te structuren.

    Zorg dat elke kop iets zegt over de tekst die eronder staat, zodat de koppen de onderliggende content goed beschrijven. Dit helpt iedereen om een tekst beter te begrijpen, en alle koppen samen horen een goed beeld te geven van de hele content. Een kop moet dus ook altijd content hebben.

    Mensen die gebruik maken van een schermlezer kunnen een lijst van alle koppen gebruiken om over de webpagina te navigeren.

    Open dit onderwerp op een eigen pagina

  • Taal van een woord of zin

    Voorleessoftware kan tekst omzetten in spraak. Als de taal niet, of op een verkeerde manier, is aangegeven in de code, dan kan de voorleessoftware de tekst niet duidelijk voorlezen.

    Als een zin of paragraaf in de content in een andere taal dan de standaard taal is geschreven, dan moet dit worden aangegeven in de code. Zo kan software de taal van de webpagina bepalen. Deze verplichting geldt alleen voor zinnen en paragrafen, dus niet voor losse woorden.

    Een taalwissel voor onderdelen van een webpagina wordt ingesteld met het lang-attribuut in het element die een andere taal heeft dan de hoofdtaal van de website. Het lang-attribuut kan worden gebruikt op blok-elementen (<​​div​>, <​​p​>, <​​table​>, enz.) maar ook op inline-elementen (<​​span​>, <​​a​>, <​​strong​>, enz.).

    In de code ziet dat er zo uit:

    <p lang="en">The quick brown fox jumps over the lazy dog.</p>
    
    <p lang="en">In Dutch we say <span lang="nl">Pa's wijze lynx bezag vroom het fikse aquaduct</span>.</p>

    Elke taal heeft zijn eigen code. Voor Nederlands is dat ‘nl‘ (lang="nl"), voor Engels ‘en‘ (lang="en"), en voor Duits ‘de‘ (lang="de").

    Er geldt een uitzondering voor eigennamen, technische termen, woorden van een onbepaalde taal, en woorden of uitdrukkingen die deel zijn gaan uitmaken van de volkstaal van de omringende tekst.

    Open dit onderwerp op een eigen pagina

  • Taal van de pagina

    Voorleessoftware kan tekst omzetten in spraak. Als de taal niet, of op een verkeerde manier, is aangegeven in de code, dan kan de voorleessoftware de tekst niet duidelijk voorlezen.

    Stel de standaardtaal van een website in. Dit helpt software om de taal van de content te bepalen.

    De taal van een website wordt ingesteld met het lang-attribuut in het <​​html​>-element.

    In de code ziet dat er zo uit:

    <html lang="nl">
    ...
    </html>

    Elke taal heeft zijn eigen code. Voor Nederlands is dat ‘nl‘ (lang="nl"), voor Engels ‘en‘ (lang="en"), en voor Duits ‘de‘ (lang="de").

    Open dit onderwerp op een eigen pagina

  • Vaste namen: wat het criterium vraagt

    Onderdelen die hetzelfde doen horen overal dezelfde naam te krijgen. Dat geldt voor de zichtbare tekst en voor het alternatief van een pictogram. Heet dezelfde knop op de ene pagina “Zoeken”, op de andere “Zoek”, en staat er elders alleen een vergrootglas zonder tekst, dan is dat voor wie kijkt één ding en voor wie luistert drie.

    Waar het vaak misgaat:

    • Een pictogram zonder tekst, met per pagina een ander alternatief: “zoeken”, “zoek”, “vergrootglas”.
    • Downloadlinks: “Download pdf”, “Pdf downloaden”, “Bekijk het rapport” — voor hetzelfde bestand.
    • De knop die een formulier verstuurt: “Versturen”, “Verzenden”, “Aanvragen”, “Ok”.
    • Een sluitkruisje dat de ene keer “Sluiten” heet en de andere keer “Annuleren”.

    Dit telt het zwaarst bij spraakbediening. Wie zijn computer met zijn stem bedient zegt “klik Zoeken”. Heet de knop op die pagina “Zoek”, dan gebeurt er niets.

    Dezelfde naam voor twee dingen die iets anders doen is de omgekeerde fout. Twee links die allebei “Lees meer” heten maar naar verschillende pagina’s gaan, botsen met 2.4.4.

    Open dit onderwerp op een eigen pagina

  • Paginatitel

    Webpagina’s moeten een titel hebben die het onderwerp of doel van de pagina beschrijft. Met een goede paginatitel kunnen gebruikers een pagina gemakkelijk terugvinden als er bijvoorbeeld meerdere tabbladen open staan.

    De paginatitel wordt ook gebruikt door mensen die een schermlezer gebruiken om snel een idee van de inhoud van de pagina te krijgen.

    Een paginatitel voor een webpagina wordt gegeven met het <​​title>-element in het <​​head>-element. In het <​​title>-element moet altijd tekst staan.

    In de code ziet dat er zo uit:

    <html lang="nl">
      <head>
        <title>WCAG.nl - Digitale toegankelijkheid voor iedereen</title>
        ...

    Open dit onderwerp op een eigen pagina

  • Vaste namen: de namen vastleggen

    Dit is geen technisch probleem. Het ontstaat doordat verschillende mensen op verschillende momenten een knop een naam geven. De oplossing is een afspraak.

    Maak een lijst met de tien tot twintig onderdelen die overal terugkomen, en spreek per stuk één naam af:

    Zoeken            (niet: Zoek, Vind, Search)
    Versturen         (niet: Verzenden, Ok, Aanvragen)
    Sluiten           (niet: Annuleren, Terug, X)
    Download pdf      (niet: Pdf downloaden, Bekijk pdf)
    Neem contact op   (niet: Contact, Mail ons)

    Een pictogram zonder tekst heeft een naam nodig die niet zichtbaar is. Gebruik overal dezelfde:

    <button aria-label="Zoeken">
      <svg aria-hidden="true">…</svg>
    </button>

    Staat er wel tekst naast het pictogram, dan is die tekst de naam. Zet het pictogram dan op aria-hidden, anders wordt de naam twee keer voorgelezen.

    Let op de vertaling van je thema. Knoppen die uit WordPress of een plugin komen — “Lees verder”, “Vorige”, “Zoeken” — hebben hun eigen vertaling, en die kan afwijken van wat er elders op de site staat. Dat is een van de vaakst gemiste oorzaken van deze fout.

    Open dit onderwerp op een eigen pagina

  • Vaste namen: zo test je het

    Je zoekt onderdelen die hetzelfde doen maar anders heten. Die vind je door de namen naast elkaar te leggen.

    Haal de namen op met dit script in de console:

    [...document.querySelectorAll('button, a, [role=button]')]
      .map(function (el) {
        return (el.getAttribute('aria-label') || el.textContent).trim();
      })
      .filter(Boolean)
      .forEach(function (n) { console.log(n); });

    Doe dit op vijf verschillende pagina’s en zet de uitkomsten onder elkaar in een tekstbestand.

    Waar je op let:

    • Varianten van hetzelfde woord: zoeken, zoek, search.
    • Knoppen die hetzelfde doen maar anders heten.
    • Pictogrammen zonder naam. Die komen als lege regel terug.
    • Namen die twee keer voorkomen maar iets anders doen. Dat is de omgekeerde fout.

    Doe ook de test met je stem. Zet spraakbediening aan en zeg “klik Zoeken” op drie verschillende pagina’s. Werkt het niet overal, dan is de afwijking niet alleen aangetoond maar ook gevoeld.

    Open dit onderwerp op een eigen pagina

  • Koppen als kop-element

    Koppen zijn vaak te herkennen aan een afwijkende opmaak, zoals een grotere lettergrootte, vetgedrukte tekst, of een andere kleur tekst. Deze betekenis moet ook in de code worden toegevoegd, zodat het ook door software te begrijpen is. Zorg daarom dat alle tekst die er uit ziet als een kop en ook de functie heeft van een kop wordt opgemaakt met een kop-element.

    Zorg voor een passend kopniveau. Alle koppen samen moeten een goed beeld geven van de inhoud van de webpagina.

    Bezoekers die gebruik maken van een schermlezer kunnen een lijst van alle koppen gebruiken om over de pagina te navigeren. Zij kunnen eventueel ook gelijk springen naar de volgende kop.

    Zorg dat koppen worden opgemaakt met een HTML kop-element (<​h1> t/m <​h6>).

    Teksten die géén kop zijn, mogen niet worden opgemaakt met een HTML kop-element.

    Zorg ook dat de volgorde van de koppen en tussenkoppen logisch is. Een paar vuistregels zijn:

    • De eerste kop op de pagina hoort een kop van het eerste niveau te zijn.
    • Na een kop van het eerste niveau hoort een kop van het tweede niveau te volgen.
    • Na een kop van het tweede niveau hoort opnieuw een kop van het tweede niveau volgen óf een kop van het derde niveau.
    • Kopniveaus horen niet te worden overgeslagen.
    <h1>Kop van het eerste niveau</h1>
    <h2>Tussenkop van het tweede niveau</h2>
    <p>...</p>
    <h2>Tussenkop van het tweede niveau</h2>
    <p>...</p>
    
    <h2>Tussenkop van het tweede niveau</h2>
    <p>...</p>
    <h3>Tussenkop van het derde niveau</h3>
    <p>...</p>

    In een CMS kan een tekst worden geselecteerd en worden aangegeven dat het een koptekst is. Je kunt hierbij ook het niveau van de kop aangeven. Dit maakt de tekst automatisch op met het juiste HTML-element.

    Thema’s

    Open dit onderwerp op een eigen pagina

  • Lijsten als lijst-element

    Lijsten zijn vaak te herkennen aan een opsommingsteken of een nummer voor het lijstonderdeel. Mensen die de tekst kunnen zien, herkennen hieraan meteen wat de lijsten zijn maar dit soort vormgeving moet niet de enige manier zijn waarop dit wordt overgebracht.

    De betekenis moet ook in de code worden toegevoegd zodat het ook door software te begrijpen is. Zorg daarom dat alle tekst die er uit ziet als een lijst en ook de functie heeft van een lijst wordt opgemaakt met een passend lijst-element.

    Er zijn verschillende soorten lijsten:

    • een opsomming (<ul>)
    • een genummerde lijst (<ol>)
    • en een lijst met beschrijvingen (<dl>).

    Opsomming

    Onderdelen in een opsomming worden voorafgegaan door een opsommingsteken zoals een bolletje of een streepje. Gebruik opsommingen als de volgorde van de onderdelen in de lijst niet belangrijk is.

    In de code ziet dat er zo uit:

    <ul>
      <li>Eerste onderdeel van een opsomming</li>
      <li>Tweede onderdeel van een opsomming</li>
      ...
    </ul>

    Genummerde lijst

    Onderdelen in een genummerde lijst worden voorafgegaan door een nummer. Gebruik genummerde lijsten als de volgorde van onderdelen in de lijst wél belangrijk is.

    In de code ziet dat er zo uit:

    <ol>
      <li>Eerste onderdeel van een genummerde lijst</li>
      <li>Tweede onderdeel van een genummerde lijst</li>
      ...
    </ol>

    Lijst met beschrijvingen

    Gebruik een lijst met beschrijvingen bij lijsten die bestaan uit een naam, term of begrip met een beschrijving die daar bij hoort. Gebruik deze lijsten bijvoorbeeld voor een verklarende woordenlijst. Binnen een lijst met beschrijvingen wordt het <​dt​>-element gebruikt om een term aan te geven en wordt het <​dd​>-element om de beschrijving aan te geven.

    In de code ziet dat er zo uit:

    <dl>
      <dt>conformiteit</dt>
      <dd>voldoen aan alle eisen van een gegeven standaard, richtlijn of specificatie</dd>
      <dt>content (webcontent)</dt>
      <dd>informatie en zintuiglijke ervaring die aan de gebruiker doorgegeven wordt door middel van een user agent, met inbegrip van code of opmaak die de structuur, presentatie en interacties van de content definieert</dd>
    </dl>

    In een CMS kan een tekst worden geselecteerd en worden aangegeven dat het een lijst is. Je kunt hierbij vaak kiezen voor een opsomming of een genummerde lijst. Dit maakt de tekst automatisch op met het juiste HTML-element.

    Thema’s

    Open dit onderwerp op een eigen pagina

  • Tabellen als tabel-element

    Tabellen bestaan uit rijen en kolommen. Tabelkoppen zijn vaak te herkennen aan een afwijkende opmaak, zoals een andere achtergrond of vetgedrukte tekst. Individuele cellen worden vaak onderscheiden door een rand of een wisselende rijkleur. Mensen die de tabel kunnen zien, kunnen deze relaties vaak snel herkennen maar dit soort vormgeving moet niet de enige manier zijn waarop de structuur en relaties worden overgebracht.

    De betekenis moet ook in de code worden toegevoegd zodat het ook door software te begrijpen is. Dit is handig voor mensen die gebruik maken van hulptechnologieën. Zorg daarom dat alle tabellen worden opgemaakt met een tabel-element en dat tabelkoppen worden opgemaakt met een tabelkop-element. Hiermee wordt dan vastgelegd welke cellen koppen zijn en in welke cellen gegevens staan en wat de onderlinge relaties tussen de cellen zijn.

    In de code ziet dat er zo uit:

    <table>
      <tr>
        <th>Kop van de eerste kolom</th>
        <th>Kop van de tweede kolom</th>
        <th>Kop van de derde kolom</th>
      </tr>
      <tr>
        <td>Gegevens in de eerste kolom</td>
        <td>Gegevens in de tweede kolom</td>
        <td>Gegevens in de derde kolom</td>
      </tr>
      ...
    </table>

    Geef de tabel ook een korte beschrijving. Deze beschrijving wordt in de code vastgelegd met een <​caption​>-element. Een goede beschrijving helpt bezoekers om een tabel te vinden en te begrijpen waar de tabel over gaat.

    In de code ziet dat er zo uit:

    <table>
      <caption>Beschrijving van de tabel</caption>
      <tr>
        <th>Kop van de eerste kolom</th>
        ...
    </table>

    In een CMS kan (in veel gevallen) een tabel worden ingevoegd. Bepaal het aantal rijen en kolommen en bepaal nauwkeurig wat de tabelkoppen zijn. Dit maakt de tabel automatisch op met de juiste HTML-elementen.

    Thema’s

    Open dit onderwerp op een eigen pagina

Terug naar boven