ContentGrapher
ContentGrapher
← Changelog
Fixed2026-05-27

Cookie consent banner compliance hardening

The cookie consent banner now closes reliably in all browsers, shows visual confirmation when you choose "Essential only", and presents both options with equal visual weight.

Problem

EEA users clicking "Essential only" received no visual acknowledgment that their preference was saved. In constrained storage environments like private browsing, a latent code bug could prevent the banner from dismissing at all. The button styling also gave "Accept analytics" higher visual weight than "Essential only", a pattern flagged as a dark pattern by EDPB guidelines.

Context

Marin Morchev flagged the consent UX as non-compliant with EDPB dark patterns guidelines (May 2022, updated 2024). The issue was entirely in UX and error-resilience: the underlying consent-blocking logic (gtag default denied for EEA users) was already correct.

Why now

EU Data Protection Authorities (CNIL, DPA-NL, EDPB) have been actively enforcing against choice architecture dark patterns. A consent banner that visually promotes "Accept" over "Reject" is a known enforcement target, and the dismissal bug in private browsing created a second compliance gap.

What changed

The consent state now uses React local state instead of cross-tab storage events, so the banner always closes regardless of whether localStorage is available. Clicking "Essential only" shows a brief confirmation before dismissing. Both buttons now have identical outline styling with equal visual weight.