HTML Frames: boo, hiss! etc

One of the “completed” debates on the web was won a few years ago, when framesets in HTML were pretty much universally acknowledged to be evil. As with many bad practices, Jakob Nielsen summed things up by declaring that frames suck for reasons like:

  1. Frames not printing correctly;
  2. Search Engines being unable to index the content; and
  3. Users being unable to bookmark frames effectively.

For the most part, these arguments against frames are 100% correct, and they are a technique that belongs in the dark, distant past.

But there is the odd exception … believe it or not, Microsoft’s MSDN Library (a developer resource) has used frames since it’s inception, as did the Apple developer library until recently. The reason for this – the navigation file is so large, it slows site performance substantially to have it loading on every page.

This is NOT a case for using frames: Microsoft and Apple used masses of code (eg. javascript) to cover the deficiencies that frames bring. But it’s always a good idea to keep your mind open rather than dismissing an approach because everyone else does.

3 thoughts on “HTML Frames: boo, hiss! etc

  • August 24, 2008 at 2:42 pm
    Permalink

    Thanks Ian i enjoyed that. Would you believe that in another of my classes this semester it is mandatory to incorporate frames into our assignment (and imagemaps for navigation *shudder*). Oh the pain of forcing myself to learn something i will never use in my life again. Sometimes you just have to bite the bullet i guess.

    All the best,

    Alistair.

  • August 24, 2008 at 3:12 pm
    Permalink

    wow … what subject is that?

    can I reiterate my last point: “This is NOT a case for using frames” ;o)

  • August 25, 2008 at 1:23 pm
    Permalink

    I would rather not say. Don’t wish to criticise the subject in such a public space. More than willing to share all my bad experiences with you in class though !

    Also, I’m enjoying your blog posts, keep them coming.

Leave a Reply

Your email address will not be published. Required fields are marked *