Alternative proposal for FRAMEs

Arnoud (galactus@htmlhelp.com)
Tue, 24 Dec 1996 19:46:50 +0100


From: galactus@htmlhelp.com (Arnoud "Galactus" Engelfriet)
To: www-html@www10.w3.org
Subject: Alternative proposal for FRAMEs
Date: Tue, 24 Dec 1996 19:46:50 +0100
Message-ID: <aUCwy4uYO1QN089yn@htmlhelp.com>

-----BEGIN PGP SIGNED MESSAGE-----

Hi. I'm the Web Design Group reference guy[0]. This is an attempt to create 
a workable alternative to Netscape's frameset implementation. While
their concept is nice, I feel there are many problems with the
implementation.

1) Other than the initial frameset, no frameset configurations can
be bookmarked. This makes it impossible to refer to a specific
set of documents.
2) There is no information on *why* the framed documents belong together.
3) Providing content to non-supporting browsers requires a lot of
extra work. Frames are not backwards compatible.

My proposal approaches the technique from the other site. Rather than
providing the layout first, with a list of the documents to load,
the frameset is defined for *a document*, using the LINK element. Using
the REL and REV attribute, all the other frames are specified. The
frameset configuration is specified in a separate file, which is
defined using <LINK REL=frameset>. The syntax for this file is just
like Netscape's syntax, but the SRC attribute on the FRAME element
is ignored. Each frame should be given the name given in the REL
or REV attribute.

This proposal has the following advantages:
1) If no support for frames is present, the content can still be read.
2) Browsers that support building toolbars for LINK elements can use
this new syntax.
3) Browsers that support the 'old' frameset syntax can use the document
defined in the REL=frameset link to set out the site.
4) Each frameset can be bookmarked. Only documents containing a full
set of LINKs can be displayed in frames, so for every frameset that
you see there is a unique URL.

Disadvantages:
1) Lots of extra work. The frameset configuration has to be duplicated
in every document, even when it is output from a CGI.
2) You can't "frame" existing documents without modifying them first.
I'm not sure if this is a disadvantage - usually this is not appreciated
by the maintainer of the "framed" documents or site.
3) There are some subtle problems with the names of the frames, as
one REL=frameset document can be used for multiple frames. I'm not
sure how to handle this.

The only serious problem I can see right now is that the frameset
document does not "know" which document it is for; since that is
not defined in a LINK element, it is not assigned a name and so you
can't indicate the frame it should go into. This could be fixed by
using a list of <LINK REV=somename> elements in the frameset document,
which is used to look up the name for the current document and to
determine its location in the frameset.

For example:
Document A looks like this:
<TITLE>Document A</TITLE>
<LINK REL=toc HREF=b.html>
<LINK REL=frameset HREF=frames.html>
<H1>Document A</H1>

Document B looks like this:
<TITLE>Document B</TITLE>
<LINK REL=frameset HREF=frames.html>
<LINK REL=content HREF=a.html>
<H1>Document B</H1>

Document frames.html looks like this:
<TITLE>Frameset for A &amp; B</TITLE>
<FRAMESET ROWS="50%,50%">
<FRAME NAME=toc>
<FRAME NAME=content>
</FRAMESET>

And the result looks like this:
+----------------+
|   Document B   |
+----------------+
|   Document A   |
+----------------+


Any comments and suggestions for improvement are welcome.

Galactus
[0] Who spots the reference? :-)
- -- 
E-mail: galactus@htmlhelp.com .................... PGP Key: 512/63B0E665
Maintainer of WDG's HTML reference: <http://www.htmlhelp.com/reference/>


-----END PGP SIGNED MESSAGE-----