How to use Web App Manifest Validator
- Open your site's manifest.json and copy the whole file, or leave the box empty and choose the file from your device.
- Select Validate manifest.
- Read the rows in order: the application name, the start address, the scope, the display mode, the colours and the icon entries.
- Fix anything marked failed, paste the changed file back in, and confirm the page still loads the file at the address your HTML points to.
Example: Web App Manifest Validator
Check a small manifest for a site before it is linked from the page head.
Options
- manifest.json text
- Pasting is the quick route when the file sits on a server you cannot browse from this device. The text is read as JSON, so a trailing comma or a missing quotation mark is reported before anything else is checked.
- manifest.json file (optional)
- The file route reads exactly the bytes you chose. One file at a time, up to 1 MiB, and it has to be UTF-8 text, which is how a manifest is normally saved.
Supported inputs and limits
Where your input is processed
This tool processes your input in this browser. Your text and files are not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.
What the manifest carries and what it leaves to the page
The manifest is a small description of an app: its name, the address it opens at, the addresses it counts as its own, the way it would like to be displayed, colours for the surfaces around it and the images a device can use as an icon. Everything else about an install comes from the page and the browser, including whether the site is served over https, whether the file is linked with a manifest link in the head, and whether the visitor has met the browser's own conditions. That is why a validator can catch a missing key, an address that falls outside the scope or an icon that names no size, and still leave the real question open until the file is served and the page is opened on a device.
Questions about Web App Manifest Validator
Does a clean report mean my app can be installed?
No. A browser decides that from the file, the page that links it, the transport and the visitor's own settings, and some of those change between versions. This page reads the file you supply, so treat a clean report as one thing settled and test the install prompt on a real device.
Why does the scope check fail?
The check compares the start address with the scope as text and expects the start address to begin with the scope. A start address outside its own scope means a launched app opens a page the browser no longer counts as part of the app, so align start_url with scope or widen the scope to cover it.
Can the checker look at my icons?
It reads the src and sizes values as text and reports the sizes it understood. It does not request the files, so it cannot tell you that the addresses resolve, that a file really is PNG, or that the artwork has the safe area a maskable icon needs. Open the icon in an image viewer for that.
What does it mean that no entry sets a purpose?
A missing purpose is read as any, which is the normal default. A home screen that crops an icon to its own shape may then use a file with content near the edges, so pairing a maskable copy with a plain one lets each surface pick the file it can use.
Why is a key listed as one this page does not check?
The list of keys the page knows covers the ones that matter for a first check, such as name, start_url, scope, display, colours and icons. A shortcut, share target or protocol handler is reported as a key that is present and left to the browser, because its rules depend on the rest of the page.