Why does this new HTML spec legitimise tag soup?
Actually it doesn’t. This is a misconception that comes from the confusion between conformance requirements for documents, and the requirements for user agents. Due to the fundamental design principle of supporting existing content, the spec must define how to handle all HTML, regardless of whether documents are conforming or not. Therefore, the spec defines (or will define) precisely how to handle and recover from erroneous markup, much of which would be considered tag soup. For example, the spec defines algorithms for dealing with syntax errors such as incorrectly nested tags, which will ensure that a well structured DOM tree can be produced. Defining that is essential for one day achieving interoperability between browsers and reducing the dependence upon reverse engineering each other. However, the conformance requirements for authors are defined separately from the processing requirements. Just because browsers are required to handle erroneous content, it does not make such markup