C'est quoi
Une limite de temps est tout mécanisme qui modifie ou supprime du contenu sans action de l'utilisateur, après un délai donné.
Exemples courants :
- Session d'authentification qui expire et redirige vers la page de connexion sans avertissement ni possibilité de prolonger.
- Formulaire de réservation qui réinitialise les données saisies après quelques minutes d'inactivité.
- Minuterie de commande promotionnelle qui ferme la fenêtre d'achat.
- Contenu mis à jour automatiquement sans contrôle utilisateur.
Le RGAA 13.1 prévoit trois façons de rendre une limite contrôlable : supprimer la limite, permettre à l'utilisateur de l'ajuster (au moins dix fois la durée par défaut), ou avertir avant l'expiration et laisser au moins 20 secondes pour répondre.
Exceptions : les limites imposées par la loi, ou dont la suppression invaliderait l'activité (enchères en ligne, examen chronométré officiel).
Qui est touché
- Les personnes qui lisent ou saisissent lentement en raison d'un handicap moteur, de troubles cognitifs ou de dyslexie. Elles ont besoin de plus de temps pour remplir un formulaire ou lire un contenu.
- Les personnes utilisant des technologies d'assistance (lecteurs d'écran, commandes vocales) dont les interactions prennent plus de temps.
Impact business
Un formulaire qui expire en silence efface le travail de l'utilisateur. Pour une personne qui saisit lentement ou qui utilise un commutateur, remplir un formulaire long peut prendre bien plus de temps que la durée de session accordée par défaut.
L'impact est direct : l'utilisateur perd sa saisie et doit recommencer, sans garantie que le timeout ne se reproduise pas.
Sources des chiffres
Comment le détecter
- Manuel : laisse une page ouverte sans interagir pendant 15 à 30 minutes. Si le contenu change, se ferme ou redirige sans avertissement, le critère est en échec.
- Code : cherche dans le code source les appels à
setTimeoutousetIntervalcôté navigateur, ou les durées de session côté serveur, sans mécanisme de prolongation ou d'avertissement. - Test formulaire : ouvre un formulaire multi-étapes et attends entre deux étapes. Si la saisie est perdue à la reprise, la limite de temps n'est pas contrôlée.
Comment corriger
// Session expirée sans avertissement
setTimeout(() => {
window.location.href = '/login?expired=1';
}, 15 * 60 * 1000);// Avertissement accessible avant expiration (modale non bloquante)
const EXPIRE_MS = 15 * 60 * 1000;
const WARN_BEFORE_MS = 2 * 60 * 1000;
setTimeout(() => {
// Affiche une modale ARIA accessible avec bouton Prolonger
// Le dialog ARIA est lisible par les lecteurs d'écran, contrairement à
// window.confirm() qui est bloquant et peu fiable avec les AT.
showSessionWarningDialog({
message: 'Ta session expire dans 2 minutes.',
onExtend: () => renewSession(),
onExpire: () => { window.location.href = '/login?expired=1'; },
countdownSeconds: WARN_BEFORE_MS / 1000, // >= 20s requis par RGAA 13.1
});
}, EXPIRE_MS - WARN_BEFORE_MS);La solution minimale est d'avertir l'utilisateur avant l'expiration et de lui laisser au moins 20 secondes pour réagir (exigence RGAA 13.1).
La meilleure solution côté expérience utilisateur : prolonger automatiquement la session tant que l'utilisateur est actif (détection de frappe, de clics, de défilement). La session n'expire alors qu'en cas d'absence prolongée.
Sur WordPress avec WooCommerce, la durée de session est gérée par
WC_Session_Handler (48h par défaut). Elle se modifie via les filtres
wc_session_expiring et wc_session_expiration. Il n'existe pas d'option
dans l'admin pour la modifier. Ajoute un avertissement côté client si
ta configuration impose une durée courte.
Questions fréquentes
Les limites imposées par une réglementation de sécurité sont-elles exemptées ?
Oui. Si une limite de temps est imposée par une réglementation (authentification bancaire, paiement PCI-DSS), elle est exemptée. L'utilisateur doit quand même être informé du délai et de ses conséquences avant que la limite ne s'applique.
Un minuteur de quiz chronométré est-il concerné ?
Un quiz dont le timing est intrinsèque à l'évaluation (concours, examen officiel) est exempté. Dans ce cas, indique clairement la durée avant le démarrage et confirme que l'utilisateur est prêt.
Les mises à jour automatiques de contenu (fil d'actualités) sont-elles visées ?
Oui. Un flux qui se rafraîchit automatiquement doit pouvoir être mis en pause, arrêté ou masqué. Voir aussi le critère RGAA 13.8 sur les contenus en mouvement.
À lire aussi
Cette erreur est-elle sur ton site ?
Lance un audit Mynto gratuit. Tu sauras en quelques minutes si ton site est concerné, sur quelles pages, et avec quel impact.