GeoCities.us GeoCities.us » SiliconValley » Monitor Get your FREE home page!
FRAMED!  the case against
[ Home | The Tutorial | The Case Against Frames | Mail ]

I want to be fair about this. Frames were exciting when Netscape 2 brought them out in 1996. For the first time your menu could stay put while the rest of the page changed, and it felt like the Web was growing up into real software. I built a three-pane site and I thought it was the slickest thing in SiliconValley.

Here is what two years of reader mail taught me instead. Nine reasons, roughly in order of how many times I've heard each one.

1. Nobody can bookmark anything.
The address in the browser's location box is the frameset page, not the page your visitor is reading. They find your pot roast recipe, three clicks deep, and bookmark it. Next week the bookmark opens your front page, and the pot roast is gone forever as far as they're concerned.

2. Nobody can send a link to a friend.
Same problem, and this is the one that got my mother. Every copied address is the front door. You can tell people to right-click and open the frame in a new window first, but the people who know how to do that are not the people who need to.

3. The Back button.
In Netscape 2, Back threw you out of a framed site entirely. Version 3 fixed that, and now Back steps backward one frame at a time, which confuses people in a whole new way. Click Back and the menu changes but the page doesn't, or the banner goes blank. People don't know which pane they're backing out of. They just know it isn't doing what Back does everywhere else.

4. Printing.
Try to print a framed page and you get whichever frame you last clicked in, which is usually the menu. My neighbor printed nine copies of my navigation bar before he called me.

5. Orphans from the search engines.
The robots that crawl the Web find your inner pages and send people straight to them: no banner, no menu, no way to the rest of your site. You worked hard on that menu. Half your visitors will never see it.

6. Frames eat the screen.
A lot of people are still on 640 by 480, especially on laptops and in school labs. Take away a 150-pixel menu and an 80-pixel banner and you've used up a little over a third of their screen before they've read a word. Then the main frame gets a scrollbar of its own, and so does the menu, and now there are three scrollbars on one screen.

7. Other people's sites, trapped in yours.
Forget one target="_top" and every outside link you have opens inside your main frame. I once read an entire newspaper story through a slot under somebody's quilt banner before I figured out I'd left their site twenty minutes earlier. It makes you look like you're claiming their work, and it makes the other webmaster furious.

8. Three files to do the work of one.
Every screen is a frameset plus two or three pages, each fetched separately over a modem. More to upload, more to keep in step, more to break. Rename one file and the whole house falls down.

9. View Source stops teaching.
Everybody I know learned HTML the same way: find a page you like and choose View, Source. On a framed site that shows you a frameset and nothing else. You can dig for View Frame Source if you know it's there, but a beginner doesn't. Frames broke the best free classroom on the Internet.


The one exception
I write software manuals for a living. A four-hundred-page manual with a long table of contents is the one place I think a frame earns its keep: the contents sit on the left, you jump around all day, and nobody bookmarks chapter twelve to show their aunt. If that's your site, go ahead, with my blessing and my tutorial.

Your cat is not a four-hundred-page manual.

What to do instead
Put your menu at the top or bottom of every page, as a plain row of links or a small table. Yes, you'll paste it into every page, and when you add a section you'll change every page. That takes a few minutes. It's cheaper than one visitor who can't find their way back.

If you're already framed and want out, it's not as hard as it sounds. Paste your menu into the top of each of your content pages, rename home.html to index.html, and delete the frameset. I did mine in an evening, with the ballgame on.

Home | The Tutorial | The Case Against Frames
Disagree? Plenty of people do. [email protected]
Last updated: Saturday, September 18, 1999