When version histories are supplied using structured formats like RSS, Atom, or JSON Feed, implementors will need to parse that data and render it into a web page. This document suggests how that should be done, with a focus on key fields for each history item.
This identifies the purpose of the version history page. Alternatively, this could be the name of the app (taken from the Manifest) plus the text "Version History".
h1
- RSS
rss > channel > title
- Atom
feed > title
- JSON Feed
object["title"]
Valid RSS feeds will have descriptions, but neither Atom nor JSON Feed require it. Exposing this information should be considered optional.
p
,div
, ordocumentFragment
(if the description contains flow-level elements).
- RSS
rss > channel > description
- Atom
feed > description
(if present)- JSON Feed
object["description"]
(if present)
Each item in a version history should exist as a flow-level sectioning HTML element.
article
,section
, ordetails
- RSS
rss > channel > item
(eachitem
is a history item)- Atom
feed > entry
(eachentry
is a history item)- JSON Feed
object["items"]
(each object in this array is a history item)
This is a string that names the given version. In some apps it may be numeric, in others it may be a string, but for the purposes of the parser, it should be considered to be a string and would likely be rendered into a heading element.
h2
,summary
(ifdetails
is used for an item),- etc.
- RSS
rss > channel > item > title
- Atom
feed > entry > title
- JSON Feed
object["items"][0].title
falling back toobject["items"][0].id
This is a string that describes significant changes in this version.
p
,div
, ordocumentFragment
(if the description contains flow-level elements).
- RSS
rss > channel > item > description
- Atom
feed > entry > content
falling back tofeed > entry > summary
- JSON Feed
object["items"][0].content_html
orobject["items"][0].content_text
(one of these must be present to be valid)
This is a representation of when the version was released and is optional.
- Feed readers are instructed to ignore items with publish dates in the future.
- Date formats will include the W3C’s scoped-down ISO 8601 (RSS & Atom) or follow RFC 3339 (JSON Feed).
- JSON Feed does not require a date.
time
- RSS
rss > channel > item > pubDate
- Atom
feed > entry > published
- JSON Feed
object["items"][0].date_published