Re: Strange definition of Frame in Cougar DTD

Doug Sheppard (sirilyan@dlcwest.com)
Tue, 29 Apr 1997 10:30:14 -0600


Message-ID: <33662215.56E4D9D2@dlcwest.com>
Date: Tue, 29 Apr 1997 10:30:14 -0600
From: Doug Sheppard <sirilyan@dlcwest.com>
To: Masayasu Ishikawa <mimasa@vega.aichi-u.ac.jp>
CC: www-html@w3.org
Subject: Re: Strange definition of Frame in Cougar DTD

Masayasu Ishikawa wrote:
> 
> Hi,
> 
> I checked 18-Apr-97 version of Cougar DTD and found a strange definition
> related to Frame. In Cougar DTD, FRAMESET element is defined as:
> 
>         <!ELEMENT FRAMESET - - (FRAMESET|FRAME)+>
> 
> There's no space for NOFRAMES, isn't it? It should be
> 
>         <!ELEMENT FRAMESET - - (FRAMESET|FRAME|NOFRAMES)+ >

Netscape's own implementation implies that the first is correct.

> or at least
> 
>         <!ELEMENT FRAMESET - - ( (FRAMESET|FRAME)+ & (NOFRAMES?) )>
> 
> I think NOFRAMES element should be defined as COMPULSORY element
> for Frame document, because without NOFRAMES, Frame document becomes
> totally useless for user agents that don't support Frame.

How so?  Without *some sort of* information not in the FRAME element,
the document becomes useless.  The use of NOFRAMES was syntactic sugar
that Netscape originally introduced and I for one never see a need for
it (but see below).  To a non-frame-supporting browser, there's no real
difference between

<NOFRAMES>
 <BODY>
  &body.content
 </BODY>
</NOFRAMES>

and

<BODY>
 %body.content
</BODY>

(Perhaps the latter breaks on some frame implementations, but *I*'ve
never had any trouble with it on the frame-aware browsers I've tried,
and Netscape has been remarkably poor about providing support for
questions of their HTML extensions.)

The most recent HTML-WD on frames gives NOFRAMES as a container within
the body; browsers that don't understand NOFRAMES will ignore it as an
unknown tag, while those that do will not render its content.  In a
(presumably) Cougar-compliant browser,

<BODY>
 <NOFRAMES>
  <IMG SRC="nav.png" ALT="Navigation bar" USEMAP="#map">
 </NOFRAMES>
 %body.content
</BODY>

will only display the navigation bar image if the browser does not
currently have frame support activated.

-Doug