Back to compare picker

Legal acceptance vs Consent prompt vs Review before submit vs Checkbox group vs Confirmation dialog vs Typed confirmation vs Age gate

Use legal acceptance when a user must expressly accept terms, conditions, contracts, policies, or disclosures before access or a transaction; use consent prompt for optional data-use opt-in, review before submit for checking captured answers, checkbox group for ordinary multi-choice input, confirmation dialog or typed confirmation for action-risk prevention, and age gate for eligibility by age.

Learn the decision

Match the interaction to the person's task

Use legal acceptance when a user must expressly accept terms, conditions, contracts, policies, or disclosures before access or a transaction; use consent prompt for optional data-use opt-in, review before submit for checking captured answers, checkbox group for ordinary multi-choice input, confirmation dialog or typed confirmation for action-risk prevention, and age gate for eligibility by age.

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 →

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 →

Review before submit

Use it when: A user has provided multiple answers and should verify them before a consequential submit action.

Make this state clear: Initial review state with grouped captured answers, relevant sections, and explicit submit action.

Observe the result: A user changes their phone number from review, lands on the phone page with the old value pre-filled, saves, and returns directly to review with other answers preserved.

Study the full pattern →

Checkbox group

Use it when: Users can choose zero, one, or many options.

Make this state clear: Unchecked option state.

Observe the result: Clicking the label toggles the checkbox.

Study the full pattern →

Confirmation dialog

Use it when: The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.

Make this state clear: Pre-action state with an explicit consequential trigger.

Observe the result: Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.

Study the full pattern →

Typed confirmation

Use it when: A severe action affects repository, project, workspace, account, production, security, billing, or organization-wide scope.

Make this state clear: Required phrase state showing the exact target phrase to reproduce.

Observe the result: A user starts deleting acme/payments-api, mistypes the repository path, sees the mismatch, and cancels before deleting the wrong repository.

Study the full pattern →

Age gate

Use it when: Age or age band controls whether users may access content, features, commerce, community interaction, personalization, or data collection.

Make this state clear: Age prompt state with reason, threshold, and input format.

Observe the result: An underage user is shown a child-safe version, parent consent route, correction support, and privacy note rather than a dead end that encourages guessing a different birth date.

Study the full pattern →

Practice the judgment: Imagine this situation: A checkout says By paying you agree to terms, but the terms link appears only in a footer after payment is submitted. 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 Legal acceptanceConsent promptReview before submitCheckbox groupConfirmation dialogTyped confirmationAge gate
UI or UX UI + UX - Explicit agreement gate for terms, conditions, contracts, policies, legal disclosures, or updated service rules before access or transaction commitmentUI + UX - Specific opt-in decision for optional data use, participation, communication, sharing, or trainingUI + UX - Final editable answer summary before committing a transactionUI + UX - Multiple-choice form controlUI + UX - Consequential alert decisionUI + UX - Exact target phrase gate before severe commitUI + UX - Eligibility and safety boundary that asks for age, age band, date of birth, verified age, or parent authorization before age-sensitive access, data collection, or content exposure
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.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.Render a single review page immediately before commit with a clear title, grouped answer sections, readable key/value rows, per-answer or per-section Change actions, skipped optional answers when meaningful, and a primary button whose label names the committed action.Render visible native checkboxes with labels, checked states, group legend, select-all-that-apply hint, and group validation state.Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.Render a visible non-secret text field inside a destructive or high-consequence confirmation, labelled with the exact target phrase the user must type before the final action enables.Render the age gate as a clear eligibility boundary that states why age is needed, what threshold or age band applies, which answer format is required, and what happens next.
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.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 review before submit to give users one final chance to verify and correct captured answers before a transaction is sent, paid, published, applied, or otherwise committed.Let users choose independent options and review the selected set before submitting.Help the person reach a clear task outcome.Use typed confirmation only when reproducing the target phrase meaningfully reduces severe wrong-object or wrong-scope mistakes, such as deleting a repository, project, account, workspace, production dataset, or root credential.Use an age gate when the product must adapt, restrict, or verify access because of age-sensitive content, child data protection, app-store rating, regulated features, or parent authorization.
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.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 claim review page has Applicant, Contact details, Evidence, and Declaration sections; each row shows the captured answer and a Change link with hidden context such as Change email address.Visible checkboxes with large hit areas, persistent labels, group legend, and aligned helper text.Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.Delete repository acme/payments-api? requires typing acme/payments-api, shows a mismatch until the exact path matches, and then enables Delete repository.A family app asks a child for an age band, switches to a parent-consent flow for under-13 users, and says which information is collected for the age check.
Bad UI A prechecked agreement checkbox also opts the user into marketing emails and partner sharing.A modal says By continuing you agree to personalized offers and partner sharing, with a large Continue button and a small privacy policy link.Change links lack context, so assistive technology users hear a list of identical Change links.Tiny custom boxes that are hard to target.The red destructive action is enabled immediately and sits where users expect the routine primary button.The typed field is masked like a password, making users unable to check the repository name they entered.An adult-default button encourages users to lie about their age.
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.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 changes their phone number from review, lands on the phone page with the old value pre-filled, saves, and returns directly to review with other answers preserved.Clicking the label toggles the checkbox.Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.A user starts deleting acme/payments-api, mistypes the repository path, sees the mismatch, and cancels before deleting the wrong repository.An underage user is shown a child-safe version, parent consent route, correction support, and privacy note rather than a dead end that encourages guessing a different birth date.
Bad UX The UI claims acceptance because the user continued browsing or clicked Pay.A user clicks Next to finish onboarding and unknowingly opts into marketing because the consent copy was bundled into the terms paragraph.A user selects Change address, edits one field, then has to repeat every later page before finding the review page again.Using checkboxes for mutually exclusive choices.Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.A user believes typing the phrase is the only safeguard, but the dialog hides forks, members, billing effects, and recovery limits.A user denied by an age check can immediately retry unlimited times until they guess an adult birth year.
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.The product needs a user's active agreement for optional data use, marketing, research participation, personalization, partner sharing, AI training, or sensitive-data processing.A user has provided multiple answers and should verify them before a consequential submit action.Users can choose zero, one, or many options.The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.A severe action affects repository, project, workspace, account, production, security, billing, or organization-wide scope.Age or age band controls whether users may access content, features, commerce, community interaction, personalization, or data collection.
Avoid when The choice is optional data processing, marketing, research, or AI training consent; use consent prompt.The choice is only about non-essential cookies or device storage; use cookie banner.The task is a single low-risk field with clear inline validation and an obvious submit action.Only one option can be selected.The action is routine and easily reversible.The action is routine, reversible, local, or recoverable through undo or trash restore.The question is whether an eligible user consents to optional data use; use consent prompt.
Required state Initial unchecked required agreement state.Pre-consent state with optional processing off and the core task still understandable.Initial review state with grouped captured answers, relevant sections, and explicit submit action.Unchecked option state.Pre-action state with an explicit consequential trigger.Required phrase state showing the exact target phrase to reproduce.Age prompt state with reason, threshold, and input format.
Accessibility burden Associate missing-acceptance validation with the agreement control and preserve focus context.Associate every checkbox or toggle with a complete purpose label and consequence description.Use headings that make the review task explicit, such as Check your answers before sending your application.Use programmatic labels for every checkbox.Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.Associate the input with a label that includes or references the required phrase.Label date, month, year, age band, parent email, verification provider, continue, cancel, correction, and appeal controls with the target threshold or action.
Common misuse Relying on continued browsing, payment, account creation, or a footer link as the only acceptance signal.Treating continued use, scrolling, closing, or inactivity as consent.Labelling the final commit button Continue.Using checkboxes for mutually exclusive choices.Asking users to confirm every routine action until they stop reading.Requiring users to type yes, confirm, or delete instead of the target name.Preselecting Yes, I am over 18 or styling the adult path as the obvious safe answer.

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.

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.

Review before submit

UI or UX
UI + UX - Final editable answer summary before committing a transaction
UI guidance
Render a single review page immediately before commit with a clear title, grouped answer sections, readable key/value rows, per-answer or per-section Change actions, skipped optional answers when meaningful, and a primary button whose label names the committed action.
UX guidance
Use review before submit to give users one final chance to verify and correct captured answers before a transaction is sent, paid, published, applied, or otherwise committed.
Good UI
A claim review page has Applicant, Contact details, Evidence, and Declaration sections; each row shows the captured answer and a Change link with hidden context such as Change email address.
Bad UI
Change links lack context, so assistive technology users hear a list of identical Change links.
Good UX
A user changes their phone number from review, lands on the phone page with the old value pre-filled, saves, and returns directly to review with other answers preserved.
Bad UX
A user selects Change address, edits one field, then has to repeat every later page before finding the review page again.
Best fit
A user has provided multiple answers and should verify them before a consequential submit action.
Avoid when
The task is a single low-risk field with clear inline validation and an obvious submit action.
Required state
Initial review state with grouped captured answers, relevant sections, and explicit submit action.
Accessibility burden
Use headings that make the review task explicit, such as Check your answers before sending your application.
Common misuse
Labelling the final commit button Continue.

Checkbox group

UI or UX
UI + UX - Multiple-choice form control
UI guidance
Render visible native checkboxes with labels, checked states, group legend, select-all-that-apply hint, and group validation state.
UX guidance
Let users choose independent options and review the selected set before submitting.
Good UI
Visible checkboxes with large hit areas, persistent labels, group legend, and aligned helper text.
Bad UI
Tiny custom boxes that are hard to target.
Good UX
Clicking the label toggles the checkbox.
Bad UX
Using checkboxes for mutually exclusive choices.
Best fit
Users can choose zero, one, or many options.
Avoid when
Only one option can be selected.
Required state
Unchecked option state.
Accessibility burden
Use programmatic labels for every checkbox.
Common misuse
Using checkboxes for mutually exclusive choices.

Confirmation dialog

UI or UX
UI + UX - Consequential alert decision
UI guidance
Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.
UX guidance
Help the person reach a clear task outcome.
Good UI
Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.
Bad UI
The red destructive action is enabled immediately and sits where users expect the routine primary button.
Good UX
Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.
Bad UX
Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.
Best fit
The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.
Avoid when
The action is routine and easily reversible.
Required state
Pre-action state with an explicit consequential trigger.
Accessibility burden
Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.
Common misuse
Asking users to confirm every routine action until they stop reading.

Typed confirmation

UI or UX
UI + UX - Exact target phrase gate before severe commit
UI guidance
Render a visible non-secret text field inside a destructive or high-consequence confirmation, labelled with the exact target phrase the user must type before the final action enables.
UX guidance
Use typed confirmation only when reproducing the target phrase meaningfully reduces severe wrong-object or wrong-scope mistakes, such as deleting a repository, project, account, workspace, production dataset, or root credential.
Good UI
Delete repository acme/payments-api? requires typing acme/payments-api, shows a mismatch until the exact path matches, and then enables Delete repository.
Bad UI
The typed field is masked like a password, making users unable to check the repository name they entered.
Good UX
A user starts deleting acme/payments-api, mistypes the repository path, sees the mismatch, and cancels before deleting the wrong repository.
Bad UX
A user believes typing the phrase is the only safeguard, but the dialog hides forks, members, billing effects, and recovery limits.
Best fit
A severe action affects repository, project, workspace, account, production, security, billing, or organization-wide scope.
Avoid when
The action is routine, reversible, local, or recoverable through undo or trash restore.
Required state
Required phrase state showing the exact target phrase to reproduce.
Accessibility burden
Associate the input with a label that includes or references the required phrase.
Common misuse
Requiring users to type yes, confirm, or delete instead of the target name.

Age gate

UI or UX
UI + UX - Eligibility and safety boundary that asks for age, age band, date of birth, verified age, or parent authorization before age-sensitive access, data collection, or content exposure
UI guidance
Render the age gate as a clear eligibility boundary that states why age is needed, what threshold or age band applies, which answer format is required, and what happens next.
UX guidance
Use an age gate when the product must adapt, restrict, or verify access because of age-sensitive content, child data protection, app-store rating, regulated features, or parent authorization.
Good UI
A family app asks a child for an age band, switches to a parent-consent flow for under-13 users, and says which information is collected for the age check.
Bad UI
An adult-default button encourages users to lie about their age.
Good UX
An underage user is shown a child-safe version, parent consent route, correction support, and privacy note rather than a dead end that encourages guessing a different birth date.
Bad UX
A user denied by an age check can immediately retry unlimited times until they guess an adult birth year.
Best fit
Age or age band controls whether users may access content, features, commerce, community interaction, personalization, or data collection.
Avoid when
The question is whether an eligible user consents to optional data use; use consent prompt.
Required state
Age prompt state with reason, threshold, and input format.
Accessibility burden
Label date, month, year, age band, parent email, verification provider, continue, cancel, correction, and appeal controls with the target threshold or action.
Common misuse
Preselecting Yes, I am over 18 or styling the adult path as the obvious safe answer.
Decision rules
  • Choose legal acceptance when the user must manifest agreement to terms of service, conditions of sale, service agreement, acceptable-use policy, workplace terms of use, contract amendment, or required legal disclosure before proceeding.
  • Choose consent prompt when the decision is optional data use, marketing, research participation, AI training, partner sharing, personalization, or sensitive-data processing; do not hide optional consent inside legal acceptance.
  • Choose review before submit when the user checks their own captured answers before committing a transaction, not when the key task is accepting a legal document or policy version.
  • Choose checkbox group when the field is an ordinary short set of independent choices; a legal acceptance checkbox is a contract or policy gate with document version, required state, audit record, and blocking behavior.
  • Choose confirmation dialog when the user already invoked a consequential command and must confirm intent; legal acceptance is agreement to a standing rule or transaction term, not just a one-time consequence check.
  • Choose typed confirmation when severe scope requires reproducing a target phrase such as a repository name; legal acceptance should not make users type I agree unless the agreement risk specifically needs a stronger acknowledgement.
  • Choose age gate when eligibility depends on age, age band, or parent authorization; age gate may appear before legal acceptance but it does not replace acceptance of terms.
  • A legal acceptance flow must name the document, version or effective date, owning party, scope, required action, linked or embedded full terms, and consequence of declining.
  • Do not rely on continued browsing, footer links, hidden scroll boxes, prechecked boxes, disabled Continue buttons without errors, or bundled marketing consent as evidence of legal acceptance.
  • For updated terms, show what changed, whether acceptance is required now or after a grace period, what access is blocked, and where the acceptance record can be audited, downloaded, or printed.
Inspect live examples
Failure modes
  • A checkout says By paying you agree to terms, but the terms link appears only in a footer after payment is submitted.
  • A required checkbox is prechecked, so the user never performs a clear acceptance action.
  • Terms acceptance also signs users up for marketing, analytics, and partner sharing.
  • An updated workplace policy blocks access with no document version, effective date, change summary, or decline route.
  • The UI requires scrolling through a tiny embedded legal document but provides no download, print, search, or language alternative.
  • The acceptance record stores only true with no user, document, version, timestamp, locale, or source surface.

Saved items