I was recently asked why exactly it is that one should not use a frameset for a Web site. A frames based page is something I’ve always sort of recognized as a bad thing, but have never 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 Web site THAT is inherently bad.
I came up with five primary reasons.
0. Frames based Web sites do not fit the fundamental conceptual 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).
1. 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 Web sites are a collection of documents on a particular topic (business, organization, etc…).
2. Search engines have a hard time indexing a Web site that is stuck in a frameset.
Google itself mentions that while it does crawl frameset pages, it has a difficult time knowing how to categorize documents in a frame set.
3. Some screen readers/assistive technology do not (or have a difficult time) handling frames based pages.
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. Different screen readers handle framesets differently, with the more expensive software having better handling of frames. 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.
4. A site that is stuck in a frameset adds an unnecessarily high level of difficulty/headache to development/maintenance (especially maintenance).
Most users or clients won’t care about this (unless the 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. A way I look at it is that 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 more effectively manage a site. If the site is small-scale enough to have only one developer, and the site never changes hands, this MIGHT 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.
Further: A web site that is entirely encapsulated in frames is an unprofessional method of Web site development that was popular as a novelty in the nineties (almost a decade ago) but was quickly abandoned by pros after realizing the above fivereasons.
So why do frames-based sites exist??
If you look around, you will notice that there are frames based pages out there. But if you pay attention, you will notice that there are very few large corporation sites that use frames. I suspect that the reason frames-based pages exist at all is due to a self-styled Web designer (or an administrative assistant of some sort to whom the task of creating a Web site has fallen) utilizing a WYSIWYG Web development tool (such as Frontpage or Dreamweaver) and realizing that if they use frames, they only need to update a navigation page once anytime they want to make an update. This is a very astute observation, however, a professional will recognize that the use of server side includes, or even Dreamweaver’s template system is a much better solution on all levels.