W3C home > Mailing lists > Public > www-validator@w3.org > June 2005

Re: SCRIPT and embedded markup

From: Liam Quinn <liam@htmlhelp.com>
Date: Tue, 31 May 2005 20:36:57 -0400 (EDT)
To: Undeference@netscape.net
cc: www-validator@w3.org
Message-ID: <Pine.LNX.4.44.0505312027040.30291-100000@localhost.localdomain>

On Mon, 30 May 2005 Undeference@netscape.net wrote:

> But the reason for there being even a mention to the invalidity of the
> following is astounding (from
> <http://www.htmlhelp.com/tools/validator/problems.html#script>:
> <script type="text/javascript">
> <!--
>   // This is an error!
>   document.write("</P>");
> // -->
> </script>
> 
> The purpose of commenting out the script content is to hide it from old
> (really old) browsers so that only newer browsers handle it. However,
> just because UAs stoop to the level of snooping out comments to support
> an outdated and improper hack does not mean a validator should.
> As far as a validator that *properly* parses HTML or XML documents, the
> above code should be exactly identical to the following:
> <script type="text/javascript">
> 
> </script>

That's true in XHTML but not in HTML.  In HTML 4, the "script" element is
declared as having CDATA content, whereas XHTML declares "script" to have
#PCDATA content.

In CDATA content, the "<!--" and "-->" are part of the script; they are
not HTML comments.  In CDATA content, end tags are recognized, but start
tags and comments are not.  That's not intuitive, but that's how CDATA is
defined in SGML and hence HTML.

-- 
Liam Quinn
Received on Wednesday, 1 June 2005 00:36:52 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 25 April 2012 12:14:19 GMT