Is there an example of something which is valid HTML _and_ which would (for good reason) be interpreted as something else by the old parser?
Well, the one above. And, "for good reason" is relative, I guess.
If you present the reason why anyone would write that, then I might be able to judge whether it is "good" or not...
I very much do /not/ want to keep the current interpretation. It would just requite a significantly more extensive rewrite of the parser to do it correctly.
foo="'"bar"'" to set the attribute "foo" to "'bar'"
^^^^^^^
But you just said how that is written shorter and less convoluted!
Indeed.
The actual example in the testsuite was more along the lines of
foo='"This is a quotes string. it'"'"'s using both types of quotes"'
-> "This is a quoted string. It's using both types of quotes"
I would prefer using entities, myself. And I think that has always been the prefered method.
foo=""e;This is a quotes string. it's using both types of quotes"e;'
And I really have no idea what the Parser.HTML documentation says about it all, I do not think it actually mentions how things are parsed. But the code goes to great lengths to actually support the concatenation of strings, so it must have been intentional.