Consent UX

Cookie banner dark patterns are an enforcement problem

Regulators screenshot buried reject buttons and pre-ticked boxes, and the accepts they pressure out of people make your consent data less useful.

Consent UX 5 min read The UserGuard team

Key takeaways
  • A reject control belongs on the first layer, with the same visual weight and click count as accept. That expectation comes from regulator guidance, and it isn’t in GDPR’s own text.
  • CCPA and CPRA are opt-out regimes built on notice and honored GPC signals instead of prior-consent banners, so the failure there is an opt-out that does nothing.
  • A coerced accept is a data-quality problem. You can act on an accept rate you can explain, which makes it worth more than a high one you engineered.

Why are banner dark patterns an enforcement problem?

Because the cookie banner is one of the few interfaces on a site that a regulator will screenshot. A low-contrast secondary button, a nudge in the microcopy, or one extra click would be harmless on a pricing page, but they become evidence when the thing being designed is consent. Dark patterns in banners are a documented enforcement theme.

California's privacy regulator fined Todd Snyder $345,178 in 2025 after a misconfigured banner left opt-out requests unprocessed for 40 days. Sephora settled with California for $1.2 million in 2022 after ignoring Global Privacy Control signals, and California's privacy regulator ordered Honda to pay $632,500 in 2025 over opt-out flows that asked more of people leaving than of people staying.

None of those cases turned on whether the banner looked good. They turned on whether the interface did what it claimed, and whether the easiest path was also the one that respected the visitor's choice. This is general information and isn't legal advice, but the pattern across the actions is consistent enough to design around.

The reject button regulators expect to see

Under GDPR and ePrivacy, non-essential cookies require prior opt-in, so nothing fires before a clear affirmative act. The expectation that rejecting is as easy as accepting doesn't appear in the GDPR text itself. It comes from regulator guidance, including EDPB work on deceptive design, and from national authorities who have been ruling on banner layouts for years.

In practice that means the reject control sits on the first layer, at the same visual weight, reachable in the same number of clicks as accept. A banner offering "Accept All" as a filled button and "Manage preferences" as gray text two shades off the background is exactly what keeps turning up in enforcement summaries.

The same goes for withdrawal. If giving consent took one click, taking it back shouldn't take a support ticket. Article 7(1) also requires you to be able to demonstrate that consent was given, so the record you keep matters as much as the button you ship.

  • Reject on the first layer, never behind "Manage preferences"
  • Same color, same size, same contrast, same click count as accept
  • Withdrawal reachable from any page, without digging through a policy

Pre-ticked boxes are the oldest of the group and the least defensible. Consent has to be an affirmative act, and a checkbox someone failed to clear isn't one. The same logic covers toggles that default to on, legitimate-interest switches pre-enabled for advertising vendors, and implied-consent language that treats continued scrolling as agreement.

Confirmshaming is a copy problem. Think "No thanks, I prefer irrelevant ads," or a decline option written to make the visitor feel cheap. It works for a while, and it reads badly in a complaint file. Emotional pressure at the moment of choice undercuts any later argument that the choice was freely given.

Cookie walls are still unsettled. Blocking all access unless a visitor accepts tracking has drawn sustained criticism in the EU, and consent-or-pay models remain contested. The UK runs on UK GDPR plus PECR, and the calculation there changed with the Data (Use and Access) Act 2025, which raised PECR penalties to UK GDPR levels. ICO cookie enforcement now carries much larger numbers.

What goes wrong in opt-out states

US comprehensive privacy laws work differently, and mixing them up carries its own risk. CCPA and CPRA are opt-out regimes, which means notice at collection, a working "Do Not Sell or Share My Personal Information" mechanism, and mandatory honoring of Global Privacy Control. California requires no prior-consent banner, apart from opt-in before selling or sharing data on consumers under sixteen, so if you call it a banner law you'll point the work in the wrong direction.

As of 2026, 19+ comprehensive state laws are in force, with Indiana, Kentucky and Rhode Island among the recent additions, and twelve states require universal opt-out signals like GPC to be honored. Maryland goes further and bans the sale of sensitive data outright. The dark pattern here is more often an opt-out that does nothing than a buried button.

That's what Healthline's $1.55 million settlement with California in 2025 turned on: sharing that continued after people had opted out. If your interface acknowledges a signal but your tag stack never acts on it, you're worse off than with no handling at all, because you've created a durable record of a promise you didn't keep. Confirm your own obligations with counsel, though the failure looks the same everywhere.

Does an easy reject button hurt your data?

No. A coerced accept is a data-quality problem. It pads your consented population with people who never wanted to be measured, and it feeds analytics and ad platforms sessions that behave nothing like people who are interested. An accept rate you can explain is worth more than a high one you engineered, because the first one is something you can act on.

Google Consent Mode v2 has been required since March 2024 for Google advertising and measurement features covering EEA and UK users, and it carries four signals: ad_storage, analytics_storage, ad_user_data and ad_personalization. If you wire those to choices people made freely, modeling has useful data to work from. If you wire them to a banner nobody can decline, the data is noise, even if it looks compliant on paper.

In UserGuard, the evidence gate counts something as a cookie only when there's a Set-Cookie header, an HTTP-only record, or a document.cookie value. Everything else is kept as labeled context, which is designed to keep your disclosures tied to what runs on your site. Consent events are tied to site, banner version, region and timestamp, and export to CSV.

We're newly launched, so that describes how the product is designed, and we don't have a long track record yet. UserGuard isn't a Google-certified CMP and isn't IAB TCF validated, and TCF is roadmap only. It costs $10 per site per month with automatic volume discounts (current rates). An accessibility widget is included per site, and GPC and geo-targeting are never behind a tier.

Go deeper: the UserGuard cookie banner · symmetric consent UX, by design

Start today

Put it on your first site today.

Create an account, add one line of code, and the first scan runs in minutes. If it isn’t right, you have thirty days to get your money back.

Get started → 30-day money-back guarantee · cancel anytime