h element

A Collection of Interesting Ideas,

This version:
https://github.com/jonathantneal/h-element-spec
Editor:

Abstract

The goal of this document is to specify an element for contextual headings within values in HTML.

1. Introduction

In HTML, headings have long been a source of frustration for developers. Assigning explicit heading levels is as inefficient and error-prone as writing <li1> or <li2> instead of <li>. Within changing contexts, like those generated by a CMS, headings often require additional backend tools to determine their appropriate level.

We need contextually aware heading elements. The <h> element is ideal for situations where the context of a heading may change, either before or after the source is sent to the browser.

2. The h element

The h element defines the heading of sectioning content. The nesting of the sectioning content indicates the hierarchical level of the heading.

<body>
    <h>This is a top level heading</h>
    <p>...</p>
    <section>
      <h>This is a second-level heading</h>
      <p>...</p>
    </section>
    <section>
      <p>...</p>
      <h>This is another second-level heading</h>
      <p>...</p>
      <section>
        <h>This is a third-level heading</h>
        <p>...</p>
      </section>
    </section>
</body>

The first descendant h element in sectioning content represents the primary heading for that section. Subsequent and subsidiary h elements nested within sectioning content represent subheadings, alternative titles, or taglines, allowing the primary heading for sectioning content to be grouped with any secondary headings to form a multi-level heading.

<h>Dr. Strangelove</h>
<h>Or: How I Learned to Stop Worrying and Love the Bomb</h>
<h>
    Dr. Strangelove
    <h>Or: How I Learned to Stop Worrying and Love the Bomb</h>
</h>
<h>
    <h>Dr. Strangelove<h>
    <h>Or: How I Learned to Stop Worrying and Love the Bomb</h>
</h>

Conformance

Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.

All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes. [RFC2119]

Examples in this specification are introduced with the words “for example” or are set apart from the normative text with class="example", like this:

This is an example of an informative example.

Informative notes begin with the word “Note” and are set apart from the normative text with class="note", like this:

Note, this is an informative note.

References

Normative References

[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119