Les boutons de la bannière mobile ne répondent pas : dépannage
Vue d'ensemble
Sur certaines boutiques, la bannière de cookies Pandectes peut s'afficher correctement sur les iPhone, mais les actions de la bannière ne sont pas interactives. Dans ce cas, les visiteurs voient la bannière, mais appuyer sur Accept, Deny ou sur le bouton de fermeture « X » ne déclenche aucune réponse.
Dans le cas étudié, le problème n'était pas causé par la configuration de la bannière elle-même. Il provenait d'un conflit JavaScript avec fastclick.js, une ancienne bibliothèque historiquement utilisée pour supprimer le délai de toucher sur les navigateurs mobiles. Les navigateurs mobiles modernes n'ont généralement plus besoin de ce comportement, et conserver FastClick dans le thème peut provoquer des problèmes de gestion des événements.
Pourquoi cela se produit
La bannière Pandectes actuelle est rendue sous forme de composant web (pandectes-cmp). Sur la boutique concernée, fastclick.js interceptait le comportement des touchers et des clics de manière à empêcher les interactions d'atteindre les contrôles de la bannière.
Ce type de problème est particulièrement visible sur les iPhone, car Safari et Chrome sur iOS s'appuient sur le même moteur de navigateur sous-jacent dans les environnements iOS standard. Le même problème d'interaction peut donc apparaître dans les deux navigateurs.
Étape 1. Confirmer le symptôme sur iPhone
Vérifiez le problème sur un véritable iPhone.
Comportement attendu dans ce cas :
- La bannière est visible
- Les boutons s'affichent normalement
- Appuyer sur Accept, Deny ou sur le « X » de fermeture ne fait rien
Cette étape est importante, car le problème peut ne pas se reproduire sur les appareils Android.
Étape 2. Rechercher des conflits JavaScript au niveau du thème
Examinez tout JavaScript personnalisé ou fourni par le thème qui modifie :
- les événements tactiles
- les événements de clic
- la gestion des gestes mobiles
- le comportement de toucher synthétique
Dans le cas confirmé, le script en conflit était :
fastclick.js
Si la boutique utilise d'anciennes bibliothèques d'interaction mobile, elles doivent être examinées en premier.

Étape 3. Désactiver temporairement fastclick.js
À l'aide des outils de développement du navigateur, empêchez le chargement de fastclick.js, puis rechargez la boutique.
Si les boutons de la bannière deviennent cliquables après la désactivation du script, la cause principale est confirmée.
C'est l'étape de validation clé :
- Avec
fastclick.jsactivé : les boutons de la bannière ne répondent pas - Avec
fastclick.jsdésactivé : les boutons de la bannière répondent correctement
Étape 4. Choisir la méthode de résolution
Il existe deux approches valables.
Option A. Supprimer fastclick.js
C'est l'approche à privilégier lorsque le script n'est plus nécessaire au thème ni aux autres fonctionnalités de la boutique.
FastClick ayant été créé pour corriger le délai de toucher sur les anciens navigateurs mobiles, il n'apporte souvent aucun avantage pratique sur les environnements mobiles modernes et peut au contraire créer des conflits d'événements. ([GitHub][1])
Utilisez cette option si :
- le script est ancien
- le thème n'en dépend pas
- les tests confirment l'absence de régressions après la suppression
Option B. Conserver fastclick.js et ajouter un correctif de compatibilité
Si le script doit rester dans le thème, ajoutez le snippet suivant pour que le composant Pandectes soit marqué avec la classe needsclick :
<script>
customElements.whenDefined('pandectes-cmp').then(function() {
document.querySelectorAll('pandectes-cmp').forEach(function(el) {
el.classList.add('needsclick');
});
});
</script>
Cet ajustement indique à FastClick de ne pas interférer avec le composant Pandectes et permet aux actions de la bannière de recevoir correctement les clics.
Étape 5. Placer le snippet dans le thème
Ajoutez le snippet au thème pour qu'il se charge dans le corps de la boutique, généralement avant la balise fermante </body>.
Après avoir enregistré la modification :
- ouvrez la boutique sur un iPhone
- chargez la page où la bannière apparaît
- testez Accept, Deny et le « X » de fermeture
- vérifiez que les contrôles sont désormais interactifs
Étape 6. Retester sur les navigateurs mobiles
Après avoir appliqué le correctif, vérifiez le comportement dans :
- Safari sur iPhone
- Chrome sur iPhone
Comme les navigateurs mobiles partagent généralement le même comportement de moteur dans des conditions normales de boutique, confirmer le correctif dans les deux navigateurs permet de valider que le problème d'interaction est résolu de manière cohérente.
Notes techniques
- Il s'agit d'un problème d'interaction côté interface, et non d'un problème de logique de consentement.
- La bannière peut s'afficher correctement même lorsque la gestion des clics est bloquée.
- Si d'autres scripts modifient aussi la gestion des touchers ou des clics, un examen supplémentaire peut rester nécessaire.
- Dans la mesure du possible, évitez les anciennes bibliothèques d'optimisation du toucher sur les boutiques modernes, sauf en cas de dépendance spécifique et vérifiée.
Résumé
Si la bannière de cookies Pandectes est visible sur mobile mais que ses boutons ne sont pas cliquables, vérifiez d'abord les conflits JavaScript au niveau du thème.
Dans le cas confirmé, fastclick.js bloquait l'interaction avec le composant web pandectes-cmp. Le problème a été résolu en ajoutant la classe needsclick au composant via un petit snippet de compatibilité, tout en conservant le script d'origine.
Mis à jour le : 02/10/2026
Merci !
