Device consents

A browser can do things for a site that a plain web page cannot — know where you are, raise a notification, and over time more. None of it happens without your say-so. CTXR calls that say-so a consent, and keeps the word deliberately apart from a platform permission: a permission is a right an actor holds inside a space; a consent is a device capability a visitor grants to their own browser. Different thing, different word — so the two never blur.

This page is the shared model behind every device consent. The individual ones — Geolocation and Notifications — and the Proximity behaviour built on them all follow these rules.

The shared model

  • Granted to the device, not to an account. A consent lives in the browser. There’s nothing to log into and nothing stored about you on a server — which is exactly why the anonymous visitor of Anonymous by default can use these at all.
  • Asked only on your gesture. A consent is never requested on page load. You tap a button; the site explains, in one combined dialog, what it wants; and the browser’s own native prompt does the actual asking. A single dialog can cover location and notifications together — one clear choice, not a trail of pop-ups.
  • Per capability, and revocable. Grant location without notifications, or the reverse. Revoke either in your browser or system settings at any time, and the page simply degrades — no distance sorting, or silence — never an error, never a nag.
  • Resumes on return. Once granted, a consent resumes on your next visit without asking again, because the grant was the gesture.
  • The OS has the last word. Operating-system rules no website can change — iOS requiring the app to be installed, Focus modes, per-app toggles — sit above all of this. The exact limits live on each consent’s own page.

You don’t build these — you use them

The consents are part of the platform. A developer doesn’t write geolocation plumbing or a notification flow; the platform’s brokers already implement them. To use one, you drop a small markup hook into your template and the broker handles the prompt, the device API, and the graceful degradation for you. Those hooks — the place of use — are catalogued in PWA hooks & attributes. This page is the why and what; that page is the how.

The consents available today

Consent Lets a site… Detail
Location sort by distance, show where you are, drive proximity Geolocation
Notifications raise an alert worth interrupting for Notifications

More will join this family on the same pattern (camera, microphone, audio): one consent model, one page each, one hook to use it. The Proximity behaviour shows how consents compose into something with meaning, while adding no new consent of its own.