Back to compare picker

Permission prompt with no context vs Permission request vs Location permission flow vs Consent prompt vs Permission denied state vs Notification preferences

Choose permission request when the corrected flow asks in context, names the resource and feature, invokes the system prompt from a deliberate user action, handles grant and deny outcomes, and provides manual entry, manual fallback, or settings recovery.

Learn the decision

Match the interaction to the person's task

Choose permission request when the corrected flow asks in context, names the resource and feature, invokes the system prompt from a deliberate user action, handles grant and deny outcomes, and provides manual entry, manual fallback, or settings recovery.

Permission prompt with no context

Use it when: A product currently asks for device, browser, or app permissions before the relevant feature context exists.

Make this state clear: Cold-start prompt state before the user chooses a relevant feature.

Observe the result: A user declines camera access for receipt scanning, uploads an image instead, and can keep using expense entry.

Study the full pattern →

Permission request

Use it when: A feature needs operating-system, browser, or device authorization to access location, camera, microphone, photos, contacts, notifications, Bluetooth, clipboard, motion sensors, storage access, or another powerful feature.

Make this state clear: Contextual request state tied to the user action that needs the resource.

Observe the result: A user denies precise location, chooses approximate location instead, and the app still shows nearby pickup points with lower accuracy.

Study the full pattern →

Location permission flow

Use it when: Current device coordinates materially improve a task such as nearby search, route start, check-in, delivery estimate, safety sharing, field work, or support diagnostics.

Make this state clear: Unsupported browser, blocked iframe, missing permissions policy, insecure context, or disabled location services state.

Observe the result: A user taps Check in nearby, grants Allow once, sees the current fix and accuracy, confirms the place, and the app discards coordinates after check-in.

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 →

Permission denied state

Use it when: A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.

Make this state clear: Whole-object access denied state.

Observe the result: A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.

Study the full pattern →

Notification preferences

Use it when: Users receive enough notifications that they need control over type, channel, device, frequency, timing, or source.

Make this state clear: Default notification preferences state.

Observe the result: A user keeps mentions and assigned-work banners on, moves repository watch updates to daily digest, mutes marketing email, and sees a preview of what will still notify them during quiet hours.

Study the full pattern →

Practice the judgment: Imagine this situation: A first-run onboarding checklist asks for location, notifications, contacts, and photos before the user chooses any task. 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 Permission prompt with no contextPermission requestLocation permission flowConsent promptPermission denied stateNotification preferences
UI or UX UI + UX - Anti-pattern for platform permission prompts shown without a feature-triggered rationale, fallback, or recovery pathUI + UX - Contextual operating-system or browser permission request for device resources, powerful browser features, private user data, or local capabilitiesUI + UX - Permission-gated current-location request and recovery flowUI + UX - Specific opt-in decision for optional data use, participation, communication, sharing, or trainingUI + UX - Authorization and access-boundary stateUI + UX - User-controlled rules for notification type, channel, frequency, timing, privacy, and exceptions
UI guidance Replace a contextless permission prompt with a contextual feature gate that names the resource, task, timing, choices, fallback, denial outcome, and settings recovery before invoking the system prompt.Render a permission request as a contextual feature gate that names the resource, user action, immediate benefit, system prompt timing, available choices, and fallback before invoking the OS or browser permission prompt.Render location access as a task-scoped flow with purpose text, current permission state, requested precision, scope, native-prompt handoff, granted fix, denied recovery, manual fallback, stale-coordinate labels, and stop-sharing controls.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.Show the blocked object or action, current account, permission level, required role, owner, and request path when revealing that information is allowed.Render notification preferences as a structured matrix or grouped settings surface that shows notification type, source, delivery channel, device, frequency, quiet-time rule, preview privacy, override, and current saved state.
UX guidance Help the person reach a clear task outcome.Use permission request when a feature needs operating-system or browser authorization for resources such as location, camera, microphone, photos, contacts, notifications, Bluetooth, clipboard, motion sensors, or other powerful features.Use a location permission flow when current device coordinates materially reduce effort or improve a location-dependent task and users can understand why location is needed before the browser or OS prompt appears.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 permission denied state when the system knows the user is authenticated but their role, group, share, license, policy, or approval status blocks a specific object or action.Make consequences explicit: what stops, what still arrives, which devices and channels are affected, when changes apply, and which admin, OS, or workspace policies override the user's choice.
Good UI A receipt scanner waits until the user taps Scan receipt, explains camera is needed only for the scan, then offers Scan with camera or Upload file.A field service app asks for location only when the user taps Start route, explains that current location will verify arrival, then opens the system permission prompt and offers manual address entry if declined.A route check-in says Use current location to confirm you are at Gate B, offers Use current location or Enter address, accepts approximate location for city-level help, and labels the returned fix as accurate to 42 m.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 report page says Quarterly revenue report requires Finance viewer access, shows the current account, names the report owner, and offers Request access and Switch account.A notification preferences page groups Mentions, Assigned work, Followed threads, Security, Digest, and Marketing, with columns for In-app, Email, Push, Banner, and Digest frequency.
Bad UI An app opens with location, contacts, photos, and notifications prompts before any feature is selected.An app asks for location, contacts, photos, and notifications on first launch before the user knows why any resource is needed.The home page triggers the browser location prompt before users choose any location-dependent action.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 denial page says Something went wrong and shows Retry even though the user lacks a required group.A preference changes email only but the label implies all notifications stopped.
Good UX A user declines camera access for receipt scanning, uploads an image instead, and can keep using expense entry.A user denies precise location, chooses approximate location instead, and the app still shows nearby pickup points with lower accuracy.A user taps Check in nearby, grants Allow once, sees the current fix and accuracy, confirms the place, and the app discards coordinates after check-in.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 opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.A user keeps mentions and assigned-work banners on, moves repository watch updates to daily digest, mutes marketing email, and sees a preview of what will still notify them during quiet hours.
Bad UX A user accepts a vague request believing it is for nearby search, but the app also enables background tracking.A user denies microphone access and the app loops the same system prompt every time they tap anything in the support screen.A user chooses delivery estimate and the app demands precise location even though postal code entry would work.A user clicks Next to finish onboarding and unknowingly opts into marketing because the consent copy was bundled into the terms paragraph.Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks.A user disables email for a noisy project and still receives duplicate push and desktop banners because those channels live in separate hidden settings.
Best fit A product currently asks for device, browser, or app permissions before the relevant feature context exists.A feature needs operating-system, browser, or device authorization to access location, camera, microphone, photos, contacts, notifications, Bluetooth, clipboard, motion sensors, storage access, or another powerful feature.Current device coordinates materially improve a task such as nearby search, route start, check-in, delivery estimate, safety sharing, field work, or support diagnostics.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 signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.Users receive enough notifications that they need control over type, channel, device, frequency, timing, or source.
Avoid when The permission is requested after a clear feature-triggering action with resource-specific rationale and fallback; use permission request.The decision is consent to optional data use rather than access to a device or browser resource.Typed address, postal code, saved place, or map selection is simpler and less invasive.The choice is only about non-essential cookies or device storage; use cookie banner.The operation failed for network, server, validation, data, or timeout reasons after permission was granted.The product has only a few low-volume notifications that can be handled by defaults and inline controls.
Required state Cold-start prompt state before the user chooses a relevant feature.Contextual request state tied to the user action that needs the resource.Unsupported browser, blocked iframe, missing permissions policy, insecure context, or disabled location services state.Pre-consent state with optional processing off and the core task still understandable.Whole-object access denied state.Default notification preferences state.
Accessibility burden Expose the resource, task, and fallback as text before the system prompt rather than relying on platform icons or button order.Use a labelled region or dialog title that names the resource and feature, such as Allow location for route check-in.Label Use current location, Enter address, Retry, Open settings, Stop sharing, and Clear location controls visibly and programmatically.Associate every checkbox or toggle with a complete purpose label and consequence description.Move focus to the permission message when it replaces page content or blocks a workflow.Group preferences with headings and fieldsets for event type, delivery channel, device, and frequency.
Common misuse Requesting permissions on first launch because analytics show users may need the feature later.Asking for multiple resources at launch before the user has attempted the relevant feature.Prompting for location before users choose a task that needs it.Treating continued use, scrolling, closing, or inactivity as consent.Treating authorization denial as a generic retryable error.Offering one master notification switch for a complex collaboration product.

Permission prompt with no context

UI or UX
UI + UX - Anti-pattern for platform permission prompts shown without a feature-triggered rationale, fallback, or recovery path
UI guidance
Replace a contextless permission prompt with a contextual feature gate that names the resource, task, timing, choices, fallback, denial outcome, and settings recovery before invoking the system prompt.
UX guidance
Help the person reach a clear task outcome.
Good UI
A receipt scanner waits until the user taps Scan receipt, explains camera is needed only for the scan, then offers Scan with camera or Upload file.
Bad UI
An app opens with location, contacts, photos, and notifications prompts before any feature is selected.
Good UX
A user declines camera access for receipt scanning, uploads an image instead, and can keep using expense entry.
Bad UX
A user accepts a vague request believing it is for nearby search, but the app also enables background tracking.
Best fit
A product currently asks for device, browser, or app permissions before the relevant feature context exists.
Avoid when
The permission is requested after a clear feature-triggering action with resource-specific rationale and fallback; use permission request.
Required state
Cold-start prompt state before the user chooses a relevant feature.
Accessibility burden
Expose the resource, task, and fallback as text before the system prompt rather than relying on platform icons or button order.
Common misuse
Requesting permissions on first launch because analytics show users may need the feature later.

Permission request

UI or UX
UI + UX - Contextual operating-system or browser permission request for device resources, powerful browser features, private user data, or local capabilities
UI guidance
Render a permission request as a contextual feature gate that names the resource, user action, immediate benefit, system prompt timing, available choices, and fallback before invoking the OS or browser permission prompt.
UX guidance
Use permission request when a feature needs operating-system or browser authorization for resources such as location, camera, microphone, photos, contacts, notifications, Bluetooth, clipboard, motion sensors, or other powerful features.
Good UI
A field service app asks for location only when the user taps Start route, explains that current location will verify arrival, then opens the system permission prompt and offers manual address entry if declined.
Bad UI
An app asks for location, contacts, photos, and notifications on first launch before the user knows why any resource is needed.
Good UX
A user denies precise location, chooses approximate location instead, and the app still shows nearby pickup points with lower accuracy.
Bad UX
A user denies microphone access and the app loops the same system prompt every time they tap anything in the support screen.
Best fit
A feature needs operating-system, browser, or device authorization to access location, camera, microphone, photos, contacts, notifications, Bluetooth, clipboard, motion sensors, storage access, or another powerful feature.
Avoid when
The decision is consent to optional data use rather than access to a device or browser resource.
Required state
Contextual request state tied to the user action that needs the resource.
Accessibility burden
Use a labelled region or dialog title that names the resource and feature, such as Allow location for route check-in.
Common misuse
Asking for multiple resources at launch before the user has attempted the relevant feature.

Location permission flow

UI or UX
UI + UX - Permission-gated current-location request and recovery flow
UI guidance
Render location access as a task-scoped flow with purpose text, current permission state, requested precision, scope, native-prompt handoff, granted fix, denied recovery, manual fallback, stale-coordinate labels, and stop-sharing controls.
UX guidance
Use a location permission flow when current device coordinates materially reduce effort or improve a location-dependent task and users can understand why location is needed before the browser or OS prompt appears.
Good UI
A route check-in says Use current location to confirm you are at Gate B, offers Use current location or Enter address, accepts approximate location for city-level help, and labels the returned fix as accurate to 42 m.
Bad UI
The home page triggers the browser location prompt before users choose any location-dependent action.
Good UX
A user taps Check in nearby, grants Allow once, sees the current fix and accuracy, confirms the place, and the app discards coordinates after check-in.
Bad UX
A user chooses delivery estimate and the app demands precise location even though postal code entry would work.
Best fit
Current device coordinates materially improve a task such as nearby search, route start, check-in, delivery estimate, safety sharing, field work, or support diagnostics.
Avoid when
Typed address, postal code, saved place, or map selection is simpler and less invasive.
Required state
Unsupported browser, blocked iframe, missing permissions policy, insecure context, or disabled location services state.
Accessibility burden
Label Use current location, Enter address, Retry, Open settings, Stop sharing, and Clear location controls visibly and programmatically.
Common misuse
Prompting for location before users choose a task that needs it.

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.

Permission denied state

UI or UX
UI + UX - Authorization and access-boundary state
UI guidance
Show the blocked object or action, current account, permission level, required role, owner, and request path when revealing that information is allowed.
UX guidance
Use permission denied state when the system knows the user is authenticated but their role, group, share, license, policy, or approval status blocks a specific object or action.
Good UI
A report page says Quarterly revenue report requires Finance viewer access, shows the current account, names the report owner, and offers Request access and Switch account.
Bad UI
A denial page says Something went wrong and shows Retry even though the user lacks a required group.
Good UX
A user opens a restricted report, sees which account is signed in, requests viewer access with a reason, then sees that the request is pending with the owner.
Bad UX
Every workspace control is disabled after one missing permission, including safe navigation and read-only tasks.
Best fit
A signed-in user lacks permission to view, edit, publish, export, delete, approve, share, administer, or configure a resource.
Avoid when
The operation failed for network, server, validation, data, or timeout reasons after permission was granted.
Required state
Whole-object access denied state.
Accessibility burden
Move focus to the permission message when it replaces page content or blocks a workflow.
Common misuse
Treating authorization denial as a generic retryable error.

Notification preferences

UI or UX
UI + UX - User-controlled rules for notification type, channel, frequency, timing, privacy, and exceptions
UI guidance
Render notification preferences as a structured matrix or grouped settings surface that shows notification type, source, delivery channel, device, frequency, quiet-time rule, preview privacy, override, and current saved state.
UX guidance
Make consequences explicit: what stops, what still arrives, which devices and channels are affected, when changes apply, and which admin, OS, or workspace policies override the user's choice.
Good UI
A notification preferences page groups Mentions, Assigned work, Followed threads, Security, Digest, and Marketing, with columns for In-app, Email, Push, Banner, and Digest frequency.
Bad UI
A preference changes email only but the label implies all notifications stopped.
Good UX
A user keeps mentions and assigned-work banners on, moves repository watch updates to daily digest, mutes marketing email, and sees a preview of what will still notify them during quiet hours.
Bad UX
A user disables email for a noisy project and still receives duplicate push and desktop banners because those channels live in separate hidden settings.
Best fit
Users receive enough notifications that they need control over type, channel, device, frequency, timing, or source.
Avoid when
The product has only a few low-volume notifications that can be handled by defaults and inline controls.
Required state
Default notification preferences state.
Accessibility burden
Group preferences with headings and fieldsets for event type, delivery channel, device, and frequency.
Common misuse
Offering one master notification switch for a complex collaboration product.
Decision rules
  • Choose permission prompt with no context when the product asks for camera, microphone, location, photos, contacts, notifications, Bluetooth, clipboard, motion, storage, or another powerful feature before the user starts the feature that needs it.
  • Choose permission prompt with no context when the visible copy says vague phrases such as improve your experience, enable full functionality, or stay connected without naming the resource, task, fallback, and denial outcome.
  • Choose permission prompt with no context when one visible action triggers a mismatched system prompt, such as Scan receipt triggering contacts, Store finder triggering background location, or Message customer triggering photos.
  • Choose permission prompt with no context when multiple resources are bundled into a first-run setup step without separate feature-specific rationale and separate choices.
  • Choose permission request when the corrected flow asks in context, names the resource and feature, invokes the system prompt from a deliberate user action, handles grant and deny outcomes, and provides manual entry, manual fallback, or settings recovery.
  • Choose location permission flow when current coordinates, precision, approximate versus precise access, one-time or while-using scope, stale coordinates, active tracking, stop sharing, or manual location fallback is the central behavior.
  • Choose consent prompt when the decision is active opt-in to optional data use such as marketing, research, AI training, personalization, partner sharing, or sensitive-data processing rather than platform resource access.
  • Choose permission denied state when the user is authenticated but lacks role, license, share, policy, owner approval, or account authorization for a known object or action.
  • Choose notification preferences when users manage message channels, topics, frequency, quiet hours, digests, preview privacy, or subscriptions after OS-level notification access is granted, denied, or routed to settings.
  • If denial only affects one feature, the product should keep unrelated account access, checkout, browsing, editing, manual entry, or navigation available; blocked-on-deny and repeat-nag flows belong to the anti-pattern.
Inspect live examples
Failure modes
  • A first-run onboarding checklist asks for location, notifications, contacts, and photos before the user chooses any task.
  • A vague modal says Allow access for a better experience and then triggers the browser microphone prompt.
  • A store finder asks for background precise location when ZIP code or approximate location would satisfy the task.
  • A denied permission blocks the whole account or loops the same prompt instead of offering manual entry, upload, picker, chat-only, continue-without, or settings recovery.
  • A consent prompt is used to obtain device permission but never handles platform grant, denial, limited, revoked, or settings-required states.
  • A notification preferences page hides that OS notifications are denied and provides no settings route.

Saved items