{"aAdjacentWithSameResourceShouldBeCombined":{"type":"custom","testability":1,"title":{"en":"Adjacent links that point to the same location should be merged","nl":"Voeg naast elkaar gelegen links die naar dezelfde locatie verwijzen samen"},"description":{"en":"Because many users of screen readers use links to navigate the page, providing two links right next to each other that point to the same location can be confusing. Try combining the links.","nl":"Veel gebruikers van schermlezers gebruiken links om op de pagina te navigeren. Voor hen zijn naast elkaar gelegen links die naar dezelfde locatie verwijzen verwarrend. Probeer de links samen te voegen."},"guidelines":{"wcag":{"2.4.4":{"techniques":["H2","F89"]},"2.4.9":{"techniques":["F89"]},"4.1.2":{"techniques":["F89"]}}},"tags":["link","content"],"callback":"aAdjacentWithSameResourceShouldBeCombined"},"aImgAltNotRepetitive":{"type":"custom","testability":1,"title":{"en":"Alternative text for image in a link should not repeat the text in the link","nl":"Als een link een afbeelding bevat, moet het \"alt\"-attribuut niet dezelfde tekst bevatten als de linktekst"},"description":{"en":"Images within a link should not have an alt attribute that simply repeats the text found in the link. This will cause screen readers to simply repeat the text twice.","nl":"Als een link een afbeelding bevat, moet deze afbeelding een andere tekst in het alt-attribuut hebben dan de tekst in de link. Hiermee voorkom je dat een schermlezer dezelfde tekst twee keer voorleest."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H30"]},"2.4.4":{"techniques":["H30"]},"2.4.9":{"techniques":["H30"]}}},"tags":["link","content"],"callback":"aImgAltNotRepetitive"},"aInPHasADistinctStyle":{"type":"custom","testability":1,"title":{"en":"Links should be have a distinct style inside a p tag","nl":"Links moeten een afwijkende stijl hebben binnen een paragraaf"},"description":{"en":"","nl":""},"guidelines":[],"tags":["link","content"],"callback":"aInPHasADistinctStyle"},"aLinkTextDoesNotBeginWithRedundantWord":{"type":"custom","testability":0,"title":{"en":"Link text should not begin with redundant text","nl":"Laat linkteksten niet beginnen met overbodige tekst"},"description":{"en":"Link text should not begin with redundant words or phrases like \"link\".","nl":"Laat linkteksten niet beginnen met overbodige woorden of woordcombinaties als \"link\" of \"klik hier\"."},"guidelines":{"wcag":{"2.4.9":{"techniques":["F84"]}}},"tags":["link","content"],"strings":["redundant.link"],"callback":"aLinkTextDoesNotBeginWithRedundantWord"},"aLinksAreSeparatedByPrintableCharacters":{"type":"custom","testability":1,"title":{"en":"Lists of links should be seperated by printable characters","nl":"Lijsten met links moeten gescheiden worden door afdrukbare tekens"},"description":{"en":"If a list of links is provided within the same element, those links should be seperated by a non-linked, printable character. Structures like lists are not included in this.","nl":"Als een rij met links binnen eenzelfde element staat, moeten de links gescheiden zijn door een niet-gelinkt, afdrukbaar teken. Dit geldt niet voor een gestructureerde lijst."},"guidelines":[],"tags":["link","content"],"callback":"aLinksAreSeparatedByPrintableCharacters"},"aLinksDontOpenNewWindow":{"type":"custom","testability":1,"title":{"en":"Links should not open a new window without warning","nl":"Met links open je geen nieuw scherm zonder melding"},"description":{"en":"Links which open a new window using the \"target\" attribute should warn users.","nl":"Voordat links door middel van het \"target\"-attribuut een nieuw scherm openen moet de gebruiker een melding hiervan krijgen."},"guidelines":{"wcag":{"3.2.5":{"techniques":["H83","SCR24"]}}},"tags":["link","content"],"strings":["newWindow"],"callback":"aLinksDontOpenNewWindow"},"aLinksNotSeparatedBySymbols":{"type":"custom","testability":1,"title":{"en":"Links should not be separated by symbols alone","nl":"Links mogen niet alleen door symbolen gescheidn worden"},"description":{"en":"Since symbols are either not read, or can be confusing when using a screen reader, do not separate links with un-readable symbols.","nl":"Symbolen worden niet voorgelezen of zijn verwarrend bij het gebruik van een schermlezer. Gebruik geen onleesbare symbolen om links van elkaar te scheiden."},"guidelines":[],"tags":["link","content"],"callback":"aLinksNotSeparatedBySymbols"},"aLinksToMultiMediaRequireTranscript":{"type":"selector","testability":0,"title":{"en":"Any links to a multimedia file should also include a link to a transcript","nl":"Elke link naar een multimediabestand moet ook een link bevatten naar een transcriptie"},"description":{"en":"Links to a multimedia file should be followed by a link to a transcript of the file.","nl":"Links naar een multimediabestand moeten worden gevolgd door een link naar de transcriptie van dit bestand."},"guidelines":{"508":["c"],"wcag":{"1.1.1":{"techniques":["G74"]}}},"tags":["link","media","content"],"options":{"selector":"a[href$='.wmv'], a[href$='.mpg'], a[href$='.mov'], a[href$='.ram'], a[href$='.aif']"}},"aLinksToSoundFilesNeedTranscripts":{"type":"selector","testability":0,"title":{"en":"Any links to a sound file should also include a link to a transcript","nl":"Elke link naar een geluidsbestand moet ook een link bevatten naar een transcriptie"},"description":{"en":"Links to a sound file should be followed by a link to a transcript of the file.","nl":"Links naar een geluidsbestand moeten worden gevolgd door een link naar de transcriptie van dit bestand."},"guidelines":{"508":["c"],"wcag":{"1.1.1":{"techniques":["G74"]}}},"tags":["link","media","content"],"options":{"selector":"a[href$='.wav'], a[href$='.snd'], a[href$='.mp3'], a[href$='.iff'], a[href$='.svx'], a[href$='.sam'], a[href$='.smp'], a[href$='.vce'], a[href$='.vox'], a[href$='.pcm'], a[href$='.aif']"}},"aLinkWithNonText":{"type":"custom","title":{"en":"Links with only non-text content should be readable","nl":"Links zonder tekstuele content moeten leesbaar zijn"},"description":{"en":"If a link contains only non-text content like an image, that content must be readable by assistive technology.","nl":"Als een link alleen maar niet-tekstuele content bevat zoals een afbeelding, moet deze content leesbaar worden gemaakt door middel van daarvoor geschikte technologie."},"guidelines":{"wcag":{"2.4.4":{"techniques":["H2","F89"]},"2.4.9":{"techniques":["F89"]},"4.1.2":{"techniques":["F89"]}}},"tags":["link","content"],"callback":"aLinkWithNonText"},"aMultimediaTextAlternative":{"type":"selector","testability":0,"guidelines":[],"tags":["link","media","content"],"options":{"selector":"a[href$='.wmv'], a[href$='.wav'], a[href$='.mpg'], a[href$='.mov'], a[href$='.ram'], a[href$='.aif']"}},"aMustContainText":{"type":"custom","testability":1,"title":{"en":"Links should contain text","nl":"Links moeten tekst bevatten"},"description":{"en":"Because many users of screen-readers use links to navigate the page, providing links with no text (or with images that have empty \"alt\" attributes and no other readable text) hinders these users.","nl":"Veel gebruikers van schermlezers gebruiken links om op de pagina te navigeren. Links zonder tekst (of met afbeeldingen die een leeg \"alt\"-attribuut hebben en geen andere leesbare tekst) hinderen deze gebruikers."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H30"]},"2.4.4":{"techniques":["H30"]},"2.4.9":{"techniques":["H30"]},"4.1.2":{"techniques":["H91"]}}},"tags":["link","content"],"callback":"aMustContainText"},"aMustHaveTitle":{"type":"selector","testability":1,"title":{"en":"All links must have a \"title\" attribute","nl":"Alle links moeten een \"title\"-attribuut hebben"},"description":{"en":"Every link must have a \"title\" attribute.","nl":"Zorg ervoor dat elke link is voorzien van een \"title\"-attribuut."},"guidelines":[],"tags":["link","content"],"options":{"selector":"a:not(a[title])"}},"aMustNotHaveJavascriptHref":{"type":"selector","testability":1,"title":{"en":"Links should not use \"javascript\" in their location","nl":"Links moeten geen \"javascript\" in hun locatie hebben"},"description":{"en":"Anchor (<code>a</code>.  elements may not use the \"javascript\" protocol in their \"href\" attributes.","nl":"Anchor(<code>a</code>.-elementen mogen geen \"javascript\"protocol in hun \"href\"-attributen hebben staan."},"guidelines":[],"tags":["link","content"],"options":{"selector":"a[href^='javascript:']"}},"aSuspiciousLinkText":{"type":"custom","testability":1,"title":{"en":"Link text should be useful","nl":"Linkteksten moeten bruikbaar en betekenisvol zijn"},"description":{"en":"Because many users of screen-readers use links to navigate the page, providing links with text that simply read \"click here\" gives no hint of the function of the link.","nl":"Veel gebruikers van schermlezers gebruiken links om op de pagina te navigeren. Links met de tekst \"klik hier\" zijn voor deze gebruikers niet betekenisvol en niet bruikbaar."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H30"]},"2.4.4":{"techniques":["H30"]},"2.4.9":{"techniques":["H30"]}}},"tags":["link","content"],"strings":["suspiciousLinks"],"callback":"aSuspiciousLinkText"},"aTitleDescribesDestination":{"type":"selector","testability":0,"title":{"en":"The title attribute of all source a (anchor) elements describes the link destination.","nl":"Het titel-attribuut van alle source a (anchor)-elementen beschrijven de bestemming van de link"},"description":{"en":"Every link must have a \"title\" attribute which describes the purpose or destination of the link.","nl":"Elke link moet een \"title\"-attribuut hebben waarin het doel of de bestemming van de link wordt beschreven."},"guidelines":{"wcag":{"2.4.9":{"techniques":["H33","H25"]}}},"tags":["link","content"],"options":{"selector":"a[title]"}},"addressForAuthor":{"type":"selector","testability":1,"title":{"en":"The document should contain an address for the author","nl":"Het document moet een adres voor de auteur bevatten"},"description":{"en":"Documents should provide a valid email address within an <code>address</code> element.","nl":"Documenten moeten een e-mailadres bevatten binnen het <code>address</code>-element."},"guidelines":[],"tags":["document"],"options":{"selector":"body:not(body:has(address))"}},"addressForAuthorMustBeValid":{"type":"selector","testability":0.5,"title":{"en":"The document should contain a valid email address for the author","nl":"Het document moet een geldig e-mailadres bevatten voor de auteur"},"description":{"en":"Documents should provide a valid email address within an <code>address</code> element.","nl":"Documenten moeten een geldig e-mailadres bevatten binnen het <code>address</code> element."},"guidelines":[],"tags":["document"],"options":{"selector":"address"}},"appletContainsTextEquivalent":{"type":"custom","testability":1,"title":{"en":"All applets should contain the same content within the body of the applet","nl":"Alle applets moeten dezelfde content bevatten in de body van de applet"},"description":{"en":"Applets should contain their text equivalents or description within the <code>applet</code> tag itself.","nl":"Applets moeten hun tekstuele equivalent of beschrijving bevatten in de <code>applet</code> tag."},"guidelines":{"508":["m"],"wcag":{"1.1.1":{"techniques":["G74","H35"]}}},"tags":["objects","applet","content"],"callback":"appletContainsTextEquivalent"},"appletContainsTextEquivalentInAlt":{"type":"placeholder","testability":0.5,"title":{"en":"All applets should contain a text equivalent in the \"alt\" attribute","nl":"Alle applets moeten een tekstuele equivalent bevatten in het \"alt\"-attribuut"},"description":{"en":"Applets should contain their text equivalents or description in an \"alt\" attribute.","nl":"Applets moeten hun tekstuele equivalent of beschrijving bevatten in een \"alt\"-attribuut."},"guidelines":{"508":["m"],"wcag":{"1.1.1":{"techniques":["G74","H35"]}}},"tags":["objects","applet","content"],"components":["placeholder"],"options":{"attribute":"alt","empty":true,"selector":"applet"}},"appletProvidesMechanismToReturnToParent":{"type":"selector","testability":0,"title":{"en":"All applets should provide a way for keyboard users to escape","nl":"Alle applets moeten door toetsenbordgebruikers kunnen worden verlaten"},"description":{"en":"Ensure that a user who has only a keyboard as an input device can escape an <code>applet</code> element. This requires manual confirmation.","nl":"Zorg ervoor dat gebruikers die alleen het toetsenbord gebruiken als bediening een <code>applet</code>-element kunnen verlaten. Hiervoor is handmatige bevestiging nodig."},"guidelines":[],"tags":["objects","applet","content"],"options":{"selector":"applet"}},"appletTextEquivalentsGetUpdated":{"type":"selector","testability":0,"guidelines":{"508":["m"],"wcag":{"1.1.1":{"techniques":["G74","H35"]}}},"tags":["objects","applet","content"],"options":{"selector":"applet"}},"appletUIMustBeAccessible":{"type":"selector","testability":0,"title":{"en":"Any user interface in an applet must be accessible","nl":"Elke user interface in een applet moet toegankelijk zijn"},"description":{"en":"Applet content should be assessed for accessibility.","nl":"Content in een applet moet getoetst worden op toegankelijkheid."},"guidelines":{"508":["m"],"wcag":{"1.1.1":{"techniques":["G74","H35"]}}},"tags":["objects","applet","content"],"options":{"selector":"applet"}},"appletsDoNotFlicker":{"type":"selector","testability":0,"title":{"en":"All applets do not flicker","nl":"Applets knipperen of flitsen niet"},"description":{"en":"Applets should not flicker.","nl":"Geen enkele applet mag knipperen of flitsen."},"guidelines":{"508":["j"],"wcag":{"2.2.2":{"techniques":["F7"]}}},"tags":["objects","applet","content"],"options":{"selector":"applet"}},"appletsDonotUseColorAlone":{"type":"selector","testability":0,"title":{"en":"Applets should not use color alone to communicate content","nl":"Applets mogen niet alleen kleur gebruiken om een boodschap over te brengen"},"description":{"en":"Applets should contain content that makes sense without color and is accessible to users who are color blind.","nl":"Applets moeten content bevatten die ook bruikbaar is zonder kleur en die toegankelijk is voor gebruikers met kleurenblindheid."},"guidelines":{"508":["c"]},"tags":["objects","applet","content"],"options":{"selector":"applet"}},"areaAltIdentifiesDestination":{"type":"selector","testability":0,"title":{"en":"All \"area\" elements must have an \"alt\" attribute which describes the link destination","nl":"Alle \"area\"-elementen moeten een \"alt\"-attribuut hebben die de bestemming van de link beschrijft"},"description":{"en":"All <code>area</code> elements within a <code>map</code> must have an \"alt\" attribute","nl":"Alle <code>area</code>-elementen binnen een <code>map</code> moeten een \"alt\"-attribuut hebben."},"guidelines":{"wcag":{"1.1.1":{"techniques":["G74"]}}},"tags":["objects","applet","content"],"options":{"selector":"area[alt]"}},"areaAltRefersToText":{"type":"selector","testability":0,"title":{"en":"Alt text for \"area\" elements should replicate the text found in the image","nl":"Alt-tekst voor \"area\"-elementen moeten de tekst bevatten zoals die ook in de afbeelding staat"},"description":{"en":"If an image is being used as a map, and an <code>area</code> encompasses text within the image, then the \"alt\" attribute of that <code>area</code> element should be the same as the text found in the image.","nl":"Als een afbeelding als kaart wordt gebruikt, en een <code>area</code> bevat tekst binnen de afbeelding, dan moet het \"alt\"-attribuut van dat <code>area</code>-element hetzelfde zijn als de tekst die in de afbeelding staat."},"guidelines":[],"tags":["imagemap","content"],"options":{"selector":"area"}},"areaDontOpenNewWindow":{"type":"selector","testability":1,"title":{"en":"No \"area\" elements should open a new window without warning","nl":"\"area\"-elementen mogen geen nieuw scherm openen zonder melding"},"description":{"en":"No <code>area</code> elements should open a new window without warning.","nl":"<code>area</code>-elementen mogen geen nieuw scherm openen zonder dat de gebruiker hiervan een melding krijgt."},"guidelines":[],"tags":["imagemap","content"],"options":{"selector":"area[target='new window'], area[target=_new], area[target=_blank], area[target=_blank]"}},"areaHasAltValue":{"type":"selector","testability":1,"title":{"en":"All \"area\" elements must have an \"alt\" attribute","nl":"Alle \"area\"-elementen moeten een \"alt\"-attribuut hebben"},"description":{"en":"All <code>area</code> elements within a <code>map</code> must have an \"alt\" attribute.","nl":"Alle <code>area</code>-elementen binnen een <code>map</code> moeten een \"alt\"-attribuut hebben."},"guidelines":{"wcag":{"1.1.1":{"techniques":["F65","G74","H24"]},"1.4.3":{"techniques":["G145"]}}},"tags":["imagemap","content"],"options":{"selector":"area","test":":not(area[alt])"}},"areaLinksToSoundFile":{"type":"selector","testability":1,"title":{"en":"All \"area\" elements which link to a sound file should also provide a link to a transcript","nl":"Alle \"area\"-elementen met een link naar een geluidsbestand moeten ook een link bevatten naar een transcriptie"},"description":{"en":"All <code>area</code> elements which link to a sound file should have a text transcript.","nl":"Alle \"area\"-elementen met een link naar een geluidsbestand moeten een transcriptie hebben in tekst."},"guidelines":{"wcag":{"1.1.1":{"techniques":["G74"]}}},"tags":["imagemap","media","content"],"options":{"selector":"area[href$=wav], area[href$=snd], area[href$=mp3], area[href$=iff], area[href$=svx], area[href$=sam], area[href$=smp], area[href$=vce], area[href$=vox], area[href$=pcm], area[href$=aif]"}},"ariaOrphanedContent":{"type":"custom","testability":1,"title":{"en":"Pages using ARIA roles should not have orphaned content","nl":"Pagina's die ARIA-rollen gebruiken mogen geen verweesde content hebben"},"description":{"en":"If a page makes use of ARIA roles, then there should not be any content on the page which is not within an element that exposes a role, as it could cause that content to be rendreed inaccessible to users with screen readers.","nl":"Als een pagina gebruik maakt van ARIA-rollen, mag er geen content op de pagina staan buiten een element dat een rol vertegenwoordigt. In dat geval kan het zijn dat deze content niet toegankelijk is voor gebruikers van schermlezers."},"guidelines":[],"tags":["aria","content"],"callback":"ariaOrphanedContent"},"basefontIsNotUsed":{"type":"selector","testability":1,"title":{"en":"Basefont should not be used","nl":"Basefont moet niet worden gebruikt"},"description":{"en":"The <code>basefont</code> tag is deprecated and should not be used. Investigate using stylesheets instead.","nl":"The <code>basefont</code>-tag is afgekeurd en moet niet worden gebruikt. Gebruik in plaats hiervan stylesheets."},"guidelines":[],"tags":["document","deprecated"],"options":{"selector":"basefont"}},"blinkIsNotUsed":{"type":"selector","testability":1,"title":{"en":"The \"blink\" tag should not be used","nl":"De \"blink\"-tag moet niet worden gebruikt"},"description":{"en":"The <code>blink</code> tag should not be used. Ever.","nl":"Het is nooit toegestaan om de \"blink\"-tag te gebruiken."},"guidelines":{"wcag":{"2.2.2":{"techniques":["F47"]}}},"tags":["deprecated","content"],"options":{"selector":"blink"}},"blockquoteNotUsedForIndentation":{"type":"selector","testability":0.5,"title":{"en":"The block quote should not be used just for indentation","nl":"De \"blockquote\"-tag mag niet gebruikt worden om in te springen"},"description":{"en":"Blockquote tags are for longer quotes, and should not be used to indent text.","nl":"Blockquotes zijn bedoeld voor lange stukken geciteerde tekst, en niet om tekst te laten inspringen."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H49"]}}},"tags":["blockquote","content"],"options":{"selector":"blockquote:not(blockquote[cite])"}},"blockquoteUseForQuotations":{"type":"custom","testability":0.5,"title":{"en":"If long quotes are in the document, use the \"blockquote\" element to mark them","nl":"Gebruik voor lange citaten in het document het \"blockquote\"-element"},"description":{"en":"If there is a paragraph or more of a quote, use the blockquote element to mark it as such.","nl":"Als er een hele alinea of meer alinea's zijn van geciteerde tekst, gebruik dan blockquote om deze als zodanig te markeren."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H49"]}}},"tags":["blockquote","content"],"callback":"blockquoteUseForQuotations"},"boldIsNotUsed":{"type":"selector","testability":1,"title":{"en":"The \"b\" (bold) element is not used","nl":"Het \"b\"-element (bold) wordt niet gebruikt"},"description":{"en":"The <code>b</code> (bold) element provides no emphasis for non-sighted readers. Use the <code>strong</code> tag instead.","nl":"Het <code>b</code>-element voorziet niet in nadruk voor blinde en slechtziende gebruikers. Gebruik de <code>strong</code>-tag instead."},"guidelines":[],"tags":["semantics","content"],"options":{"selector":"bold"}},"buttonHasName":{"type":"placeholder","testability":1,"title":{"en":"Button should contain text","nl":"Een knop moet tekst bevatten"},"description":{"en":"Buttons should contain a text value within the element, or have a value attribute.","nl":"Knoppen moeten een tekstwaarde binnen het element hebben, of een waarde-attribuut."},"guidelines":{"wcag":{"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"4.1.2":{"techniques":["H91"]}}},"tags":["content"],"components":["placeholder"],"options":{"content":true,"empty":true,"attribute":"title","selector":"button"}},"checkboxHasLabel":{"type":"label","testability":1,"title":{"en":"All checkboxes must have a corresponding label","nl":"Alle keuzevakjes moeten een bijbehorend label hebben"},"description":{"en":"All <code>input</code> elements with a type of \"checkbox\" should have a corresponding <code>label</code> element. Screen readers often enter a \"form mode\" where only label text is read aloud to the user","nl":"Alle  <code>input</code>-elementen met een \"keuzevakje\" moeten een bijbehorend <code>label</code>-element hebben. Schermlezers maken vaak gebruik van een \"formuliereninstelling\" waarbij alleen de tekst van de labels hardop aan de gebruiker wordt voorgelezen."},"guidelines":{"508":["c"],"wcag":{"1.1.1":{"techniques":["H44"]},"1.3.1":{"techniques":["H44","F68"]},"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"3.3.2":{"techniques":["H44"]},"4.1.2":{"techniques":["H44","H91"]}}},"tags":["form","content"],"components":["label"],"options":{"selector":"input[type=checkbox]"}},"checkboxLabelIsNearby":{"type":"labelProximity","testability":0.5,"title":{"en":"All \"checkbox\" input elements have a label that is close","nl":"Van alle \"keuzevakjes\" invoerelementen staat het label in de buurt"},"description":{"en":"All input elements of type \"checkbox\" must have a corresponding label that is close to the form element. Users of screen magnification or with reduced spatial skills are hampered in using a form element if the label for that element is located far away.","nl":"Alle inputelementen van het type \"keuzevakje\" moeten een bijbehorend label hebben dat dicht bij het formulierelement staat. Gebruikers die het scherm vergroten of met beperkte ruimtelijke vaardigheden kunnen een formulier niet gebruiken als het label van een veld te ver weg staat."},"guidelines":[],"tags":["form","content"],"components":["labelProximity"],"options":{"selector":"input[type=checkbox]"}},"closingTagsAreUsed":{"type":"custom","testability":1,"title":{"en":"All tags that require closing tags have closing tags","nl":"Alle tags die een afsluitende tag behoeven, hebben een afsluitende tag"},"description":{"en":"When using tags such as p, ul, or li, there must be a closing tag.","nl":"Gebruik voor tags als p, ul, of li altijd een afsluitende tag, dus /p, /ul, /li."},"guidelines":{"wcag":{"4.1.1":{"techniques":["H74"]}}},"tags":["html"],"components":["htmlSource"],"callback":"closingTagsAreUsed"},"contentPositioningShouldNotChangeMeaning":{"type":"custom","testability":0.5,"title":{"en":"Meaning should not be created through positioning","nl":"Cre�er geen betekenis door positionering"},"description":{"en":"Positioning should not be used to change the meaning of an element.","nl":"Positionering moet niet worden gebruikt om de betekenis van een element te veranderen."},"guidelines":{"wcag":{"1.3.2":{"techniques":["C6","F1","G57"]},"1.4.5":{"techniques":["C6"]},"1.4.9":{"techniques":["C6"]},"2.4.1":{"techniques":["C6"]}}},"tags":["content","structure"],"callback":"contentPositioningShouldNotChangeMeaning"},"cssDocumentMakesSenseStyleTurnedOff":{"type":"selector","testability":0,"title":{"en":"The document must be readable with styles turned off","nl":"Het document moet leesbaar zijn met stijlen uit"},"description":{"en":"With all the styles for a page turned off, the content of the page should still make sense. Try to turn styles off in the browser and see if the page content is readable and clear.","nl":"Als alle stijlen voor een pagina zijn uitgezet, moet de content van de pagina nog steeds betekenisvol zijn. Zet stijlen uit in de browser en controleer of de content op de pagina nog steeds leesbaar en duidelijk is."},"guidelines":{"wcag":{"1.3.1":{"techniques":["G140"]},"1.4.5":{"techniques":["G140"]},"1.4.9":{"techniques":["G140"]}}},"tags":["color"],"options":{"selector":"link[rel=stylesheet], stylesheet, *[style]"}},"colorFontContrast":{"type":"custom","testability":1,"title":{"en":"All elements should have appropriate color contrast","nl":"Alle elementen moeten een toepasselijk kleurcontract hebben"},"description":{"en":"For users who have color blindness, all text or other elements should have a color contrast of 5:1.","nl":"Voor gebruikers met kleurenblindheid moeten alle tekst- en andere elementen een kleurcontrast hebben van 5:1."},"guidelines":{"wcag":{"1.4.3":{"techniques":["G18"]}}},"tags":["color"],"callback":["colorFontContrast"],"options":{"algorithm":"wcag","selector":"*","gradientSampleMultiplier":3}},"colorElementBehindContrast":{"type":"custom","testability":1,"title":{"en":"All elements should have appropriate color contrast","nl":"Alle elementen moeten een toepasselijk kleurcontract hebben"},"description":{"en":"For users who have color blindness, all text or other elements should have a color contrast of 5:1.","nl":"Voor gebruikers met kleurenblindheid moeten alle tekst- en andere elementen een kleurcontrast hebben van 5:1."},"guidelines":{"wcag":{"1.4.3":{"techniques":["G18"]}}},"tags":["color"],"callback":["colorElementBehindContrast"],"options":{"algorithm":"wcag","selector":"*","gradientSampleMultiplier":3}},"colorBackgroundImageContrast":{"type":"custom","testability":1,"title":{"en":"All elements should have appropriate color contrast","nl":"Alle elementen moeten een toepasselijk kleurcontract hebben"},"description":{"en":"For users who have color blindness, all text or other elements should have a color contrast of 5:1.","nl":"Voor gebruikers met kleurenblindheid moeten alle tekst- en andere elementen een kleurcontrast hebben van 5:1."},"guidelines":{"wcag":{"1.4.3":{"techniques":["G18"]}}},"tags":["color"],"callback":["colorBackgroundImageContrast"],"options":{"algorithm":"wcag","selector":"*","gradientSampleMultiplier":3}},"colorElementBehindBackgroundImageContrast":{"type":"custom","testability":1,"title":{"en":"All elements should have appropriate color contrast","nl":"Alle elementen moeten een toepasselijk kleurcontract hebben"},"description":{"en":"For users who have color blindness, all text or other elements should have a color contrast of 5:1.","nl":"Voor gebruikers met kleurenblindheid moeten alle tekst- en andere elementen een kleurcontrast hebben van 5:1."},"guidelines":{"wcag":{"1.4.3":{"techniques":["G18"]}}},"tags":["color"],"callback":["colorElementBehindBackgroundImageContrast"],"options":{"algorithm":"wcag","selector":"*","gradientSampleMultiplier":3}},"colorBackgroundGradientContrast":{"type":"custom","testability":1,"title":{"en":"All elements should have appropriate color contrast","nl":"Alle elementen moeten een toepasselijk kleurcontract hebben"},"description":{"en":"For users who have color blindness, all text or other elements should have a color contrast of 5:1.","nl":"Voor gebruikers met kleurenblindheid moeten alle tekst- en andere elementen een kleurcontrast hebben van 5:1."},"guidelines":{"wcag":{"1.4.3":{"techniques":["G18"]}}},"tags":["color"],"callback":["colorBackgroundGradientContrast"],"options":{"algorithm":"wcag","selector":"*","gradientSampleMultiplier":3}},"colorElementBehindBackgroundGradientContrast":{"type":"custom","testability":1,"title":{"en":"All elements should have appropriate color contrast","nl":"Alle elementen moeten een toepasselijk kleurcontract hebben"},"description":{"en":"For users who have color blindness, all text or other elements should have a color contrast of 5:1.","nl":"Voor gebruikers met kleurenblindheid moeten alle tekst- en andere elementen een kleurcontrast hebben van 5:1."},"guidelines":{"wcag":{"1.4.3":{"techniques":["G18"]}}},"tags":["color"],"callback":["colorElementBehindBackgroundGradientContrast"],"options":{"algorithm":"wcag","selector":"*","gradientSampleMultiplier":3}},"definitionListsAreUsed":{"type":"custom","testability":0.5,"title":{"en":"Use a definition list for defining terms","nl":"Gebruik een definition list voor definities"},"description":{"en":"When providing a list of terms or definitions, use a definition list.","nl":"Wanneer er gebruik wordt gemaakt van een lijst termen of definities, gebruik hiervoor dan een definition list."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H48"]}}},"tags":["structure"],"callback":"definitionListsAreUsed"},"doctypeProvided":{"type":"custom","testability":1,"title":{"en":"The document should contain a valid \"doctype\" declaration","nl":"Het document moet een geldige \"doctype\"-verklaring hebben"},"description":{"en":"Each document must contain a valid doctype declaration.","nl":"Ieder document moet een geldige doctype-verklaring hebben."},"guidelines":[],"tags":["doctype"],"callback":"doctypeProvided"},"documentAbbrIsUsed":{"type":"custom","testability":0.5,"title":{"en":"Abbreviations must be marked with an \"abbr\" element","nl":"Afkortingen moeten worden gemarkeerd met een \"abbr\"-element"},"description":{"en":"Abbreviations should be marked with an <code>abbr</code> element, at least once on the page for each abbreviation.","nl":"Afkortingen moeten worden gemarkeerd door middel van het <code>abbr</code>-element. Doe dit ten minste een keer per pagina voor elke afkorting."},"guidelines":{"wcag":{"3.1.4":{"techniques":["H28"]}}},"tags":["acronym","content"],"components":["acronym"],"callback":"documentAbbrIsUsed"},"documentAcronymsHaveElement":{"type":"custom","testability":0.5,"title":{"en":"Acronyms must be marked with an \"acronym\" element","nl":"Acroniemen moeten worden gemarkeerd met een \"acronym\"-element"},"description":{"en":"Acronyms should be marked with an <code>acronym</code> element, at least once on the page for each acronym.","nl":"Acroniemen moeten worden gemarkeerd door middel van het <code>acronym</code>-element. Doe dit ten minste een keer per pagina voor elke acroniem."},"guidelines":{"wcag":{"3.1.4":{"techniques":["H28"]}}},"tags":["acronym","content"],"components":["acronym"],"callback":"documentAcronymsHaveElement"},"documentAutoRedirectNotUsed":{"type":"selector","testability":1,"title":{"en":"Auto-redirect with \"meta\" elements must not be used","nl":"Auto-redirect met \"meta\"-elementen moeten niet worden gebruikt"},"description":{"en":"Because different users have different speeds and abilities when it comes to parsing the content of a page, a \"meta-refresh\" method to redirect users can prevent users from fully understanding the document before being redirected.","nl":"Omdat verschillende gebruikers verschillende snelheden en vaardigheden hebben met het scannen van content op een pagina, kan een \"meta-refresh\"-methode om gebruikers door te sturen hen verhinderen het document volledig te begrijpen voor ze worden doorgestuurd."},"guidelines":[],"tags":["document"],"options":{"selector":"meta[http-equiv=refresh]"}},"documentContentReadableWithoutStylesheets":{"type":"selector","testability":0,"title":{"en":"Content should be readable without style sheets","nl":"Content moet zonder stylesheets leesbaar zijn"},"description":{"en":"With all the styles for a page turned off, the content of the page should still make sense. Try to turn styles off in the browser and see if the page content is readable and clear.","nl":"Ook als alle stijlen voor een pagina zijn uitgezet, moet de content van de pagina nog steeds betekenisvol zijn. Zet de stylesheets uit in de browser en controleer of de content nog steeds leesbaar en duidelijk is."},"guidelines":{"508":["d"],"wcag":{"1.3.1":{"techniques":["G140"]},"1.4.5":{"techniques":["G140"]},"1.4.9":{"techniques":["G140"]}}},"tags":["document","color"],"options":{"selector":"html:has(link[rel=stylesheet], style) body, body:has(*[style])"}},"documentHasTitleElement":{"type":"selector","testability":1,"title":{"en":"The document should have a title element","nl":"Het document moet een titelelement hebben"},"description":{"en":"The document should have a title element.","nl":"Het document moet een titelelement hebben."},"guidelines":{"wcag":{"2.4.2":{"techniques":["H25"]}}},"tags":["document","head"],"options":{"selector":"html:not(html:has(title))"}},"documentIDsMustBeUnique":{"type":"custom","testability":1,"title":{"en":"All element \"id\" attributes must be unique","nl":"Alle element \"id\"-attributen moeten uniek zijn"},"description":{"en":"Element \"id\" attributes must be unique.","nl":"Element \"id\"-attributen moeten uniek zijn."},"guidelines":{"wcag":{"4.1.1":{"techniques":["F77","H93"]}}},"tags":["document","semantics"],"callback":"documentIDsMustBeUnique"},"documentIsWrittenClearly":{"type":"custom","testability":0.5,"title":{"en":"The document should be written to the target audience and read clearly","nl":"Het document moet geschreven zijn op het niveau van de doelgroep"},"description":{"en":"If a document is beyond a 10th grade level, then a summary or other guide should also be provided to guide the user through the content.","nl":"Als de inhoud van een document moeilijker is dan het vastgestelde taalniveau, moet een samenvatting of andere begeleiding worden toegevoegd om de gebruiker te helpen met de content."},"guidelines":{"wcag":{"3.1.5":{"techniques":["G86"]}}},"tags":["language","content"],"components":["textStatistics"],"callback":"documentIsWrittenClearly"},"documentLangIsISO639Standard":{"type":"custom","testability":1,"title":{"en":"The document's language attribute should be a standard code","nl":"Het language-attribuut van het document moet een standaard code zijn"},"description":{"en":"The document should have a default langauge, and that language should use the valid 2 or 3 letter language code according to ISO specification 639.","nl":"Het document moet een standaardtaal hebben en die taal moet de geldige 2- of 3-letterige taalcode hebben volgens de ISO-specificatie 639."},"guidelines":{"wcag":{"3.1.1":{"techniques":["H57"]}}},"tags":["document","language"],"strings":["languageCodes"],"callback":"documentLangIsISO639Standard"},"documentLangNotIdentified":{"type":"selector","testability":1,"title":{"en":"The document must have a \"lang\" attribute","nl":"Het document moet een \"lang\"-attribuut hebben"},"description":{"en":"The document should have a default langauge, by setting the \"lang\" attribute in the <code>html</code> element.","nl":"Het document moet een standaardtaal hebben, vastgelegd in het \"lang\"-attribuut in het <code>html</code>-element."},"guidelines":[],"tags":["document","language"],"options":{"selector":"html:not(html[lang])"}},"documentMetaNotUsedWithTimeout":{"type":"selector","testability":1,"title":{"en":"Meta elements must not be used to refresh the content of a page","nl":"Meta-elementen mogen niet worden gebruikt om content op een pagina te verversen"},"description":{"en":"Because different users have different speeds and abilities when it comes to parsing the content of a page, a \"meta-refresh\" method to reload the content of the page can prevent users from having full access to the content. Try to use a \"refresh this\" link instead.","nl":"Omdat verschillende gebruikers verschillende snelheden en vaardigheden hebben met het scannen van content op een pagina, kan een \"meta-refresh\"-methode om de pagina te herladen gebruikers hinderen in toegang tot de content. Gebruik een \"refresh this\" link hiervoor."},"guidelines":{"wcag":{"2.2.1":{"techniques":["F40","F41"]},"2.2.4":{"techniques":["F40","F41"]},"3.2.5":{"techniques":["F41"]}}},"tags":["document"],"options":{"selector":"meta[http-equiv=refresh]"}},"documentReadingDirection":{"type":"selector","testability":0.5,"title":{"en":"Reading direction of text is correctly marked","nl":"De leesrichting van de tekst staat juist aangegeven"},"description":{"en":"Where required, the reading direction of the document (for language that read in different directions), or portions of the text, must be declared.","nl":"Voor talen die een andere leesrichting hebben, moet de leesrichting van (een deel van) de tekst in een document worden opgenomen."},"guidelines":{"wcag":{"1.3.2":{"techniques":["H34"]}}},"tags":["document","language"],"options":{"selector":"*[lang=he]:not(*[dir=rtl]), *[lang=ar]:not(*[dir=rtl])"}},"documentStrictDocType":{"type":"custom","testability":1,"title":{"en":"The page uses a strict doctype","nl":"De pagina gebruikt een strikt doctype"},"description":{"en":"The doctype of the page or document should be either an HTML or XHTML strict doctype.","nl":"Het doctype van een pagina of document moet een HTML of XHTML strikt doctype zijn."},"guidelines":[],"tags":["document","doctype"],"callback":"documentStrictDocType"},"documentTitleDescribesDocument":{"type":"selector","testability":0,"title":{"en":"The title describes the document","nl":"De titel beschrijft het document"},"description":{"en":"The document title should actually describe the page. Often, screen readers use the title to navigate from one window to another.","nl":"De documenttitel moet een beschrijving zijn van de pagina. Schermlezen gebruiken de titels van pagina's om van het ene naar het andere scherm te navigeren."},"guidelines":{"wcag":{"2.4.2":{"techniques":["F25","G88"]}}},"tags":["document","head"],"options":{"selector":"head title:first"}},"documentTitleIsNotPlaceholder":{"type":"placeholder","testability":1,"title":{"en":"The document title should not be placeholder text","nl":"De documenttitle moet geen placeholder tekst zijn"},"description":{"en":"The document title should not be wasted placeholder text which does not describe the page.","nl":"De documenttitel moet geen placeholder tekst zijn die geen goede beschrijving van de pagina is."},"guidelines":{"wcag":{"2.4.2":{"techniques":["F25","G88"]}}},"tags":["document","head"],"components":["placeholder"],"options":{"content":true,"selector":"head title:first"}},"documentTitleIsShort":{"type":"custom","testability":0.5,"title":{"en":"The document title should be short","nl":"De documenttitel moet kort zijn"},"description":{"en":"The document title should be short and succinct. This test fails at 150 characters, but authors should consider this to be a suggestion.","nl":"De documenttitel moet kort en beknopt zijn. Probeer bij een titel langer dan 150 tekense de titel in te korten waar mogelijk."},"guidelines":[],"tags":["document","head"],"callback":"documentTitleIsShort"},"documentTitleNotEmpty":{"type":"placeholder","testability":1,"title":{"en":"The document should not have an empty title","nl":"Het document mag geen lege titel hebben"},"description":{"en":"The document should have a title element that is not white space.","nl":"Het document moet een titelelement hebben dat is ingevuld."},"guidelines":{"wcag":{"2.4.2":{"techniques":["F25","H25"]}}},"tags":["document","head"],"components":["placeholder"],"options":{"content":true,"empty":true,"selector":"head title"}},"documentValidatesToDocType":{"type":"custom","testability":1,"title":{"en":"Document must validate to the doctype","nl":"Het document moet valideren met het doctype"},"description":{"en":"The document must validate to the declared doctype.","nl":"Het document moet valideren met het vastgestelde doctype."},"guidelines":{"wcag":{"4.1.1":{"techniques":["G134"]}}},"tags":["document","doctype"],"callback":"documentValidatesToDocType"},"documentVisualListsAreMarkedUp":{"type":"custom","testability":1,"title":{"en":"Lists of items should be marked using list markup","nl":"Lijsten moeten gemarkeerd worden als ordered of unordered lists"},"description":{"en":"Use the ordered or unordered (bulleted) list elements to mark lists instead of using new lines that start with numbers or other characters to create a visual list.","nl":"Gebruik ordered (<code>ol</code>) of unordered (<code>ul</code>) elementen voor lijsten, in plaats van een nieuwe regel per item aan te maken die je laat beginnen met een nummer of teken om een visuele lijst te maken."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H28","H48","T2"]}}},"tags":["list","semantics","content"],"strings":["symbols"],"callback":"documentVisualListsAreMarkedUp"},"domOrderMatchesVisualOrder":{"type":"selector","testability":0.5,"title":{"en":"Ensure that the visual order of the page matches the DOM","nl":"Zorg ervoor dat de visuele ordening van de pagina overeenkomt met de DOM"},"description":{"en":"When using positioning techniques, make sure that the visual order of the page matches the DOM.","nl":"Wanneer je gebruik maakt van positioneringstechnieken, zorg er dan voor dat de visuele ordening van de pagina overeenkomt met de DOM."},"guidelines":{"wcag":{"1.3.2":{"techniques":["C27"]},"2.4.3":{"techniques":["C27"]}}},"tags":["content"],"options":{"selector":"*:quailCss(position=absolute), *:quailCss(position=fixed), *:quailCss(float=right), *:quailCss(float=left)"}},"elementAttributesAreValid":{"type":"custom","testability":1,"title":{"en":"Attributes should have spaces between them and be wrapped in quotes","nl":"Attributen moeten gescheiden zijn door spaties en ze moeten tussen aanhalingstekens"},"description":{"en":"Attributes should have spaces between them and be wrapped in quotes.","nl":"Tussen attributen moeten spaties staan en ze moeten tussen aanhalingstekens staan."},"guidelines":{"4.1.1":{"techniques":["F70"]}},"callback":"elementAttributesAreValid"},"embedHasAssociatedNoEmbed":{"type":"custom","testability":1,"title":{"en":"All \"embed\" elements have an associated \"noembed\" element","nl":"Alle \"embed\" elementen moeten een bijbehorend \"noembed\"-element hebben"},"description":{"en":"Because some users cannot use the <code>embed</code> element, provide alternative content in a <code>noembed</code> element.","nl":"Sommige gebruikers kunnen het <code>embed</code>-element niet gebruiken. Biedt hiervoor alternatieve content aan in een <code>noembed</code>-element."},"guidelines":[],"tags":["object","embed","content"],"callback":"embedHasAssociatedNoEmbed"},"elementsDoNotHaveDuplicateAttributes":{"type":"custom","testability":1,"title":{"en":"Elements should not have duplicate attributes","nl":"Elementen mogen geen dubbele attributen hebben"},"description":{"en":"Elements should only have one type of any attribute. For example, there should not be two 'class' attributes.","nl":"Elementen mogen maar een type attribuut hebben. Er mogen bijvoorbeeld niet twee 'class'-attributen zijn."},"guidelines":[],"tags":["content"],"components":["htmlSource"],"libraries":["node-htmlparser/lib/htmlparser.js"],"callback":"elementsDoNotHaveDuplicateAttributes"},"embedMustHaveAltAttribute":{"type":"selector","testability":1,"title":{"en":"\"Embed\" elements must have an \"alt\" attribute","nl":"\"Embed\"-elementen moeten een \"alt\"-attribuut hebben"},"description":{"en":"All <code>embed</code> elements must have an \"alt\" attribute.","nl":"Alle <code>embed</code>-elementen moeten een \"alt\"-attribuut hebben."},"guidelines":[],"tags":["object","embed","content"],"options":{"selector":"embed:not([alt])"}},"embedMustNotHaveEmptyAlt":{"type":"selector","testability":1,"title":{"en":"\"Embed\" elements cannot have an empty \"alt\" attribute","nl":"\"Embed\"-elementen mogen geen leeg \"alt\"-attribuut hebben"},"description":{"en":"All <code>embed</code> elements must have an \"alt\" attribute that is not empty.","nl":"Alle <code>embed</code>-elementen moeten een gevuld \"alt\"-attribuut hebben."},"guidelines":[],"tags":["object","embed","content"],"options":{"selector":"embed[alt=]"}},"embedProvidesMechanismToReturnToParent":{"type":"selector","testability":0,"title":{"en":"All embed elements should provide a way for keyboard users to escape","nl":"Alle embed-elementen moeten een manier bieden voor toetsenbordgebruikers om het element te verlaten"},"description":{"en":"Ensure that a user who has only a keyboard as an input device can escape an <code>embed</code> element. This requires manual confirmation.","nl":"Zorg ervoor dat een gebruiker die alleen het toetsenbord gebruikt voor bediening een <code>embed</code>-element kan verlaten. Hiervoor is handmatige bevestiging nodig."},"guidelines":{"wcag":{"2.1.2":{"techniques":["G21"]}}},"tags":["object","embed","content"],"options":{"selector":"embed"}},"emoticonsExcessiveUse":{"type":"custom","testability":0.5,"title":{"en":"Emoticons should not be used excessively","nl":"Gebruik emoticons spaarzaam"},"description":{"en":"Emoticons should not be used excessively to communicate feelings or content. Try to rewrite the document to have more textual meaning, or wrapping the emoticons in an <code>abbr</code> element as outlined below. Emoticons are not read by screen-readers, and are often used to communicate feelings or other things which are relevant to the content of the document.","nl":"Gebruik emoticons spaarzaam om gevoel of content over te brengen. Probeer het document te herschrijven in tekst, of geef de emoticons een <code>abbr</code>-element. Emoticons worden niet voorgelezen door schermlezers, maar bevatten wel vaak informatie die relevant is voor de content van het document."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H86"]}}},"tags":["language","emoticons","content"],"callback":"emoticonsExcessiveUse"},"emoticonsMissingAbbr":{"type":"custom","testability":1,"title":{"en":"Emoticons should have abbreviations","nl":"Emoticons moeten afkortingen hebben"},"description":{"en":"Emoticons are not read by screen-readers, and are often used to communicate feelings or other things which are relevant to the content of the document. If this emoticon is important content, mark it up with an \"abbr\" or \"acronym\" tag.","nl":"Emoticons worden niet voorgelezen door schermlezers, maar bevatten wel vaak informatie die relevant is voor de content van het document. Als een emoticon belangrijke content is, gebruik dan een \"abbr\" or \"acronym\" tag om het te markeren."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H86"]}}},"tags":["language","emoticons","content"],"callback":"emoticonsMissingAbbr"},"fieldsetHasLabel":{"type":"selector","testability":1,"title":{"en":"Fieldsets require a label element","nl":"Fieldsets behoeven een label-element"},"description":{"en":"Fieldsets used to group similar form elements like checkboxes should have a label that describes the group of elements.","nl":"Fieldsets die een groep gelijkwaardige elementen bevatten moeten een label hebben die deze groep elementen beschrijft."},"guidelines":{"wcag":{"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"4.1.2":{"techniques":["H91"]}}},"tags":["form","content"],"options":{"selector":"fieldset:not(fieldset:has(legend))"}},"fileHasLabel":{"type":"label","testability":1,"title":{"en":"All \"file\" input elements have a corresponding label","nl":"Alle \"file\"-invoerelementen hebben een bijbehorend label"},"description":{"en":"All <code>input</code> elements of type \"file\" should have a corresponding <code>label</code> element. Screen readers often enter a \"form mode\" where only label text is read aloud to the user.","nl":"Alle <code>input</code>-elementen van het type \"file\" moeten een bijbehorend <code>label</code>-element hebben. Schermlezers maken vaak gebruik van een \"formuliereninstelling\" waarbij alleen de tekst van de labels hardop aan de gebruiker wordt voorgelezen."},"guidelines":{"508":["n"],"wcag":{"1.1.1":{"techniques":["H44"]},"1.3.1":{"techniques":["H44","F68"]},"3.3.2":{"techniques":["H44"]},"4.1.2":{"techniques":["H44"]}}},"tags":["form","content"],"components":["label"],"options":{"selector":"input[type=file]"}},"fileLabelIsNearby":{"type":"labelProximity","testability":0.5,"title":{"en":"All \"file\" input elements have a label that is close","nl":"Van alle \"file\"-invoerelementen staat het label in de buurt"},"description":{"en":"All input elements of type \"file\" must have a corresponding label that is close to the form element. Users of screen magnification or with reduced spatial skills are hampered in using a form element if the label for that element is located far away.","nl":"Alle inputelementen van het type \"file\" moeten een bijbehorend label hebben dat dicht bij het formulierelement staat. Gebruikers die het scherm vergroten of met beperkte ruimtelijke vaardigheden kunnen een formulier niet gebruiken als het label van een veld te ver weg staat."},"guidelines":[],"tags":["form","content"],"components":["labelProximity"],"options":{"selector":"input[type=file]"}},"focusIndicatorVisible":{"type":"custom","title":{"en":"Focus indicators have high visibility","nl":"Focus indicators moeten goed zichtbaar zijn"},"description":{"en":"When a focus indicator is used, it should have enough contrast with the background and big enough to be highly visible.","nl":"Wanneer je een focus indicator gebruikt, moet het contrast tussen de indicator en de achtergrond groot genoeg zijn in verband met de zichtbaarheid."},"guidelines":{"wcag":{"2.4.7":{"techniques":["C15","G165","G195"]}}},"tags":["focus","content"],"components":["color","convertToPx"],"callback":"focusIndicatorVisible"},"fontIsNotUsed":{"type":"selector","testability":1,"title":{"en":"Font elements should not be used","nl":"Het font element moet niet worden gebruikt"},"description":{"en":"The <code>basefont</code> tag is deprecated and should not be used. Investigate using stylesheets instead.","nl":"De <code>basefont</code>-tag is afgekeurd en moet niet worden gebruikt. Gebruik in plaats hiervan stylesheets."},"guidelines":[],"tags":["deprecated","content"],"options":{"selector":"font"}},"formAllowsCheckIfIrreversable":{"type":"selector","testability":0,"guidelines":[],"tags":["form","content"],"options":{"selector":"form"}},"formButtonsHaveValue":{"type":"selector","testability":1,"title":{"en":"Input elements for button, submit, or reset must have a value attribute","nl":"Invoerelementen voor knoppen, indienen of resetten moeten een waarde-attribuut hebben"},"description":{"en":"Any form element that is rendered as a button has to have a readable value attribute.","nl":"Elk invoerelement dat eruit ziet als een knop moet een leesbaar waarde-attribuut hebben."},"guidelines":{"wcag":{"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"4.1.2":{"techniques":["H91"]}}},"tags":["form","content"],"options":{"selector":"input[type=button], input[type=submit], input[type=reset]","test":":not([value])"}},"formDeleteIsReversable":{"type":"selector","testability":0,"title":{"en":"Deleting items using a form should be reversable","nl":"De verwijdering van een item in een formulier moet ongedaan gemaakt kunnen worden"},"description":{"en":"Check that, if a form has the option to delete an item, that the user has a chance to either reverse the delete process, or is asked for confirmation before the item is deleted. This is not something that can be checked through automated testing and requires manual confirmation.","nl":"Controleer of een gebruiker de verwijdering van een invoer in een formulier ongedaan kan maken wanneer het mogelijk is om een invoer te verwijderen. Dit kan niet met een automatische test en moet handmatig gecontroleerd en bevestigd worden."},"guidelines":[],"tags":["form","content"],"options":{"selector":"form"}},"formErrorMessageHelpsUser":{"type":"selector","testability":0,"title":{"en":"Forms offer the user a way to check the results of their form before performing an irrevocable action","nl":"Formulieren bieden gebruikers de gelegenheid om hun formulier te controleren voor ze een onomkeerbare actie uitvoeren"},"description":{"en":"If the form allows users to perform some irrevocable action, like ordreing a product, ensure that users have the ability to review the contents of the form they submitted first. This is not something that can be checked through automated testing and requires manual confirmation.","nl":"Als een formulier een gebruiker toestaat om een onomkeerbare actie uit te voeren, zoals het bestellen van een product, zorg er dan voor dat ze eerst het formulier kunnen controleren. Dit kan niet met een automatische test en moet handmatig gecontroleerd en bevestigd worden."},"guidelines":[],"tags":["form","content"],"options":{"selector":"form"}},"formHasGoodErrorMessage":{"type":"selector","testability":0,"title":{"en":"Form error messages should assist in solving errors","nl":"Foutmeldingen in formulieren moeten fouten helpen oplossen"},"description":{"en":"If the form has some required fields or other ways in which the user can commit an error, check that the reply is accessible. Use the words \"required\" or \"error\" within the <code>label</code> element of input items where the errors happened.","nl":"Als het formulier verplichte velden heeft of op andere manier verkeerd ingevuld kan worden, controleer dan of de bijbehorende foutmelding begrijpelijk is. Gebruik de woorden \"required\" of \"error\" in het <code>label</code>-element of in de invoeritems waar de fout is opgetredenitems where the errors happened."},"guidelines":[],"tags":["form","content"],"options":{"selector":"form"}},"formHasSubmitButton":{"type":"selector","testability":1,"title":{"en":"Form should have a submit button","nl":"Formulieren moeten een indienknop hebben"},"description":{"en":"Forms should have a button that allows the user to select when they want to submit the form.","nl":"Formulieren moeten een knop hebben waarmee de gebruiker kan bepalen wanneer zij een formulieren willen versturen."},"guidelines":{"wcag":{"3.2.2":{"techniques":["H32","G80"]}}},"tags":["form","content"],"options":{"selector":"form:not(form:has(input[type=image], input[type=submit], button[type=submit]))"}},"formWithRequiredLabel":{"type":"custom","testability":0,"title":{"en":"Input items which are required are marked as so in the label element","nl":"Invoervelden die verplicht zijn, zijn zo gemarkeerd in het label-element"},"description":{"en":"If a form element is required, it should be marked as so. This should not be a mere red asterisk, but instead either a 'required' image with alt text of \"required\" or the actual text \"required\". The indicator that an item is required should be included in the input element's <code>label</code> element.","nl":"Als een formulierveld verplicht is, moet het ook zichtbaar zijn. Doe dit niet alleen met een asterisk achter het veld, maar met bijvoorbeeld een afbeelding met als alttekst \"required\" of de tekst \"required\". De indicatie dat een veld verplicht is moet opgenomen zijn in het <code>label</code>-element van het invoerveld."},"guidelines":{"wcag":{"1.3.1":{"techniques":["ARIA2"]},"1.4.1":{"techniques":["F81"]},"3.3.2":{"techniques":["ARIA2","H90"]},"3.3.3":{"techniques":["ARIA2"]}}},"tags":["form","content"],"callback":"formWithRequiredLabel"},"frameIsNotUsed":{"type":"selector","testability":1,"title":{"en":"Frames are not used","nl":"Gebruik geen frames"},"description":{"en":"Frames should not be used to organize a page.","nl":"Gebruik geen frames om een pagina te organiseren."},"guidelines":[],"tags":["deprecated","frame"],"options":{"selector":"frame"}},"frameRelationshipsMustBeDescribed":{"type":"selector","testability":0.5,"title":{"en":"Complex framesets should contain a \"longdesc\" attribute","nl":"Complexe framesets moeten een \"longdesc\"-attribuut bevatten"},"description":{"en":"If a <code>frameset</code> contains three or more frames, use a \"longdesc\" attribute to help describe the purpose of the frames.","nl":"Als een <code>frameset</code> drie of meer frames bevat, gebruik dan een \"longdesc\"-attribuut om het doel van de frames te beschrijven."},"guidelines":[],"tags":["deprecated","frame"],"options":{"selector":"frameset:not(frameset[longdesc])"}},"framesAreUsedToGroupContent":{"type":"selector","testability":0.5,"title":{"en":"Use frame elements to group repeated materials","nl":"Gebruik frame-elementen om herhaalde content te groeperen"},"description":{"en":"When blocks of repeated content are used on a site, use frames to group content that is the same across pages.","nl":"Wanneer blokken content op een site herhaald worden, gebruik dan frames om content die op verschillende pagina's voorkomt te groeperen."},"guidelines":{"wcag":{"2.4.1":{"techniques":["H70"]}}},"tags":["deprecated","frame"],"options":{"selector":"body:not(body:has(frameset))"}},"frameSrcIsAccessible":{"type":"selector","testability":0,"title":{"en":"The source for each frame is accessible content.","nl":"De bron van elk frame is toegankelijke content."},"description":{"en":"Each frame should contain accessible content, and contain content accessible to screen readers, like HTML as opposed to an image.","nl":"Elk frame moet toegankelijke content bevatten, en content die toegankelijk is voor schermlezers, zoals HTML in tegenstelling tot een afbeelding."},"guidelines":[],"tags":["deprecated","frame"],"options":{"selector":"frame"}},"frameTitlesDescribeFunction":{"type":"placeholder","testability":0,"title":{"en":"All \"frame\" elements should have a \"title\" attribute that describes the purpose of the frame","nl":"Alle \"frame\" elementen moeten een \"title\"-attribuut hebben dat het doel van het frame beschrijft"},"description":{"en":"Each <code>frame</code> elements should have a \"title\" attribute which describes the purpose or function of the frame.","nl":"Elk <code>frame</code>-element moet een \"title\"-attribuut hebben dat het doel of de functie van het frame beschrijft."},"guidelines":{"wcag":{"2.4.1":{"techniques":["H64"]}}},"tags":["deprecated","frame"],"components":["placeholder"],"options":{"attribute":"title","empty":true,"selector":"frame[title], iframe[title]"}},"frameTitlesNotEmpty":{"type":"selector","testability":1,"title":{"en":"Frames cannot have empty \"title\" attributes","nl":"Frames mogen geen leeg \"title\"-attribuut hebben"},"description":{"en":"All <code>frame</code> elements must have a valid \"title\" attribute.","nl":"Alle <code>frame</code>-elementen moeten een geldig \"title\"-attribuut hebben."},"guidelines":{"wcag":{"2.4.1":{"techniques":["H64"]},"4.1.2":{"techniques":["H64"]}}},"tags":["deprecated","frame"],"options":{"selector":"frame:not(frame[title]), frame[title=''], iframe:not(iframe[title]), iframe[title='']"}},"frameTitlesNotPlaceholder":{"type":"placeholder","testability":1,"title":{"en":"Frames cannot have \"title\" attributes that are just placeholder text","nl":"Frames mogen geen \"title\"-attribuut hebben met placeholdertekst"},"description":{"en":"Frame \"title\" attributes should not be simple placeholder text like \"frame\".","nl":"Frame \"title\"-attributen mogen geen placeholdertekst bevatten zoals \"frame\"."},"guidelines":{"wcag":{"2.4.1":{"techniques":["H64"]},"4.1.2":{"techniques":["H64"]}}},"tags":["deprecated","frame"],"components":["placeholder"],"options":{"attribute":"title","selector":"frame, iframe"}},"framesHaveATitle":{"type":"selector","testability":1,"title":{"en":"All \"frame\" elements should have a \"title\" attribute","nl":"Alle \"frame\"-elementen moeten een \"title\"-attribuut hebben"},"description":{"en":"Each <code>frame</code> elements should have a \"title\" attribute.","nl":"Elk <code>frame</code>-elementen moeten een \"title\"-attribuut hebben."},"guidelines":{"wcag":{"2.4.1":{"techniques":["H64"]},"4.1.2":{"techniques":["H64"]}}},"tags":["deprecated","frame"],"options":{"selector":"frame:visible, iframe:visible","test":":not([title])"}},"framesetIsNotUsed":{"type":"selector","testability":1,"title":{"en":"The \"frameset\" element should not be used","nl":"Het \"frameset\"-element wordt niet gebruikt"},"description":{"en":"Frames and framesets should not be used to organize content.","nl":"Frames en framesets moeten niet gebruikt worden om content te organiseren."},"guidelines":[],"tags":["deprecated","frame"],"options":{"selector":"frameset"}},"framesetMustHaveNoFramesSection":{"type":"selector","testability":0.5,"title":{"en":"All framesets should contain a noframes section","nl":"Alle framesets moeten een noframes-sectie bevatten"},"description":{"en":"If a <code>frameset</code> contains three or more frames, use a \"longdesc\" attribute to help describe the purpose of the frames.","nl":"Als een <code>frameset</code> drie of meer frames bevat, gebruik dan een \"longdesc\"-attribuut om het doel van de frames te beschrijven."},"guidelines":[],"tags":["deprecated","frame"],"options":{"selector":"frameset:not(frameset:has(noframes))"}},"headersAttrRefersToATableCell":{"type":"custom","testability":1,"title":{"en":"Table cell headers attrtibutes must within the same table have an associated data cell with the same id","nl":"Tabel cellen met een headers attribuut moeten binnen dezelfde tabel een overeenkomende data cel hebben in het id attribuut dezelfde waarde"},"description":{"en":"","nl":""},"guidelines":[],"tags":["headers","td","th"],"callback":"headersAttrRefersToATableCell"},"headerH1":{"type":"headingLevel","testability":0,"title":{"en":"Header level 1 can only be followed by level 2","nl":"De header die volgt op een h1 is niet h3 tot h6"},"description":{"en":"Header order should not skip a level. Do not follow a header level 1 with a level 3, 4, 5, or 6.","nl":"Headers mogen geen niveau overslaan. Laat een <code>h1</code>-header niet volgen door een <code>h3</code>, <code>h4</code>, <code>h5</code>, of <code>h6</code>."},"guidelines":{"wcag":{"2.4.6":{"techniques":["G130"]}}},"tags":["header","content"],"components":["headingLevel"],"options":{"headingLevel":1}},"headerH1Format":{"type":"selector","testability":0,"title":{"en":"All h1 elements are not used for formatting","nl":"H1-elementen worden niet gebruikt voor formatting"},"description":{"en":"An <code>h1</code> element may not be used purely for formatting.","nl":"Een <code>h1</code>-element mag niet alleen gebruikt worden voor formatting."},"guidelines":{"wcag":{"1.3.1":{"techniques":["T3"]}}},"tags":["header","content"],"components":["header"],"options":{"selector":"h1"}},"headerH2":{"type":"headingLevel","testability":0,"title":{"en":"Header level 2 can not be followed by levels from 4 to 6","nl":"De header volgend op een h2 is geen h4, h5, of h6"},"description":{"en":"Header order should not skip a level. Do not follow a header level 2 with a level 4, 5, or 6.","nl":"Headers mogen geen niveau overslaan. Laat een <code>h2</code>-header niet volgen door een <code>h4</code>, <code>h5</code>, of <code>h6</code>."},"guidelines":{"wcag":{"2.4.6":{"techniques":["G130"]}}},"tags":["header","content"],"components":["headingLevel"],"options":{"headingLevel":2}},"headerH2Format":{"type":"selector","testability":0,"title":{"en":"All h2 elements are not used for formatting","nl":"H2-elementen worden niet gebruikt voor formatting"},"description":{"en":"An <code>h2</code> element may not be used purely for formatting.","nl":"Een <code>h2</code>-element mag niet alleen gebruikt worden voor formatting."},"guidelines":{"wcag":{"1.3.1":{"techniques":["T3"]}}},"tags":["header","content"],"components":["header"],"options":{"selector":"h2"}},"headerH3":{"type":"headingLevel","testability":0,"title":{"en":"Header level 3 can not be followed by levels 5 and 6","nl":"De header volgend op een h3 is geen h5, of h6"},"description":{"en":"Header order should not skip a level. Do not follow a header level 3 with a level 5 or 6.","nl":"Headers mogen geen niveau overslaan. Laat een <code>h3</code>-header niet volgen door een <code>h5</code>, of <code>h6</code>."},"guidelines":{"wcag":{"2.4.6":{"techniques":["G130"]}}},"tags":["header","content"],"components":["headingLevel"],"options":{"headingLevel":3}},"headerH3Format":{"type":"selector","testability":0,"title":{"en":"All h3 elements are not used for formatting","nl":"H3-elementen worden niet gebruikt voor formatting"},"description":{"en":"An <code>h3</code> element may not be used purely for formatting.","nl":"Een <code>h3</code>-element mag niet alleen gebruikt worden voor formatting."},"guidelines":{"wcag":{"1.3.1":{"techniques":["T3"]}}},"tags":["header","content"],"components":["header"],"options":{"selector":"h3"}},"headerH4":{"type":"headingLevel","testability":0,"title":{"en":"Header level 4 can not be followed by level 6","nl":"De header volgend op een h4 is geen h6"},"description":{"en":"Header order should not skip a level. Do not follow a header level 4 with level 6 header.","nl":"Headers mogen geen niveau overslaan. Laat een <code>h4/code> header niet volgen door een <code>h6</code>."},"guidelines":{"wcag":{"2.4.6":{"techniques":["G130"]}}},"tags":["header","content"],"components":["headingLevel"],"options":{"headingLevel":4}},"headerH4Format":{"type":"selector","testability":0,"title":{"en":"All h4 elements are not used for formatting","nl":"H4-elementen worden niet gebruikt voor formatting"},"description":{"en":"An <code>h4</code> element may not be used purely for formatting.","nl":"Een <code>h4</code>-element mag niet alleen gebruikt worden voor formatting."},"guidelines":{"wcag":{"1.3.1":{"techniques":["T3"]}}},"tags":["header","content"],"components":["header"],"options":{"selector":"h4"}},"headerH5Format":{"type":"selector","testability":0,"title":{"en":"All h5 elements are not used for formatting","nl":"H5-elementen worden niet gebruikt voor formatting"},"description":{"en":"An <code>h5</code> element may not be used purely for formatting.","nl":"Een <code>h5</code>-element mag niet alleen gebruikt worden voor formatting."},"guidelines":{"wcag":{"1.3.1":{"techniques":["T3"]}}},"tags":["header","content"],"options":{"selector":"h5"}},"headerH6Format":{"type":"selector","testability":0,"title":{"en":"All h6 elements are not used for formatting","nl":"H6-elementen worden niet gebruikt voor formatting"},"description":{"en":"An <code>h6</code> element may not be used purely for formatting.","nl":"Een <code>h6</code>-element mag niet alleen gebruikt worden voor formatting."},"guidelines":{"wcag":{"1.3.1":{"techniques":["T3"]}}},"tags":["header","content"],"options":{"selector":"h6"}},"headerTextIsTooLong":{"type":"custom","testability":1,"title":{"en":"Header text is too long","nl":"-- missing translation --"},"description":{"en":"Headers should not contain too long text as they're designed to show document structure. Users will often skim document only by its headings.","nl":"-- missing translation --"},"guidelines":{"wcag":{"1.3.1":{"techniques":["H42"]}}},"tags":["content"],"callback":"headerTextIsTooLong"},"headersHaveText":{"type":"placeholder","testability":1,"title":{"en":"All headers should contain readable text","nl":"Alle headers moeten leesbare tekst bevatten"},"description":{"en":"Users with screen readers use headings (e.g. <code>h1</code> elements), just like the tabs to navigate the structure of a page. All headings should contain either text, or images with appropriate alternative text.","nl":"Gebruikers van schermlezers gebruiken headers om via de structuur van een pagina te navigeren. Alle headers moeten daarom tekst bevatten of afbeeldingen met toepasselijk <em>alt</em>-attributen."},"guidelines":{"wcag":{"1.3.1":{"techniques":["G141"]},"2.4.10":{"techniques":["G141"]}}},"tags":["header","content"],"components":["placeholder"],"options":{"content":true,"empty":true,"selector":"h1, h2, h3, h4, h5, h6"}},"headersUsedToIndicateMainContent":{"type":"custom","testability":0.5,"title":{"en":"Use header to indicate start of main content","nl":"Gebruik headers om de start van belangrijke content aan te geven"},"description":{"en":"For every main content area, indicate the beginning of the main content using a header.","nl":"Geef het begin van de belangrijkste content in elk contentvlak aan door middel van een header."},"guidelines":{"wcag":{"2.4.1":{"techniques":["H69"]}}},"tags":["header","content"],"callback":"headersUsedToIndicateMainContent"},"headersUseToMarkSections":{"type":"custom","testability":0.5,"title":{"en":"Use headers to mark the beginning of each section","nl":"Gebruik headers om de start van elke sectie aan te geven."},"description":{"en":"Check that each logical section of the page is broken or introduced with a header (h1-h6) element.","nl":"Controleer dat elke logische sectie van een pagina wordt onderbroken door of start met een header-element (h1-h6)."},"guidelines":{"wcag":{"1.3.1":{"techniques":["G141"]},"2.4.1":{"techniques":["G141","H69"]}}},"tags":["header","content"],"callback":"headersUseToMarkSections"},"idRefHasCorrespondingId":{"type":"custom","testability":1,"title":{"en":"Elements with an idref type attribute must correspond to an element with an ID","nl":"Elementen met een idref type attribuut moeten corresponderen met een element met een ID"},"description":{"en":"When using an idref type attribute, the target element with the ID must exist on the page.","nl":"Wanneer je een idref type attibuut gebruikt, moet het doelelement met dit ID ook bestaan op de pagina."},"guidelines":{"wcag":{"1.3.1":{"techniques":["F17"]},"4.1.1":{"techniques":["F17"]}}},"callback":"idRefHasCorrespondingId"},"idrefsHasCorrespondingId":{"type":"custom","testability":1,"title":{"en":"Elements with an idref attribute must correspond to an element with an ID","nl":"Elementen met een idref-attribuut moeten corresponderen met een element met een ID"},"description":{"en":"","nl":""},"guidelines":{"wcag":{"1.3.1":{"techniques":["F17"]},"4.1.1":{"techniques":["F17"]}}},"callback":"idrefsHasCorrespondingId"},"iIsNotUsed":{"type":"selector","testability":1,"title":{"en":"The \"i\" (italic) element is not used","nl":"Het \"i\"-element (cursief) wordt niet gebruikt"},"description":{"en":"The <code>i</code> (italic) element provides no emphasis for non-sighted readers. Use the <code>em</code> tag instead.","nl":"Het <code>i</code>-element biedt geen nadruk voor slechtziende en blinde lezers. Gebruik in plaats daarvan de <code>em</code>-tag."},"guidelines":[],"tags":["deprecated","content"],"options":{"selector":"i"}},"iframeMustNotHaveLongdesc":{"type":"selector","testability":1,"title":{"en":"Inline frames (\"iframes\") should not have a \"longdesc\" attribute","nl":"Inline frames (\"iframes\") krijgen geen \"longdesc\"-attribuut"},"description":{"en":"Inline frames (iframe) should not have a \"longdesc\" attribute.","nl":"Inline frames (\"iframes\") krijgen geen \"longdesc\"-attribuut."},"guidelines":[],"tags":["objects","iframe","content"],"options":{"selector":"iframe[longdesc]"}},"imageMapServerSide":{"type":"selector","testability":1,"title":{"en":"All links in a server-side map should have duplicate links available in the document","nl":"Alle links in een server-side map moeten elders in het document terugkeren"},"description":{"en":"Any image with an \"usemap\" attribute for a server-side image map should have the available links duplicated elsewhere.","nl":"Elke afbeelding met een \"usemap\"-attribuut voor een server-side map moet de beschikbare links ook elders hebben."},"guidelines":[],"tags":["objects","iframe","content"],"options":{"selector":"img[ismap]"}},"imgAltEmptyForDecorativeImages":{"type":"selector","testability":0,"title":{"en":"If an image is purely decorative, the \"alt\" text must be empty","nl":"Als een afbeelding alleen ter decoratie is, moet de \"alt\"-tekst leeg zijn"},"description":{"en":"Any image that is only decorative (serves no function or adds to the purpose of the page content) should have an empty \"alt\" attribute.","nl":"Elke afbeelding die alleen ter decoratie is (en die dus geen functie heeft of bijdraagt aan het doel van een contentpagina) moet een leeg \"alt\"-attirbuut hebben."},"guidelines":{"wcag":{"1.3.3":{"techniques":["F26"]}}},"tags":["image","content"],"options":{"selector":"img[alt]"}},"imgAltIdentifiesLinkDestination":{"type":"selector","testability":0,"title":{"en":"Any image within a link must have \"alt\" text the describes the link destination","nl":"Elke afbeelding binnen een link moet een \"alt\"-tekst hebben die de bestemming van de link beschrijft"},"description":{"en":"Any image that is within a link should have an \"alt\" attribute which identifies the destination or purpose of the link.","nl":"Elke afbeelding binnen link moet een \"alt\"-tekst hebben die de bestemming of het doel van de link beschrijft."},"guidelines":[],"tags":["image","content"],"options":{"selector":"a img[alt]:first"}},"imgAltIsDifferent":{"type":"custom","testability":0.5,"title":{"en":"Image alternative text should not be the same as the file name","nl":"\"Alt\"-attributen van afbeeldingen moeten niet hetzelfde zijn als de bestandsnaam"},"description":{"en":"All images should have a meaningful alternative text. The file name is rarely meaningful and does not always reflect information presented by the image.","nl":"Alle <code>img</code>-elementen moeten een \"alt\"-attribuut hebben dat anders is dan de bestandsnaam van de afbeelding."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["H37"]}}},"tags":["image","content"],"callback":"imgAltIsDifferent"},"imgAltIsSameInText":{"type":"selector","testability":0,"title":{"en":"Check that any text within an image is also in the \"alt\" attribute","nl":"Controleer dat tekst in een afbeelding ook is opgenomen in het \"alt\"-attribuut"},"description":{"en":"If an image has text within it, that text should be repeated in the \"alt\" attribute","nl":"Als een afbeelding tekst bevat, moet deze tekst herhaald worden in het \"alt\"-attribuut."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["G74","H37"]}}},"tags":["image","content"],"options":{"selector":"img"}},"imgAltIsTooLong":{"type":"custom","testability":1,"title":{"en":"Image alternative text is too long","nl":"Altteksten voor een afbeelding zijn kort"},"description":{"en":"Image alternative text should be clear and concise. Alternative text longer than 100 characters should be reviewed to see if it can be shortened.","nl":"Alle \"alt\"-attributen voor <code>img</code>-elementen moeten duidelijk en bondig zijn. Verifieer \"alt\"-attributen langer dan 100 tekens en kort ze in waar mogelijk."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["H37"]}}},"tags":["image","content"],"callback":"imgAltIsTooLong"},"imgAltNotEmptyInAnchor":{"type":"custom","testability":1,"title":{"en":"An image within a link cannot have an empty alternative text if there is no other text within the link","nl":"Een afbeelding binnen een link mag geen leeg \"alt\"-attribuut hebben als er geen andere tekst is in de link"},"description":{"en":"Any image that is within a link that has no other text cannot have an empty or missing alternative text.","nl":"Elke afbeelding binnen een link (een <code>a</code>-element) die geen andere tekst heeft, mag geen leeg of ontbrekend \"alt\"-attribuut hebben."},"guidelines":{"508":["a"],"wcag":{"2.4.4":{"techniques":["H30"]}}},"tags":["image","content"],"callback":"imgAltNotEmptyInAnchor"},"imgAltNotPlaceHolder":{"type":"placeholder","testability":1,"title":{"en":"Images should not have a simple placeholder text as an \"alt\" attribute","nl":"Afbeeldingen mogen geen placeholdertkest als \"alt\"-attribuut hebben"},"description":{"en":"Any image that is not used decorativey or which is purely for layout purposes cannot have an \"alt\" attribute that consists solely of placeholders.","nl":"Elke afbeelding die niet ter decoratie is of die alleen voor lay-out doeleinden is bedoeld, mag geen \"alt\"-attribuut hebben met daarin placeholdertekst."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["F30","F39"]},"1.2.1":{"techniques":["F30"]}}},"tags":["image","content"],"components":["placeholder"],"options":{"attribute":"alt","selector":"img"}},"imgAltTextNotRedundant":{"type":"custom","testability":1,"title":{"en":"Unless the image files are the same, no image should contain redundant alt text","nl":"Tenzij afbeeldingen hetzelfde zijn, mag geen enkele afbeelding dezelfde alttekst hebben"},"description":{"en":"Every distinct image on a page should have it's own alt text which is different than all the others on the page to avoid redundancy and confusion.","nl":"Elke unieke afbeelding op een pagina moet zijn eigen alttekst hebben die anders is dan die van andere afbeeldingen op de pagina om dubbeling en verwarring te voorkomen."},"guidelines":[],"tags":["image","content"],"callback":"imgAltTextNotRedundant"},"imgGifNoFlicker":{"type":"custom","testability":1,"title":{"en":"Any animated GIF should not flicker","nl":"Geen enkele animated GIF mag knipperen of flitsen"},"description":{"en":"Animated GIF files should not flicker with a frequency over 2 Hz and lower than 55 Hz. You can check the flicker rate of this GIF <a href=\"http://tools.webaccessibile.org/test/check.aspx\">using an online tool</a>.","nl":"Animated GIF-bestanden mogen niet knipperen of flitsen met een frequentie hoger dan 2 Hz en lager dan 55 Hz. Controleer de frequentie van deze GIF met een <a href=\"http://tools.webaccessibile.org/test/check.aspx\">online tool</a>."},"guidelines":{"508":["j"],"wcag":{"2.2.2":{"techniques":["G152"]}}},"tags":["image","content"],"callback":"imgGifNoFlicker"},"imgHasAlt":{"type":"selector","testability":1,"title":{"en":"Images must provide alternative text","nl":"Afbeeldingselementen moeten een \"alt\"-attribuut hebben"},"description":{"en":"Alternative text needs to convey the same information as the image. This text will be used when the browser has disabled images, the image was not found on the server, or by non-sighted visitors who use screen readers.","nl":"Alle <code>img</code>-elementen moeten een \"alt\"-attribuut hebben."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["F65","H37"]}}},"tags":["image","content"],"options":{"selector":"img:not(img[alt])"}},"imgHasLongDesc":{"type":"custom","testability":1,"title":{"en":"A \"longdesc\" attribute is required for any image where additional information not in the \"alt\" attribute is required","nl":"Een \"longdesc\"-attribuut is verplicht voor elke afbeelding waar aanvullende informatie niet benodigd is in het \"alt\"-attribuut"},"description":{"en":"Any image that has an \"alt\" attribute that does not fully convey the meaning of the image must have a \"longdesc\" attribute.","nl":"Elke afbeelding die een \"alt\"-attribuut heeft dat de volledige betekenis van de afbeelding bevat, moet een \"longdesc\"-attribuut hebben."},"guidelines":{"wcag":{"2.4.4":{"techniques":["G91"]},"2.4.9":{"techniques":["G91"]}}},"tags":["image","content"],"callback":"imgHasLongDesc"},"imgImportantNoSpacerAlt":{"type":"custom","testability":0.5,"title":{"en":"Images that are important should not have a purely white-space \"alt\" attribute","nl":"Afbeeldingen die belangrijk zijn mogen geen leeg \"alt\"-attribuut hebben"},"description":{"en":"Any image that is not used decorativey or which is purely for layout purposes cannot have an \"alt\" attribute that consists solely of white space (i.e. a space).","nl":"Elke afbeelding die niet ter decoratie is of die alleen voor lay-out doeleinden is bedoeld, mag geen leeg \"alt\"-attribuut hebben (bijvoorbeeld alleen een spatie)."},"guidelines":[],"tags":["image","content"],"callback":"imgImportantNoSpacerAlt"},"imgMapAreasHaveDuplicateLink":{"type":"custom","testability":1,"title":{"en":"All links within a client-side image are duplicated elsewhere in the document","nl":"Alle links met een client-side afbeelding moeten elders in het document terugkeren"},"description":{"en":"Any image that has a \"usemap\" attribute must have links replicated somewhere else in the document.","nl":"Elke afbeelding met een \"usemap\"-attribuut moet een link elders in het document hebben."},"guidelines":{"508":["ef","ef"]},"tags":["image","imagemap"],"callback":"imgMapAreasHaveDuplicateLink"},"imgNonDecorativeHasAlt":{"type":"custom","testability":0.5,"title":{"en":"Any non-decorative images should have a non-empty \"alt\" attribute","nl":"Elke niet-decoratieve afbeelding moet een gevuld \"alt\"-attribuut hebben"},"description":{"en":"Any image that is not used decorativey or which is purely for layout purposes cannot have an empty \"alt\" attribute.","nl":"Elke afbeelding die niet ter decoratie is of voor lay-out doeleinden wordt gebruikt, moet een gevuld \"alt\"-attribuut hebben."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["F38"]}}},"tags":["image","content"],"callback":"imgNonDecorativeHasAlt"},"imgNotReferredToByColorAlone":{"type":"selector","testability":0,"title":{"en":"For any image, the \"alt\" text cannot refer to color alone","nl":"Voor elke afbeelding geldt dat de \"alt\"-tekst niet alleen aan kleur mag refereren"},"description":{"en":"The \"alt\" text or content text for any image should not refer to the image by color alone. This is often fixed by changing the \"alt\" text to the meaning of the image","nl":"De \"alt\"-tekst of content voor elke afbeelding mag niet alleen maar een kleur bevatten. Neem in de \"alt\"-tekst de betekenis van de afbeelding op."},"guidelines":{"508":["c"],"wcag":{"1.1.1":{"techniques":["F13"]},"1.4.1":{"techniques":["F13"]}}},"tags":["image","color","content"],"options":{"selector":"img"}},"imgServerSideMapNotUsed":{"type":"selector","testability":1,"title":{"en":"Server-side image maps should not be used","nl":"Server-side image maps moeten niet worden gebruikt"},"description":{"en":"Server-side image maps should not be used.","nl":"Server-side image maps mogen niet worden gebruikt."},"guidelines":[],"tags":["image","imagemap","content"],"options":{"selector":"img[ismap]"}},"imgShouldNotHaveTitle":{"type":"selector","testability":1,"title":{"en":"Images should not have a \"title\" attribute","nl":"Afbeeldingen moeten geen \"title\"-attribuut hebben"},"description":{"en":"Images should not contain a \"title\" attribute.","nl":"Afbeeldingen zouden geen \"title\"-attribuut moeten bevatten."},"guidelines":[],"tags":["image","content"],"options":{"selector":"img[title]"}},"imgWithEmptyAlt":{"type":"selector","testability":0,"title":{"en":"Use empty alternative text only for decorative images","nl":""},"description":{"en":"Empty alternative text can only be used if the image serves purely decoration purposes. If the image is supposed to convey any information whatsoever, you need to set a proper alternative text for it.","nl":""},"guidelines":[],"tags":["image","content"],"options":{"selector":"img[alt=\"\"]"}},"imgWithMapHasUseMap":{"type":"selector","testability":1,"title":{"en":"Any image with an \"ismap\" attribute have a valid \"usemap\" attribute","nl":"Elke afbeelding met een \"ismap\"-attribuut heeft een geldig \"usemap\"-attribuut"},"description":{"en":"If an image has an \"ismap\" attribute it must have a valid \"usemap\" attribute.","nl":"Als een afbeelding een \"ismap\"-attribuut heeft, moet het ook een geldig \"usemap\"-attribuut hebben"},"guidelines":{"508":["ef","ef"]},"tags":["image","imagemap","content"],"options":{"selector":"img[ismap]:not(img[usemap])"}},"imgWithMathShouldHaveMathEquivalent":{"type":"custom","testability":0,"title":{"en":"Images which contain math equations should provide equivalent MathML","nl":"Afbeeldingen met wiskundige vergelijking moeten een equivalent in MathML bieden"},"description":{"en":"Images which contain math equations should be accompanied or link to a document with the equivalent equation marked up with <a href=\"http://www.w3.org/Math/\">MathML</a>.","nl":"Afbeeldingen die wiskundige vergelijkingen bevatten moeten vergezeld zijn van of linken naar een document met daarin een equivalent van de vergelijking in <a href=\"http://www.w3.org/Math/\">MathML</a>."},"guidelines":[],"tags":["image","content"],"callback":"imgWithMathShouldHaveMathEquivalent"},"inputCheckboxHasTabIndex":{"type":"placeholder","testability":1,"title":{"en":"All \"checkbox\" input elements require a valid \"tabindex\" attribute","nl":"Alle \"checkbox\"-invoerelementen moeten een geldig \"tabindex\"-attribuut hebben"},"description":{"en":"All <code>input</code> elements of type \"checkbox\" should have a \"tabindex\" attribute to help navigate the form with a keyboard alone.","nl":"Alle invoerelementen van het type \"checkbox\" moeten \"tabindex\"-attribuut hebben dat ervoor zorgt dat je door een formulier kunt navigeren met het toetsenbord."},"guidelines":[],"tags":["form","content"],"components":["placeholder"],"options":{"attribute":"tabindex","empty":true,"selector":"input[type=checkbox]"}},"inputCheckboxRequiresFieldset":{"type":"custom","testability":1,"title":{"en":"Logical groups of check boxes should be grouped with a fieldset","nl":"Logische groepen van keuzevakjes moeten gegroepeerd zijn in een fieldset"},"description":{"en":"Related \"checkbox\" input fields should be grouped together using a <code>fieldset</code>.","nl":"Gerelateerde \"keuzevakjes\"-invoervelden moeten bij elkaar staan in een <code>fieldset</code>."},"guidelines":{"wcag":{"3.3.2":{"techniques":["H71"]}}},"tags":["form","content"],"callback":"inputCheckboxRequiresFieldset"},"inputDoesNotUseColorAlone":{"type":"selector","testability":0,"title":{"en":"An \"input\" element should not use color alone","nl":"Een invoerveld mag niet alleen maar kleur gebruiken"},"description":{"en":"All input elements should not refer to content by color alone.","nl":"Elk invoerveld moet naar content verwijzen door middel van meer dan alleen kleur."},"guidelines":{"508":["c"]},"tags":["form","color","content"],"options":{"selector":"input:not(input[type=hidden])"}},"inputElementsDontHaveAlt":{"type":"selector","testability":1,"title":{"en":"Input elements which are not images should not have an \"alt\" attribute","nl":"Invoervelden die geen afbeelding zijn, moeten geen \"alt\"-attribuut hebben"},"description":{"en":"Input elements which are not images should not have an \"alt\" attribute, because of inconsistencies in how user agents use the \"alt\" attribute.","nl":"Invoervelden die geen afbeelding zijn, moeten geen \"alt\"-attribuut hebben, omdat user agents het \"alt\"-attribuut niet consistent gebruiken."},"guidelines":[],"tags":["form","content"],"options":{"selector":"input[type!=image][alt]"}},"inputFileHasTabIndex":{"type":"placeholder","testability":1,"title":{"en":"All \"file\" input elements require a valid \"tabindex\" attribute","nl":"Alle \"document\"-invoerelementen moeten een geldig \"tabindex\"-attribuut hebben"},"description":{"en":"All <code>input</code> elements of type \"file\" should have a \"tabindex\" attribute to help navigate the form with a keyboard alone.","nl":"Alle <code>invoer</code>-elementen van het type \"file\" moeten een \"tabindex\"-attribuut hebben om navigatie van het formulier met het toetsenbord mogelijk te maken."},"guidelines":[],"tags":["form","tabindex"],"components":["placeholder"],"options":{"attribute":"tabindex","empty":true,"selector":"input[type=file]"}},"inputImageAltIdentifiesPurpose":{"type":"selector","testability":0,"title":{"en":"All \"input\" elements with a type of \"image\" must have an \"alt\" attribute that describes the function of the input","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben dat de functie van de invoer beschrijft"},"description":{"en":"All <code>input</code> elements with a type of \"image\" should have an \"alt\" attribute.","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H36"]}}},"tags":["form","content"],"options":{"selector":"input[type=image][alt]"}},"inputImageAltIsNotFileName":{"type":"custom","testability":1,"title":{"en":"All \"input\" elements with a type of \"image\" must have an \"alt\" attribute which is not the same as the filename","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben dat anders is dan de bestandsnaam"},"description":{"en":"All <code>input</code> elements with a type of \"image\" should have an \"alt\" attribute which is not the same as the filename.","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben dat anders is dan de bestandsnaam."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["H36"]}}},"tags":["form","image","content"],"callback":"inputImageAltIsNotFileName"},"inputImageAltIsNotPlaceholder":{"type":"placeholder","testability":1,"title":{"en":"All \"input\" elements with a type of \"image\" must have an \"alt\" attribute which is not placeholder text.","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben anders dan alleen placeholdertekst."},"description":{"en":"All \"input\" elements with a type of \"image\" must have an \"alt\" attribute which is not placeholder text.","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben anders dan alleen placeholdertekst."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["H36"]},"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"4.1.2":{"techniques":["H91"]}}},"tags":["form","image","content"],"components":["placeholder"],"options":{"attribute":"alt","selector":"input[type=image]"}},"inputImageAltIsShort":{"type":"custom","testability":1,"title":{"en":"All \"input\" elements with a type of \"image\" must have an \"alt\" attribute which is as short as possible","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben dat zo kort mogelijk is"},"description":{"en":"All \"input\" elements with a type of \"image\" must have an \"alt\" attribute which is as short as possible.","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben dat zo kort mogelijk is."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["H36"]}}},"tags":["form","image","content"],"callback":"inputImageAltIsShort"},"inputImageAltNotRedundant":{"type":"custom","testability":1,"title":{"en":"The \"alt\" text for input \"image\" submit buttons must not be filler text","nl":"De \"alt\"-tekst for \"image\"-knoppen moet anders zijn dan alleen placeholdertekst"},"description":{"en":"Every form image button should not simply use filler text like \"button\" or \"submit\" as the \"alt\" text.","nl":"Elke formulierknop die een afbeelding is, moet bruikbare tekst als \"alt\"-tekst hebben, anders dan \"knop\" of \"verstuur\"."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H36"]}}},"tags":["form","image","content"],"strings":["redundant.inputImage"],"callback":"inputImageAltNotRedundant"},"inputImageHasAlt":{"type":"selector","testability":1,"title":{"en":"All \"input\" elements with a type of \"image\" must have an \"alt\" attribute","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben"},"description":{"en":"All <code>input</code> elements with a type of \"image\" should have an \"alt\" attribute.","nl":"Elk \"invoer\"-element met een type \"afbeelding\" moet een \"alt\"-attribuut hebben."},"guidelines":{"508":["a"],"wcag":{"1.1.1":{"techniques":["F65","G94","H36"]},"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"4.1.2":{"techniques":["H91"]}}},"tags":["form","image","content"],"options":{"selector":"input[type=image]:visible","test":":not(input[type=image][alt])"}},"inputImageNotDecorative":{"type":"selector","testability":0,"title":{"en":"The \"alt\" text for input \"image\" buttons must be the same as text inside the image","nl":"De \"alt\"-tekst voor afbeeldingen van invoerknoppen moet hetzelfde zijn als de tekst in de afbeeldingen"},"description":{"en":"Every form image button which has text within the image (say, a picture of the word \"Search\" in a special font) must also have this text in the \"alt\" text.","nl":"Elke formulierknop die een afbeelding is en tekst in de afbeelding heeft (bijvoorbeeld \"Zoek\") moet deze tekst ook in de \"alt\"-tekst hebben."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H36"]}}},"tags":["form","image","content"],"options":{"selector":"input[type=image]"}},"inputPasswordHasTabIndex":{"type":"placeholder","testability":1,"title":{"en":"All \"password\" input elements require a valid \"tabindex\" attribute","nl":"Alle \"paswoord\"-invoervelden moeten een geldig \"tabindex\"-attribuut hebben"},"description":{"en":"All <code>input</code> elements of type \"password\" should have a \"tabindex\" attribute to help navigate the form with a keyboard alone.","nl":"Alle <code>input</code>-elementen van het type \"paswoord\" moeten een \"tabindex\"-attribuut hebben om navigatie met alleen het toetsenbord mogelijk te maken."},"guidelines":[],"tags":["form","content"],"components":["placeholder"],"options":{"attribute":"tabindex","empty":true,"selector":"input[type=password]"}},"inputRadioHasTabIndex":{"type":"placeholder","testability":1,"title":{"en":"All \"radio\" input elements require a valid \"tabindex\" attribute","nl":"Alle invoerelementen van het type \"radio\" moeten een geldig \"tabindex\"-attribuut hebben"},"description":{"en":"All <code>input</code> elements of type \"radio\" should have a \"tabindex\" attribute to help navigate the form with a keyboard alone.","nl":"Alle <code>input</code>-elementen van het type \"radio\" moeten een \"tabindex\"-attribuut hebben om navigatie met alleen het toetsenbord mogelijk te maken."},"guidelines":[],"tags":["form","content"],"components":["placeholder"],"options":{"attribute":"tabindex","empty":true,"selector":"input[type=radio]"}},"inputSubmitHasTabIndex":{"type":"placeholder","testability":1,"title":{"en":"All \"submit\" input elements require a \"tabindex\" attribute","nl":"Alle invoerelementen van het type \"submit\" moeten een geldig \"tabindex\"-attribuut hebben"},"description":{"en":"All <code>input</code> elements of type \"submit\" should have a \"tabindex\" attribute to help navigate the form with a keyboard alone.","nl":"Alle <code>input</code>-elementen van het type \"submit\" moeten een \"tabindex\"-attribuut hebben om navigatie met alleen het toetsenbord mogelijk te maken."},"guidelines":[],"tags":["form","content"],"components":["placeholder"],"options":{"attribute":"tabindex","empty":true,"selector":"input[type=submit]"}},"inputTextHasLabel":{"type":"label","testability":1,"title":{"en":"All \"input\" elements should have a corresponding \"label\"","nl":"Alle invoerelementen moeten een bijbehorend \"label\" hebben"},"description":{"en":"All <code>input</code> elements should have a corresponding <code>label</code> element. Screen readers often enter a \"form mode\" where only label text is read aloud to the user","nl":"Alle <code>input</code>-elementen moeten een bijbehorend <code>label</code>-element hebben. Schermlezers maken vaak gebruik van een \"formuliereninstelling\" waarbij alleen de tekst van de labels hardop aan de gebruiker wordt voorgelezen."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H44"]},"1.3.1":{"techniques":["H44","F68"]},"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"3.3.2":{"techniques":["H44"]},"4.1.2":{"techniques":["H44","H91"]}}},"tags":["form","content"],"options":{"selector":"input[type=text]"}},"inputTextHasTabIndex":{"type":"placeholder","testability":1,"title":{"en":"All \"text\" input elements require a valid \"tabindex\" attribute","nl":"Alle invoerelementen van het type \"text\" moeten een geldig \"tabindex\"-attribuut hebben"},"description":{"en":"All <code>input</code> elements of type \"text\" should have a \"tabindex\" attribute to help navigate the form with a keyboard alone.","nl":"Alle <code>input</code>-elementen van het type \"text\" moeten een \"tabindex\"-attribuut hebben om navigatie met alleen het toetsenbord mogelijk te maken."},"guidelines":[],"tags":["form","content"],"components":["placeholder"],"options":{"attribute":"tabindex","empty":true,"selector":"input[type=text]"}},"inputTextHasValue":{"type":"placeholder","testability":1,"title":{"en":"All \"input\" elements of type \"text\" must have a default text","nl":"Alle invoerelementen van het type \"text\" moeten een standaardtekst hebben"},"description":{"en":"All <code>input</code> elements of type \"text\" should have a default text.","nl":"Alle invoerelementen van het type \"text\" moeten een standaardtekst hebben."},"guidelines":[],"tags":["form","content"],"components":["placeholder"],"options":{"attribute":"value","empty":true,"selector":"input[type=text]"}},"inputTextValueNotEmpty":{"type":"placeholder","testability":1,"title":{"en":"Text input elements require a non-whitespace default text","nl":"Tekstinvoerelementen mogen geen lege standaardtekst hebben"},"description":{"en":"All <code>input</code> elements with a type of \"text\" should have a default text which is not empty.","nl":"Alle invoerelementen van het type \"text\" moeten een standaardtekst hebben die gevuld is."},"guidelines":[],"tags":["form","content"],"components":["placeholder"],"options":{"attribute":"value","empty":true,"selector":"input[type=text]"}},"inputWithoutLabelHasTitle":{"type":"custom","testability":1,"title":{"en":"Form controls without label should have a title attribute","nl":"Formulierelementen zonder label moeten een titelattribuut hebben"},"description":{"en":"If it is not possible to have a label for a form control, then a title attribute on the element should be provided that describes the purpose of the control.","nl":"Als een formulierelement geen label kan krijgen, dan moet een dat element een titelattribuut krijgen dat het doel van het element beschrijft."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H65"]},"1.3.1":{"techniques":["H65"]},"3.3.2":{"techniques":["H65"]},"4.1.2":{"techniques":["H65"]}}},"tags":["form","content"],"components":["placeholder"],"callback":"inputWithoutLabelHasTitle"},"labelDoesNotContainInput":{"type":"selector","testability":1,"title":{"en":"Label elements should not contain an input element","nl":"Labelelementen moeten geen invoerelementen bevatten"},"description":{"en":"Label elements should not wrap around another input element, as this can cause the label to be read twice by screen readers.","nl":"Labelelementen moeten niet om een ander invoerelement heenstaan, omdat dan het label twee keer kan worden voorgelezen door schermlezers."},"guidelines":[],"tags":["form","content"],"options":{"selector":"label:has(input)"}},"labelMustBeUnique":{"type":"custom","testability":1,"title":{"en":"Every form input must have only one label","nl":"Elk formulierinvoerveld heeft maar een label"},"description":{"en":"Each form input should have only one <code>label</code> element.","nl":"Elk formulierinvoerveld mag maar een <code>label</code> element hebben."},"guidelines":{"wcag":{"1.3.1":{"techniques":["F17"]},"4.1.1":{"techniques":["F17"]}}},"tags":["form","content"],"callback":"labelMustBeUnique"},"labelMustNotBeEmpty":{"type":"placeholder","testability":1,"title":{"en":"Labels must contain text","nl":"Labels moeten tekst bevatten"},"description":{"en":"Labels in forms must contain readable text that describes the target form element.","nl":"Labels in formulieren moeten leesbare tekst bevatten die het formulierelement beschrijven."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H44"]},"1.3.1":{"techniques":["H44","F68"]},"3.3.2":{"techniques":["H44"]},"4.1.2":{"techniques":["H44"]}}},"tags":["form","content"],"components":["placeholder"],"options":{"content":true,"empty":true,"selector":"label"}},"labelsAreAssignedToAnInput":{"type":"custom","testability":1,"title":{"en":"All labels should be associated with an input","nl":"Alle labels moeten horen bij een invoerveld"},"description":{"en":"All <code>label</code> elements should be assigned to an input item, and should have a <em>for</em> attribute which equals the <em>id</em> attribute of a form element.","nl":"Alle <code>label</code>-elementen moeten horen bij een invoerveld, en moeten een een <em>for</em>-attribuut hebben dat hetzelfde is als het <em>id</em>-attribuut van een formulierelement."},"guidelines":[],"tags":["form","content"],"callback":"labelsAreAssignedToAnInput"},"languageDirAttributeIsUsed":{"type":"custom","testability":0.5,"title":{"en":"Use the dir attribute when the language direction changes","nl":"Gebruik het dir-attribuut als de richting van de taal verandert"},"description":{"en":"When there are nested directional changes in text, use an inline element with a <code>dir</code> attribute to indicate direction.","nl":"Gebruik een inline element met een <code>dir</code>-attribuut om richting aan te geven wanneer er geneste richtingsveranderingen in de tekst zijn."},"guidelines":{"wcag":{"1.3.2":{"techniques":["H56"]}}},"tags":["language","content"],"callback":"languageDirAttributeIsUsed","components":["language"]},"languageChangesAreIdentified":{"type":"custom","testability":0.5,"title":{"en":"Use language attributes to indicate changes in language","nl":"Gebruik het taal-attribuut om aan te geven dat de taal verandert"},"description":{"en":"When the language of the document changes, make sure to wrap those changes in an element with the <code>lang</code> attribute.","nl":"Als de taal van het document verandert, zet deze veranderingen dan in een element met het <code>lang</code>-attribuut."},"guidelines":{"wcag":{"3.1.2":{"techniques":["H58"]}}},"tags":["language","content"],"callback":"languageChangesAreIdentified","components":["language"]},"languageDirectionPunctuation":{"type":"custom","testability":0.5,"title":{"en":"Place punctuation around language direction changes in the right order","nl":"Zet interpunctie bij richtingsveranderingen in taal in de juiste volgorde"},"description":{"en":"If punctuation is used around a change in language direction, ensure the punctuation appears in the correct place.","nl":"Als er interpunctie staat bij een richtingsverandering in de taal, zorg dat deze dan op de goede plek staat."},"guidelines":{"wcag":{"1.3.2":{"techniques":["G57"]}}},"tags":["language","content"],"callback":"languageDirectionPunctuation","components":["language"]},"languageUnicodeDirection":{"type":"custom","testability":1,"title":{"en":"Use the unicode language direction","nl":"Gebruik de unicode taalrichting"},"description":{"en":"When there are nested directional changes in language, use unicode RTL/LTR characters.","nl":"Gebruik de unicode RTL/LTR afkortingen als er geneste richtingsveranderingen in de taal zijn."},"guidelines":{"wcag":{"1.3.2":{"techniques":["H34"]}}},"tags":["language","content"],"callback":"languageUnicodeDirection","components":["language"]},"legendDescribesListOfChoices":{"type":"selector","testability":0,"title":{"en":"All \"legend\" elements must describe the group of choices","nl":"Alle \"legend\"-elementen moeten een groep keuzes beschrijven"},"description":{"en":"If a <code>legend</code> element is used in a fieldset, the <code>legend</code> content must describe the group of choices.","nl":"Als een <code>legend</code>-element wordt gebruikt in een fieldset, moet de <code>legend</code> content de groep keuzes beschrijven."},"guidelines":{"wcag":{"2.4.6":{"techniques":["G131"]}}},"tags":["form","content"],"options":{"selector":"legend"}},"legendTextNotEmpty":{"type":"selector","testability":1,"title":{"en":"Legend text must not contain just whitespace","nl":"Legend-tekst moet ingevuld zijn"},"description":{"en":"If a <code>legend</code> element is used in a fieldset, the <code>legend</code> should not contain empty text.","nl":"Als een <code>legend</code>-element wordt gebruikt in een fieldset, moet de <code>legend</code> ingevuld zijn."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H71"]},"2.4.6":{"techniques":["G131"]},"3.3.2":{"techniques":["H71"]}}},"tags":["form","content"],"options":{"selector":"legend:empty"}},"legendTextNotPlaceholder":{"type":"placeholder","testability":1,"title":{"en":"\"Legend\" text must not contain placeholder text","nl":"\"Legend\"-tekst moet geen placeholdertekst bevatten"},"description":{"en":"If a <code>legend</code> element is used in a fieldset, the <code>legend</code> should not contain useless placeholder text like \"form\" or \"field\".","nl":"Als een <code>legend</code>-element wordt gebruikt in een fieldset, moet de <code>legend</code> geen placeholdertekst bevatten zoals \"form\" of \"field\"."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H71"]},"2.1.1":{"techniques":["H91"]},"2.4.6":{"techniques":["G131"]},"3.3.2":{"techniques":["H71"]},"4.1.3":{"techniques":["H91"]}}},"tags":["form","content"],"components":["placeholder"],"options":{"content":true,"emtpy":true,"selector":"legend"}},"liDontUseImageForBullet":{"type":"selector","testability":0.5,"guidelines":[],"tags":["list","content"],"options":{"selector":"li:has(img)"}},"linkHasAUniqueContext":{"type":"custom","testability":1,"title":{"en":"Links should have a unique context","nl":"Links moeten een unieke context hebben"},"description":{"en":"","nl":""},"guidelines":[],"tags":["link","content"],"callback":"linkHasAUniqueContext"},"linkUsedForAlternateContent":{"type":"selector","testability":0,"title":{"en":"Use a \"link\" element for alternate content","nl":"Gebruik een \"link\"-element for andersoortige content"},"description":{"en":"Documents which contain things like videos, sound, or other forms of media that are not accessible, should provide a <code>link</code> element with a \"rel\" attribute of \"alternate\" in the document header.","nl":"Documenten die content zoals video's, geluid of andere niet-toegankelijke vormen van media bevatten, moeten een <code>link</code>-element met een \"rel\"-attribuut of \"alternate\" in de documentheaderlink aanbieden."},"guidelines":[],"tags":["document"],"options":{"selector":"html:not(html:has(link[rel=alternate])) body"}},"linkUsedToDescribeNavigation":{"type":"selector","testability":1,"title":{"en":"The document uses link elements to describe navigation if it is within a collection.","nl":"Het document gebruikt link-elementen om navigatie te beschrijven wanneer het binnen een collectie staat."},"description":{"en":"The link element can provide metadata about the position of an HTML page within a set of Web units or can assist in locating content with a set of Web units.","nl":"Het link-element kan metadata bevatten over de positie van een HTML-pagina binnen een swet web units, of kan behulpzaamn zijn bij het lokaliseren van content binnen web units."},"guidelines":[],"tags":["document"],"options":{"selector":"html:not(html:has(link[rel=index]))"}},"listNotUsedForFormatting":{"type":"custom","testability":0,"title":{"en":"Lists should not be used for formatting","nl":"Lijsten worden niet gebruikt voor opmaak"},"description":{"en":"Lists like <code>ul</code> and <code>ol</code> are to provide a structured list, and should not be used to format text. This test views any list with just one item as suspicious, but should be manually reviewed.","nl":"Lijsten zoals <code>ul</code> en <code>ol</code> zijn bedoeld om gestructureerde lijsten te maken. Ze moeten niet gebruikt worden om text op te maken. Controleer of deze lijst echt bedoeld is als lijst of om tekst op te maken."},"guidelines":{"wcag":{"1.3.2":{"techniques":["F1"]}}},"tags":["list","content"],"callback":"listNotUsedForFormatting"},"listOfLinksUseList":{"type":"custom","testability":1,"title":{"en":"A list of links separated by non-readable characters should be in an ul or ol","nl":"Een lijst van links die worden gescheiden door onleesbare tekens moeten in een bulleted of genummerde lijst staan"},"description":{"en":"A list of links without separation between them should be placed in an ol or ul element.","nl":"Een lijst van links die niet duidelijk gescheiden zijn moeten in een bulleted of genummerde lijst staan."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H48"]}}},"tags":["link","content"],"callback":"listOfLinksUseList"},"marqueeIsNotUsed":{"type":"selector","testability":1,"title":{"en":"The \"marquee\" tag should not be used","nl":"De \"marquee\"-tag wordt niet gebruikt"},"description":{"en":"The <code>marquee</code> element is difficult for users to read and is not a standard HTML element. Try to find another way to convey the importance of this text.","nl":"Het <code>marquee</code>-element is moeilijk te lezen voor gebruikers en is geen standaard HTML-element. Gebruik een andere manier om aan te duiden dat het belangrijke content is."},"guidelines":[],"tags":["deprecated","content"],"options":{"selector":"marquee"}},"menuNotUsedToFormatText":{"type":"selector","testability":0,"title":{"en":"Menu elements should not be used for formatting","nl":"Menu-elementen worden niet gebruikt voor opmaak"},"description":{"en":"Menu is a deprecated tag, but is still honored in a transitional DTD. Menu tags are to provide structure for a document and should not be used for formatting. If a menu tag is to be used, it should only contain an ordered or unordered list of links.","nl":"Menu is een afgekeurd tag, maar wordt nog wel gebruikt om structuur aan een document te geven. Het mag niet worden gebruikt voor opmaak. Als een menu-tag wordt gebruikt, mag het alleen bulleted of genummerde lijsten bevatten."},"guidelines":[],"tags":["list","content"],"options":{"selector":"menu:not(menu li:parent(menu))"}},"newWindowIsOpened":{"type":"custom","testability":1,"title":{"en":"A link should not open a new window","nl":"Een link opent geen nieuw scherm"},"description":{"en":"Avoid confusion that may be caused by the appearance of new windows that were not requested by the user.","nl":"Voorkom verwarring die veroorzaakt wordt door het openen van nieuwe schermen die de gebruiker niet verwacht."},"guidelines":{"wcag":{"2.0.0":{"techniques":["H83"]}}},"tags":["javascript","html"],"callback":"newWindowIsOpened"},"noembedHasEquivalentContent":{"type":"selector","testability":0,"title":{"en":"Noembed elements must be the same content as their \"embed\" element","nl":"Noembed-elementen moeten dezelfde content hebben als hun \"embed\"-element"},"description":{"en":"All <code>noembed</code> elements must contain or link to an accessible version of their <code>embed</code> counterparts.","nl":"Alle <code>noembed</code>-elementen moeten een toegankelijke versie van hun <code>embed</code>-tegenhangers bevatten of hier naar linken."},"guidelines":[],"tags":["objects","content"],"options":{"selector":"noembed"}},"noframesSectionMustHaveTextEquivalent":{"type":"selector","testability":0.5,"title":{"en":"All \"noframes\" elements should contain the text content from all frames","nl":"Alle \"noframes\"-elementen moeten de content van alle frames bevatten"},"description":{"en":"The <code>noframes</code> content should either replicate or link to the content visible within the frames.","nl":"The <code>noframes</code>-content moet de zichtbare content binnen de frames repliceren of er naar linken."},"guidelines":[],"tags":["deprecated","frame"],"options":{"selector":"frameset:not(frameset:has(noframes))"}},"objectContentUsableWhenDisabled":{"type":"selector","testability":0,"title":{"en":"When objects are disabled, content should still be available","nl":"Als objecten zijn uitgeschakeld, moet de content nog wel beschikbaar zijn"},"description":{"en":"The content within objects should still be available, even if the object is disabled. To do this, place a link to the direct object source within the <code>object</code> tag.","nl":"Content binnen objecten moet beschikbaar blijven, ook als het object is uitgeschakeld. Plaats hiervoor een link naar de bron van het object binnen de <code>object</code>-tag."},"guidelines":[],"tags":["objects","content"],"options":{"selector":"object"}},"objectDoesNotFlicker":{"type":"selector","testability":0,"title":{"en":"Objects do not flicker","nl":"Objecten knipperen of flitsen niet"},"description":{"en":"The content within an <code>object</code> tag must not flicker.","nl":"De content binnen een <code>object</code>-tag knippert of flitst niet."},"guidelines":{"508":["j"],"wcag":{"2.2.2":{"techniques":["F7"]}}},"tags":["objects","content"],"options":{"selector":"object"}},"objectDoesNotUseColorAlone":{"type":"selector","testability":0,"title":{"en":"Objects must not use color to communicate alone","nl":"Objecten gebruiken meer dan alleen kleur om hun boodschap over te brengen"},"description":{"en":"Objects should contain content that makes sense without color and is accessible to users who are color blind.","nl":"Objecten moeten content bevatten die duidelijk is zonder het kleurgebruik en toegankelijk is voor gebruikers met kleurenblindheid."},"guidelines":{"508":["c"]},"tags":["objects","content"],"options":{"selector":"object"}},"objectInterfaceIsAccessible":{"type":"selector","testability":0,"title":{"en":"Interfaces within objects must be accessible","nl":"Interfaces binnen objecten moeten toegankelijk zijn"},"description":{"en":"Object content should be assessed for accessibility.","nl":"Content binnen objecten moeten gecontroleerd worden op toegankelijkheid."},"guidelines":[],"tags":["objects","content"],"options":{"selector":"object"}},"objectLinkToMultimediaHasTextTranscript":{"type":"selector","testability":0,"title":{"en":"Objects which reference multimedia files should also provide a link to a transcript","nl":"Objecten die verwijzen naar multimediabestanden moeten ook een link aanbieden naar de transcriptie"},"description":{"en":"If an object contains a video, a link to the transcript should be provided near the object.","nl":"Als een object een video bevat, moet een link naar de transcriptie hiervan worden aangeboden bij het object."},"guidelines":[],"tags":["objects","content"],"options":{"selector":"object"}},"objectMustContainText":{"type":"placeholder","testability":1,"title":{"en":"Objects must contain their text equivalents","nl":"Objecten moeten hun tekstuele equivalent bevatten"},"description":{"en":"All <code>object</code> elements should contain a text equivalent if the object cannot be rendered.","nl":"Alle <code>object</code>-elementen moeten een tekstequivalent bevatten in het geval het object niet getoond kan worden."},"guidelines":{"wcag":{"1.1.1":{"techniques":["FLASH1","H27"]}}},"tags":["objects","content"],"components":["placeholder"],"options":{"content":true,"empty":true,"selector":"object"}},"objectMustHaveEmbed":{"type":"selector","testability":1,"title":{"en":"Every object should contain an \"embed\" element","nl":"Elk object moet een \"embed\"-element bevatten"},"description":{"en":"Every <code>object</code> element must also contain an <code>embed</code> element.","nl":"Elk <code>object</code>-element moet ook een \"embed\"-element bevatten."},"guidelines":[],"tags":["objects","content"],"options":{"selector":"object:not(object:has(embed))"}},"objectMustHaveTitle":{"type":"selector","testability":1,"title":{"en":"Objects should have a title attribute","nl":"Objecten moeten een titelattribuut hebben"},"description":{"en":"All <code>object</code> elements should contain a \"title\" attribute.","nl":"Alle <code>object</code>-elementen moeten een \"titel\"-attribuut bevatten."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H27"]}}},"tags":["objects","content"],"options":{"selector":"object:not(object[title])"}},"objectMustHaveValidTitle":{"type":"placeholder","testability":1,"title":{"en":"Objects must not have an empty title attribute","nl":"Objecten hebben geen leeg titelattribuut"},"description":{"en":"All <code>object</code> elements should have a \"title\" attribute which is not empty.","nl":"All <code>object</code>-elementen hebben een \"titel\"-attribuut dat gevuld is."},"guidelines":[],"tags":["objects","content"],"components":["placeholder"],"options":{"attribute":"title","empty":true,"selector":"object"}},"objectProvidesMechanismToReturnToParent":{"type":"selector","testability":0,"title":{"en":"All objects should provide a way for keyboard users to escape","nl":"Alle objecten moeten een manier bevatten voor toetsenbordgebruikers een manier om het object te verlaten"},"description":{"en":"Ensure that a user who has only a keyboard as an input device can escape a <code>object</code> element. This requires manual confirmation.","nl":"Zorg ervoor dat een gebruiker die alleen het toetsenbord als bediening gebruikt een <code>object</code>-element. Hiervoor is handmatige bevestiging nodig."},"guidelines":[],"tags":["objects","content"],"options":{"selector":"object"}},"objectShouldHaveLongDescription":{"type":"selector","testability":0,"title":{"en":"An object might require a long description","nl":"Een object heeft soms een lange beschrijving nodig"},"description":{"en":"Objects might require a long description, especially if their content is complicated.","nl":"Objecten hebben soms een lange beschrijving nodig, zeker in het geval van ingewikkelde content."},"guidelines":[],"tags":["objects","content"],"options":{"selector":"object"}},"objectTextUpdatesWhenObjectChanges":{"type":"selector","testability":0,"title":{"en":"The text equivalents of an object should update if the object changes","nl":"De tekstuele equivalent van een object moet bijgewerkt worden als het object verandert"},"description":{"en":"If an object changes, the text equivalent of that object should also change.","nl":"Als een object verandert, moet zijn tekstuele equivalent ook veranderen."},"guidelines":{"508":["a"]},"tags":["objects","content"],"options":{"selector":"object"}},"objectUIMustBeAccessible":{"type":"selector","testability":0,"title":{"en":"Content within an \"object\" element should be usable with objects disabled","nl":"Content binnen een \"object\"-element moet bruikbaar blijven als het object uitgeschakeld is"},"description":{"en":"Objects who's content changes using java, ActiveX, or other similar technologies, should have their default text change when the object's content changes.","nl":"Van objecten waarvan de content java, ActiveX of vergelijkbare technologie�n gebruiken, moet de standaardtekst veranderen als de content van het object verandert."},"guidelines":[],"tags":["objects","content"],"options":{"selector":"object"}},"objectWithClassIDHasNoText":{"type":"selector","testability":1,"title":{"en":"Objects with \"classid\" attributes should change their text if the content of the object changes","nl":"Objecten met \"classid\"-attributen moeten hun tekst veranderen wanneer de content van het object verandert"},"description":{"en":"Objects with \"classid\" attributes, should have their default text change when the object's content changes.","nl":"Van objecten met \"classid\"-attributen moet de standaardtekst veranderen als de content van het object verandert."},"guidelines":[],"tags":["objects","content"],"options":{"selector":"object[classid]:not(object[classid]:empty)"}},"pNotUsedAsHeader":{"type":"custom","testability":0.5,"title":{"en":"Paragraphs must not be used for headers","nl":"Alinea's worden niet gebruikt als header"},"description":{"en":"Headers are extremely useful for non-sighted users to navigate the structure of the page. Formatting a paragraph to just be big or bold, while it might visually look like a header, does not make it a header.","nl":"Headers van <code>h1</code> - <code>h6</code> zijn handig voor blinde en slechtziende gebruikers om door een pagina te navigeren. Maak alinea's daarom niet op zodat deze lijkt op een header. Dit werkt verwarrend."},"guidelines":{"wcag":{"1.3.1":{"techniques":["G141","H42"]},"2.4.10":{"techniques":["G141"]}}},"tags":["header","content"],"callback":"pNotUsedAsHeader"},"paragraphIsWrittenClearly":{"type":"custom","testability":0.5,"guidelines":{"wcag":{"3.1.5":{"techniques":["G86"]}}},"tags":["language","content"],"components":["textStatistics"],"callback":"paragraphIsWrittenClearly"},"passwordHasLabel":{"type":"label","testability":1,"title":{"en":"All password input elements should have a corresponding label","nl":"Alle paswoordinvoerelementen hebben een bijbehorend label"},"description":{"en":"All <code>input</code> elements with a type of \"password\"should have a corresponding <code>label</code> element. Screen readers often enter a \"form mode\" where only label text is read aloud to the user","nl":"Alle <code>input</code>-elementen van het type \"paswoord\" moeten een bijbehorend <code>label</code>-element hebben. Schermlezers maken vaak gebruik van een \"formuliereninstelling\" waarbij alleen de tekst van de labels hardop aan de gebruiker wordt voorgelezen."},"guidelines":{"508":["n"],"wcag":{"1.1.1":{"techniques":["H44"]},"1.3.1":{"techniques":["H44","F68"]},"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"3.3.2":{"techniques":["H44"]},"4.1.2":{"techniques":["H44","H91"]}}},"tags":["form","content"],"components":["label"],"options":{"selector":"input[type=password]"}},"passwordLabelIsNearby":{"type":"labelProximity","testability":0.5,"title":{"en":"All \"password\" input elements have a label that is close","nl":"Alle paswoordinvoerelementen hebben een label dat dicht bij het element staat"},"description":{"en":"All input elements of type \"password\" must have a corresponding label that is close to the form element. Users of screen magnification or with reduced spatial skills are hampered in using a form element if the label for that element is located far away.","nl":"Alle inputelementen van het type \"paswoord\" moeten een bijbehorend label hebben dat dicht bij het formulierelement staat. Gebruikers die het scherm vergroten of met beperkte ruimtelijke vaardigheden kunnen een formulier niet gebruiken als het label van een veld te ver weg staat."},"guidelines":[],"tags":["form","content"],"components":["labelProximity"],"options":{"selector":"input[type=password]"}},"preShouldNotBeUsedForTabularLayout":{"type":"custom","testability":0,"title":{"en":"Pre elements should not be used for tabular data","nl":"Pre-elementen worden niet gebruikt om data als tabel te rangschikken"},"description":{"en":"If a <code>pre</code> element is used for tabular data, change the data to use a well-formed table.","nl":"Als een <code>pre</code>-element wordt gebruikt om data als tabel te rangschikken, verander de data dan zodat je een echte tabel kunt maken."},"guidelines":{"wcag":{"1.3.1":{"techniques":["F33","F34","F48"]},"1.3.2":{"techniques":["F33","F34"]}}},"tags":["table","content"],"callback":"preShouldNotBeUsedForTabularLayout"},"radioHasLabel":{"type":"label","testability":1,"title":{"en":"All \"radio\" input elements have a corresponding label","nl":"Alle invoerelementen van het type \"radio\" hebben een bijbehorend label"},"description":{"en":"All <code>input</code> elements of type \"radio\" should have a corresponding <code>label</code> element. Screen readers often enter a \"form mode\" where only label text is read aloud to the user","nl":"Alle <code>input</code>-elementen van het \"radio\" moeten een bijbehorend <code>label</code>-element hebben. Schermlezers maken vaak gebruik van een \"formuliereninstelling\" waarbij alleen de tekst van de labels hardop aan de gebruiker wordt voorgelezen."},"guidelines":{"508":["n"],"wcag":{"1.1.1":{"techniques":["H44"]},"1.3.1":{"techniques":["H44","F68"]},"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"3.3.2":{"techniques":["H44"]},"4.1.2":{"techniques":["H44","H91"]}}},"tags":["form","content"],"components":["label"],"options":{"selector":"input[type=radio]"}},"radioLabelIsNearby":{"type":"labelProximity","testability":0.5,"title":{"en":"All \"radio\" input elements have a label that is close","nl":"Alle invoerelementen van het type \"radio\" hebben een label dat dicht bij het element staat"},"description":{"en":"All input elements of type \"radio\" must have a corresponding label that is close to the form element. Users of screen magnification or with reduced spatial skills are hampered in using a form element if the label for that element is located far away.","nl":"Alle inputelementen van het type \"radio\" moeten een bijbehorend label hebben dat dicht bij het formulierelement staat. Gebruikers die het scherm vergroten of met beperkte ruimtelijke vaardigheden kunnen een formulier niet gebruiken als het label van een veld te ver weg staat."},"guidelines":[],"tags":["form","content"],"components":["labelProximity"],"options":{"selector":"input[type=radio]"}},"radioMarkedWithFieldgroupAndLegend":{"type":"selector","testability":1,"title":{"en":"All radio button groups are marked using fieldset and legend elements","nl":"Alle groepjes van radio buttons zijn gemarkeerd met fieldset- en legend-elementen"},"description":{"en":"Form element content must contain both fieldset and legend elements if there are related radio buttons.","nl":"Content van formulierelementen moeten zowel fieldset- als legend-elementen bevatten als er gerelateerde radio buttons instaan."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H71"]},"3.3.2":{"techniques":["H71"]}}},"tags":["form","content"],"options":{"selector":"input[type=radio]:not(fieldset input[type=radio])"}},"scriptContentAccessibleWithScriptsTurnedOff":{"type":"selector","testability":0,"title":{"en":"Content on the page should still be available if scripts are disabled","nl":"Content op de pagina moet beschikbaar blijven als scripts zijn uitgeschakeld"},"description":{"en":"All scripts should be assessed to see if, when the user is browsing with scrips turned off, the page content is still available.","nl":"Alle scripts moeten gecontroleerd worden of, wanneer een gebruiker scripts heeft uitgezet, de content van de pagina nog steeds beschikbaar is."},"guidelines":[],"tags":["javascript"],"options":{"selector":"script"}},"scriptInBodyMustHaveNoscript":{"type":"selector","testability":0.5,"title":{"en":"Scripts should have a corresponding \"noscript\" element","nl":"Scripts moeten een bijbehorend \"noscript\"-element hebben"},"description":{"en":"Scripts should be followed by a <code>noscripts</code> element to guide the user to content in an alternative way.","nl":"Scripts moeten worden gevolgd door een <code>noscripts</code>-element om de gebruiker de weg te wijzen naar de content op een andere manier."},"guidelines":{"508":["l"]},"tags":["javascript"],"options":{"selector":"html:not(html:has(noscript)):has(script) body"}},"scriptOnclickRequiresOnKeypress":{"type":"event","testability":1,"title":{"en":"If an element has an \"onclick\" attribute it should also have an \"onkeypress\" attribute","nl":"Als een element een \"onclick\"-attribuut heeft, moet het ook een \"onkeypress\"-attribuut hebben"},"description":{"en":"If an element has an \"onclick\" attribute it should also have an \"onkeypress\" attribute","nl":"Als een element een \"onclick\"-attribuut heeft, moet het ook een \"onkeypress\"-attribuut hebben"},"guidelines":{"508":["l"],"wcag":{"2.1.1":{"techniques":["G90","SCR2","SCR20"]},"2.1.3":{"techniques":["G90","SCR20"]}}},"tags":["javascript"],"components":["event","hasEventListener"],"options":{"correspondingEvent":"onkeypress","searchEvent":"onclick"}},"scriptOndblclickRequiresOnKeypress":{"type":"event","testability":1,"title":{"en":"Any element with an \"ondblclick\" attribute should have a keyboard-related action as well","nl":"Elk element met een \"ondblclick\"-attribuut moet een vergelijkbare actie hebben die kan worden uitgevoerd met een toetsenbord"},"description":{"en":"If an element has an \"ondblclick\" attribute, it should also have a keyboard-related action.","nl":"Als een element een \"ondblclick\"-attribuut heeft, moet het ook een actie bevatten die kan worden uitgevoerd met een toetsenbord."},"guidelines":{"508":["l"],"wcag":{"2.1.1":{"techniques":["G90","SCR2","SCR20"]},"2.1.3":{"techniques":["G90","SCR20"]}}},"tags":["javascript"],"components":["event","hasEventListener"],"options":{"correspondingEvent":"onkeypress","searchEvent":"ondblclick"}},"scriptOnmousedownRequiresOnKeypress":{"type":"event","testability":1,"title":{"en":"If an element has a \"mousedown\" attribute it should also have an \"onkeydown\" attribute","nl":"Als een element een \"mousedown\"-attribuut heeft moet het ook een \"onkeydown\"-attribuut hebben"},"description":{"en":"If an element has a \"mousedown\" attribute it should also have an \"onkeydown\" attribute.","nl":"Als een element een \"mousedown\"-attribuut heeft moet het ook een \"onkeydown\"-attribuut hebben."},"guidelines":{"508":["l"],"wcag":{"2.1.1":{"techniques":["G90","SCR2","SCR20"]},"2.1.3":{"techniques":["G90","SCR20"]}}},"tags":["javascript"],"components":["event","hasEventListener"],"options":{"correspondingEvent":"onkeydown","searchEvent":"onmousedown"}},"scriptOnmousemove":{"type":"event","testability":1,"title":{"en":"Any element with an \"onmousemove\" attribute should have a keyboard-related action as well","nl":"Elk element met een \"onmousemove\"-attribuut moet een vergelijkbare actie hebben die kan worden uitgevoerd met een toetsenbord"},"description":{"en":"If an element has an \"onmousemove\" attribute it should have a keyboard-related action as well.","nl":"Als een element een \"onmousemove\"-attribuut heeft, moet het een vergelijkbare actie hebben die kan worden uitgevoerd met een toetsenbord."},"guidelines":{"508":["l"],"wcag":{"2.1.1":{"techniques":["G90","SCR2","SCR20"]},"2.1.3":{"techniques":["G90","SCR20"]}}},"tags":["javascript"],"components":["event","hasEventListener"],"options":{"correspondingEvent":"onkeypress","searchEvent":"onmousemove"}},"scriptOnmouseoutHasOnmouseblur":{"type":"event","testability":1,"title":{"en":"If an element has a \"onmouseout\" attribute it should also have an \"onblur\" attribute","nl":"Als een element een \"onmouseout\"-attribuut heeft, moet het ook een \"onblur\" attribuut hebben"},"description":{"en":"If an element has a \"onmouseout\" attribute it should also have an \"onblur\" attribute.","nl":"Als een element een \"onmouseout\"-attribuut heeft, moet het ook een \"onblur\"-attribuut hebben."},"guidelines":{"508":["l"],"wcag":{"2.1.1":{"techniques":["G90","SCR2","SCR20"]},"2.1.3":{"techniques":["G90","SCR20"]}}},"tags":["javascript"],"components":["event","hasEventListener"],"options":{"correspondingEvent":"onblur","searchEvent":"onmouseout"}},"scriptOnmouseoverHasOnfocus":{"type":"event","testability":1,"title":{"en":"If an element has a \"onmouseover\" attribute it should also have an \"onfocus\" attribute","nl":"Als een element een \"onmouseover\"-attribuut heeft, moet het ook een \"onfocus\"-attribuut hebben"},"description":{"en":"If an element has a \"onmouseover\" attribute it should also have an \"onfocus\" attribute.","nl":"Als een element een \"onmouseover\"-attribuut heeft, moet het ook een \"onfocus\"-attribuut hebben."},"guidelines":{"508":["l"],"wcag":{"2.1.1":{"techniques":["G90","SCR2","SCR20"]},"2.1.3":{"techniques":["G90","SCR20"]}}},"tags":["javascript"],"components":["event","hasEventListener"],"options":{"correspondingEvent":"onfocus","searchEvent":"onmouseover"}},"scriptOnmouseupHasOnkeyup":{"type":"event","testability":1,"title":{"en":"If an element has a \"onmouseup\" attribute it should also have an \"onkeyup\" attribute","nl":"Als een element een \"onmouseup\"-attribuut heeft, moet het ook een \"onkeyup\"-attribuut hebben"},"description":{"en":"If an element has a \"onmouseup\" attribute it should also have an \"onkeyup\" attribute.","nl":"Als een element een \"onmouseup\"-attribuut heeft, moet het ook een \"onkeyup\"-attribuut hebben."},"guidelines":{"508":["l"],"wcag":{"2.1.1":{"techniques":["G90","SCR2","SCR20"]},"2.1.3":{"techniques":["G90","SCR20"]}}},"tags":["javascript"],"components":["event","hasEventListener"],"options":{"correspondingEvent":"onkeyup","searchEvent":"onmouseup"}},"scriptUIMustBeAccessible":{"type":"selector","testability":0,"title":{"en":"The user interface for scripts should be accessible","nl":"De user interface voor scripts moet toegankelijk zijn"},"description":{"en":"All scripts should be assessed to see if their interface is accessible.","nl":"Alle scripts moeten gecontroleerd worden op toegankelijkheid van hun interface."},"guidelines":{"508":["l"]},"tags":["javascript"],"options":{"selector":"script"}},"scriptsDoNotFlicker":{"type":"selector","testability":0,"title":{"en":"Scripts should not cause the screen to flicker","nl":"Scripts mogen het scherm niet laten knipperen of flitsen"},"description":{"en":"All scripts should be assessed to see if their interface does not flicker.","nl":"Alle scripts moeten gecontroleerd worden om te zien of zij de interface niet laten knipperen of flitsen."},"guidelines":{"508":["j"],"wcag":{"2.2.2":{"techniques":["F7"]}}},"tags":["javascript"],"options":{"selector":"script"}},"scriptsDoNotUseColorAlone":{"type":"selector","testability":0,"title":{"en":"The interface in scripts should not use color alone","nl":"De interface in scripts gebruikt niet alleen maar kleur"},"description":{"en":"All scripts should be assessed to see if their interface does not have an interface which requires distinguishing between colors alone.","nl":"Alle scripts moeten gecontroleerd worden om te zien of hun interface geen interface heeft die alleen op kleur kan worden onderscheiden."},"guidelines":{"508":["c"]},"tags":["javascript","color"],"options":{"selector":"script"}},"selectDoesNotChangeContext":{"type":"event","testability":1,"title":{"en":"\"Select\" elements must not contain an \"onchange\" attribute","nl":"\"Select\" elements bevatten geen \"onchange\" attribute"},"description":{"en":"Actions like \"onchange\" can take control away from users who are trying to navigate the page. Using an \"onchange\" attribute for things like select-list menus should instead be replaced with a drop-down and a button which initiates the action.","nl":"Acties als \"onchange\" kunnen de controle ontnemen van gebruikers die op een pagina proberen te navigeren. Het gebruik van een \"onchange\"-attribuut voor zaken zoals select-list menu's moet vervangen worden door een drop-down en een knop waarmee je de actie start."},"guidelines":[],"tags":["form","content"],"components":["event","hasEventListener"],"options":{"searchEvent":"onchange","selector":"select"}},"selectHasAssociatedLabel":{"type":"label","testability":1,"title":{"en":"All select elements have an explicitly associated label","nl":"Alle select-elementen hebben een expliciet bijbehorend label"},"description":{"en":"All <code>select</code> elements should have a corresponding <code>label</code> element. Screen readers often enter a \"form mode\" where only label text is read aloud to the user","nl":"Alle <code>select</code>-elementen moeten een bijbehorend <code>label</code>-element hebben. Schermlezers maken vaak gebruik van een \"formuliereninstelling\" waarbij alleen de tekst van de labels hardop aan de gebruiker wordt voorgelezen."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H44"]},"1.3.1":{"techniques":["H44","F68"]},"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"3.3.2":{"techniques":["H44"]},"4.1.2":{"techniques":["H44","H91"]}}},"tags":["form","content"],"components":["label"],"options":{"selector":"select"}},"selectJumpMenu":{"type":"custom","testability":0.5,"title":{"en":"Select jump menus should jump on button press, not on state change","nl":"Select jump menu's moeten springen wanneer de knop wordt gebruikt, niet bij statusverandering"},"description":{"en":"If you wish to use a 'Jump' menu with a select item that then redirects users to another page, the jump should occur on the user pressing a button, rather than on the change event of that select element.","nl":"Als je een 'Jump'-menu wilt gebruiken met een select item dat gebruikers naar een andere pagina verwijst, moet de verwijzing plaatsvinden als de gebruiker een knop gebruikt en niet op het moment dat het select element verandert."},"guidelines":{"wcag":{"3.2.2":{"techniques":["F37"]},"3.2.5":{"techniques":["F9"]}}},"tags":["form","content"],"components":["hasEventListener"],"callback":"selectJumpMenu"},"selectWithOptionsHasOptgroup":{"type":"selector","testability":0.5,"title":{"en":"Form select elements should use optgroups for long selections","nl":"Formulier select-elementen moeten optgroups gebruiken voor lange selecties"},"description":{"en":"If a select element has many options, use optgroups to help ease navigation.","nl":"Als een select-element veel opties heeft, gebruik dan optgroups om navigatie makkelijker te maken."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H85"]}}},"tags":["form","content"],"options":{"selector":"select:not(select:has(optgroup)) option:nth-child(5)"}},"siteMap":{"type":"custom","testability":0,"title":{"en":"Websites must have a site map","nl":"Websites moeten een sitemap hebben"},"description":{"en":"Every web site should have a page which provides a site map or another method to navigate most of the site from a single page to save time for users of assistive devices.","nl":"Elke website moet een pagina hebben waarop een sitemap staat of een andere methode om op de site te navigeren vanaf een pagina. Dit spaart gebruikers die hulpmiddelen gebruiken tijd."},"guidelines":{"wcag":{"2.4.5":{"techniques":["G63"]},"2.4.8":{"techniques":["G63"]}}},"tags":["document"],"strings":["siteMap"],"callback":"siteMap"},"skipToContentLinkProvided":{"type":"custom","testability":0.5,"title":{"en":"A \"skip to content\" link should exist as one of the first links on the page","nl":"Er moet een \"skip to content\"-link zijn als een van de eerste links op de pagina"},"description":{"en":"A link reading \"skip to content\" should be the first link on a page.","nl":"Er moet een link zijn om naar de content te navigeren als een van de eerste links op de pagina."},"guidelines":{"508":["o"],"wcag":{"2.4.1":{"techniques":["G1"]}}},"tags":["document"],"strings":["skipContent"],"callback":"skipToContentLinkProvided"},"svgContainsTitle":{"type":"selector","testability":1,"title":{"en":"Inline SVG should use Title elements","nl":"Inline SVG moet titelelementen gebruiken"},"description":{"en":"Any inline SVG image should have an embedded <code>title</code> element.","nl":"Elke inline SVG-afbeelding moet een ingebed <code>title</code>-element hebben."},"guidelines":{"wcag":{"1.1.1":{"techniques":["F65"]}}},"tags":["image","svg","content"],"options":{"selector":"svg:not(svg:has(title))"}},"tableAxisHasCorrespondingId":{"type":"custom","testability":1,"title":{"en":"Axis attribute should have corresponding IDs","nl":"Axis-attributen moeten bijbehorende IDs hebben"},"description":{"en":"When using the axis attribute to group cells together, ensure they have a target element with the same ID.","nl":"Wanneer er axis-attributen gebruikt worden om cellen te groeperen, zorg er dan voor dat hun doelelement hetzelfde ID heeft."},"guidelines":{"wcag":{"1.3.1":{"techniques":["F17"]},"4.1.1":{"techniques":["F17"]}}},"callback":"tableAxisHasCorrespondingId"},"tabIndexFollowsLogicalOrder":{"type":"custom","testability":0.5,"title":{"en":"The tab order of a document is logical","nl":"De tabvolgorde van een document is logisch"},"description":{"en":"Check that the tab order of a page is logical.","nl":"Controleer of de tabvolgorde van een pagina logisch is."},"guidelines":{"wcag":{"2.4.3":{"techniques":["H4"]}}},"tags":["document"],"callback":"tabIndexFollowsLogicalOrder"},"tableCaptionIdentifiesTable":{"type":"selector","testability":0,"title":{"en":"Captions should identify their table","nl":"Beschrijvingen moeten hun tabellen identificeren"},"description":{"en":"Check to make sure that a table's caption identifies the table with a name, figure number, etc.","nl":"Controleer of de beschrijving van een tabel de tabel identificeert met een naam, nummer en dergelijke."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H39"]}}},"tags":["table","content"],"options":{"selector":"caption"}},"tableComplexHasSummary":{"type":"selector","testability":0.5,"title":{"en":"Complex tables should have a summary","nl":"Complexe tabellen moeten een samenvatting hebben"},"description":{"en":"If a table is complex (for example, has some cells with \"colspan\" attributes, the table should have a summary.","nl":"Als een tabel complex is (bijvoorbeeld, als er cellen zijn met \"colspan\"-attributen, moet de tabel een samenvatting hebben."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H39"]}}},"tags":["table","content"],"options":{"selector":"table:not(table[summary], table:has(caption))"}},"tableDataShouldHaveTh":{"type":"selector","testability":1,"title":{"en":"Data tables should contain a header","nl":"Datatabellen moeten \"th\"-elementen bevatten"},"description":{"en":"Tables which contain data (as opposed to layout tables) should contain proper table header elements to mark them for screen readers and enhance the structure of the document.","nl":"Tabellen die data bevatten (in tegenstelling tot lay-out tabellen) moeten <code>th</code>-elementen bevatten om koppen te markeren voor schermlezers en om de structuur van het document te verbeteren."},"guidelines":{"508":["g"],"wcag":{"1.3.1":{"techniques":["F91"]}}},"tags":["table","content"],"options":{"selector":"table:not(table:has(th))"}},"tableHeaderLabelMustBeTerse":{"type":"custom","testability":0.5,"title":{"en":"Table header lables must be terse","nl":"Tabelkoppen moeten bondig zijn"},"description":{"en":"The \"abbr\" attribute for table headers must be terse (less than 20 characters long).","nl":"Het \"abbr\"-attribuut voor tabelkoppen moet bondig zijn (minder dan 20 tekens lang)."},"guidelines":[],"tags":["table","content"],"callback":"tableHeaderLabelMustBeTerse"},"tableIsGrouped":{"type":"selector","testability":0.5,"title":{"en":"Mark up the areas of tables using thead and tbody","nl":"Gebruik thead en tbody voor tabellen"},"description":{"en":"Mark up the areas of tables using thead and tbody.","nl":"Gebruik thead en tbody voor tabellen."},"guidelines":[],"tags":["table","content"],"options":{"selector":"table:not(table:has(thead), table:has(tfoot))"}},"tableLayoutDataShouldNotHaveTh":{"type":"custom","testability":0,"title":{"en":"Layout tables should not contain \"th\" elements","nl":"Lay-out tabellen bevatten geen \"th\"-elementen"},"description":{"en":"Tables which are used purely for layout (as opposed to data tables), <strong>should not</strong> contain <code>th</code> elements, which would make the table appear to be a data table.","nl":"Tabellen die alleen voor lay-out worden gebruikt (in tegenstelling tot datatabellen), moeten geen <code>th</code>-elementen bevatten, omdat deze de indruk wekken dat het een datatabel betreft."},"guidelines":{"wcag":{"1.3.1":{"techniques":["F46"]}}},"tags":["table","layout","content"],"callback":"tableLayoutDataShouldNotHaveTh"},"tableLayoutHasNoCaption":{"type":"custom","testability":1,"title":{"en":"All tables used for layout have no \"caption\" element","nl":"Alle tabellen die alleen voor lay-out worden gebruikt hebben geen \"caption\"-element"},"description":{"en":"If a table contains no data, and is used simply for layout, then it should not contain a <code>caption</code> element.","nl":"Als een tabel geen data bevat en alle voor lay-out wordt gebruikt, moet hij geen <code>caption</code>-element krijgen."},"guidelines":{"wcag":{"1.3.1":{"techniques":["F46"]}}},"tags":["table","layout","content"],"callback":"tableLayoutHasNoCaption"},"tableLayoutHasNoSummary":{"type":"custom","testability":0.5,"title":{"en":"All tables used for layout have no summary or an empty summary","nl":"Alle tabellen die alleen voor lay-out worden gebruikt hebben geen samenvatting"},"description":{"en":"If a table contains no data, and is used simply for layout, then it should not have a \"summary\" attribute.","nl":"Als een tabel geen data bevat en alleen voor lay-out wordt gebruikt, moet hij geen \"summary\"-attribuut krijgen."},"guidelines":{"wcag":{"1.3.1":{"techniques":["F46"]}}},"tags":["table","layout","content"],"callback":"tableLayoutHasNoSummary"},"tableLayoutMakesSenseLinearized":{"type":"custom","testability":0,"title":{"en":"All tables used for layout should make sense when removed","nl":"Als tabellen voor lay-out worden gebruikt moet de pagina nog duidelijk blijven als de tabel wordt verwijderd"},"description":{"en":"If a <code>table</code> element is used for layout purposes only, then the content of the table should make sense if the table is linearized.","nl":"Als een <code>table</code>-element alleen voor lay-out-doeleinden wordt gebruikt, moet de inhoud van de tabel nog steeds duidelijk zijn als de tabel wordt verwijderd."},"guidelines":{"wcag":{"1.3.2":{"techniques":["G57"]},"4.1.1":{"techniques":["F49"]}}},"tags":["table","layout","content"],"callback":"tableLayoutMakesSenseLinearized"},"tableNotUsedForLayout":{"type":"custom","testability":0.5,"title":{"en":"Tables should not be used for layout","nl":"Tabellen moet niet worden gebruikt voor lay-out"},"description":{"en":"Tables are for data, not for creating a page layout. Consider using standard HTML and CSS techniques instead.","nl":"Tabellen zijn voor data, niet om een pagina op te maken. Gebruik hiervoor HTML en CSS."},"guidelines":{"wcag":{"1.3.2":{"techniques":["F49"]}}},"tags":["table","layout","content"],"callback":"tableNotUsedForLayout"},"tableShouldUseHeaderIDs":{"type":"custom","testability":0.5,"title":{"en":"Table cells use IDs to identify headers","nl":"Tabelcellen gebruiken IDs om koppen te identificeren"},"description":{"en":"If a table is not being used for layout, it should use IDs and header attributes to identify table headers.","nl":"Een tabel moet IDs en header-attributen gebruiken om tabelkoppen te identificeren."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H43"]}}},"tags":["table","content"],"callback":"tableShouldUseHeaderIDs"},"tableSummaryDescribesTable":{"type":"selector","testability":0,"title":{"en":"Table summaries should describe the navigation and structure of the table","nl":"Tabelsamenvattingen moeten de navigatie en structuur van de tabel beschrijven"},"description":{"en":"Table <code>summary</code> elements should describe the navigation tools and structure of the table, as well as provide an overview of what the table describes.","nl":"Tabel \"summary\"-elementen moeten de navigatie en structuur van de tabel beschrijven, en een overzicht bieden van wat er in de tabel staat."},"guidelines":[],"tags":["table","content"],"options":{"selector":"table[summary]"}},"tableSummaryDoesNotDuplicateCaption":{"type":"custom","testability":1,"title":{"en":"Table \"summary\" elements should not duplicate the \"caption\" element","nl":"Tabel \"summary\"-elementen mogen niet hetzelfde zijn als het \"caption\"-element"},"description":{"en":"The summary and the caption must be different, as both provide different information. A <code>caption</code>. /code element identifies the table, while the \"summary\" attribute describes the table contents.","nl":"De samenvatting en beschrijving van een tabel moeten verschillen, want ze bieden verschillende informatie. Een <code>caption</code>-element identificeert welke tabel het betreft en het \"summary\"-attribuut beschrijft de inhoud van de tabel."},"guidelines":[],"tags":["table","content"],"callback":"tableSummaryDoesNotDuplicateCaption"},"tableSummaryIsEmpty":{"type":"placeholder","testability":0.5,"title":{"en":"All data tables should have a summary","nl":"Alle datatabellen moeten een samenvatting hebben"},"description":{"en":"If a table contains data, it should have a \"summary\" attribute.","nl":"Als een tabel data bevat, moet hij een \"summary\"-attribuut hebben."},"guidelines":[],"tags":["table","content"],"components":["placeholder"],"options":{"attribute":"summary","empty":true,"selector":"table[summary]"}},"tableSummaryIsNotTooLong":{"type":"custom","testability":0,"guidelines":[],"tags":["table","content"],"callback":"tableSummaryIsNotTooLong"},"tableSummaryIsSufficient":{"type":"selector","testability":0,"title":{"en":"All data tables should have an adequate summary","nl":"Alle datatabellen moeten een toepasselijke samenvatting hebben"},"description":{"en":"If a table contains data, it should have a \"summary\" attribute that completely communicates the function and use of the table.","nl":"Als een tabel data bevat, moet er een \"summary\"-attribuut zijn dat de functie en het doel van de tabel duidelijk maakt."},"guidelines":[],"tags":["table","content"],"options":{"selector":"table[summary]"}},"tableUseColGroup":{"type":"custom","testability":0,"title":{"en":"Group columns using \"colgroup\" or \"col\" elements","nl":"Groepeer kolommen met \"colgroup\"- of \"col\"-elementen"},"description":{"en":"To help complex table headers make sense, use <code>colgroup</code> or <code>col</code> to group them together.","nl":"Maak complexe tabelkoppen duidelijker door \"colgroup\"- of \"col\"-elementen te gebruiken om ze te groeperen."},"guidelines":[],"tags":["table","content"],"callback":"tableUseColGroup"},"tableUsesAbbreviationForHeader":{"type":"custom","testability":0,"title":{"en":"Table headers over 20 characters should provide an \"abbr\" attribute","nl":"Tabelkoppen met meer dan 20 tekens moeten een \"abbr\"-attribuut hebben"},"description":{"en":"For long table headers, use an \"abbr\" attribute that is less than short (less than 20 characters long).","nl":"Gebruik een \"abbr\"-attribuut korter dan 20 tekens voor lange tabelkoppen."},"guidelines":[],"tags":["table","content"],"callback":"tableUsesAbbreviationForHeader"},"tableUsesCaption":{"type":"selector","testability":1,"title":{"en":"Data tables should contain a \"caption\" element if not described elsewhere","nl":"Datatabellen moeten een \"caption\"-element hebben als ze nergens anders beschreven worden"},"description":{"en":"Unless otherwise described in the document, tables should contain <code>caption</code> elements to describe the purpose of the table.","nl":"Tenzij elders in het document beschreven, moeten tabellen een \"caption\"-element hebben om het doel van de tabel te beschrijven."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H39"]}}},"tags":["table","content"],"options":{"selector":"table:not(table:has(caption))"}},"tableUsesScopeForRow":{"type":"custom","testability":0.5,"title":{"en":"Data tables should use scoped headers for rows with headers","nl":"Datatabellen moeten het \"scope\"-attribuut gebruiken voor rijen met koppen"},"description":{"en":"Where there are table headers for both rows and columns, use the \"scope\" attribute to help relate those headers with their appropriate cells. This test looks for the first and last cells in each row and sees if they differ in layout or font weight.","nl":"Als er tabelkoppen zijn voor zowel rijen als kolommen, gebruik dan het \"scope\"-attribuut om het juiste verband te leggen tussen de koppen en bijbehorende cellen."},"guidelines":{"wcag":{"1.3.1":{"techniques":["H63"]}}},"tags":["table","content"],"callback":"tableUsesScopeForRow"},"tableWithBothHeadersUseScope":{"type":"selector","testability":0.5,"title":{"en":"Data tables with multiple headers should use the \"scope\" attribute","nl":"Datatabellen met meerdere headers moeten het \"scope\"-attribuut gebruiken"},"description":{"en":"Where there are table headers for both rows and columns, use the \"scope\" attribute to help relate those headers with their appropriate cells.","nl":"Als er tabelkoppen zijn voor zowel rijen als kolommen, gebruik dan het \"scope\"-attribuut om het juiste verband te leggen tussen de koppen en bijbehorende cellen."},"guidelines":{"508":["h"],"wcag":{"1.3.1":{"techniques":["F91"]}}},"tags":["table","content"],"options":{"selector":"table:has(tr:not(table tr:first) th:not(th[scope]))"}},"tableWithMoreHeadersUseID":{"type":"custom","testability":0.5,"title":{"en":"Complex data tables should provide \"id\" attributes to headers","nl":"Complexe datatabellen moeten \"id\"-attributen aan headers koppelen"},"description":{"en":"Complex data tables should provide \"id\" attributes to headers and \"headers\" attributes for data cells.","nl":"Complexe datatabellen moeten \"id\"-attributen aan headers koppelen en \"headers\"-attributen aan datacellen."},"guidelines":[],"tags":["table","content"],"callback":"tableWithMoreHeadersUseID"},"tagsAreNestedCorrectly":{"type":"custom","testability":1,"title":{"en":"All tags should be nested correctly","nl":"Alle tags moeten juist genest worden"},"description":{"en":"","nl":""},"guidelines":{"wcag":{"4.1.1":{"techniques":["H74"]}}},"tags":["html"],"components":["htmlSource"],"callback":"tagsAreNestedCorrectly"},"tabularDataIsInTable":{"type":"custom","testability":0.5,"title":{"en":"All tabular information should use a table","nl":"Alle tabelinformatie moet ook daadwerkelijk in een tabel staan"},"description":{"en":"Tables should be used when displaying tabular information.","nl":"Gebruik een echte tabel wanneer je tabelinformatie wilt tonen."},"guidelines":{"wcag":{"1.3.1":{"techniques":["F33","F34","F48"]},"1.3.2":{"techniques":["F33","F34"]}}},"tags":["table","content"],"callback":"tabularDataIsInTable"},"textIsNotSmall":{"type":"custom","testability":0.5,"title":{"en":"The text size is not less than 9 pixels high","nl":"De grootte van de tekst is meer dan 8 pixels hoog"},"description":{"en":"To help users with difficulty reading small text, ensure text size is no less than 9 pixels high.","nl":"Help gebruikers die moeite hebben met het lezen van kleine letters, door ervoor te zorgen dat tekst groter is dan 8 pixels hoog."},"guidelines":[],"tags":["textsize","content"],"components":["convertToPx"],"callback":"textIsNotSmall"},"textareaHasAssociatedLabel":{"type":"label","testability":1,"title":{"en":"All textareas should have a corresponding label","nl":"Alle \"textarea\"-elementen moeten een bijbehorend label hebben"},"description":{"en":"All <code>textarea</code> elements should have a corresponding <code>label</code> element. Screen readers often enter a \"form mode\" where only label text is read aloud to the user","nl":"Alle \"textarea\"-elementen moeten een bijbehorend label hebben. Schermlezers maken vaak gebruik van een \"formuliereninstelling\" waarbij alleen de tekst van de labels hardop aan de gebruiker wordt voorgelezen."},"guidelines":{"wcag":{"1.1.1":{"techniques":["H44"]},"1.3.1":{"techniques":["H44","F68"]},"2.1.1":{"techniques":["H91"]},"2.1.3":{"techniques":["H91"]},"3.3.2":{"techniques":["H44"]},"4.1.2":{"techniques":["H44","H91"]}}},"tags":["form","content"],"components":["label"],"options":{"selector":"textarea"}},"textareaLabelPositionedClose":{"type":"labelProximity","testability":0.5,"title":{"en":"All textareas should have a label that is close to it","nl":"Alle \"textarea\"-elementen moeten een label hebben dat dicht bij het element staat"},"description":{"en":"All <code>textarea</code> elements should have a corresponding <code>label</code> element that is close in proximity.","nl":"Alle \"textarea\"-elementen moeten een bijbehorend label hebben dat dicht bij het element staat."},"guidelines":[],"tags":["form","content"],"components":["labelProximity"],"options":{"selector":"textarea"}},"videoProvidesCaptions":{"type":"selector","testability":0.5,"title":{"en":"All video tags must provide captions","nl":"Alle video tags moeten bijschriften bieden"},"description":{"en":"All HTML5 video tags must provide captions.","nl":"Alle HTML5 video tags moeten bijschriften bieden."},"guidelines":{"508":["b","b"],"wcag":{"1.2.2":{"techniques":["G87"]},"1.2.4":{"techniques":["G87"]}}},"tags":["media","content"],"options":{"selector":"video"}},"videosEmbeddedOrLinkedNeedCaptions":{"type":"custom","testability":1,"title":{"en":"All linked or embedded videos need captions","nl":"Alle gekoppelde of ingebedde video's moeten bijschriften hebben"},"description":{"en":"Any video hosted or otherwise which is linked or embedded must have a caption.","nl":"Elke video die is gekoppeld of ingebed in content moet een bijschrift hebben."},"guidelines":{"wcag":{"1.2.2":{"techniques":["G87"]},"1.2.4":{"techniques":["G87"]}}},"tags":["media","content"],"components":["video","language"],"callback":"videosEmbeddedOrLinkedNeedCaptions"},"whiteSpaceInWord":{"type":"custom","testability":0.5,"title":{"en":"Whitespace should not be used between characters in a word","nl":"Zet geen witruimte tussen letters in een woord"},"description":{"en":"Using extra whitespace between letters in a word causes screen readers to not interpret the word correctly, use the letter-spacing CSS property instead.","nl":"Het gebruik van witruimte tussen de letters van een woord, zorgen dat schermlezers het woord niet volledig kunnen lezen. Gebruik in plaats hiervan css om de ruimte tussen letters te bepalen."},"guidelines":{"wcag":{"1.3.2":{"techniques":["F32","C8"]}}},"tags":["content"],"callback":"whiteSpaceInWord"},"whiteSpaceNotUsedForFormatting":{"type":"custom","testability":0.5,"title":{"en":"Whitespace should not be used for conveying information","nl":"Gebruik geen witruimte om informatie over te brengen"},"description":{"en":"Spaces or tabs are not read by assistive technology and should not be used to convey meaning.","nl":"Spaties of tabs worden niet voorgelezen door hulpprogramma's en moeten niet worden gebruikt om betekenis over te dragen."},"guidelines":{"wcag":{"1.3.2":{"techniques":["G57"]}}},"tags":["content"],"callback":"whiteSpaceNotUsedForFormatting"},"doNotUseGraphicalSymbolToConveyInformation":{"type":"custom","testability":1,"title":{"en":"Using a graphical symbol alone to convey information","nl":"Gebruik van alleen een grafisch symbool om informatie over te brengen"},"description":{"en":"The objective of this technique is to show how using a graphical symbol to convey information can make content difficult to comprehend. A graphical symbol may be an image, an image of text or a pictorial or decorative character symbol (glyph) which imparts information nonverbally. Examples of graphical symbols include an image of a red circle with a line through it, a smiley face, or a glyph which represents a check mark, arrow, or other symbol but is not the character with that meaning. Assistive technology users may have difficulty determining the meaning of the graphical symbol. If a graphical symbol is used to convey information, provide an alternative using features of the technology or use a different mechanism that can be marked with an alternative to represent the graphical symbol. For example, an image with a text alternative can be used instead of the glyph.","nl":"Het doel van deze techniek is te laten zien dat content moeilijker begrepen kan worden wanneer een grafisch symbool wordt gebruikt om informatie over te brengen. Een grafisch symbool kan een afbeelding, een afbeelding van tekst of een pictogram of decoratief teken zijn (glyph) dat non-verbaal informatie overbrengt. Voorbeelden hiervan zijn een rode cirkel met een lijn erdoorheen, een smiley of een vinkje, pijl of ander symbool dat niet noodzakelijkerwijs een duidelijke betekenis heeft. Gebruikers van hulpprogramma's hebben vaak moeite om de bedoeling van een grafisch symbool te duiden. Als een grafisch symbool gebruikt wordt om informatie over te brengen, biedt dan ook een (tekstueel) alternatief."},"guidelines":{"wcag":{"1.3.3":{"techniques":["F26"]}}},"tags":["link","content"],"callback":"doNotUseGraphicalSymbolToConveyInformation"},"linkDoesNotChangeContextOnFocus":{"type":"event","testability":1,"title":{"en":"Link elements must not contain an \"onfocus\" attribute","nl":"Link-elementen bevatten geen \"onfocus\"-attribuut"},"description":{"en":"Actions like \"onfocus\" can take control away from users who are trying to navigate the page. Using an \"onfocus\" attribute for things like links should be replaced with css.","nl":"Acties zoals \"onfocus\" kunnen de controle ontnemen van gebruikers die op een pagina proberen te navigeren. Het gebruik van een \"onfocus\"-attribuut voor zaken als links moet worden vervangen door middel van css."},"guidelines":[],"tags":["form","content"],"components":["event","hasEventListener"],"options":{"searchEvent":"onfocus","selector":"a"}},"buttonDoesNotChangeContextOnFocus":{"type":"event","testability":1,"title":{"en":"Buttons must not contain an \"onfocus\" attribute","nl":"Knoppen bevatten geen \"onfocus\"-attribuut"},"description":{"en":"Actions like \"onfocus\" can take control away from users who are trying to navigate the page. Using an \"onfocus\" attribute for things like buttons should be replaced with css.","nl":"Acties zoals \"onfocus\" kunnen de controle ontnemen van gebruikers die op een pagina proberen te navigeren. Het gebruik van een \"onfocus\"-attribuut voor zaken als knoppen moet worden vervangen door middel van css."},"guidelines":[],"tags":["form","content"],"components":["event","hasEventListener"],"options":{"searchEvent":"onfocus","selector":"input[type=checkbox],input[type=text],button"}},"KINGStrongList":{"type":"custom","testability":1,"title":{"en":"Use strong in lists only"},"description":{"en":"STRONG only allowed when parent element is LI."},"guidelines":[],"tags":["KING"],"callback":"KINGStrongList"},"KINGUseLongDateFormat":{"type":"custom","testability":1,"title":{"en":"Use a long date format"},"description":{"en":"Short date formats might confuse users, Always use the month name: 20 May 2014."},"guidelines":[],"tags":["KING"],"callback":"KINGUseLongDateFormat"},"KINGUsePercentageWithSymbol":{"type":"custom","testability":1,"title":{"en":"Use a symbol within a percentage"},"description":{"en":""},"guidelines":[],"tags":["KING"],"callback":"KINGUsePercentageWithSymbol"},"KINGUseCurrencyAsSymbol":{"type":"custom","testability":1,"title":{"en":"Use a symbol for a currency"},"description":{"en":"Only use symbol and currency name instead of common name such as € or EUR."},"guidelines":[],"tags":["KING"],"callback":"KINGUseCurrencyAsSymbol"},"videoMayBePresent":{"type":"custom","testability":1,"title":{"en":"Video or object uses a link that points to a file with a video extension","nl":"Video of object met een link naar een bestand met een video extensie"},"description":{"en":"","nl":""},"guidelines":[],"tags":["link","video"],"callback":"videoMayBePresent"},"audioMayBePresent":{"type":"custom","testability":1,"title":{"en":"Audio or object uses a link that points to a file with a video extension","nl":"Audio of object met een link naar een bestand met een video extensie"},"description":{"en":"","nl":""},"guidelines":[],"tags":["link","audio"],"callback":"audioMayBePresent"},"animatedGifMayBePresent":{"type":"custom","testability":1,"title":{"en":"Test if a .gif is used on the page. Test if the .gif contains more then one frame","nl":"Test of een .gif afbeelding gebruikt is op de pagina. Test of het .gif bestand uit meer dan één frame bestaat"},"description":{"en":"","nl":""},"guidelines":[],"tags":["link","gif"],"callback":"animatedGifMayBePresent"},"userInputMayBeRequired":{"type":"custom","testability":1,"title":{"en":"Test if user input is required","nl":"Test of er invoervelden zijn"},"description":{"en":"","nl":""},"guidelines":[],"tags":["form","input"],"callback":"userInputMayBeRequired"}}