tutorial home previous panel: Improper Row and Column Lists

Appendix: Catering to Frames-Incapable Browsers

While the frames-capable browsers do indeed claim a large portion of the internet audience, it still does not claim all of it. Thus, when designing your WWW site, it is important to remember that some of your guests will be unable to display frames. If you don't consider your entire audience, you may lose out to someone who does.

The Blank Document Problem

Let's re-examine a typical frames document:

<html> <head> ...header information... </head> <frameset ...> <frame src=...> <frame src=...> . . . </frameset> </html>

What do you think will happen if you attempt to view this document with a frames-incapable browser? If you guessed, "absolutely nothing," you are right. Because there is no text in this document, you will see nothing but a blank browser screen. This is clearly a problem.

With the container tags <noframes> and </noframes>, however, it is possible to implement frame documents that are "friendly" to frames-incapable browsers. According to Netscape's original frames proposal, data contained between <noframes> tags should be ignored by frames-capable browsers. Thus, <noframes> tags make it possible to put information in frameset documents that can be read by frames-incapable browsers and eliminate the blank document problem.

However, one observant reader noted:

I guess what I'm still confused about, though, is what good is the <noframes> tag even in the [frameset] documents?!? I mean, one can include text for non-framed browsers just as easily by including plain text at the bottom of the [frameset] document [without the <noframes> tags]. I fail to see how <noframes> makes any difference in this context!

<noframes> Tags in Contents Documents

Unfortunately, because the current release of the Netscape Navigator recognizes <noframes> tags only when they are contained by <frameset> tags, <noframes> tags can only be effectively used in frameset documents, not body documents. In other words, at the time of this writing, current implementations of Navigator completely ignore <noframes> tags, but not their contents, when seen inside body documents.

Before the advent of frames, most HTML programmers included navigation sections at the top or bottom of their documents (i.e., "click here to go to the next section," "return to home page," etc.). Documents from framed web sites, however, usually have quite a different appearance. This is because HTML programmers usually use frames to divide the browser window into two kinds of frames: navigation frames and content frames. In this scenario, one or two frames act as non-scrollable, always-visible "navigation bars," and hyperlinks within those frames are use to select the contents of the main content-containing frame.

Because each frame in a frameset displays a distinct HTML document with its own URL, users of non-frames browsers can still read framed documents by viewing the frames one at a time. Of course, because they will be more interested in the content frames than the navigation frames, they will be unable to navigate through the pages unless redundant hyperlinks are offered in the contents documents as well as in the navigation documents.

Its a Catch-22. In content documents, you can include redundant links to accommodate non-frames browsers, but in the process, you may also ruin the appearance of your site, since frames-enabled browsers will show multiple sets of functionally identical hyperlinks. Not only is this visually unattractive, but it also defeats the purpose of presenting your document in frames format in the first place.

Fortunately, there may be a simple solution to this problem in the future. I mentioned in Lesson 4 that the <noframes> tags only work in layout documents. However, if frames-capable browsers were modified to recognize <noframes> tags in contents documents as well as in layout documents, frames programmers could then use the <noframes> tags to conceal redundant hyperlinks. This is a good reason for the makers of frames-capable browsers to enable <noframes> tags within contents documents.

Microsoft has wisely responded to this idea by implementing this behavior in their browser, Internet Explorer. However, Netscape is still quite stubborn on the issue, and appropriate pressure needs to be applied until they implement this wise feature in their own browser. A frames document called Offensive Logistics, by Seino Information Service, is a good example of how the <noframes> tag can be used to accomodate both frames-capable and frames-challenged browsers.

-- End of Lesson 5 --

[ menu | previous page ]