Frames in web pages--why did they disappear?

Frames in web pages were a Big Thing about 10 years ago.( Back when the internet was young, and Netscape was still a private company and a rival to Microsoft’s ‘new’ Internet Explorer.)

If you don’t remember what I mean by frames:
The screen would be divided into a large frame with most of the text,etc, and a smaller menu on the side in a separate frame, that could be scrolled independently of the main screen. Usually, the small frame was the menu tree-so you could scroll down on it to see how the web site was organized, without having to scroll down through the actual content of the site in the main part of your screen.

This was a new technique in version 2 (or 3?) of both the big browsers (netscape and IE). Early web sites would have a warning statement “this site is best viewed with a frames-enabled browser”.

Now, the technique is never used. What happened?

People realized that frames suck balls.

Big sweaty smelly balls.

Much better techniques, like server-side templating, DOM manipulation and (these days) AJAX, have largely made them irrelevant.

One exception is the occasional <iframe> for displaying ads, such as used by Gooooooogle right here on the Dope. And the even more occasional hidden <iframe> for doing neat Javascript tricks.

They were, in addition to sucking balls, an accessability nightmare.

Frames have been abandoned. Now, no self-respecting site needs to carry such a statement. The two are not completely unrelated.

To expand on this…

Frames are pretty much pages within a page. This makes it incredibly hard (or impossible?) for a text reader for the blind to read an entire site. It reads the page top to bottom, so if 1 page of the frameset it the menu, and always the menu, the reader would be stuck on the menu page just reading the menu.

Next to go the way of the frames will be tables, for the same reason. I really love tables for layout but in all actuality they are bad for text readers.

Also, people are really bad at managing frames. They’d link to other peoples’ sites from within their frames thus causing the other sites to look bad OR to make the viewer think they are still on the same site but with other people’s content (still happens) and quite often you’d get stuck in a huge loop of endless frames-within-frames.

And, frames are bad for search engines. If you’ve got a frameset HTML page, that page has no data so it’s useless to the search engine. Then one page in the set has your menu and another has content. The search engine will index both pages separately so you’ve got menu HTML pages floating around with no content, and content HTML pages floating around with no menu. That’s not really a good idea for anyone.

They still exist, and they suck big sweaty balls when they do.

My thoughts on the matter.

In 2003 SBC began aggressively protecting it’s “patent” on frames and seeking royalties.

I always assumed that was a big part of the reason they disappeared.

Accessibility aside, frames also went out of vogue. Web design is as much like the fashion industry as anything. Once something takes off there are 1000s of copies across the web. That’s why Web 2.0 is pretty homogenous in design, designers have gotten even better at sharing information and styles.

In the same way that we adopt all sorts of style (like those damned rounded corners) we discard things. Blink tags died out because it became universally recognized as annoying as hell. Animated gifs have died a slow death because flash and other options have surfaced. Frames came and went because they went out of style.

One thing Frames did that it was touted for was that it saved on bandwidth - You only need to load the menu once!!!111 OMG!

Then we began going, is 1k for the menu the problem? No it’s the 74 animated 7-up guys on your damn page. And so that became a non-issue fairly quickly as animated gifs faded mostly out.

Further, frames were one of the more confusing aspects of web design to wrap your head around. So newbies rarely learned it unless they felt they had to and once design began showing that you didn’t have to - they didn’t learn it.

Wow - talk about stream of consciousness…

– IG

The biggest flaw IMO was navigability. If you clicked an external link you’d end up with Yahoo! or somesuch framed by Mike’s Home page with the starry background and sidebar. If you linked to a page meant to be inside a frame, you couldn’t see any of the related pages, because the menu was in the border frame. Google Images and other search engines/portals still use them, annoyingly enough.

Not if properly formatted.

Text readers read tables from left to right and from top to bottom. If you put a paragraph of text in the first frame and the next text in the frame to its right, then there’s no problem.

For instance, you could put a graphic (with an alt-tag) in the left hand table box and the text in the right hand table box and a screen reader would read it as if the table wasn’t there.

What caused issues was if you were supposed to read down the left column of a table before reading down the right column of a table (assuming a two-column table with more than two cells). But if formatted properly, table are ADA-compliant for all uses.

About.com uses them all the time. Really pisses me off, as it is completely unnecessary for them to do it, and it totally uglifies the page.

You were supposed to make two versions of your content, one with frames and one without. The version without, you’d put on the frameset page, inside <noframes> tags. A non-frame-browser wouldn’t know what to do with the frame or noframes tags, and so would correctly ignore both of them (a browser is supposed to act as though frames it doesn’t recognize weren’t there at all), and would thus display the frame-free version of your content. Meanwhile, a frame-enabled browser would ignore everything contained by the <noframes> tags, and just display the frames. So on a properly-designed frame webpage, any browser could still see the content.

The problem, of course, is that it’s a pain to make two different versions of your content, so almost nobody used the <noframes> tags (or just made the <noframes> content a message that you needed frames, and maybe a link to Netscape or Microsoft).

They also suck sweaty dirty monkey balls when browsed on mobile devices or other lightweight browsers.

Here’s a link to a 10-year-old page on “Why Frames Suck”: Why Frames Suck (Most of the Time). By Jakob Nielsen, one of the foremost gurus on web usability.

His basic argument is that the fundamental design of the Web is based on having the page as the atomic unit of information, and frames break that unified model of the Web. And then, on top of that, are all the navigational. referability, and accessability issues people have mentioned.

Oooops. Maybe I need to update my personal website… that I lovingly hand-coded with frames and tables in my freshman year of college.

Oh well, now that I’m out of grad school, they’ll take away the webspace sooner or later.

Le sigh. Le tragedie majestique. That website was, for more than a year, Google’s #1 hit for Dylan Thomas’ “In Country Sleep.” The Hebrew University of Jerusalem linked to it.

In short:
At today’s download speeds, there is nothing you can do with frames that you can’t do with something else that doesn’t suck sweaty balls.

Well, you certainly set the tone for this thread.

I wonder if this is for copyright reasons? Google’s caching of pages has been challenged in the past, and I’m sure it’s displaying of other people’s images in a results page has been, too. When showing a third-party page (not a cache), putting it in a frame perhaps is their way of protecting themselves, because it’s made very clear that it’s external content?

Another sweaty ball sucking reason that nobody’s mentioned: they totally screw with the user’s idea of what the hell the Back button is supposed to do.

Bookmarking a framed page is a challenge, because you have to know where to click and what clicking in any specific spot is actually bookmarking. If you want to preserve the state of all the frames, it becomes impossible to do what you want: A bookmark simply doesn’t contain enough information to restore your session.

So that is a technical, as opposed to a fashion, reason why bookmarks would fall from favor.