It must be admitted that many aspects of HTML appear at first glance to be nonsensical and inconsistent.
Yes, there are two separate specifications for HTML 5.
In the beginning there was HTML. This was formalised in the mid-90s as HTML 3.0, then 3.2, then 4.0. Then the W3C agreed that HTML would be better expressed as compliant XML, which became a formal standard in 2000.
From there, efforts went in directions other than further developing the XHTML standard. But it’s no secret that web standards have been creaking at the seams for a while. In 2004 interest re-emerged in developing the standard. It went slowly. Apple, Opera and Mozilla split off to form their own consortium, WHATWG (Web Hypertext Application Technology Working Group).
Finally W3C and WHATWG came together to work on HTML 5, and they agreed the spec for 5.0 in 2007. Actually two slightly different specs.
The two are in fact largely identical. The biggest difference between them is philosophical: W3C considers their HTML 5 spec to be fixed, and are making progress on version 5.1, while WHATWG consider it a ‘living specification’ and are continuing to evolve it.
In terms of content, the WHATWG spec contains a number features that are included elsewhere under the W3C aegis, and differs on some points of detail. You can read WHATWG’s account of the differences – doubtless other accounts are available.
Which version have I used here?
The limiting factor in writing HTML 5 is browser implementation. Generally the W3C spec seems more conservative of the two, so that’s the one I’ll use as a baseline.
And sooner or later I’ll write about XHTML 5.