Skip to content

Richer install UI: enriching the install prompt with description and screenshots

In one line: By default the install prompt contains only the app’s name and icon; providing description and screenshots manifest members adds those values to the prompt, but only on Android.

If the browser determines that a site is installable as a PWA, it shows some built-in UI — an icon in the URL bar, for example — to install the site. If the user clicks it, the browser shows an install prompt containing, at a minimum, the app’s name and icon.

Enriching it with description and screenshots

Section titled “Enriching it with description and screenshots”

If a manifest provides values for the description and screenshots members, then, on Android only, these values are shown in the install prompt, giving the user extra context and motivation to install the PWA.

screenshots is an array of objects, each with a required src and optional sizes, type, label, form_factor, and platform properties:

{
"screenshots": [
{
"src": "screenshots/mobile-home.webp",
"sizes": "750x1334",
"form_factor": "narrow",
"label": "Mobile view showing weekly meal calendar"
}
]
}

form_factor marks a screenshot as narrow (screens such as mobile devices) or wide (screens such as desktop computers). If form_factor is not specified, the screenshot is considered suitable for all screen types. Distribution platforms may choose how many screenshots to display.

Neither description nor screenshots is a functional manifest member: both are declarative metadata, read by the platform showing the install prompt, that the app’s own runtime code does not consume.

  • Provide a description manifest member so Android’s install prompt can show it.
  • Set form_factor (narrow or wide) only on screenshots meant for a specific screen layout; omit it on screenshots that suit all screen types.
  • Do not expect description/screenshots to enrich the install prompt on platforms other than Android.
  • Manifest categories — another manifest member used by app-listing surfaces rather than at runtime