Let’s write books in HTML! HTMLBook is an open, XHTML5-based standard for the authoring and production of both print and digital books. HTMLBook is built on the following premises:

  • Books are timeless. The basic “book” structure has persisted for hundreds of years and will continue to persist for our lifetimes, be it in digital or print form.
  • HTML is the markup language of the world for the foreseeable future.
  • Single-source document processing will remain valuable for the foreseeable future.

As such, HTMLBook can be characterized in the following ways:

  • HTMLBook is a subset of XHTML5. All HTMLBook is XHTML5, but not all XHTML5 is HTMLBook.
  • HTMLBook contains no additional elements or attributes outside of the XHTML5 specification.
  • HTMLBook is semantically tailored to the structure of a book, including more complex content used in technical and reference documents.
  • HTMLBook is defined with and can be validated against an XML schema.
  • HTMLBook stylesheets are written in CSS.

Notes on the HTMLBook Specification

Requirements for HTML5 elements in the HTMLBook specification are below. Special semantic inflections for data-type attributes, unless otherwise noted, come from EPUB 3 Structural Semantics Vocabulary

Many content models refer to “Block Elements” or “Inline Elements”; please see Block Elements and Inline Elements for the corresponding list of HTML5 elements that belong to each of these categories.

If no content model or attribute requirements are explicitly specified, then HTMLBook adopts the corresponding requirements in the [[!HTML5]] Specification

Revision History and Notes

16 September 2015
Added informative section on reference entries
25 February 2015
Clarified HTMLBook specifications for inline semantics/tagging
8 April 2014
Updated specifications for section subtitles to comply with best practices set forth in “Common idioms without dedicated elements” in [[!HTML5]] Specification.
29 December 2013
Minor revisions for clarity
13 August 2013
Revised specification for footnote markup
3 July 2013
Changed spec to use the attribute data-type for specifying book-specific semantics instead of class. The class attribute is now free to be used for whatever user-defined semantics are desired, and there are no restrictions on class values. Users of the spec may want to replicate data-type values in the class attribute to facilitate CSS styling, but this is completely optional.
19 April 2013
First release of Working Draft

Book Component elements


HTML element:

Attribute requirements: data-type="book" (Not in [[EPUB3SSV]]; from [[DOCBOOK]])

Content model: Optional

that contains book title, or Header block that contains book title and optional subtitle content; then one or more Book Component elements as children (
for Part elements,