← Tous les articles

Tutoriels

Masquer les bannières cookies sur chaque site — 5 snippets prêts à coller

Le RGPD devait nous donner le contrôle sur les cookies. Il nous a donné des pop-ups qui bloquent 30% de l'écran sur un site sur deux. Cet article montre cinq façons de se débarrasser de ce mur une fois pour toutes — avec du CSS, du JavaScript et l'extension JustZix.

Est-ce légal ?

Oui. Le RGPD et la directive ePrivacy imposent des obligations à l'opérateur du site (il doit demander le consentement avant de poser des cookies). De votre côté — en tant qu'utilisateur — vous êtes libre de modifier l'apparence d'un site dans votre navigateur. Comme n'importe quel bloqueur de pub ou le mode Lecture de Safari. Une réserve importante : masquer la bannière ne vaut généralement pas consentement aux cookies — la plupart des sites ne posent que les cookies strictement nécessaires tant que vous ne cliquez pas explicitement sur « Accepter ».

Méthode 1 — CSS universel ciblant les classes courantes

Le plus simple et le plus sûr. Attrape ~80% des bannières sur le web :

/* Bannières cookies — classes et ID courants */
.cookie-banner,
.cookie-notice,
.cookie-consent,
.gdpr-banner,
.consent-banner,
#cookie-notice,
#cookieConsent,
#onetrust-banner-sdk,
[class*="CookieConsent"],
[id*="cookie-bar"] {
  display: none !important;
}

/* Beaucoup de bannières bloquent le scroll du body jusqu'au clic */
html, body {
  overflow: auto !important;
  position: static !important;
}

Le deuxième bloc est crucial — beaucoup de bannières posent overflow: hidden sur <body> pour bloquer le défilement tant que vous n'acceptez pas. Forcer overflow: auto rétablit le comportement normal.

Méthode 2 — sélecteurs d'attributs agressifs

Quand un site utilise des noms de classes dynamiques (Tailwind, CSS-in-JS) et que le motif de base ne correspond pas, ciblez les attributs :

/* Attrape tout ce qui a "cookie" ou "consent" dans la classe / l'ID */
[class*="cookie" i],
[id*="cookie" i],
[class*="consent" i],
[id*="consent" i],
[class*="gdpr" i],
[role="dialog"][aria-label*="cookie" i] {
  display: none !important;
}

Le drapeau i dans les sélecteurs d'attributs (p. ex. [class*="cookie" i]) les rend insensibles à la casse. Sans lui, .CookieBanner ne correspondrait pas à "cookie".

Avertissement : ce snippet peut trop attraper — p. ex. un article sur les cookies (la loi !) sera masqué aussi. Utilisez-le avec discernement, idéalement dans un dossier de règles limité à des domaines précis.

Méthode 3 — sélecteur :has() (moderne)

Depuis Chrome 105 et Safari 15.4, vous pouvez utiliser :has() — un sélecteur qui cible un élément contenant un enfant correspondant à un motif. Parfait pour les bannières cookies, car elles ont toujours un bouton « Accepter » à l'intérieur :

/* Version pratique — cibler les conteneurs fixed/sticky avec un bouton Accept */
div:has(> button[aria-label*="Accept" i]),
div:has(> button[aria-label*="cookie" i]),
aside:has(> button[aria-label*="consent" i]) {
  display: none !important;
}

CSS ne supporte pas :contains() (c'est une invention de jQuery). Nous ciblons plutôt l'attribut aria-label — les bannières bien conçues en ont un de toute façon pour les lecteurs d'écran.

Méthode 4 — JavaScript clique « Accepter » automatiquement

Quand le CSS ne suffit pas (bannière dans le Shadow DOM, bloqueur pleine page), le JS clique pour vous. Plus vite que vous ne le remarquez :

// Clique automatiquement les boutons "Accepter" — fonctionne aussi dans les iframes
let attempts = 0;
const interval = setInterval(() => {
  if (++attempts > 20) return clearInterval(interval);

  const candidates = [
    ...document.querySelectorAll('button, a[role="button"], input[type="button"]')
  ];

  const target = candidates.find(el => {
    const text = (el.textContent || el.value || '').trim().toLowerCase();
    const aria = (el.getAttribute('aria-label') || '').toLowerCase();
    return /^(tout accepter|accepter|j'accepte|autoriser tout|accept all|accept)$/i
      .test(text) || /accept|accepter|autoriser/.test(aria);
  });

  if (target) {
    target.click();
    clearInterval(interval);
  }
}, 500);

Il sonde toutes les 500ms pendant 10 secondes (20 tentatives × 500ms). Trouve le premier bouton correspondant — clique et s'arrête. En pratique : vous ne voyez même pas la bannière.

Note éthique : en cliquant « Accepter » vous consentez aux cookies marketing. Si cela vous dérange — utilisez les méthodes 1+2 (masquer sans accepter). Le site vous voit alors comme un utilisateur anonyme qui n'a simplement pas répondu.

Méthode 5 — Shadow DOM (cas extrêmes)

OneTrust, Cookiebot, Usercentrics — les SaaS de bannières cookies les plus populaires — affichent souvent leur interface dans le Shadow DOM. Le CSS extérieur au shadow root ne peut pas l'atteindre. Il faut du JS :

// Trouver l'élément hôte (par noms courants), entrer dans son shadowRoot
function hideShadowBanners() {
  const hosts = document.querySelectorAll(
    '#onetrust-consent-sdk, #usercentrics-root, #CybotCookiebotDialog'
  );

  hosts.forEach(host => {
    host.style.display = 'none';
    // Plus le contenu shadow (s'il utilise le shadow DOM)
    if (host.shadowRoot) {
      const style = document.createElement('style');
      style.textContent = ':host { display: none !important; }';
      host.shadowRoot.appendChild(style);
    }
  });
}

// Premier passage + observer pour les insertions tardives
hideShadowBanners();
new MutationObserver(hideShadowBanners)
  .observe(document.body, { childList: true, subtree: true });

Le MutationObserver attrape aussi les bannières qui s'insèrent après DOMContentLoaded — typiquement les scripts de tracking chargent en asynchrone et la bannière apparaît 1-2 secondes après le chargement de la page.

Comment brancher cela dans JustZix

  1. Installez l'extension (page de téléchargement — ZIP, 2 minutes).
  2. Cliquez sur l'icône JustZix → « Nouvelle règle ».
  3. Motif d'URL : * (pour appliquer partout) ou https://example.com/* (un domaine).
  4. Dans l'onglet CSS, collez la Méthode 1 (universelle) — laissez-la active.
  5. Si vous tombez sur un site où rien n'est masqué — ajoutez la Méthode 4 comme règle JS, limitée à ce domaine.
  6. Synchronisez votre clé entre appareils — la bannière disparaît sur votre portable, votre PC et votre ordinateur de travail simultanément.

Pièges à éviter

Et ensuite

La même approche fonctionne pour les autres tueurs d'UX : pop-ups de newsletter, « activer les notifications », aperçus de paywall. Voyez d'autres snippets prêts à coller dans la section Exemples, ou des cas d'usage réels pour JustZix.

Installez JustZix et écrivez vos propres règles. Le premier snippet de cet article collé dans l'extension = la bannière disparaît sur 80% des sites. Le reste n'est qu'une itération par domaine problématique.

Notez cet article

Aucune note — soyez le premier.

Essayez vous-même

Installez JustZix et collez n'importe quel snippet de cet article. Deux minutes de zéro à une règle fonctionnelle sur tous vos appareils.

Obtenir JustZix

Fonctionnalités · Comment ça marche · Exemples · Cas d'usage