Temps imparti, sessions et panier qui expire : la règle WCAG
En bref — une limite de temps doit toujours pouvoir être prolongée
Une session qui expire et vide le panier sans prévenir, un compte à rebours de vente flash impossible à suivre, un code reçu par SMS qui expire avant qu'on ait fini de le saisir : les limites de temps sont un obstacle majeur pour les personnes qui naviguent lentement, au clavier ou au lecteur d'écran. L'European Accessibility Act (norme EN 301 549 / WCAG 2.1 AA), applicable au commerce électronique depuis le 28 juin 2025, exige :
- Toute limite de temps doit pouvoir être désactivée, allongée ou prolongée par l'utilisateur (2.2.1, niveau A) ;
- Prévenir avant l'expiration d'une session, avec une action simple pour la prolonger (au moins ×10) ;
- L'avertissement de temps doit être annoncé aux technologies d'assistance, pas seulement visible (4.1.3, niveau AA) ;
- Atteindre le bouton « Rester connecté » au clavier, sans souris (2.1.1, niveau A).
La frontière à connaître : préserver les données du panier après expiration (2.2.6) et supprimer toute limite de temps (2.2.3) sont des critères de niveau AAA — d'excellentes pratiques, mais recommandées, pas exigées. Ce qui est exigible, c'est de laisser l'utilisateur garder la main sur le temps.
Le temps est invisible dans une maquette, mais il décide qui peut acheter. Une personne qui lit avec une synthèse vocale, qui tape une touche à la fois ou qui réfléchit à son achat met deux à dix fois plus de temps qu'un visiteur pressé : si la session expire au bout de quelques minutes et vide le panier, ou si un compte à rebours force à se dépêcher, elle est tout simplement exclue de la vente. La bonne nouvelle : la règle WCAG sur les limites de temps tient en une idée simple — laisser l'utilisateur reprendre le contrôle du chronomètre. Voici comment l'appliquer en e-commerce, où s'arrête l'obligation, et comment vérifier.
Pourquoi les limites de temps excluent une partie de vos clients
Plusieurs publics ont besoin de plus de temps qu'un délai « moyen » ne le prévoit : les personnes qui utilisent un lecteur d'écran et écoutent la page de bout en bout ; celles qui naviguent au clavier ou avec une aide à la saisie ; celles ayant un trouble cognitif, moteur, ou qui lisent dans une langue seconde. Pour elles, une session qui expire sans avertissement, un panier vidé après quelques minutes d'inactivité, un compte à rebours de réservation ou un code à usage unique trop court ne sont pas de simples gênes : ce sont des murs.
L'EAA s'appuie sur l'EN 301 549, fondée sur les WCAG 2.1 niveau AA. Le critère central ici est 2.2.1 (Réglage du délai, niveau A) : dès que votre contenu impose une limite de temps, vous devez offrir au moins l'une de ces options — la désactiver avant qu'elle ne s'applique, l'allonger (au moins ×10), ou prévenir avant l'échéance et laisser la prolonger d'une action simple (au moins ×10). Trois exceptions seulement : les événements en temps réel (une enchère en direct), les cas où la limite est essentielle (la repousser fausserait l'activité), et les limites supérieures à 20 heures.
Les 6 règles pour des limites de temps accessibles
Désactiver, allonger ou prolonger : au moins une issue
Dès qu'une fonctionnalité impose un délai (déconnexion automatique, panier réservé, formulaire qui expire), proposez à l'utilisateur de garder la main : pouvoir la désactiver à l'avance, l'allonger jusqu'à au moins dix fois la durée par défaut, ou être averti avant l'échéance et la prolonger d'un geste simple. Une seule de ces issues suffit, mais il en faut une. Les rares exceptions sont les délais réellement contraints : une enchère en direct, ou une limite que la prolonger viderait de son sens.
→ Voir aussi le tunnel de commande accessible.
Un avertissement, du temps pour réagir, et le panier intact
Si vous déconnectez après une période d'inactivité (souvent pour des raisons de sécurité), avertissez avant, laissez un délai confortable pour réagir, et offrez une action simple pour rester connecté. L'avertissement doit arriver suffisamment tôt pour qu'une personne lente puisse le percevoir et agir. Idéalement, conservez le panier et le formulaire en cours après reconnexion : c'est ce qui transforme une déconnexion en simple pause plutôt qu'en abandon. Préserver ces données est fortement recommandé (voir règle 6).
→ Voir aussi messages d'erreur et validation accessibles.
Vente flash, panier réservé, créneau de livraison
Un compte à rebours purement informatif (« la promotion se termine dans… ») qui ne limite aucune action de l'utilisateur n'est pas concerné par la règle. Mais dès qu'il contraint le temps de réaliser une tâche — un panier « réservé 10 minutes », un créneau bloqué pendant le paiement — il devient une limite de temps : il faut pouvoir la prolonger ou la rallonger. Veillez aussi à ne pas transmettre l'urgence par la seule couleur ou le seul mouvement : le temps restant doit être lisible en texte.
→ Voir aussi carrousels, animations et mouvement.
OTP, double authentification, confirmation par SMS
Les codes envoyés par SMS ou par e-mail (paiement 3-D Secure, double authentification, confirmation de compte) expirent souvent vite. Pour une personne qui bascule entre sa boîte de réception et le formulaire, ou qui saisit lentement, un code valable trop peu de temps est un piège. Accordez un délai raisonnable, et surtout un moyen évident de renvoyer un nouveau code sans tout recommencer. Astuce technique : marquer le champ avec autocomplete="one-time-code" permet aux téléphones de proposer le code automatiquement — moins de saisie, moins de risque d'expiration (et c'est de l'accessibilité utile au-delà de la règle 2.2.1).
autocomplete="one-time-code".→ Voir aussi la navigation au clavier.
Une alerte invisible pour le lecteur d'écran ne sert à rien
Un avertissement de temps n'est utile que s'il est perçu. Une fenêtre « votre session va expirer » qui apparaît visuellement mais que le lecteur d'écran n'annonce pas laisse l'utilisateur aveugle face au compte à rebours. Placez le message dans une région live (role="status" / aria-live="polite", ou role="alert" si c'est urgent) afin qu'il soit lu automatiquement, et envoyez le focus sur le bouton « Rester connecté » pour qu'il soit immédiatement atteignable. Le bouton lui-même doit être un vrai contrôle, activable au clavier.
aria-live : NVDA annonce « Votre session expire dans 2 minutes, bouton Rester connecté ».<div> sans rôle ni région live : à l'écoute, rien — l'utilisateur est déconnecté sans l'avoir su.→ Voir aussi les composants interactifs accessibles.
Une expiration ne devrait jamais effacer le travail en cours
Le meilleur traitement d'un délai dépassé, c'est qu'il ne coûte rien : au retour, le panier, l'adresse et le formulaire sont intacts. Soyons honnêtes : le critère qui exige de préserver les données après une expiration de session (2.2.6) et celui qui demande de supprimer toute limite de temps (2.2.3) sont de niveau AAA — donc recommandés, pas exigés par l'EAA, qui s'aligne sur le niveau AA. Nous les citons parce que c'est ce qui sauve une vente, pas parce qu'un panier perdu vous mettrait hors la loi. En revanche, pour une transaction (commande, engagement financier), pouvoir vérifier et confirmer avant validation relève bien du niveau AA exigible (3.3.4).
Récapitulatif : ce qui est exigible, ce qui est recommandé
| Point à vérifier | Niveau | Statut EAA |
|---|---|---|
| Limite de temps désactivable, allongeable ou prolongeable — 2.2.1 | A | Exigé |
| Atteindre le bouton « Rester connecté » au clavier — 2.1.1 | A | Exigé |
| Avertissement de temps annoncé (région live) — 4.1.3 | AA | Exigé |
| Vérifier / confirmer une transaction avant validation — 3.3.4 | AA | Exigé |
| Préserver les données après expiration — 2.2.6 | AAA | Recommandé |
| Aucune limite de temps imposée — 2.2.3 | AAA | Recommandé |
Comment vérifier les limites de temps de votre site
Quelques contrôles à faire sur votre parcours d'achat :
- Listez vos délais : déconnexion automatique, expiration du panier, validité des codes OTP, minuteurs de réservation ou de vente flash. Chacun est-il désactivable, allongeable ou prolongeable ?
- Laissez une page inactive le temps prévu : êtes-vous averti avant l'expiration, avec assez de temps pour réagir ?
- Écoutez l'avertissement avec un lecteur d'écran (NVDA, VoiceOver) : l'alerte est-elle annoncée, le bouton « Rester connecté » est-il atteignable ?
- Testez au clavier : peut-on prolonger la session ou renvoyer un code sans souris ?
- Vérifiez le retour après expiration : le panier et le formulaire sont-ils préservés ?
Les limites de temps se prêtent mal à la détection automatique : un scanner ne sait pas qu'une session expirera dans dix minutes ni qu'un panier sera vidé. C'est donc un point qui se vérifie surtout en parcourant le site, lentement, au clavier et au lecteur d'écran. Notre rapport signale les manquements détectables automatiquement (région live mal posée, bouton non focusable…) et liste les points de temps imparti à contrôler manuellement.
→ Méthode complète : comment tester l'accessibilité de son site. Voir aussi par où commencer.
Vérifiez l'accessibilité de votre boutique gratuitement
DeclareAccess analyse une page de votre site avec le moteur axe-core selon les WCAG 2.1 AA, repère les manquements (régions live, étiquettes, contraste, structure…) et génère la déclaration d'accessibilité prête à publier — modèle français (RGAA), allemand (BFSG), italien ou espagnol. Gratuit, sans carte bancaire.
Rapport WCAG par e-mail sous 24 h ouvrées.
C'est noté. Votre client e-mail va s'ouvrir avec la demande pré-remplie — il vous suffit de l'envoyer.
Questions fréquentes
Combien de temps une session doit-elle durer pour être conforme ?
La règle WCAG 2.2.1 ne fixe pas de durée minimale : elle exige que l'utilisateur garde la main sur le temps. Vous pouvez conserver une expiration courte (pour la sécurité) à condition d'avertir avant l'échéance et de permettre de prolonger d'une action simple, au moins dix fois. Autrement dit, ce n'est pas la durée qui compte, mais la possibilité de la désactiver, de l'allonger ou de la prolonger.
Un compte à rebours de vente flash est-il interdit ?
Non. Un minuteur purement informatif (« la promotion se termine dans 2 h ») qui ne limite aucune de vos actions n'est pas concerné. La règle s'applique seulement quand le temps contraint une tâche de l'utilisateur — par exemple un panier « réservé 10 minutes » pendant le paiement. Dans ce cas, prévoyez un moyen de prolonger, et affichez le temps restant en texte, pas seulement par une couleur ou une animation.
Mon panier doit-il survivre à une déconnexion pour être conforme ?
Préserver les données du panier après l'expiration est fortement recommandé, mais relève du critère 2.2.6, de niveau AAA : ce n'est donc pas une exigence de l'EAA, qui s'aligne sur le niveau AA. Ce qui est exigible (2.2.1, niveau A), c'est d'avertir avant l'expiration et de laisser prolonger. Cela dit, conserver le panier est l'un des gestes les plus rentables contre l'abandon de commande : utile bien au-delà de la conformité.
Les codes OTP qui expirent vite posent-ils un problème d'accessibilité ?
Oui, s'ils expirent trop vite sans moyen simple d'en obtenir un nouveau. Une personne qui doit ouvrir sa messagerie, ou qui saisit lentement, peut dépasser un délai de 60 secondes. Accordez un délai raisonnable, proposez un bouton « Renvoyer un code » clair, et marquez le champ avec autocomplete="one-time-code" pour que le téléphone propose le code automatiquement. Cela rejoint l'esprit du critère 2.2.1.
Un scan automatique détecte-t-il les problèmes de limite de temps ?
Partiellement seulement. Un outil peut repérer une région live mal posée ou un bouton « Rester connecté » non atteignable au clavier, mais il ne sait pas qu'une session expirera ni qu'un panier sera vidé : ces comportements se vérifient en parcourant le site, lentement, au clavier et au lecteur d'écran. Notre rapport combine ce qui est détectable automatiquement et la liste des points de temps imparti à contrôler manuellement.