AccueilTemps imparti, sessions et panier qui expire

Guide pratique · Limites de temps & sessions

Temps imparti, sessions et panier qui expire : la règle WCAG

Mis à jour le 15 juin 2026 Lecture : 10 min Référence : EAA · WCAG 2.1 AA

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

1 Rendre toute limite de temps réglable

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.

Conforme — à 20 secondes de l'expiration, une alerte « Votre session va expirer » avec un bouton « Rester connecté » qui ajoute du temps.
À éviter — la session expire au bout de 10 minutes d'inactivité, déconnecte l'utilisateur et vide le panier, sans aucun avertissement ni moyen de prolonger.
WCAG 2.2.1 (A)

→ Voir aussi le tunnel de commande accessible.

2 Prévenir avant l'expiration d'une session

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).

Conforme — « Pour votre sécurité, vous serez déconnecté dans 2 minutes. Rester connecté / Se déconnecter » — et au retour, le panier est toujours là.
À éviter — déconnexion silencieuse : l'utilisateur revient sur la page, son panier et son adresse de livraison ont disparu.
WCAG 2.2.1 (A)

→ Voir aussi messages d'erreur et validation accessibles.

3 Comptes à rebours : informer sans piéger

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.

Conforme — « Votre panier est réservé encore 9:30. Besoin de plus de temps ? » avec un bouton qui prolonge la réservation.
À éviter — un minuteur de réservation qui libère le panier à zéro sans aucune option pour le prolonger, en pleine saisie de l'adresse.
WCAG 2.2.1 (A) · 1.4.1 (A)

→ Voir aussi carrousels, animations et mouvement.

4 Codes à usage unique : laisser le temps de saisir

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).

Conforme — « Code valable 10 minutes. Renvoyer un code » ; le champ porte autocomplete="one-time-code".
À éviter — un code qui expire en 60 secondes, sans bouton de renvoi : la personne qui a dû ouvrir sa messagerie est déjà hors délai.
WCAG 2.2.1 (A) · 1.3.5 (AA)

→ Voir aussi la navigation au clavier.

5 Annoncer l'avertissement de temps aux lecteurs d'écran

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.

Conforme — l'alerte est dans une région aria-live : NVDA annonce « Votre session expire dans 2 minutes, bouton Rester connecté ».
À éviter — une modale d'expiration affichée en <div> sans rôle ni région live : à l'écoute, rien — l'utilisateur est déconnecté sans l'avoir su.
WCAG 4.1.3 (AA) · 2.1.1 (A) · 4.1.2 (A)

→ Voir aussi les composants interactifs accessibles.

6 Préserver les données (recommandé, niveau AAA)

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).

Recommandé — après reconnexion, l'utilisateur retrouve son panier complet et reprend exactement où il s'était arrêté.
À éviter — l'expiration vide le panier et impose de tout re-sélectionner : la plupart des gens abandonnent à ce stade.
WCAG 2.2.6 · 2.2.3 (AAA) — bonnes pratiques, hors exigence EAA

Récapitulatif : ce qui est exigible, ce qui est recommandé

Critères des WCAG 2.1 liés au temps imparti. Seuls les niveaux A et AA sont exigés par l'EAA via l'EN 301 549 ; les critères AAA sont des bonnes pratiques recommandées.
Point à vérifierNiveauStatut EAA
Limite de temps désactivable, allongeable ou prolongeable — 2.2.1AExigé
Atteindre le bouton « Rester connecté » au clavier — 2.1.1AExigé
Avertissement de temps annoncé (région live) — 4.1.3AAExigé
Vérifier / confirmer une transaction avant validation — 3.3.4AAExigé
Préserver les données après expiration — 2.2.6AAARecommandé
Aucune limite de temps imposée — 2.2.3AAARecommandé
Le piège n°1 : la session qui expire en silence et vide le panier. C'est à la fois un manquement au critère 2.2.1 (niveau A, exigible) et la cause la plus directe d'abandon de commande : l'utilisateur revient, son panier a disparu, il s'en va. Le correctif tient en trois gestes : avertir au moins 20 secondes avant l'échéance, offrir un bouton « Rester connecté » atteignable au clavier et annoncé au lecteur d'écran, et — fortement recommandé — conserver le panier au retour.
Un overlay « accessibilité » ne corrige pas une limite de temps : la durée d'une session, l'expiration d'un panier ou la validité d'un code OTP sont gérées par votre serveur et votre logique métier, hors de portée d'un script ajouté côté navigateur. Rappel : la FTC américaine a sanctionné un éditeur d'overlay d'un million de dollars pour des allégations de conformité trompeuses. Voir pourquoi les overlays ne suffisent pas.

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.