Back to compare picker

Dark-pattern consent vs Consent prompt vs Cookie consent vs Cookie banner vs Legal acceptance vs Preference center

Flag dark-pattern consent when a consent or tracking choice is shaped to obtain agreement through hidden refusal, unequal effort, preselection, bundling, pressure, obstruction, or processing before choice; use consent prompt for the corrected optional data-use opt-in, cookie consent for purpose-level cookie runtime enforcement, cookie banner for the first-layer cookie surface, legal acceptance for required terms, and preference center for later durable settings.

Learn the decision

Match the interaction to the person's task

Flag dark-pattern consent when a consent or tracking choice is shaped to obtain agreement through hidden refusal, unequal effort, preselection, bundling, pressure, obstruction, or processing before choice; use consent prompt for the corrected optional data-use opt-in, cookie consent for purpose-level cookie runtime enforcement, cookie banner for the first-layer cookie surface, legal acceptance for required terms, and preference center for later durable settings.

Dark-pattern consent

Use it when: A UX review, privacy review, legal review, accessibility review, or support report identifies manipulation in a consent, cookie, marketing, sharing, AI training, or data-use choice.

Make this state clear: Accept-dominant state where accept is easier or more visually prominent than reject.

Observe the result: A user rejects advertising cookies, completes the service, and later opens privacy settings to enable analytics only.

Study the full pattern →

Consent prompt

Use it when: The product needs a user's active agreement for optional data use, marketing, research participation, personalization, partner sharing, AI training, or sensitive-data processing.

Make this state clear: Pre-consent state with optional processing off and the core task still understandable.

Observe the result: A user consents to a beta research study, sees what data will be reviewed, receives a saved confirmation, and later withdraws from the account privacy page with the same purpose label.

Study the full pattern →

Cookie consent

Use it when: The service needs purpose-level runtime enforcement and an evidence record for optional storage choices.

Make this state clear: Pre-consent state with optional storage blocked.

Observe the result: A user rejects all optional cookies, continues using the service, later opens Cookie settings, enables analytics only, receives a saved confirmation, and can withdraw again.

Study the full pattern →

Cookie banner

Use it when: The service sets non-essential cookies or similar device storage technologies.

Make this state clear: Accept non-essential cookies state.

Observe the result: A user changes their mind from Accept to Reject in cookie settings and optional tracking stops for future page loads.

Study the full pattern →

Legal acceptance

Use it when: A user must accept terms of service, conditions of sale, policy documents, service agreements, acceptable-use rules, or legal disclosures before access or transaction completion.

Make this state clear: Initial unchecked required agreement state.

Observe the result: A returning user sees updated terms with a change summary, old and new effective dates, a download route, an accept action, and a clear message that access pauses if they decline.

Study the full pattern →

Preference center

Use it when: Users need to revisit and change communication, consent, topic, personalization, privacy, channel, language, or data-sharing choices.

Make this state clear: Overview with preference categories and current effective status

Observe the result: A user turns off promotional email, keeps outage SMS and account security email, changes language to Spanish, withdraws ad personalization, and sees which transactional messages remain required.

Study the full pattern →

Practice the judgment: Imagine this situation: The first layer has Accept all and Manage settings, but Reject all exists only after several screens. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Dark-pattern consentConsent promptCookie consentCookie bannerLegal acceptancePreference center
UI or UX UI + UX - Anti-pattern where consent, cookie, marketing, sharing, or data-use choices are shaped to obtain agreement without a fair, informed, reversible decisionUI + UX - Specific opt-in decision for optional data use, participation, communication, sharing, or trainingUI + UX - Purpose-level consent and runtime enforcement model for cookies, local storage, pixels, tags, SDKs, and similar device storage or accessUI + UX - Cookie and tracking consent controlUI + UX - Explicit agreement gate for terms, conditions, contracts, policies, legal disclosures, or updated service rules before access or transaction commitmentUI + UX - Persistent hub for communication, consent, topic, privacy, language, and personalization choices
UI guidance Give each control a clear label and visible state.Render a consent prompt as a focused opt-in decision that names the requester, purpose, data involved, optionality, benefit, consequence of declining, withdrawal route, and consent record before the user chooses.Present strictly necessary storage separately from optional cookie purposes such as analytics, advertising, personalization, functional enhancements, pixels, SDKs, and similar technologies.Render a clearly labelled cookie banner at the top of the document before ordinary page content, with service-specific copy, essential-cookie information, equal accept and reject actions for non-essential purposes, and a link to detailed cookie settings.Render legal acceptance as a required agreement control that names the document, owner, version or effective date, scope, linked or embedded full terms, and consequence of accepting or declining.Render a preference center as a returnable hub with categories for communications, channels, topics or interests, notification delivery, privacy and data sharing, cookie or tracking consent, personalization, language or locale, required messages, managed values, source-of-truth status, and save feedback.
UX guidance Help the person reach a clear task outcome.Use consent prompt when the product needs the user to knowingly agree to a specific optional data-processing purpose such as marketing, research participation, AI training, personalization, partner sharing, or sensitive-data use.Use cookie consent when the user must decide which non-essential storage or tracking purposes can run before optional cookies, tags, pixels, local storage, or SDKs are activated.Use a cookie banner to collect or confirm choices for non-essential cookies, local storage, pixels, service-worker storage, analytics, advertising, personalization, or similar device storage technologies.Use legal acceptance when users must knowingly agree to terms of service, conditions of sale, workplace terms of use, contract amendments, policy acknowledgements, or other legal documents before proceeding.Make the effective result clear before and after save: what changes now, what stays required, which rows are policy-managed, which external system owns the value, and where users can withdraw consent or unsubscribe.
Good UI A cookie surface shows Accept all, Reject all, and Manage choices at the same level, with analytics and advertising off until selected.An AI writing tool asks whether the user wants workspace snippets used to improve future suggestions, shows included data types, keeps the default off, and records the consent version after opt-in.A cookie settings page shows essential cookies locked on, analytics, personalization, and advertising off by default, plus Accept all, Reject all, Save choices, and a vendor details panel.A service banner says it uses essential cookies and asks to use analytics cookies, with Accept analytics cookies, Reject analytics cookies, and View cookies controls at the same level.A checkout step shows an unchecked I agree to the conditions of sale checkbox beside linked terms, blocks Place order until checked, and validates the missing agreement next to the checkbox.A customer account preference center shows Email, SMS, Push, Topics, Cookies, Data sharing, Language, and Required service messages, each with current status, scope, and last saved time.
Bad UI Accept all is a large primary button while Reject all is a low-contrast link in a second layer.A modal says By continuing you agree to personalized offers and partner sharing, with a large Continue button and a small privacy policy link.A second-layer settings panel has all optional cookie categories preselected and a prominent Save button.A banner says by continuing you accept cookies and fires analytics before any button is clicked.A prechecked agreement checkbox also opts the user into marketing emails and partner sharing.A single Receive updates switch hides whether it controls marketing email, SMS, push, product notices, analytics consent, or service messages.
Good UX A user rejects advertising cookies, completes the service, and later opens privacy settings to enable analytics only.A user consents to a beta research study, sees what data will be reviewed, receives a saved confirmation, and later withdraws from the account privacy page with the same purpose label.A user rejects all optional cookies, continues using the service, later opens Cookie settings, enables analytics only, receives a saved confirmation, and can withdraw again.A user changes their mind from Accept to Reject in cookie settings and optional tracking stops for future page loads.A returning user sees updated terms with a change summary, old and new effective dates, a download route, an accept action, and a clear message that access pauses if they decline.A user turns off promotional email, keeps outage SMS and account security email, changes language to Spanish, withdraws ad personalization, and sees which transactional messages remain required.
Bad UX A user clicks Continue to dismiss a modal and unknowingly consents to marketing, analytics, and partner sharing.A user clicks Next to finish onboarding and unknowingly opts into marketing because the consent copy was bundled into the terms paragraph.The user closes the banner and the product treats inactivity as consent to advertising cookies.Reject only closes the banner while ad pixels and analytics continue firing.The UI claims acceptance because the user continued browsing or clicked Pay.A user opts out of marketing email but continues receiving promotional SMS because the channel matrix was hidden.
Best fit A UX review, privacy review, legal review, accessibility review, or support report identifies manipulation in a consent, cookie, marketing, sharing, AI training, or data-use choice.The product needs a user's active agreement for optional data use, marketing, research participation, personalization, partner sharing, AI training, or sensitive-data processing.The service needs purpose-level runtime enforcement and an evidence record for optional storage choices.The service sets non-essential cookies or similar device storage technologies.A user must accept terms of service, conditions of sale, policy documents, service agreements, acceptable-use rules, or legal disclosures before access or transaction completion.Users need to revisit and change communication, consent, topic, personalization, privacy, channel, language, or data-sharing choices.
Avoid when The flow already offers a fair active opt-in for optional non-cookie data use; use consent prompt.The choice is only about non-essential cookies or device storage; use cookie banner.The product only needs to show the first-layer cookie notice; use cookie banner.The service uses only strictly necessary cookies and can explain them on a cookies page.The choice is optional data processing, marketing, research, or AI training consent; use consent prompt.The product only needs a small app setting unrelated to communications, consent, or personalization.
Required state Accept-dominant state where accept is easier or more visually prominent than reject.Pre-consent state with optional processing off and the core task still understandable.Pre-consent state with optional storage blocked.Accept non-essential cookies state.Initial unchecked required agreement state.Overview with preference categories and current effective status
Accessibility burden Expose accept, reject, customize, and withdrawal controls as clearly labelled native controls in keyboard order.Associate every checkbox or toggle with a complete purpose label and consequence description.Use native buttons and form controls for accept, reject, save, and purpose choices.Label the cookie banner region with the service name so users know which service is asking for the choice.Associate missing-acceptance validation with the agreement control and preserve focus context.Group categories with headings, fieldsets, legends, and persistent labels that name the affected channel, purpose, topic, source, and scope.
Common misuse Showing Accept all as the only button and hiding Reject all inside Manage settings.Treating continued use, scrolling, closing, or inactivity as consent.Firing analytics or advertising tags before the user chooses.Accept-only banners.Relying on continued browsing, payment, account creation, or a footer link as the only acceptance signal.Using one master preference switch for communication, privacy, cookies, topics, and required messages.

Dark-pattern consent

UI or UX
UI + UX - Anti-pattern where consent, cookie, marketing, sharing, or data-use choices are shaped to obtain agreement without a fair, informed, reversible decision
UI guidance
Give each control a clear label and visible state.
UX guidance
Help the person reach a clear task outcome.
Good UI
A cookie surface shows Accept all, Reject all, and Manage choices at the same level, with analytics and advertising off until selected.
Bad UI
Accept all is a large primary button while Reject all is a low-contrast link in a second layer.
Good UX
A user rejects advertising cookies, completes the service, and later opens privacy settings to enable analytics only.
Bad UX
A user clicks Continue to dismiss a modal and unknowingly consents to marketing, analytics, and partner sharing.
Best fit
A UX review, privacy review, legal review, accessibility review, or support report identifies manipulation in a consent, cookie, marketing, sharing, AI training, or data-use choice.
Avoid when
The flow already offers a fair active opt-in for optional non-cookie data use; use consent prompt.
Required state
Accept-dominant state where accept is easier or more visually prominent than reject.
Accessibility burden
Expose accept, reject, customize, and withdrawal controls as clearly labelled native controls in keyboard order.
Common misuse
Showing Accept all as the only button and hiding Reject all inside Manage settings.

Consent prompt

UI or UX
UI + UX - Specific opt-in decision for optional data use, participation, communication, sharing, or training
UI guidance
Render a consent prompt as a focused opt-in decision that names the requester, purpose, data involved, optionality, benefit, consequence of declining, withdrawal route, and consent record before the user chooses.
UX guidance
Use consent prompt when the product needs the user to knowingly agree to a specific optional data-processing purpose such as marketing, research participation, AI training, personalization, partner sharing, or sensitive-data use.
Good UI
An AI writing tool asks whether the user wants workspace snippets used to improve future suggestions, shows included data types, keeps the default off, and records the consent version after opt-in.
Bad UI
A modal says By continuing you agree to personalized offers and partner sharing, with a large Continue button and a small privacy policy link.
Good UX
A user consents to a beta research study, sees what data will be reviewed, receives a saved confirmation, and later withdraws from the account privacy page with the same purpose label.
Bad UX
A user clicks Next to finish onboarding and unknowingly opts into marketing because the consent copy was bundled into the terms paragraph.
Best fit
The product needs a user's active agreement for optional data use, marketing, research participation, personalization, partner sharing, AI training, or sensitive-data processing.
Avoid when
The choice is only about non-essential cookies or device storage; use cookie banner.
Required state
Pre-consent state with optional processing off and the core task still understandable.
Accessibility burden
Associate every checkbox or toggle with a complete purpose label and consequence description.
Common misuse
Treating continued use, scrolling, closing, or inactivity as consent.

Cookie consent

UI or UX
UI + UX - Purpose-level consent and runtime enforcement model for cookies, local storage, pixels, tags, SDKs, and similar device storage or access
UI guidance
Present strictly necessary storage separately from optional cookie purposes such as analytics, advertising, personalization, functional enhancements, pixels, SDKs, and similar technologies.
UX guidance
Use cookie consent when the user must decide which non-essential storage or tracking purposes can run before optional cookies, tags, pixels, local storage, or SDKs are activated.
Good UI
A cookie settings page shows essential cookies locked on, analytics, personalization, and advertising off by default, plus Accept all, Reject all, Save choices, and a vendor details panel.
Bad UI
A second-layer settings panel has all optional cookie categories preselected and a prominent Save button.
Good UX
A user rejects all optional cookies, continues using the service, later opens Cookie settings, enables analytics only, receives a saved confirmation, and can withdraw again.
Bad UX
The user closes the banner and the product treats inactivity as consent to advertising cookies.
Best fit
The service needs purpose-level runtime enforcement and an evidence record for optional storage choices.
Avoid when
The product only needs to show the first-layer cookie notice; use cookie banner.
Required state
Pre-consent state with optional storage blocked.
Accessibility burden
Use native buttons and form controls for accept, reject, save, and purpose choices.
Common misuse
Firing analytics or advertising tags before the user chooses.

Cookie banner

UI or UX
UI + UX - Cookie and tracking consent control
UI guidance
Render a clearly labelled cookie banner at the top of the document before ordinary page content, with service-specific copy, essential-cookie information, equal accept and reject actions for non-essential purposes, and a link to detailed cookie settings.
UX guidance
Use a cookie banner to collect or confirm choices for non-essential cookies, local storage, pixels, service-worker storage, analytics, advertising, personalization, or similar device storage technologies.
Good UI
A service banner says it uses essential cookies and asks to use analytics cookies, with Accept analytics cookies, Reject analytics cookies, and View cookies controls at the same level.
Bad UI
A banner says by continuing you accept cookies and fires analytics before any button is clicked.
Good UX
A user changes their mind from Accept to Reject in cookie settings and optional tracking stops for future page loads.
Bad UX
Reject only closes the banner while ad pixels and analytics continue firing.
Best fit
The service sets non-essential cookies or similar device storage technologies.
Avoid when
The service uses only strictly necessary cookies and can explain them on a cookies page.
Required state
Accept non-essential cookies state.
Accessibility burden
Label the cookie banner region with the service name so users know which service is asking for the choice.
Common misuse
Accept-only banners.

Legal acceptance

UI or UX
UI + UX - Explicit agreement gate for terms, conditions, contracts, policies, legal disclosures, or updated service rules before access or transaction commitment
UI guidance
Render legal acceptance as a required agreement control that names the document, owner, version or effective date, scope, linked or embedded full terms, and consequence of accepting or declining.
UX guidance
Use legal acceptance when users must knowingly agree to terms of service, conditions of sale, workplace terms of use, contract amendments, policy acknowledgements, or other legal documents before proceeding.
Good UI
A checkout step shows an unchecked I agree to the conditions of sale checkbox beside linked terms, blocks Place order until checked, and validates the missing agreement next to the checkbox.
Bad UI
A prechecked agreement checkbox also opts the user into marketing emails and partner sharing.
Good UX
A returning user sees updated terms with a change summary, old and new effective dates, a download route, an accept action, and a clear message that access pauses if they decline.
Bad UX
The UI claims acceptance because the user continued browsing or clicked Pay.
Best fit
A user must accept terms of service, conditions of sale, policy documents, service agreements, acceptable-use rules, or legal disclosures before access or transaction completion.
Avoid when
The choice is optional data processing, marketing, research, or AI training consent; use consent prompt.
Required state
Initial unchecked required agreement state.
Accessibility burden
Associate missing-acceptance validation with the agreement control and preserve focus context.
Common misuse
Relying on continued browsing, payment, account creation, or a footer link as the only acceptance signal.

Preference center

UI or UX
UI + UX - Persistent hub for communication, consent, topic, privacy, language, and personalization choices
UI guidance
Render a preference center as a returnable hub with categories for communications, channels, topics or interests, notification delivery, privacy and data sharing, cookie or tracking consent, personalization, language or locale, required messages, managed values, source-of-truth status, and save feedback.
UX guidance
Make the effective result clear before and after save: what changes now, what stays required, which rows are policy-managed, which external system owns the value, and where users can withdraw consent or unsubscribe.
Good UI
A customer account preference center shows Email, SMS, Push, Topics, Cookies, Data sharing, Language, and Required service messages, each with current status, scope, and last saved time.
Bad UI
A single Receive updates switch hides whether it controls marketing email, SMS, push, product notices, analytics consent, or service messages.
Good UX
A user turns off promotional email, keeps outage SMS and account security email, changes language to Spanish, withdraws ad personalization, and sees which transactional messages remain required.
Bad UX
A user opts out of marketing email but continues receiving promotional SMS because the channel matrix was hidden.
Best fit
Users need to revisit and change communication, consent, topic, personalization, privacy, channel, language, or data-sharing choices.
Avoid when
The product only needs a small app setting unrelated to communications, consent, or personalization.
Required state
Overview with preference categories and current effective status
Accessibility burden
Group categories with headings, fieldsets, legends, and persistent labels that name the affected channel, purpose, topic, source, and scope.
Common misuse
Using one master preference switch for communication, privacy, cookies, topics, and required messages.
Decision rules
  • Choose dark-pattern consent when Accept all is one click but Reject all, customize, or withdraw is hidden, delayed, visually de-emphasized, split across screens, or labelled to shame refusal.
  • Choose dark-pattern consent when optional marketing, analytics, research, AI training, partner sharing, personalization, or advertising purposes are preselected or bundled into a broad agree and continue action.
  • Choose dark-pattern consent when optional cookies, pixels, tags, SDKs, sharing, marketing, or AI training starts before the user makes the matching choice.
  • Choose dark-pattern consent when refusal blocks eligible service access, triggers repeated nags, erases task progress, or makes withdrawal materially harder than acceptance.
  • Choose consent prompt when the corrected task is a specific optional non-cookie data-use opt-in with named requester, data, purpose, optionality, accept, decline, withdrawal, and evidence record.
  • Choose cookie consent when the corrected task is purpose-level runtime control for cookies, pixels, local storage, tags, SDKs, browser signals, withdrawal, renewal, and tag blocking.
  • Choose cookie banner when the immediate design surface is the first-layer notice that introduces cookie choices and routes to accept, reject, or manage settings.
  • Choose legal acceptance when the user must accept required terms, conditions, contracts, policies, or disclosures; optional consent must stay separate from the legal agreement.
  • Choose preference center when users return later to manage consent, cookies, communications, language, privacy, and account preferences from a durable hub.
  • Do not count a consent record as valid evidence if the visible path relied on preselected choices, continued browsing, inactivity, hidden refusal, deceptive contrast, bundled purposes, consent wall pressure, or processing before choice.
Inspect live examples
Failure modes
  • The first layer has Accept all and Manage settings, but Reject all exists only after several screens.
  • Optional analytics, advertising, personalization, and partner sharing are already selected when the user opens settings.
  • A checkout terms checkbox also opts users into marketing emails and partner sharing.
  • A site fires advertising tags before the cookie banner is answered.
  • A user who rejects optional tracking is blocked from ordinary service content or repeatedly prompted until accepting.
  • Withdrawal exists only in a privacy policy paragraph rather than the active preference or consent surface.

Saved items