Page Titles, Subtitles & Bylines

Correct HTML Markup

Robert I. Sadler


If the purpose of HTML is to provide structure to documents, then why is there no clear-cut way to denote the title, subtitle and author(s). Most people use the various <hn> elements, but is this correct? The answer is both yes and no.

No, technical it is incorrect to use the <hn> elements to provide markup for the title, subtitle and / or author(s) of a document. According to the HTML 4.01 specification:

A heading element briefly describes the topic of the section it introduces. Heading information may be used by user agents, for example, to construct a table of contents for a document automatically.

This means that the defined purpose of a heading element is to serve as a the marker of a new section and the description thereof. The title, subtitle and name(s) of author(s) of a document do not fall in this definition, as they do not introduce any sections within the document, but the document itself.

Furthermore, by using <hn> elements, the second part of the specification is confused when an user agent (UA) tries to parse the HTML for structure to build a table of contents. We would then get something like:

  1. Page Titles, Subtitles & Bylines
    1. Correct HTML Markup
      1. Robert I. Sadler
        1. The Situation
        2. Right or Wrong?
        3. The Solution

Our markup did not correctly convey the structure of the document to the UA.

Yes, it is correct to use <hn>, coupled with <address> as markup for the title, subtitle and author(s) of a document, simply because the HTML specification does not offer us a viable alternative. And the search engines are not helping.

A good solution would be if the HTML 5 specification includes these new tags:

<title>
The title of the document; block-level element.
<subtitle>
The subtitle of the document; block-level element.
<byline>
Block-level element for the name(s) of the author(s)
<author>
Inline element for the name of an author, with attributes for contact details.
<abstract>
An abstract of the document; block-level element