Si certains contenus de votre site nécessitent JavaScript pour fonctionner, existe-t-il une version alternative accessible à tous ?
Critère officiel 7.2 — Pour chaque script ayant une alternative, cette alternative est-elle pertinente ?
Pourquoi c'est important
Certains utilisateurs désactivent JavaScript pour des raisons de sécurité ou utilisent des technologies d'assistance qui ne l'exécutent pas correctement. Si un calendrier, un outil de calcul ou un formulaire dynamique ne fonctionne qu'en JavaScript sans alternative, ces utilisateurs sont entièrement exclus.
Exemples concrets
Ce qui est conforme
Un outil de calcul des tarifs de la cantine est présenté en JavaScript interactif, mais le même tableau de tarifs est aussi disponible sous forme statique sur la même page. Un utilisateur sans JavaScript accède à l'information identique.
Ce qui pose problème
Un calendrier d'événements ne fonctionne qu'en JavaScript. Lorsque JavaScript est désactivé ou non supporté, la page affiche un espace vide sans aucune alternative ni lien vers une version textuelle.
Comment agir
Demandez à votre prestataire d'identifier les fonctionnalités qui dépendent uniquement de JavaScript et de proposer une alternative pour chacune. Pour les nouveaux développements, intégrez dans le cahier des charges : « Chaque fonctionnalité JavaScript critique (calendrier, calcul, formulaire dynamique) doit avoir une alternative accessible en cas d'indisponibilité du script. »
Règles clés
- L'alternative doit permettre d'accéder à la même information et fonctionnalité.
- Si le composant est un formulaire : l'alternative doit permettre de le soumettre.
- Si le composant est une visualisation : l'alternative doit contenir toutes les données.
Erreurs fréquentes
- Message 'Activez JavaScript' sans autre option
- Lien alternatif pointant vers une page vide ou inexistante
- Alternative textuelle qui résume le composant sans en reproduire l'intégralité
Exemples de code
alternative factice
✗ Non conforme<noscript>
<p>Cette fonctionnalité nécessite JavaScript.</p>
</noscript>Message bloquant sans alternative réelle. L'utilisateur sans JS ne peut pas accéder à la fonctionnalité.
alternative fonctionnelle
✓ Conforme<noscript>
<label for="date-fallback">
Date souhaitée (format : JJ/MM/AAAA)
</label>
<input type="date" id="date-fallback" name="date">
</noscript>L'alternative dans <noscript> est un champ de date natif — fonctionnel sans JS. L'utilisateur peut accomplir la même tâche.
Référence WCAG : 1.1.1, 4.1.2