Copyright © 2023 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
This document is a registry of supplementary members for the Web Application Manifest specification that provide additional metadata to an application manifest. This metadata can be used in a digital storefront or other surfaces where this web application may be marketed or distributed, or to enhance an installation dialog when installing a web application.
This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.
This is document is constantly evolving and we publish new snapshots every time we commit a change. Interested parties can subscribe to changes or even propose new manifest members in the manifest-app-info GitHub repository.
This document was published by the Web Applications Working Group as a Group Note using the Note track.
This Group Note is endorsed by the Web Applications Working Group, but is not endorsed by W3C itself nor its Members.
This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
The W3C Patent Policy does not carry any licensing requirements or commitments on this document.
This document is governed by the 12 June 2023 W3C Process Document.
As web applications become available via more services (e.g., digital storefronts, search results) where they are presented alongside native applications, it becomes quite important for them to appear similarly to their native counterparts. A web application can define both its name and icons in the manifest, but those keys do not provide enough information to help users determine whether they might want to install it. Users have become accustomed to being offered more details about the applications they consider installing, and this document defines additional manifest members that can provide that.
The following members supplement the members of an application manifest. These members are classified as supplementary because they are not applied to a web application at runtime (i.e., they are purely advisory and don't affect how a user agent presents an installed web application). All members are all optional and can be added at the root of an application manifest, as shown in the following example.
{
"name": "Donate App",
"categories": ["fundraising", "donations"],
"description": "This app helps you donate to worthy causes.",
"iarc_rating_id": "e84b072d-71b3-4d3e-86ae-31a8ce4e53b7",
"screenshots": [{
"src": "images/screenshot.png",
"sizes": "800x600",
"platform": "windows",
"label": "Lots of organizations to donate to"
}]
}
As the application manifest is JSON, the members of this specification are of the types object, array, and string as defined in The JSON Data Interchange Format, 2nd edition.
The categories
member is an array of
strings that describes the application categories to which the
web application belongs. It is meant as a hint to catalogs or stores
listing web applications and it is expected that these will make a
best effort to find appropriate categories (or category) under which
to list the web application. Like search engines and meta keywords,
catalogs and stores are not required to honor this hint.
Manifest authors are encouraged to use lower-case.
List of known categories:
If you'd like to add additional categories, please file a bug or send a pull request to the manifest-app-info GitHub repository.
The description
member is a string
that allows the developer to describe the purpose of the web
application. It serves as the accessible description
of an installed web application.
The iarc_rating_id
member is a string
that represents the International Age Rating Coalition
(IARC) certification code of the web application. It is intended
to be used to determine which ages the web application is appropriate
for.
An IARC certificate can be obtained via participating storefronts,
intended to be used for distributing the web app. The
member only takes a single certification code.
The same code can be shared across participating storefronts, as long
as the distributed product remains the same (i.e., doesn’t serve
totally different code paths depending on user agent sniffing and the
like) and the other storefronts support it.
iarc_rating_id
More information on the IARC can be found at: How IARC Works and How developers can get their games and apps rated with IARC.
The screenshots
member is an array of
screenshots objects, representing the web application in
common usage scenarios.
A screenshots object is a ImageResource
object
with some additional members as defined below.
The label
member is a string that
serves as the accessible name of that
screenshots object. For accessibility, authors are encouraged
to provide a label
for each screenshot. This member can serve
as alternative text for the rendered screenshot.
{
"screenshots": [{
"src": "images/screenshot.png",
"sizes": "800x600",
"form_factor": "wide",
"label": "With Software, you can select a part of your screen and take a screenshot in seconds."
}]
}
The platform
member is a string that
represents the distribution platform for which a given screenshot
applies. Authors are encouraged to only use this member when the
screenshot is only applicable in a specific context.
Authors should only use platform
for instances where a screenshot is
not representative of a universal experience. For instance, an
OS-specific platform
designation should be reserved for instances
where the screenshot includes functionality only available on that
specific platform.
User agents might show as many (or as few) screenshots as they choose, but shouldn't display screenshots that do not pertain to their platform (e.g., Google Play should not show iOS-specific screenshots).
When no platform
is set, user agents should assume the screenshot
is applicable to all platforms.
User agents can use a screenshot’s aspect ratio
(sizes
) in determining if the screenshot should be
displayed.
List of platform
values that are specific to an operating system:
List of platform
values aligned with application distribution
platforms:
If you'd like to add additional platform, please file a bug or send a pull request to the manifest-app-info GitHub repository.
The form_factor
member is a
string that represents the screen shape of a broad class of
devices for which a given screenshot applies. Authors are encouraged to
only use this member when the screenshot is only applicable in a
specific context.
Authors should only use form_factor
for instances where a screenshot
is not representative of a universal experience. For instance, if the
layout/design differs based on the screen orientation, setting "narrow" or
"wide" is advisable.
User agents might show as many (or as few) screenshots as they choose,
but shouldn't display screenshots that do not pertain to their
form factor (e.g., mobile phones shouldn't show "wide" form_factor
screenshots).
When no form_factor
is set, user agents should assume the
screenshot is applicable to all form factors.
List of form_factor
values:
This section is non-normative.
It is expected that authors will localize the content of all text strings defined in this document based on the approach(es) outlined in the Manifest spec.
Rob Dolin for spearheading a lot of this work, specially the
iarc_rating_id
member, and Kenneth Rohde Christiansen for helping to
vet these ideas.
We'd also like to thank the following contributors: Christian Liebel, Julien Cayzac, Marcos Cáceres, Thomas Steiner, Xiaoqian Wu, and Yajing Tang.
categories
§2.1description
§2.2form_factor
§3.3iarc_rating_id
§2.3label
§3.1platform
§3.2screenshots
§2.4manifest
)
manifest
)
ImageResource
sizes
(for ImageResource
)
Referenced in: