DocsScreenshots

Screenshots

PWARegistry already normalizes screenshots. You should not re-interpret the original Web App Manifest form_factor yourself.

If your UI is narrow / mobile, use:

application.screenshots.narrow

If your UI is wide / desktop, use:

application.screenshots.wide

Never mix narrow and wide in the same gallery.

const shots = app.application.screenshots;
const mobile = shots.narrow;
const desktop = shots.wide;

If a set is empty, that form factor was not published (or the files were not reachable images). Do not fill the gap with the other set unless you have a documented fallback for unspecified shots:

const mobile =
  shots.narrow.length ? shots.narrow : shots.unspecified;
const desktop =
  shots.wide.length ? shots.wide : shots.unspecified;

unspecified means the manifest did not declare form_factor. platformSpecific lists shots that declared a platform member — extra metadata, not a third gallery to blend in.

Like icons, screenshot src values are origin URLs. They are not proxied.

capabilities.narrowScreenshots / wideScreenshots tell you whether those sets are non-empty, which is useful when filtering a catalog (“has desktop screenshots”).