Anyone who tells you that HTML should be kept “pure” (presumably by ignoring browser makers, or ignoring authors, or both) is simply misinformed. HTML has never been pure, and all attempts to purify it have been spectacular failures, matched only by the attempts to replace it.
It made me really think about the utility of the concept of purity. I think that placing a high value on purity is in nearly all cases a case of intellectual laziness. An obsession with purity allows you to avoid critically evaluating factors that might otherwise go into making the best decision. For example, let’s say I’m writing an application using Ruby on Rails and I need an XML parser. Some would argue that I should only use “pure Ruby” XML parsers and leave it at that, but that’s not helpful. Impure parsers may be faster, or offer more features. On the other hand, pure Ruby parser may be easier to deploy. But the discussion should center on those competing benefits, not on the abstract concept of purity.
If you look at the history of purity as a virtue over the course of human history, you will certainly find that any fixation on it has been unrealistic at best and disastrous at worst. Reject purity. It’s overrated.