Web standards have always been about good markup, keeping things in order and cleaned up, etc. Using transitional or strict DTDs and validating our markup with different tools was a good practice encouraged by many. With HTML5 things seem to be going a bit backwards regarding structure and markup rules. Google’s HTML styleguide shows an example of how many tags in HTML5 are now optional. The good part of it is that markup is more simple and file sizes get reduced a lot. For high traffic websites like Google’s, every byte saved can be a big difference.
Back when HTML4 was being widely used, there was a lot of messy markup, incomplete tags and many ugly things done by different tools or even made by hand. Then XHTML came in to establish good practices. Web standards were not exactly born then, but got established, more widely known and adopted. XHTML brought a lot of structure and rules on the markup, all with the promise of being forward compatible with whatever new technologies would bring. By having a very well structured document and a correct markup, there would be no ambiguity for the markup parsers of that time and the ones the future would bring.
But now with HTML5 everything that XHTML came to establish seems abandoned. The HTML markup has always been very permissive, as browsers tend to fix any unclosed tags and minor details like that. But the fact that the specification itself is also very permissive with lots of thing as optional, makes me think that we’re going backwards and contradicting everything that was told on the XHTML “web standards days”.
Very little effort is needed to update any XHTML document into HTML5. The move with HTML5′s new tags is to have a more semantic web and it seems to work fine. The question is: will HTML5′s loose markup be as forward compatible as XHTML markup turned out to be?