HTML5: The Battlefield Remains of an Unnecessary War, Part 6

by The H.E.A.T. Exchange

Discussion Point 3: When Things are Fucked Up, It Usually Starts At the Top.

Another problem with tracing is that you may end up losing focus on your original intent.  You started off wanting a full circle, but your trace left you with an elliptical pattern.

At the top level of any HTML 5 document are three elements: HTML, HEAD, and BODY.  According to the HTML 5 specification, paragraph 4.1.1.(The html element):

The html element represents the root of an html document.

Additionally, the XML 1.0 (Fifth Edition) specification, paragraph 2 (Documents) states:

A document begins in the “root” or document entity.

This makes good sense when you consider that the W3C was steering the web towards a more strict and extensible means of using markup. In this case, the two specifications are cooperating.

Here is where things begin to fall apart for the W3C in their endeavor to trace the work of the WHATWG.

The html element neither has any strong native semantics nor ARIA role assigned to it.

Instead, the W3C assigns the ARIA role DOCUMENT to the body element. Wait a minute. Within the same specification, the W3C states that the html element is the root of an html document, but at the same time assigns the DOCUMENT role to the body element.

But that’s not all. Here is what the ARIA 1.0 specification has to say about the DOCUMENT (role) (third paragraph):

Authors SHOULD set the role of document on the element that encompasses the entire document.

At this point the ARIA specification agrees with XML 1.0 and the definition of the html element in HTML 5, but soon detours when trying to conceal a recognized fuck up:

If the document role applies to the entire web page, authors SHOULD set the role of document on the root node for content, such as the body element in HTML or svg element in SVG.

The root node for content? When did we start recognizing a root node for content? The html element applies to the entire web page; the body element does not. The W3C appears to be looking for any way to make something simple complicated.

Here’s why assigning the DOCUMENT role to the body element doesn’t make sense and this is from the ARIA 1.0 specification discussing how to label a document:

If the document includes the entire contents of the web page, use the host language feature for title or label, such as the title element in both HTML and SVG. This has the effect of labeling the entire document.

The TITLE element is part of the HEAD element in HTML 5. If the title element is understood to label the entire document, then why is the body element given the DOCUMENT role as it is a sibling of the head element?

What is obvious is that whoever decided to assign the DOCUMENT role to the body element was looking at an html document from a visual or presentational perspective. Since the content of the body is what the user sees, then it is the document.

This is wrong, not only due to the W3C’s own specifications, but also due to the fact that the head element contains other information (metadata) important to the same document. Taken as a whole, the head and body element are critical to representing an HTML document.

Just as the WHATWG did with the B and I tags, the W3C has adopted the same “dazzle them with bullshit” mentality by trying to devise some kind of root element for content to justify away a known error.

This is what happens when you base a specification or living standard on no real standard: you end up setting fires all over the place.

End of discussion point 3