Re: [w3c/manifest] Way to detect if a web app is installed (Issue #1092)

benfrancis left a comment (w3c/manifest#1092)

> @benfrancis's https://github.com/w3c/manifest/issues/1092#issuecomment-2746381083 nicely illustrates the matrix of possibilities here: an explicit installed state media feature would be unambiguous.

- If an app is installed but specifies the browser display mode in its manifest then "installed" would be "no"
- If an app is installed but a page within the navigation scope of the app is loaded in a browser tab in Safari, "installed" would be "no"

I personally would not describe that as unambiguous.

> 1. Post-installation detection: "Am I running as an installed web app?" (what this issue is about)
> 2. Pre-installation detection: "Is installation possible in this context?"

I would suggest that the term "installed" is subtly wrong for answering _both_ of these questions. A web app can simultaneously be installed but not running in app window, and can simultaneously be not installed and not installable by the current user agent.

@marcoscaceres said above:
> "the use case is generally to control the web page's UI (generally to take away install buttons and instructions)."

A better term to test for this might "installable", but if Apple doesn't want Safari to expose whether an app is installed on iOS/macOS then "installable" may mean "can be installed but may already be installed", which is not as useful.

I would extend the list of states I originally described in https://github.com/w3c/manifest/issues/1092#issuecomment-2512042539 (whether they are exposed as a DOM property, JavaScript method or CSS media query) to:
1. display-mode - What display mode the current document is being displayed in, already provided by the display-mode media query
2. installed - Whether the current page falls within the navigation scope of an app installed on this system, could be exposed using a DOM property or media query but Apple doesn't want to expose this in Safari due to privacy reasons
3. context - Whether the current document is being displayed in a browsing context or an application context - presumably less sensitive and still distinct from the two above

See also: https://lists.w3.org/Archives/Public/public-webapps/2026JanMar/0012.html - how apps are installed may have a big impact on when and how developers might want to detect if an app is installed.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3c/manifest/issues/1092#issuecomment-3952165303
You are receiving this because you are subscribed to this thread.

Message ID: <w3c/manifest/issues/1092/3952165303@github.com>

Received on Tuesday, 24 February 2026 14:09:15 UTC