Het optionele karakter van client-side scripts

Websites moeten ook zonder client-side script blijven werken.

Uitleg van deze richtlijn

Sommige bezoekers gebruiken browsers die geen of beperkt client-side script ondersteunen, of hebben ondersteuning voor client-side script uitgeschakeld. Het kan gaan om een oude browserversie, of juist om een heel nieuwe, zoals browsers op mobiele telefoons en PDA’s. Bezoekers hebben ook zo hun redenen om ondersteuning uit te schakelen, bijvoorbeeld uit veiligheidsoverwegingen.

“Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page.”

Hoewel het percentage potentiële bezoekers dat client-side scripts moet missen laag is, mogen webontwikkelaars dit niet negeren. De volgende adviezen kunnen webontwikkelaars helpen hier rekening mee te houden.

Gelaagd bouwen van functionaliteit

Onmisbare functionaliteit (bijvoorbeeld formuliervalidatie) kan worden gestuurd via client-side scripting, maar zal falen als ondersteuning hiervoor ontbreekt. Webontwikkelaars kunnen deze situatie ondervangen door gelaagd te bouwen.

Wanneer ondersteuning voor client-side scripts ontbreekt, wordt teruggevallen op HTML alternatieven of server-side scripts.

Een alternatief voor een client-side script hoeft niet per se dynamische of visuele effecten te realiseren als het script zelf. Er is sprake van een alternatief wanneer de bezoeker in staat is het doel van het client-side script te bereiken zonder de ondersteuning voor dit script. Zo’n doel is bijvoorbeeld het controleren en valideren van de invoer van een contactformulier of het navigeren van de website. Het ontbreken van client-side scripts betekent hooguit dat het bereiken van deze doelen voor de bezoeker minder eenvoudig is.

Geen alternatieven voor client-side scripts nodig

Niet alle toepassingen van client-side scripts hebben een scriptloos alternatief nodig; veel toepassingen kunnen door de bezoeker gemist worden, zolang deze de pagina maar kan gebruiken.

Een voorbeeld is een menu op de pagina om de bezoeker de lettergrootte te laten regelen. Het is mogelijk om dit op te vangen met een server-side script. De webontwikkelaar kan er echter ook van uitgaan dat browsers zelf een functie bevatten om de lettergrootte op pagina’s te schalen naar de voorkeur van de gebruiker. Bezoekers die client-side scripts missen, zijn dan op deze standaardfunctie aangewezen.

Unobtrusive JavaScript

De techniek om het gebruik van client-side scripts (in dit geval JavaScript) volledig te scheiden van ” bijvoorbeeld ” de HTML wordt ‘unobtrusive JavaScripts’ genoemd. Gaat het bij het gebruik van CSS om het scheiden van (visuele) vormgeving en inhoud/structuur, bij unobtrusive JavaScript worden gedrag en inhoud/structuur gescheiden. Op deze manier is het mogelijk om inhoud/structuur, vormgeving of gedrag afzonderlijk te creëren, aan te passen of te verwijderen. Unobtrusive JavaScript kan dan ook worden gezien als een van de bouwstenen van het principe van gelaagd bouwen.

Voorbeelden

HTML alternatieven voor client-side scripts

In het noscript element kan inhoud worden opgenomen die wordt getoond als alternatief voor client-side scripts. Vaak is het echter beter om uit te gaan van client-side scripts als uitbreiding op HTML-basisfunctionaliteit in plaats van als alternatief. Meer informatie bij Aan de slag: HTML alternatieven voor client-side scripts.

Server-side scripts als alternatief

Client-side scripts als aanvulling op basisfunctionaliteit, gecreëerd door server-side scripts. Meer informatie bij Aan de slag: Server-side scripts als alternatief.

Gerelateerde richtlijnen

  • R-pd.1.2: Bouw websites volgens het principe van gelaagd bouwen.
  • R-pd.1.3: Maak de functie van de website niet afhankelijk van optionele technologie, zoals CSS en client-side script: optionele technologie dient de informatie op de site en het gebruik ervan te complementeren en niet de toegang ertoe te belemmeren wanneer deze technologie niet ondersteund wordt.
  • R-pd.2.9: Bouw een website volgens de Web Content Accessibility Guidelines (WCAG 1.0) van het W3C.
  • R-pd.8.5: Bij het gebruik van client-side script in combinatie met een link: maak de scriptfunctionaliteit een uitbreiding op de basisfunctionaliteit van de link.
  • R-pd.8.6: Bij het gebruik van client-side script in combinatie met een link: indien de link nergens naartoe leidt, confronteer de bezoeker zonder ondersteuning voor client-side script dan niet met een niet-werkende link.
  • R-pd.8.7: Bij het gebruik van client-side script in combinatie met een link: indien noodzakelijk, gebruik client-side script als een uitbreiding op server-side functies.
  • R-pd.13.5: Gebruik geen client-side script of formulieren als de enige manier om informatie op de site te bereiken.
  • R-pd.13.6: Confronteer een bezoeker niet met een onwerkzaam formulier als optionele technologieën - zoals CSS of client-side script - niet door de browser ondersteund worden.

Bijbehorende ijkpunten normdocument

  • IJkpunt 6.3: Zorg ervoor dat pagina's bruikbaar zijn, als scripts, applets of andere programma-objecten uitstaan of niet worden ondersteund. Als dit niet mogelijk is, lever dan equivalente informatie op een alternatieve toegankelijke pagina.