Back to compare picker

Location permission flow vs Permission request vs Map view vs Address entry vs Privacy settings vs Offline state

Choose location permission flow when the product needs current device location for a task and must handle pre-prompt rationale, browser or OS prompt timing, allow once, while using, background denial, precise or approximate choice, granted fix, denied state, settings recovery, timeout, unavailable location, cached or stale coordinates, manual fallback, active tracking, stop sharing, and retention.

Decision dimensions

Dimension Location permission flowPermission requestMap viewAddress entryPrivacy settingsOffline state
UI or UX UI + UX - Permission-gated current-location request and recovery flowUI + UX - Contextual operating-system or browser permission request for device resources, powerful browser features, private user data, or local capabilitiesUI + UX - Spatial viewport for location-based objects, layers, and routesUI + UX - Structured postal or contact address capture flowUI + UX - Durable privacy-control surface for account, product, device, app-access, activity, visibility, and sharing settingsUI + UX - Connectivity-mode and local-work continuity state
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.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 a real spatial viewport with visible map region, zoom state, scale or distance context, markers or shapes anchored to coordinates, selected-place detail, cluster counts, visible layer/filter controls, and a fallback list or table for the same results.Render address capture as a labelled fieldset or page section with address line, locality, region when needed, postal code, country, and an address lookup only when its coverage is clear.Render privacy settings as a returnable control surface with current effective values, privacy categories, data types, app or service access, account/device/product scope, source of truth, managed or unavailable reasons, last updated status, and save or immediate-apply feedback.Show offline status where it changes the current task, naming what remains available such as cached reports, local draft editing, queued saves, or read-only history.
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.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 Map view when the user's decision depends on where objects are, how far apart they are, what falls inside the current area, which route or coverage applies, or how dense nearby points are.Use address entry when the service needs a complete address for delivery, billing, correspondence, identity, eligibility, routing, tax, or account records and downstream systems need reliable address parts.Use privacy settings when users need to inspect and change ongoing privacy posture for saved activity, profile visibility, app access, device permissions, data sharing, ad personalization, location, connected apps, or product privacy dashboards.Use offline state to preserve trust and task continuity when connection loss changes what users can read, edit, submit, sync, refresh, or share.
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.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 clinic finder map shows visible bounds, zoom level, selected clinic marker, appointment availability markers, a transit layer toggle, cluster counts, distance chips, and a synchronized results list.A benefits claim asks for postcode lookup, lists matching addresses, includes Enter address manually, and then shows editable address line 1, address line 2, town or city, postcode, and country.An account privacy dashboard groups Saved activity, Profile visibility, Ad personalization, Connected apps, Location history, Device permissions, and Data deletion, with current values, scope labels, last updated times, and unavailable reasons.A field report says Offline: 3 edits saved on this device, cached customer history shown from 10:42, Submit disabled until connection returns, and Retry connection.
Bad UI The home page triggers the browser location prompt before users choose any location-dependent action.An app asks for location, contacts, photos, and notifications on first launch before the user knows why any resource is needed.A decorative map background contains unlabeled pins with no coordinate meaning, no current region, no selected marker, no legend, and no list fallback.A form has one full-width Address field with placeholder-only instructions and no country, postcode, apartment, or manual recovery path.A Privacy page links only to a legal policy and has no controls for activity history, public profile fields, personalization, app access, or data sharing.A blank page says You are offline even though the app has cached drafts and help content.
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.A user taps Scan receipt, sees why camera access is needed for scanning, grants access, scans the receipt, and can later revoke camera access from settings without losing account access.A dispatcher pans to the west district, the result count and list update to the current bounds, a cluster expands at closer zoom, and the selected incident popup remains tied to the marker.A user enters SW1A1AA, sees several addresses, selects Flat 2, adds an organization name, and reviews the stored line, town, postcode, and country parts before continuing.A user pauses saved activity, clears search history for a date range, disables ad personalization, hides birthday visibility, revokes a connected app, and sees which values apply immediately versus after sync.A user loses connection while editing an inspection note, sees it saved on this device, attaches photos to a queue, and later watches the queue sync after reconnect.
Bad UX A user chooses delivery estimate and the app demands precise location even though postal code entry would work.A user denies microphone access and the app loops the same system prompt every time they tap anything in the support screen.A user filters to open locations but the map markers update while the list still shows closed locations, causing the wrong branch to be selected.A user in a new building cannot proceed because the lookup cannot find the postcode and there is no manual entry option.A user turns off location sharing in account privacy settings, but the device-level location permission remains active and the page never explains the split.The app keeps a spinner on Save during airplane mode and never explains that no network request can start.
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.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.Users choose or inspect objects by where they are, how near they are, or what area they fall inside.The product needs a complete postal, delivery, billing, service, or official contact address.Users need ongoing control over personal data collection, saved activity, visibility, app access, device permissions, connected services, data sharing, or personalization.Connection loss or server reachability changes the user's current task.
Avoid when Typed address, postal code, saved place, or map selection is simpler and less invasive.The decision is consent to optional data use rather than access to a device or browser resource.Location is only a label or decorative backdrop.The product only needs one short location label, room name, or delivery note.The task is a first-time opt-in to one optional purpose; use consent prompt.A single request failed while the rest of the app is reachable and an error state is clearer.
Required state Unsupported browser, blocked iframe, missing permissions policy, insecure context, or disabled location services state.Contextual request state tied to the user action that needs the resource.Default map state with visible viewport, zoom level or distance context, markers, layer state, result count, and synchronized fallback list.Initial state with country or domestic coverage explained and lookup or manual entry available.Privacy settings overview with categories and current effective values.Online normal state with no offline warning.
Accessibility burden Provide manual address, saved place, search, or assisted alternatives for users who cannot or do not want to share device location.Use a labelled region or dialog title that names the resource and feature, such as Allow location for route check-in.Expose the map name, current area, result count, active filters, layers, selected place, and location permission state as text.Group related address fields with a clear heading or legend that states which address is being requested.Use clear headings, labels, descriptions, and status text for each privacy category and control.Announce significant connectivity changes with status messaging when they affect the current task.
Common misuse Prompting for location before users choose a task that needs it.Asking for multiple resources at launch before the user has attempted the relevant feature.Using a map as decoration when the positions do not affect the task.Forcing every address through a domestic postcode or ZIP lookup.Replacing privacy settings with a privacy policy link or legal notice.Showing only a browser-style offline page when useful cached or local content exists.

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
Provide manual address, saved place, search, or assisted alternatives for users who cannot or do not want to share device location.
Common misuse
Prompting for location before users choose a task that needs it.

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 taps Scan receipt, sees why camera access is needed for scanning, grants access, scans the receipt, and can later revoke camera access from settings without losing account access.
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.

Map view

UI or UX
UI + UX - Spatial viewport for location-based objects, layers, and routes
UI guidance
Render a real spatial viewport with visible map region, zoom state, scale or distance context, markers or shapes anchored to coordinates, selected-place detail, cluster counts, visible layer/filter controls, and a fallback list or table for the same results.
UX guidance
Use Map view when the user's decision depends on where objects are, how far apart they are, what falls inside the current area, which route or coverage applies, or how dense nearby points are.
Good UI
A clinic finder map shows visible bounds, zoom level, selected clinic marker, appointment availability markers, a transit layer toggle, cluster counts, distance chips, and a synchronized results list.
Bad UI
A decorative map background contains unlabeled pins with no coordinate meaning, no current region, no selected marker, no legend, and no list fallback.
Good UX
A dispatcher pans to the west district, the result count and list update to the current bounds, a cluster expands at closer zoom, and the selected incident popup remains tied to the marker.
Bad UX
A user filters to open locations but the map markers update while the list still shows closed locations, causing the wrong branch to be selected.
Best fit
Users choose or inspect objects by where they are, how near they are, or what area they fall inside.
Avoid when
Location is only a label or decorative backdrop.
Required state
Default map state with visible viewport, zoom level or distance context, markers, layer state, result count, and synchronized fallback list.
Accessibility burden
Expose the map name, current area, result count, active filters, layers, selected place, and location permission state as text.
Common misuse
Using a map as decoration when the positions do not affect the task.

Address entry

UI or UX
UI + UX - Structured postal or contact address capture flow
UI guidance
Render address capture as a labelled fieldset or page section with address line, locality, region when needed, postal code, country, and an address lookup only when its coverage is clear.
UX guidance
Use address entry when the service needs a complete address for delivery, billing, correspondence, identity, eligibility, routing, tax, or account records and downstream systems need reliable address parts.
Good UI
A benefits claim asks for postcode lookup, lists matching addresses, includes Enter address manually, and then shows editable address line 1, address line 2, town or city, postcode, and country.
Bad UI
A form has one full-width Address field with placeholder-only instructions and no country, postcode, apartment, or manual recovery path.
Good UX
A user enters SW1A1AA, sees several addresses, selects Flat 2, adds an organization name, and reviews the stored line, town, postcode, and country parts before continuing.
Bad UX
A user in a new building cannot proceed because the lookup cannot find the postcode and there is no manual entry option.
Best fit
The product needs a complete postal, delivery, billing, service, or official contact address.
Avoid when
The product only needs one short location label, room name, or delivery note.
Required state
Initial state with country or domestic coverage explained and lookup or manual entry available.
Accessibility burden
Group related address fields with a clear heading or legend that states which address is being requested.
Common misuse
Forcing every address through a domestic postcode or ZIP lookup.

Privacy settings

UI or UX
UI + UX - Durable privacy-control surface for account, product, device, app-access, activity, visibility, and sharing settings
UI guidance
Render privacy settings as a returnable control surface with current effective values, privacy categories, data types, app or service access, account/device/product scope, source of truth, managed or unavailable reasons, last updated status, and save or immediate-apply feedback.
UX guidance
Use privacy settings when users need to inspect and change ongoing privacy posture for saved activity, profile visibility, app access, device permissions, data sharing, ad personalization, location, connected apps, or product privacy dashboards.
Good UI
An account privacy dashboard groups Saved activity, Profile visibility, Ad personalization, Connected apps, Location history, Device permissions, and Data deletion, with current values, scope labels, last updated times, and unavailable reasons.
Bad UI
A Privacy page links only to a legal policy and has no controls for activity history, public profile fields, personalization, app access, or data sharing.
Good UX
A user pauses saved activity, clears search history for a date range, disables ad personalization, hides birthday visibility, revokes a connected app, and sees which values apply immediately versus after sync.
Bad UX
A user turns off location sharing in account privacy settings, but the device-level location permission remains active and the page never explains the split.
Best fit
Users need ongoing control over personal data collection, saved activity, visibility, app access, device permissions, connected services, data sharing, or personalization.
Avoid when
The task is a first-time opt-in to one optional purpose; use consent prompt.
Required state
Privacy settings overview with categories and current effective values.
Accessibility burden
Use clear headings, labels, descriptions, and status text for each privacy category and control.
Common misuse
Replacing privacy settings with a privacy policy link or legal notice.

Offline state

UI or UX
UI + UX - Connectivity-mode and local-work continuity state
UI guidance
Show offline status where it changes the current task, naming what remains available such as cached reports, local draft editing, queued saves, or read-only history.
UX guidance
Use offline state to preserve trust and task continuity when connection loss changes what users can read, edit, submit, sync, refresh, or share.
Good UI
A field report says Offline: 3 edits saved on this device, cached customer history shown from 10:42, Submit disabled until connection returns, and Retry connection.
Bad UI
A blank page says You are offline even though the app has cached drafts and help content.
Good UX
A user loses connection while editing an inspection note, sees it saved on this device, attaches photos to a queue, and later watches the queue sync after reconnect.
Bad UX
The app keeps a spinner on Save during airplane mode and never explains that no network request can start.
Best fit
Connection loss or server reachability changes the user's current task.
Avoid when
A single request failed while the rest of the app is reachable and an error state is clearer.
Required state
Online normal state with no offline warning.
Accessibility burden
Announce significant connectivity changes with status messaging when they affect the current task.
Common misuse
Showing only a browser-style offline page when useful cached or local content exists.
Decision rules
  • Choose location permission flow when the product needs current device location for a task and must handle pre-prompt rationale, browser or OS prompt timing, allow once, while using, background denial, precise or approximate choice, granted fix, denied state, settings recovery, timeout, unavailable location, cached or stale coordinates, manual fallback, active tracking, stop sharing, and retention.
  • Choose permission request when the design problem is a generic access ask for camera, microphone, notifications, clipboard, contacts, photos, or location; location permission flow is the specialized geolocation lifecycle inside a current-location task.
  • Choose map view when users need to inspect spatial context, markers, routes, regions, layers, clustering, or panning and zooming; a map may consume location but does not own permission purpose, precision, denial recovery, stale-coordinate handling, or tracking stop controls.
  • Choose address entry when users type, paste, search, or select a postal address, delivery address, pickup point, or saved place; do not force device coordinates when a manual address is the simpler and less invasive answer.
  • Choose privacy settings when users manage durable account, device, app, analytics, sharing, location history, or retention preferences outside the immediate task; do not hide task-time location denial recovery only inside settings.
  • Choose offline state when the issue is network absence, cached data, queued work, or reconnect behavior; offline is different from location permission denied, location timeout, inaccurate coordinates, or location services disabled.
  • A complete location permission flow states why location is needed before the native prompt, what precision is acceptable, whether one-time or session access is enough, whether background tracking is requested, and what is stored after the task completes.
  • Location denial must preserve the task through manual address entry, saved place selection, retry, or settings instructions instead of showing a blank map or looping permission prompts.
  • Stale coordinates must be labeled with last updated time and accuracy; never present cached coordinates as a fresh current-location fix.
  • Active tracking must expose a persistent indicator and Stop sharing control, and retained location data must have a clear purpose, duration, and deletion or settings path.
Inspect live examples
Failure modes
  • The app asks for exact location on first load before users choose a location-dependent task.
  • A denied prompt leaves a blank map with no manual address, saved place, retry, or settings recovery.
  • Approximate location is rejected even though city-level routing, tax, store availability, or content personalization would work.
  • Cached coordinates from yesterday are shown as current location.
  • Background tracking begins after a while-using prompt without a visible indicator or stop control.
  • A no-internet banner is shown for a permission denial, causing users to troubleshoot the wrong issue.
  • The app stores latitude and longitude after the task without purpose, retention copy, or privacy settings access.