We'd be screwed without HTML. While some dismiss it as nothing more than markup (which, certainly, it is), it's hard to imagine life without it, and even the coder most remote from WebDev has at least a few reasons to take note of the language—if for nothing else than blogging about other feats of (computer|beer) science.
Niggling Issues Done In
HTML5, like any standard which has evolved over decades, is filled with metaphorical loose ends. 5.1 seeks to address at least some.
Tabbing through elements is tricky and fragmented. While the
tabindex attribute is the prescribed remedy at the moment, there are plenty of issues with getting this to work with the "visual" logic of the interface.
Move the sequential focus navigation starting point to <var>target</var>.
The Content Security Policy was introduced to guard against cross-site scripting attacks. (As always, attacks precede defenses by a significant amount of time, and before CSP, a user could install something like NoScript, a particularly heavy intervention.) 5.1 will add additional specification around inline elements, styles, and scripts—crucial!
Ejected Like a Superfluous Primary Candidate
Some things just never make sense. The W3C has elected to do away with some of them—probably in the way we wish we could for other things—by simply changing the standard of what's acceptable.
Off the Table
In tried-and-true HTML4, you write "tfoot" before "tbody." HTML5 allows it wherever. But for the sake of tabbing (see above) and accessibility in 5.1, the content model has reverted to the behavior of 4.
Microformats and microdata were these cool little tags you could add to your HTML in order to specify what the content was, such as an address.
Schema.org supersedes this. (Most people will not want to implement it, however, because it's extremely verbose. However, JSON-LD is a much-welcome and much, much cleaner implementation.)