Why is SCRIPT an inline but NOSCRIPT a block element?

Rob (wlkngowl@unix.asb.com)
Sun, 16 Nov 1997 16:52:06 -0500


Message-Id: <199711162203.RAA19919@unix.asb.com>
From: "Rob" <wlkngowl@unix.asb.com>
To: www-html@w3.org
Date: Sun, 16 Nov 1997 16:52:06 -0500
Subject: Why is SCRIPT an inline but NOSCRIPT a block element?

Why is (in both the loose and strict DTDs) SCRIPT a %special element,
but NOSCRIPT is a %block element?

Consider the following:

  <P>Blah
   <SCRIPT type="text/javascript"><!--
    document.write("even with JavaScript");
   //--></SCRIPT>
  and more blah</P>

If instead I use something like

  <P>Blah
   <SCRIPT type="text/javascript"><!--
    document.write("even with JavaScript");
   //--></SCRIPT>
   <NOSCRIPT>
    still blah
   </NOSCRIPT>
  and more blah</P>

it won't validate because NOSCRIPT is a block element, so an end-tag </P> 
is implied before <NOSCRIPT>.

It makes more sense for both SCRIPT and NOSCRIPT to be valid in the same 
context, since a well-made document would have an alternate markup for 
browsers without the scripting language.

Was this on purpose or just an oversight?

Rob

-----
"The word to 'kill' ain't dirty    | Robert Rothenburg wlkngowl@unix.asb.com
 I used it in the last line        | http://www.asb.com/usr/wlkngowl
 but use the short word for lovin' | http://www.wusb.org/mutant
 and Dad you wind up doin' time."  | PGP'd mail welcome (ID 0x5D3F2E99)