Skip to content

Web App Manifest: categories support

Published

The manifest categories member is an array of strings classifying a web app, such as "shopping" or "games", that app stores and other distribution catalogs may use when listing or publishing the app; per MDN, the values are not visible in the browser or the installed app itself.

  • Legend
  • Yes
  • Partial
  • Flag
  • No
  • Unknown
Browser / PlatformSupportVersionsConfidenceSourceNotes
Chrome (Desktop)— Not applicable—mediumsource1
Chrome (Android)— Not applicable—mediumsource2
Edge (Desktop)— Not applicable—mediumsource3
Samsung Internet— Not applicable—mediumsource4
Firefox (Desktop)— Not applicable—mediumsource5
Safari (iOS)— Not applicable—mediumsource6
  1. Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
  2. Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
  3. Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
  4. Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
  5. Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
  6. Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.

Source data: /compatibility/manifest-categories.json · Global usage: 0 % (StatCounter 2026-05)

Source: spec · MDN · Last verified 2026-09-04 · Confidence: medium (computed from sources)

List one or more lowercase category strings in the manifest:

{
"name": "Field Notes",
"start_url": "/",
"display": "standalone",
"categories": ["productivity", "utilities"]
}

Per MDN, categories is supplementary metadata that does not affect the app’s runtime behavior. If you already have the manifest object in JavaScript, you can read the value back out of it, guarding for a missing or non-array value:

function readManifestCategories(manifest) {
if (!('categories' in manifest) || !Array.isArray(manifest.categories)) {
// No categories declared, or the value isn't an array: treat as uncategorized
// rather than throwing.
return [];
}
return manifest.categories;
}
  • Per MDN, categories is supplementary metadata that does not affect the app’s runtime behavior or how browsers present it.
  • Per the spec, catalogs and stores make a best-effort attempt to honor the hint but, like search-engine meta keywords, are not required to.
  • Authors are encouraged to use lowercase strings; the spec provides a list of known categories, while MDN notes that app stores may use different values when presenting an app.
  • Declaring categories is optional — per the spec, it is one of the manifest’s supplementary members.

← Back to the Compatibility explorer.