Day 37 of 100DaysOfSpec, 3.2.4 Content Models, contd.

I am reading and taking notes on the HTML specifications for 100 days as part of #The100DayProject. Read the initial intent/backstory. I am a Microsoft employee but all opinions, comments, etc on this site are my own. I do not speak on behalf of my employer, and thus no comments should be taken as representative of Microsoft’s official opinion of the spec. Subsections not listed below were read without comment.

Currently reading in 3.2.4 Content models.

3.2.4.1.3 Sectioning content

Defines “scope of headings and footers”. A lot of people only use header and footer elements for the universal, presentational header and footer of a website. However, these elements add meaning to sectioning content.

Elements in this category:

  • article
  • aside
  • nav
  • section

Each of these might have a heading and an outline.

There are other elements that are “sectioning roots”—not sectioning content—but they can have an outline, as well.

3.2.4.1.4 Heading content

Heading elements: h1, h2, … h6. These are headers of sections that can be marked up inside a section or stand alone.

3.2.4.1.5 Phrasing content

Text of the document, and elements that mark up text within the “intra-paragraph level”.

Check out the full list in the spec, because there are a lot of surprises there (to me, at least): form elements, canvas, object, select, video…I was expecting elements that seemed strictly text-oriented.

Text can apparently mean anything, re: content models:

  • nothing
  • Text nodes
  • sometimes its own content model
  • also a phrasing model
  • can be inter-element whitespace (like that moment when you’re first starting out when you realize carriage returns in your code are ignored and collapsed).

“Text nodes and attribute values must consist of Unicode characters, must not contain U+0000 characters, must not contain permanently undefined Unicode characters (noncharacters), and must not contain control characters other than space characters.”


Comments