With fairly recent SVN build of Emacs I have the pasted below HTML code
highlighted wrongly. Namely, "foo" is not highlighted as an attribute
value, apparently because there are non-corresponding (from Emacs point
of view) parentheses in <script>.
Indeed, part of the problem is that we use sgml-mode for this, even
though your file doesn't seem like a properly formed SGML file. We need
to add special support for <script>. Note that we do not properly
support SGML either, e.g. if you use a CDATA[[...]] construct you'll
bump into the same kinds of problems.
It seems that HTML/XML mode uses two different ways to find syntactic
context for indenting code and for syntax-highlighting it, which I
Most/all major modes do. The syntax-highlighting is done "globally"
(especially the comment-vs-string-vs-code distinction), so it can get
seriously messed up over the whole buffer in case the buffer's syntax is
incorrect or is using constructs which the major mode doesn't
understand.