Many people seem to hate HTML frames just because it's popular to hate them. But there are some concrete reasons why frames are not a good idea.
Cons of HTML Frames
- HTML frames are obsolete in HTML5.
If you are writing HTML5 documents, then you shouldn't use frames. The only frames that are not obsolete in HTML5 are iframes.
- HTML frames are not accessible.
The biggest problem with HTML frames is that they are not accessible. Screen readers often have a difficult time reading the frames.
- Search engines have trouble with frames.
Search engines, like screen readers, have a hard time reading framed pages. And if they can't read the pages, they can't index them.
- Frames create additional maintenance and server load.
Every frameset you create requires that you have n+1 HTML pages, where n is the number of frames on the page. This adds to the server load as well as the number of pages you have to maintain.
- Links in frames can open in the wrong place.
If you add links to navigation frames, you need to make sure that you've set the targets on those links so that they open where you want them to open.
Deciding on Using Frames
You should never use any technology, including HTML frames, just because you can. You should evaluate your site and the needs of your users to determine whether they are appropriate. By knowing the benefits and drawbacks to HTML frames you can make your decision based on logic rather than emotion.
First page: Benefits of HTML Frames
Do you hate frames? Comment on the article.
Article updated August 2011.