In a pissed off response to this answer on Stack Exchange, I need to vent.

The question opens with...

So what happened to XHTML5?


And the accepted answer doesn't even answer the question!

In a (IMO) very stupid move, the W3C has dropped support for XHTML style syntax in favour of the supposedly easier-to-write less-valid HTML style syntax that we all realised was very bad back in the days of HTML4.

The accepted answer correctly outlines that, but completely fails to understand that XHTML5 is actually a thing that exists, as HTML5 exists, and it is now just a flavour of HTML5.

I will pick this answer apart here and now.

Only few people were really interested in XHTML. Most of the websites were written in plain HTML.

No, most people, which seems to be a growing trend, didn't take the time to understand logic and structure. They didn't take the time to learn the standard, because humans tend to fear change and stick to what they know.

Just because most of the websites that exist on the internet are coded in old HTML4 syntax, doesn't mean they are right. They exist because HTML4 existed as a standard far longer than XHTML, and therefore, there are obviously more HTML4 sites around.

Even fewer really understood what XHTML is about and how to use it. Too many websites which pretended to serve XHTML used wrong headers, instead of Content-Type: application/xhtml+xml.

The ansering person's next point goes to erase this one...

Even when you fully understand what XHTML is and what must be the headers, the thing is really tricky with some crappy browsers not accepting/supporting application/xhtml+xml content type. This meant that you had to change the header according to the browser.

Yes, it was the fault of browsers in the market not correctly implementing the standard, not people who coded it. They had to send incorrect headers and doctypes to counteract poor browser support.

The XML part of XHTML also caused some weird situations the developers had to solve. One is INVALID_STATE_ERR: DOM Exception 11 message appearing when you assign the text containing HTML characters (like é) to an element within the XHTML page. When you encounter this error with its very helpful message in a large web application after doing an AJAX request, you have really no idea if it's the fault of JQuery, AJAX, or something else.

I have been developign XML applications and XHTML websites for a very long time, and I have never ever ever come accross this error message. Ever. I can though, make an assumption that it was caused by developers not writing correct code. Googling this error shows that to be true; It's not the fault of XML/XHTML, rather the libraries being used.

Writing HTML 5 code doesn't mean mixing up tags all around. If you're passionate about XML and XHTML, you can still write HTML 5 code which will look very close to XML.

And, funnily enough, they call this XHTML5.

In the early days of mobile phones, XHTML was interesting for the mobile devices which were not very powerful. Parsing XML is much easier than HTML. Now, with dual-core mobile devices, it really doesn't matter if they have to parse clean valid XML or dirty HTML full of hacks and mixed tags.

I cannot believe that someone is suggesting that just because computers are faster at trawling through non-structured "dirty HTML full of hacks and mixed tags" as he so well puts it, it is the right thing to do. I mean, what world do we live in here?

Further down the page is another answer that is more accurate here.

What the hell happened?

I remember the days of HTML4, and even before that; It was a mess. Browsers didn't know what to do. Their rendering engines were bloated because they had to guess what the hell was going on with the HTML they were reading.

Along came XML and XHTML, and browsers began to speed up all on their own, without having to wait for 'better processors'. Sadly they still had to support the old engines, but the idea was they wouldn't have to for long.

XHTML was the beginning of a move towards machine readable code for machines to read, not awful code for lazy humans to write. The idea as I understood it was to slowly transition a switch from XML being a structured flavour of HTML, to XML being the underlying foundation of all HTML-like syntaxes; That meant logic, structure, ordered code. Code that you could read and understand as a machine could.

Sadly, people come and go in this industry, their lives mean less time can be aportioned to these things, and so in came new people; the 'cool kids', who didn't really 'get it' when it came to the big picture of XHTML. Instead of asking questions to the right people, they just shit on it and went back to bad code. A standard was born, if you can call HTML5 a standard, where poor syntax was acceptable; You do it how you choose to. Bad idea.

I can tell you that the stance the W3C has taken on HTML5 over the emerging and growing XHTML spec was a very bad decision indeed. I agree that the XHTML2 spec was a little odd, and should have been merged with HTML5 rather than dropped completely; Just becuase a group of people with less knowledge on how these things work favoured HTML style syntax because it meant they could get away with not learning their trade properly, doesn't mean that the W3C should have gone down that road.

It is now very difficult to write structure logical HTML5 (as XHTML5) without having to trick the browser. That is a very bad thing when there are so many huge applications in the world that rely on true XML to function. How are they supposed to adopt HTML5? Oh, we have polyglots. Great. You try finding useful resources that explain that to you properly. In fact, don't, here you go:

In the future, when the smart people return to the scene, or when the 'cool kids' realise the mistake of shit markup, I can see a return to fully logical markup; XHTML will return, some day.