HTML 4.01 Erratum - Meta data profiles

Julian Reschke (julian.reschke@gmx.de), 2009-10-12

Introduction

The HTML 4.01 recommendation is inconsistent in its description of the profile attribute:

  1. The DTD specifies %URI;, which just expands to CDATA.
  2. On the other hand, the prose talks of This attribute specifies the location of one or more meta data profiles, separated by white space. For future extensions, user agents should consider the value to be a list even though this specification only considers the first URI to be significant. Profiles are discussed below in the section on meta data..

Since the publication of HTML 4.01, many meta data profiles have been defined, and many of them can be used in the same document. While the profile attribute does not help in discovering which profile applies to which part of the document, it does allow declaring which profiles are in use, potentially triggering extended behavior in recipients.

This erratum restores consistency in HTML 4.01, explicitly allowing multiple URIs in a single profile attribute.

Changes to HTML 4.01

1. 6.4 URIs

After

URIs are represented in the DTD by the parameter entity %URI;.

add

Sets of whitespace-separated URIs are represented by the parameter entity %URIlist;.

2. 7.4.1 The HEAD element

Replace

  profile = uri [CT]
  

by

  profile = urilist [CT]
  

(just replacing "uri" by "urilist", but not changing the link target)

Replace

  profile     %URI;          #IMPLIED  -- named dictionary of meta info --
  

by

  profile     %URIlist;      #IMPLIED  -- list of named meta info dictionaries, whitespace separated --
  

Update the attribute index accordingly.

Replace

This attribute specifies the location of one or more meta data profiles, separated by white space. For future extensions, user agents should consider the value to be a list even though this specification only considers the first URI to be significant. Profiles are discussed below in the section on meta data.

by

This attribute specifies the location of one or more meta data profiles, separated by white space. In case of ambiguities, profiles that appear earlier in the attribute value should be considered more significant. Profiles are discussed below in the section on meta data.

3. 7.4.4 Meta Data (Section: "Meta Data Profiles")

Replace

The profile attribute of the HEAD specifies the location of a meta data profile. The value of the profile attribute is a URI. User agents may use this URI in two ways:

by

The profile attribute of the HEAD specifies a set of locations of meta data profiles. The value of the profile attribute is a whitespace-separated list of URIs. User agents may use these URIs in two ways:

4. 21 Document Type Definition

Note: the changes below apply both to the copy of the DTD in the HTML 4.01 spec, and the actual DTD files.

After the definition for URI, insert:

<!ENTITY % URIlist "CDATA"
    -- whitespace-separated list of Uniform Resource Identifiers,
       see [URI]
    -->
  

Also, consistent with Change 2, replace

<!ATTLIST HEAD
  %i18n;                               -- lang, dir --
  profile     %URI;          #IMPLIED  -- named dictionary of meta info --
  >
  

by

<!ATTLIST HEAD
  %i18n;                               -- lang, dir --
  profile     %URIlist;      #IMPLIED  -- list of named meta info dictionaries, whitespace separated --
  >