Specification For HTML Meta Element with Name Values Topper, Topper-Major, and Topper-Minor


Section 1: Introduction

This is the specification for the HTML meta element with the name attribute value set to “topper”, “topper-major”, or “topper-minor”. Such elements with all such values may coexist on the same page. This is version 1.2.1 of this specification.

HTML is the HyperText Markup Language, which is a commonly used, perhaps the most commonly used, non-natural language for pages hosted on the World Wide Web. HTML is generally written approximately in accordance with specifications that have been revised several times. Two of those HTML specifications are the HTML Living Standard (as updated and (One-Page Version treated here as if authoritative) (<https://html.spec.whatwg.org/>, as accessed and )) and HTML 5.1 (version of ) (<http://www.w3.org/TR/html51/single-page.html>, as accessed before and on ). The HTML Living Standard is maintained by the Web Hypertext Application Technology Working Group (WHATWG) and HTML 5.1 is maintained by the World Wide Web Consortium (W3C). Each of those HTML specifications specifies numerous elements and, in section 4.2.5 of each such HTML specification, one such element is the meta element. For that element, each of those HTML specifications specifies attributes including the name attribute, specifies some names that can be values for that attribute (limited to one such value per such attribute per such element), and provides, in section 4.2.5.2 of each such HTML specification, a means by which extensional or additional names may be proposed to be values for that attribute, each such proposal to include a link to a specification for that extensional or additional name. This specification may appropriately be linked to from such a proposal.

This specification, as published on this page and which, except as otherwise stated, is normative, shall also apply, insofar as compatible, to any specification of the HTML Living Standard or of HTML 5.1 other than those referenced above and of any version preceding or succeeding HTML 5.1; except that it shall not apply to any page authored before this specification was first published (the date of such first publication being stated below).

Sec. 1.1: Definitions and Construction

The words and phrases must, must not, required, shall, shall not, should, should not, recommended, may, and optional in this specification and regardless of capitalization are to be interpreted as described in RFC 2119 (also known as BCP 14).

In this specification, if a string, including a null string and a non-null string with no visible or displaying characters, is rendered (including being displayed) with or surrounded by single quotation marks which are curved when a font in which this specification may be displayed has single quotation marks as both straight and curved or is rendered (including being displayed) with or surrounded by double quotation marks which are curved when a font in which this specification may be displayed has double quotation marks as both straight and curved, then the quotation marks that may thus be curved are, unless otherwise stated in this specification, not part of the string. Thus, generally, the string represented by “example” is only seven characters long, not nine.

In this specification, current awareness is current awareness in accordance with this specification. Except as otherwise stated, current awareness not in accordance with this specification is not within the scope of this specification. Non-normatively, it is noted that other systems of current awareness, including RSS and Atom, exist but that, except as otherwise stated, they are not current awareness that is in accordance with this specification.

Sec. 1.2: Problem Being Solved

This specification is intended to aid users in staying currently aware of changes within a page on the World Wide Web; and other uses are not forbidden by this specification. The balance of this paragraph is non-normative. Users who are busy or underinclined to execute repetitive tasks may benefit from an automatic system of discovering whether pages in which they have an interest have had major changes or any changes. Website managers and page authors have limited time in which to create content and maintain a website or a page, and may need to limit or reduce time spent on maintenance. A system that takes advantage of HTML coding that is already present in a page in order to notify users of changes or the lack thereof may be more beneficial to all concerned. This specification, together with implementation in a user agent, is intended to provide such a system.

Sec. 2: Method

Sec. 2.1: Page Authoring

Sec. 2.1.1: Name Value as “Topper”

Sec. 2.1.1.1: Permitted Content Attribute Values

There may be an HTML meta element with the name attribute value set to “topper” and, if that element is present, it shall have the content attribute value set to one and only one value from the following list:

  • — “true”, meaning that a user agent should attempt current awareness of changes to the page unless, as signified by another means, the current user declines such awareness

  • — “false”, meaning that a user agent should not attempt current awareness of changes to the page unless, as signified by another means, the current user wants such awareness, with such value having the same effect as the absence of the element with such name attribute value

  • — one or more tokens each formed in accordance with http://www.w3.org/TR/NOTE-datetime with any level of granularity, with such tokens (unless there is only one) space-separated and each such token unique within the value, multiple identical such tokens necessarily to be processed as if they were only one such token, each such token meaning the date and time so expressed and the presence of any such token implying for the content attribute the value “true”, the meaning of such an element with such a token being that a minor change occurred at the date and time so expressed and not that no change occurred at any date and time not expressed in the element (non-normatively, an author should not set in the same value two such date-and-time tokens formed with different levels of granularity, such as “2014” and “2014-03”, because the processing by a user agent of such a case is not specified herein and the result by the user agent may be a misinterpretation of the author’s intention)

Non-normatively, it is noted that this specification may be amended in the future to add content attribute values to elements with the attribute name value “topper”.

A user agent should expose the list of pages currently subject to such element with such content attribute value and should permit the user to edit or empty such current list.

This paragraph is non-normative. Permitting the one element to communicate both a meaning and an implication supports efficiency in page authoring through reuse of the element.

This paragraph is non-normative. A user agent may process such element with the content attribute value set to or implying “true” by asking the user whether the user would like to be made aware of changes to the page, by making the user aware of changes to the page without asking the user, or by applying a default previously set by the user for that user agent. The user agent may ask the user for the user’s preferred schedule for determining whether a change has occurred to a page, absent which schedule the user agent either should make such determination at the launching of such user agent and every twenty-four hours thereafter until the user agent has been exited or quit from or should inform the user if and when it makes such determinations.

This paragraph is non-normative. An example is <meta name="topper" content="2012-09-01" />, the content attribute value of which would mean both , and that a user agent should attempt current awareness of changes to the page unless, as signified by another means, the current user declines such awareness.

Sec. 2.1.1.2: Forbidden Content Attribute Value Combinations

A page shall not have both such an element with a content attribute value set to “true” and such an element with a content attribute value set to “false”. Non-normatively, it is noted that there being such elements with both such values could cause an error in interpretation by a user agent.

A page shall not have both such an element with a content attribute value set to a token formed in accordance with http://www.w3.org/TR/NOTE-datetime with any level of granularity and such an element with a content attribute value set to “false”. Non-normatively, it is noted that there being both such elements with such values could cause an error in interpretation by a user agent.

Sec. 2.1.2: Every Change Either Major or Minor

Every change is either major or minor. Whether a change is one or the other is within the discretion of the author. That discretion need not be applied consistently over time, within a page, or among authors. Non-normatively, it is noted that a major change may include a complete overhaul with total incompatibility between old and new and a minor change may include a trivial or meaningless change. Non-normatively, it is noted that consistency in differentiating major from minor changes and vice versa is often helpful to a website user.

Sec. 2.1.3: Name Value as “Topper-Major”

There may be one or more HTML meta elements each with the name attribute value set to “topper-major” and, if such an element is present, it shall have the content attribute value set to one or more tokens each formed in accordance with <http://www.w3.org/TR/NOTE-datetime>, each with any level of granularity. Such elements may appear in any order. If such a value is set to two or more such tokens, the tokens shall be space-separated and may be in any order. Each such token shall be unique within the value and multiple identical such tokens shall be processed as if they were only one such token. The meaning of such an element is that a major change occurred at each date and time so expressed and not that no major change occurred at any other date and time. (Non-normatively, an author should not set in the same value two such date-and-time tokens formed with different levels of granularity, such as “2014” and “2014-03”, because the processing by a user agent of such a case is not specified herein and the result by the user agent may be a misinterpretation of the author’s intention.)

Sec. 2.1.4: Name Value as “Topper-Minor”

There may be one or more HTML meta elements each with the name attribute value set to “topper-minor” and, if such an element is present, it shall have the content attribute value set to one or more tokens each formed in accordance with <http://www.w3.org/TR/NOTE-datetime>, each with any level of granularity. Such elements may appear in any order. If such a value is set to two or more such tokens, the tokens shall be space-separated and may be in any order. Each such token shall be unique within the value and multiple identical such tokens shall be processed as if they were only one such token. The meaning of such an element is that a minor change occurred at each date and time so expressed and not that no minor change occurred at any other date and time. (Non-normatively, an author should not set in the same value two such date-and-time tokens formed with different levels of granularity, such as “2014” and “2014-03”, because the processing by a user agent of such a case is not specified herein and the result by the user agent may be a misinterpretation of the author’s intention.)

Sec. 2.1.5: Major May Include Minor

When more than one change is made to a page at one date and time, at least one of such change is major, and at least one of such change is minor, the total change should be expressed only as major.

If the same date and time is expressed for both a major change and a minor change, the change shall be processed as major.

Sec. 2.1.6: Legal Effect of Change and Name Attribute Values

The effect under law of any change to a page shall be regardless of any selection, combination, or absence of any of the name attribute values topper, topper-major, and topper-minor in the page before, at, or after the date and time of such change.

Sec. 2.1.7: Change to a File Other Than the Page

Even where every change to a page is or consequently is to be expressed with an HTML meta element with the name attribute value set to “topper”, “topper-major”, or “topper-minor”, certain exceptions may occur and may be inevitable. A page author or website owner may ignore or be unaware of a change to a page entirely or partly due to a change in a file other than the file in which at least one HTML meta element with the name attribute value set to “topper”, “topper-major”, or “topper-minor” is or consequently is to be present. If the change to the page is only partly due to such change in such other file, the former change may be expressed as minor when without such ignorance or unawareness such former change may have been expressed as major. Non-normatively, it is noted that, for example, a PHP file, a Flash movie, or a CSS file may be at a URL not under the page author's or website owner's control and, while at such URL, may be changed without notice to the page author or the website owner and such change or lack of notice may occur more than once without an ability to reconstruct the full history between such changes. Non-normatively, it is noted that it is possible to use style, including in an external cascading style sheet, to conceal substantive page content, to reveal previously- or otherwise-concealed page content, or to change relative substantive prioritization of page content without notice to the page author or the website owner and such concealment, revelation, or change in prioritization may occur more than once without an ability to reconstruct the full history between any two or more of such concealments, revelations, and changes in prioritization.

Sec. 2.2: User Agent Implementation

Sec. 2.2.1: Whether to Provide Current Awareness

If a user agent is to provide current awareness at all, the user agent should provide current awareness for a page at a URL, such current awareness to be in accordance with this specification and regardless of any schedule, if any or all of the following conditions apply:

  • — the user agent is enabled to provide current awareness for a page at the URL and possibly pages at other URLs regardless of elements on a page, the date and time of storage (if any) of information about the page as specified in this specification, or the arbitrary text (if any) supplied by the user as permitted in this specification

  • — a page has one or more meta elements each with the name attribute value set to “topper”, “topper-major”, or “topper-minor”, if such an element has the name attribute value set to “topper”, the content attribute value is not set to “false”, and the user agent is not disabled from providing such current awareness

A user agent may, while being installed and at all times thereafter, offer the user the choice of enablement or disablement of current awareness.

A user agent may, for purposes other than of current awareness, make a set of requests of a server for a page at a URL (such a set of requests includes ‘multiple requests each for the same page or a portion thereof or a style therefor’, such as, non-normatively, if the page includes an image or invokes a stylesheet) without the agreement of the user obtained before such set and during the same computer connection. Non-normatively, it is noted that this accommodates configuration of a user agent installed with an operating system (an operating system includes a ‘distribution thereof’) so that, upon launching of the user agent, the user agent makes a set of requests of a server for a page at a URL in order to render to (or, if the user agent generally does not render a page, otherwise equivalently process for) the user a page associated with the operating system, associated with the user agent, in support of a software update or a network, to retrieve a file or information from a server, or previously set as a default by the user or by the owner or seller of the computer on which the user agent is installed.

Sec. 2.2.2: Storage of States

With respect to an element, a null value shall be processed as the absence of a value and an attribute without a value shall be processed as the absence of the attribute. If, as a result, an element does not conform to HTML, the element shall be processed as absent.

A user agent should, and for the most benefit to the user shall, on each set of requests of a server for a page at a URL (except on such a set after a previous set of requests of a server for the same page at the same URL within a time period not greater than ten seconds unless and insofar as another time period is set in the user agent by agreement with the user for one or more URLs), determine whether in the future to provide current awareness of a change to the page and, if so, store, unless and until deleted by the user, storing either at the user agent or, with the user’s agreement, at another location, for the page, the following information:

  • — the URL

  • — from each meta element with the name attribute value set to “created”, if such element is present, the value of the content attribute

  • — from each meta element with the name attribute value set to “dc.created”, if such element is present, the value of the content attribute

  • — from each meta element with the name attribute value set to “dcterms.created”, if such element is present, the value of the content attribute

  • — from each meta element with the property attribute value set to “article:published_time”, if such element is present, the value of the content attribute

  • — from each meta element with the name attribute value set to “dc.modified”, if such element is present, the value of the content attribute

  • — from each meta element with the name attribute value set to “dcterms.modified”, if such element is present, the value of the content attribute

  • — from each meta element with the property attribute value set to “article:modified_time”, if such element is present, the value of the content attribute

  • — from each meta element with the name attribute value set to “page-version”, if such element is present, the value of the content attribute

  • — from each meta element with the http-equiv attribute value set to “refresh”, if such element is present, the portion of the value of the content attribute stating a number of seconds (non-normatively, it is noted that the number of seconds may be stated as the entire value, in which case such portion of the value is the entire value)

  • — from each meta element with the name attribute value set to “topper”, if such element is present, the value of the content attribute if such value is other than “false”

  • — from each meta element with the name attribute value set to “topper-major”, if such element is present, the value of the content attribute

  • — from each meta element with the name attribute value set to “topper-minor”, if such element is present, the value of the content attribute

  • — the date and time such storage is occurring, the date and time being in accordance with Coordinated Universal Time (UTC) as measured to a second or fraction thereof (insofar as such precision is available) and as determined by the user agent

  • — optional arbitrary text provided, editable, and deletable by the user and not exceeding 255 characters in length (non-normatively, because of another provision of this specification, the length generally could not exceed 253 characters)

If more than one meta element with the same attribute other than the content attribute is present and, in accordance with HTML, one or more such elements are therefore to be ignored, the information to be stored about such elements shall be limited to all other such elements.

If more than one meta element with the same attribute other than the content attribute is present and, in accordance with HTML, is not to be ignored, the information to be stored about such elements shall be stored in the table as if all of the values of the content attributes had been validly present and validly space-separated in one such element.

The order of elements on the page or the order of attributes within an element on the page is not relevant to this specification, except that the author may treat a change in either such order as a change to the page.

If the storage is at a location other than the user agent or if it is at the user agent with the intention that it be readable by other than the user agent, the format of the storage shall be as a table organized into records and fields (non-normatively, it is noted that this is for a flat database rather than a requirement for a relational database), with the table in plain text (non-normatively, it is noted that this forbids the table from being in an encrypted state whenever it might be readable by other than the user agent), with each record on the subject of one page at one URL, with each field required to be present even if empty and no other field to be present, with each record assigned a unique nonnegative integer as the record number by the user agent, with the first record so assigned the record number 0 and storing no data about a page or a URL but storing field names, with each datum (a datum for the purposes of this paragraph being ‘what would be the content of a nonempty cell in a table’, a cell being ‘the intersection of, with respect to a table, a record and a field’) space-separated from other data in the same record, with data in the order of the record number followed by data in accordance with the list hereinabove of information to be stored with respect to a page as requested by a set of requests of a server for the page at a URL followed optionally by arbitrary user-supplied text of not more than 255 characters including any required surrounding quotation marks and with data about one element being in the order of the tag name of the element, what attribute other than a content attribute has a value, the value of such attribute other than a content attribute, and the value of the content attribute (non-normaively, it is noted that normatively specifiyng the order of fields makes standardizing field names unnecessary, thus leaving each user agent programmable for consistency across tables existing for different purposes), with each datum that contains or may contain a space (non-normatively, it is noted that a URI (such as a URL) cannot contain a space) surrounded by straight quotation marks and if a datum contains a quotation mark other than quotation marks that may surround the datum such contained quotation mark shall be represented by a named or numeric character reference defined in HTML, and with a newer record after an older record. A datum should be so stored without a quotation mark, whether curved or straight and whether double or single, unless such a quotation mark is part of the datum (non-normatively, it is noted that a quotation mark is not generally part of such a datum other than, occasionally, inside a URL).

Sec. 2.2.3: Comparison of States

Upon the first storing of a state of a page under this subsection (first storing being the ‘storing into an otherwise-nonexistent table or into a table containing only record number 0’ (non-normatively, it is noted that over time, if records are deleted, several first storings may occur)), the user agent should not do anything with what is so stored.

Except upon the first storing, upon each such storing the user agent shall compare the state most recently stored with the state last previously stored, retaining records of both states.

If the result of the comparison is that there is no change either in a value of a content attribute or in the presence or absence of an element with a certain attribute other than a content attribute, the user agent should not do anything except that a user agent may report to the user that there was no change in a page at that URL.

If the result of the comparison is that there is no change in the date and time of storage or that a change in the date and time of storage is less than the number of seconds in the content attribute value of the meta element with the http-equiv attribute value set to “refresh”, the user agent should not do anything except that a user agent may report to the user either that a time so to refresh has been specified for that page and that the time has not yet elapsed or that a date and time for when so to refresh has been specified for that page and that the date and time is not yet present.

If the result of the comparison is that there is a change in a value of a content attribute or in the presence or absence of an element with a certain attribute other than a content attribute, the user agent should determine that the change is major if the change is in acccord with any of the following possibilities and that the change is minor if the change is in accord with none of the following possibilities:

  • — if the change is in all of the meta elements that have the name attribute values set to “topper-major” (non-normatively, a common example would be the change in the content attribute value of such an element or the addition of a new meta element with the name attribute value set to “topper-major”)

  • — if the change is only in the date and time of storage and the change in date and time is equal to or longer than a durational threshold set at the user agent, including by the user or as a user agent default (which default should not be longer than three months)

  • — if the change is in all of the meta elements that have the name attribute values set to “topper-minor” or “topper” and, with all of such elements that have the latter, that have the content attribute value set as datetimes, if the change is not otherwise major, and if a count of new minor changes is equal to or greater than a quantitative threshold set at the user agent, including by the user or as a user agent default (a new minor change is in accordance with the table under this specification and is a minor change since the last major change or, if there was no major change, is any minor change)

A count of new minor changes shall be determined from a sum of a count of date-and-time tokens in the content attribute values of meta elements with the name attribute value set to “topper-minor” and a count of date-and-time tokens in the content attribute values of meta elements with the name attribute value set to “topper”; however, no such date-and-time token shall be counted if it expresses a date and time earlier than that for a major change. Non-normatively, it is noted that if an author sets the same date and time for both a major change and a minor change then the resulting sum may be one more than the author may have intended, but this treatment only increases the likelihood of current awareness being provided, rather than missing or delaying current awareness.

Sec. 2.2.4: Providing Current Awareness

The user agent shall provide current awareness of a page at a URL either only for a major change or for any change, with either one being the default for the user agent and with the user being permitted to choose either one for future current awareness.

When, at one time, the user agent is to provide current awareness of a number of the pages greater than one, if the user agent has an upper limit on the number of such pages that can be rendered (or, if the user agent does not generally render pages, otherwise equivalently processed) (non-normatively, it is noted that it may be convenient for a user or efficient for a computer’s RAM to limit the number of tabs a browser may have open at one time), the upper limit optionally to be set by the user agent or the user, the user agent may immediately provide current awareness of a number of such pages up to the limit and defer providing current awareness of additional such pages (additional such pages being ‘such pages in excess of the limit’) until the user agent has capacity within the limit so to render or equivalently process a number of additional such pages, when it shall so render or equivalently process, thereafter repeating until the user agent has so provided current awareness for all of the pages for which providing current awareness is required at the current point in time. Such capacity may be determined by the user agent or the user to be any number not less than one and not more than the limit (non-normatively, this allows the next batch of pages to await the providing of current awareness until such current awareness can be provided for a preset number of them, perhaps one such page at a time or perhaps none until many such pages at a time can be so rendered or equivalently processed).

When the user agent is to provide current awareness of the page at the URL, the user agent shall make the set of all necessary requests of a server for the page at the URL, including through redirection, until the page has been completely received at the user agent and can be rendered or, if the user agent generally does not render a page, can be otherwise equivalently processed. If the page is not completely so received during the current computer connection, it shall, up to two (or other quantity set by the user at the user agent) times or until the page is so received, whichever comes first, make the same set of requests in no more than one computer connection per such set (more than one such set may be made in the same computer connection). If despite all such sets of requests the page has not been so received, the user agent shall so notify the user and solicit from the user further instruction, which may be to make the same set of requests again any number of times set by the user with or without making one or more new computer connections and making the next such set of requests either immediately or at a point in the future set by the user or possibly to be set later by the user or, either permanently (regardless of any future change) or unless and until the page has had a future major change, not to make the same set of requests again, and absent such instruction shall not make such set of requests again unless and until the user agent is on a new occasion to provide current awareness of that or another page at that or another URL.

Otherwise, a user agent shall not, for purposes of current awareness or if there is no purpose, make a set of requests of a server for a page at a URL without the agreement of the user obtained before such set of requests and during the same computer connection. (Non-normatively, it is noted that such agreement is so obtained if the user enters a URL into a browser address bar and presses a key so the browser may, during the same computer connection, send a set of requests for a page at that URL.)

Sec. 2.2.5: Deletion of Unnecessary Records of States

When a user agent has received and rendered (or, if the user agent generally does not render a page, when it has received and otherwise equivalently processed) a page pursuant to a set of requests of a server for the page at a URL, then it shall delete from the table populated under this specification a record that is not record number 0, the record of the most recent state of the page, or a record of another page. (Non-normatively, this means that when a major change is acted upon by providing current awareness, records of minor changes, being no longer needed, are to be deleted.) This does not forbid deletion for other reasons, such as that a user decides so to delete. A user may keep elsewhere a copy of a record before so deleting it. What to do with such copy is beyond the scope of this specification.

Sec. 2.2.6: Synchronization of Tables

Synchronization of tables under this specification and for one user is beyond the scope of this specification.

Sec. 3: Security, History, and Backwards Compatibility

This section is non-normative except as otherwise stated.

Sec. 3.1: Security

Only one security implication has been identified with respect to this specification. That implication is with storage in a user agent of a list of URIs or of pages for which current awareness is pending for or desired by the user, with the possibility of exposure to another entity, such as another user or a hostile party.

Sec. 3.2: History

The author and editor of this specification, except as otherwise stated, was Nick Levinson, who can be contacted through a link on this page.

Version 1 of this specification was published on this page on . Version 1 revised into version 1.1, published on . Version 1.1 was revised into version 1.2, published on . Version 1.2 was revised into this version.

Sec. 3.3: Backwards Compatibility

In a future version, backwards compatibility should be provided.

Sec. 4: Intellectual Property For This Specification

Sec. 4.1: Copyright Status

Insofar as lawful, with respect to the CC0 1.0 Universal legal tool (herein “CC0”) (summarized at https://creativecommons.org/publicdomain/zero/1.0/) (both URLs as accessed ) of the Creative Commons Corporation, Nick Levinson, the original author and editor of this specification, has, upon first publication of this specification, hereby become the Affirmer under CC0 and hereby elected to apply CC0 to this specification, to publicly distribute this specification, and to make this specification available all as provided for in CC0 and hereby waived, abandoned, surrendered, granted, affirmed, offered, and disclaimed all as provided for in CC0 with respect to this specification.

Sec. 4.2: Trademarks, Endorsements, and Associations

“Creative Commons” is a trademark of Creative Commons Corporation; use of such trademark does not imply endorsement by or association with Creative Commons Corporation.

“CC0” is a trademark of Creative Commons Corporation; use of such trademark does not imply endorsement by or association with Creative Commons Corporation.

Sec. 4.3: Trademark and Service Mark Status For “Topper”, “Topper-Major”, and “Topper-Minor”

Trademark and service mark rights in “topper”, “topper-major”, or “topper-minor”, regardless of capitalization, regardless of whether hyphenated, set solid, or spaced, and for the purposes indicated in this specification, are hereby reserved.

Sec. 4.4: Other Claims

Except as otherwise referenced, the original author and editor of this specification, Nick Levinson, is not aware of any claim by any other person or entity to intellectual property adversely affecting this specification.

Sec. 5: Section Titles Not Restrictive

Titles of sections, including subsections at all subsectional depths, are provided solely for convenience and do not restrict the meaning of the content of the respective sections. Titles of sections include headlines of sections.