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.
Browser & ecosystem support
Section titled “Browser & ecosystem support”- Legend
- Yes
- Partial
- Flag
- No
- Unknown
| Browser / Platform | Support | Versions | Confidence | Source | Notes |
|---|---|---|---|---|---|
| Chrome (Desktop) | — Not applicable | — | medium | source | 1 |
| Chrome (Android) | — Not applicable | — | medium | source | 2 |
| Edge (Desktop) | — Not applicable | — | medium | source | 3 |
| Samsung Internet | — Not applicable | — | medium | source | 4 |
| Firefox (Desktop) | — Not applicable | — | medium | source | 5 |
| Safari (iOS) | — Not applicable | — | medium | source | 6 |
- Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
- Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
- Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
- Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
- Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
- Not applicable: categories is app-store metadata read by install/distribution surfaces, never rendered or acted on by the browser engine itself.
How to use it
Section titled “How to use it”List one or more lowercase category strings in the manifest:
{ "name": "Field Notes", "start_url": "/", "display": "standalone", "categories": ["productivity", "utilities"]}How to detect it at runtime
Section titled “How to detect it at runtime”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;}Practical checklist
Section titled “Practical checklist”- Per MDN,
categoriesis 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
categoriesis optional — per the spec, it is one of the manifest’s supplementary members.
Where to go next
Section titled “Where to go next”← Back to the Compatibility explorer.