Are frames the work of the Devil?

On this page: Frames were all the rage a decade ago, and now they are used less and less. In this article, Lois Wakeman discusses the advantages and disadvantages of this oft-reviled technology.

When frames were first added to the HTML standard, they became very popular and widely used. But the big problem was, in my eyes, that so many of the sites that used them did so:

At the time of first writing (June 2000) frames were unfashionable, denigrated by the majority of designers, and it's noticeable how many of the big-money sites no longer use them. Why has there been such a sea-change? It seems unlikely that it's because the elite of highly-paid web designers has taken note of user frustration - witness the recent demise of boo.com, whose designers ignored many tenets of accessible design and still got millions of dollars backing! And lots of big sites still have other features that make them difficult to use for many people.

I really don't know the answer to this one - probably as unfathomable as the changes in colours to wear each season.

Jargon

To understand what follows, you might need to understand these frame-related terms:

  • Frames: rectangular containers in a browser window that show separate web pages next to each other. If frames don't have a border, scroll bar, or different background colour, you may not realise that they are present.
  • Frameset: the overall page that defines the size and position of the frames, and what pages appear in them when they are first displayed by the browser. (The contents of frames can change subsequently when the reader follows links, but if the frameset is reloaded, the original content will be used.)
  • Content and navigation pages in a frameset: as typically used, frames either contain fixed information that the reader can always refer to, usually navigational (e.g. a menu or banner), or content, which is the real "meat" of the site, and changes as the reader clicks on links.
  • Inline frame: a frame that is embedded inside another page. Not as common as the 'normal' kind.
  • Link target. In a framed page, the links can include a target, which specifies the frame in which the destination page should be displayed. If there is no target, the destination page just replaces the current one, in the normal way.

Pros and cons

Well, are frames a good or a bad thing then? The answer to this is, it all depends on what you want to do ...

First, the good points:

And now the bad points:

When is it OK to use frames?

On balance, there are a lot less pros than cons, so I would suggest that you avoid using frames as a compulsory part of your site unless they are necessary to accommodate the content, or add value for the reader. Here are some cases where a framed approach might be useful:

I think a better case can probably be made for inline frames - these are part of the current HTML standard, but not so widely used because they were historically only supported by Internet Explorer. As the name suggests, an inline frame is a rectangular area inside a web page, whose content comes from another page. If you have any newish browser, for example, you can try out this inline frame demonstration, doing the same thing as the other demo but in a much neater way. (If you have another browser, you may end up getting lost in framespace, neatly illustrating some of the pitfalls!)

When isn't it OK?

I summarised the general principle above, but I want to make some specific points:

And one final demonstration: how setting the targets of links wrongly can have annoying effects for the reader.