Why Are Frames Bad?
9 comments | Posted: 17 November 05 in Tutorials, by Matt Heerema
I was recently asked why exactly one should not use framesets for websites. A frames-based page is something I have always sort of recognized as being bad, but have never really had to verbalize or support objectively before, until now. The answer: Frames aren’t inherently bad. However, when you use a frameset as a way of managing a website, that is bad. I came up with five primary reasons.
1. Frames break the fundamental concept model of the web!
- Every problem with frames flows from this problem. The fundamental conceptual model of the Web is this: Every page corresponds to a single URL. One URL = one page. A site that is stuck in a frameset is referenced from one address, but contains many pages. This presents problems with linking to, and book marking a specific article in a frames-based page. The ability for someone to link to your articles and bookmark them is a huge part of how traffic to your site is generated.
2. Using frames for an entire site is an improper use of a frameset page.
- Framesets are a fairly ingenious and very useful method for helping someone navigate through a single, very large document, much like Adobe Acrobat’s navigation pane. However, most websites are a collection of documents on a particular topic: business, organization, etc.
3. Search engines have difficulty indexing framesets.
- Google itself mentions that while it does crawl frameset pages, it has a difficult time knowing how to categorize documents in a frame set.
4. Screen reader technologies do not handle frames based pages very well.
- Those using screen readers cannot quickly scan the contents of multiple pages. All of the content is experienced in a linear fashion, one frame at a time. Frames are not inaccessible to modern screen readers, but they can be disorienting. Varying screen readers handle framesets differently, with the more expensive software having the best handling. However, to the more common screen readers and assistive technologies, the frames are not an insurmountable obstacle, but are an unnecessary impedance. Much like having only one handicap accessible entrance to a building.
5. Framesets unnecessarily complicate site maintenance.
- Most users or clients won’t care about this, unless a developer charges by the hour, but it is very easy for an extensive frames-based site to get disorganized. Broken links and missed
"target"
attributes abound, making the behavior of the site erratic. The way I look at it is: entropy applies at a much greater rate to a frames-based site than a non-frames site. Ironically, frames are often naively chosen as a way to efficiently manage a site. If the site is small-scale enough to have only one developer, and it never changes hands, this could be true. However, most often I find that when a developer inherits a frames-based page, the first thing they do is redesign it from the ground up. It is simply too difficult to ascertain what a different developer had in mind with their site model. Furthermore, a website that is encapsulated in frames is sign of amateur site development. It was popular as a novelty in the 1990’s, but was quickly abandoned by professionals after realizing the above five reasons.
6. Why do frames-based sites exist?
- If you look around, you will notice that there are frames-based pages out there. Yet, you will see that there are very few large corporate sites that use frames. I suspect that the reason frames-based pages still exist are WYSIWYG tools such as Frontpage or Dreamweaver. Beginners realize that if they use frames, they only need to update a navigation menu once. This is a very astute observation. The Dreamweaver templating system is an intermediate step up from this. Professionals will recognize that the use of server side includes is the best way to go, in conjunction with a CMS.
References:
- http://www.webaim.org/techniques/frames/
- http://www.google.com/webmasters/2.html
- http://www.useit.com/alertbox/9612.html
Discuss This Topic
Comments closed after 2 weeks.
1 Boyink
Kinda funny, but don’t some uses of AJAX also break the “page” model of the web?
2 Nathan Smith
Good point Mike. It’s for that reason that I don’t like Live Search as the only way to dig through a site’s contents. There’s no way to bookmark the results.
3 Boyink
Ya know…thinking about it…
I’ve never seen any usability testing around frames and this notion of the page model – to confirm that it’s actually confusing for people. Seems like other software – Outlook for example – uses what are essentially framesets. Can’t see why people wouldn’t be able to use them in a browser.
Not that I’m a fan of framesets – it’s just that first argument always seemed like a stretch.
4 Peter Crackenberg
I can’t seem to find the article offhand, but there are some schemes for getting around some of this. The main techniques they used were GET variables and using JavaScript to look through the URL to access them.
I guess the major question is that if you’re making a major system using AJAX, for example Gmail, is it a big deal to not be able to bookmark pages or go back?
5 Yannick
Matt,
Very good points. Some of them I have never really thought about, but I am glad your article brought them to light. I have always tried to stay away from frames because I used to find it confusing and sometimes had trouble ensuring that I linked to the proper frame. (Yeah I was a slow learner like that.)
My question now is, are frames still needed? I have seen very few sites make use of it. Are there any more examples of when it would be the ideal thing to use on a website?
6 Jørgen Arnor Gårdsø Lom
Well, good thing this article is republished, as it’s still an important one, even though not as important as it once was…
PostScript; ‘Godbit’ means a small piece of something good in Norwegian, esp. in refrence to food. F.x. candy…
7 Nathan Smith
Cool, thanks for pointing that out. I had wondered what all these other Google search results were in reference to! I’m just glad that it means something good! I’ve added it to the Purpose + Vision page, as a little aside, and credited the translation to you.
8 Matt Heerema
Yannick – I cannot think of a good example of when frames would be the best thing to use on a Web page. With the advent of CSS support and now with certain AJAX functionality, I don’t see a need to use them at all.
However, it appears that Bloglines (bloglines.com) is making good use of them, though I can’t say it’s the best method for what they’re doing.
9 Nathan Logan
Great article, and I agree wholeheartedly. In my mind, the bookmarking difficulty alone makes frames obsolete.
I do find it interesting, however, that Quirksmode (a very well-respected JavaScript programming site) makes use of frames (although I recall hearing something about him soon redesigning his site and releasing it sans-frames).
And great dialog above RE: similar problems with AJAX. I’d love to see that concept explored a bit more (in another article, perhaps?).