Why would anyone use frames?

I could just stack argument after argument why using frames when designing a web page is a bad idea, but frankly, I’m too lazy to do it once again. Let’s turn this around:

Why would anyone see the need to use frames nowadays?

40 Comments

  • The question is what type of frames and for what purpose in some rare instances they make sense but usually in control based panel interfaces.

  • Dave says:

    Yes, I agree….

    I use them in my CMS, it just makes the whole process (workflow) easier….

  • I had a client once requesting it so the navigation could always be in sight (which can't be done in CSS and only crappy with JS). When I asked what usability study backed that request I was told to "just do it". I didn't.

    They could do it to make a horrible, not usabale site which is supposed to be art.

    They could use it if you want to make a bad site on purpose. Such as borat.tv

  • Maaike says:

    I think they can occasionally be useful in CMS's or other applications. I've also had clients asking for them, but up to now I've managed to change their minds πŸ™‚

    Sjors: LOL @ borat. Reminds me of the equally hilarious http://www.taxipoll.nl/, which is unfortunately not a joke…

  • Robert Nyman says:

    Mr Wellock,

    Good to see you again! πŸ™‚

    Sjors,

    Yeah, Borat's web site is as alluring as frames to me to… πŸ™‚

    Everyone,

    Let's say it like this then: for a public web site I see no reason to use frames.

    When it comes to control panels/CMS's and its likes, please elobarote technically on why you need frames.

  • Actually I am fighting against a Firewall since you have word f**ked on the site most of the time it's blocked. πŸ™

    Occasionally I can sneak through if I am very fast so there won't be many comments from me unless the F-word itself is censored.

  • Martin says:

    My ADSL2+ wireless router's homepage uses frames. I find it to be really unusable and it even took me half an hour literally just to figure out how to login (as I already got the right username/password).

    Anyway, frames are easy to make for CMSs/control panels but whoever made them in the first place sure don't know web standards, and they suck in search engines.

    Personally, I think frames are dead, and I think there is even a CSS/JS alternative to frames somewhere (I can't quite remember the link though).

  • Jules says:

    Although I do avoid frames, I do find that it is very quick and easy to create a photo album using frames.

  • It's the cool thing to do. I roll retro style πŸ˜€

  • Dave says:

    I can see their value in terms of non-technical reasons. The organization may need the benefits of a frame (whatever they may be) quickly, but the hired programming staff may not yet have the understanding for other approaches that reach the same objective. In that case, the organization is more concerned about meeting the objective and frames actually work out very well.

  • Robert Nyman says:

    Robert W,

    I'm sorry to hear that, but at the same time I don't want to stop promoting my other web sites because of a firewall (of a company, I guess?) that doesn't trust its employess. I hope you understand.

    Martin, Jules, Dave,

    I agree. People might use it because of lack of knowledge of alternative solutions (and being able to implement them as fast), but to me that sounds more like a gap in someone's skill set rather than an argument for why one should use frames.

  • Rob, maybe you should have 'dropped an e' and named it fuckd πŸ™‚

    I've been asked whether I could incorporate a site within another site (iframe?), with thoughts of keeping things central and maintaining branding, but haven't so far due to my concerns regards accessibility.

    And Martin is right, there are examples of frame-like pages at CSS Play, inspired by Eric Meyer's exploration sub-site CSS/Edge.

  • Dave says:

    Yes, but it wouldn't necessarily be due to lack of knowledge. Rather, practiced implementation. For instance, I am only beginning with CSS but I am certainly knowledable about advanced approaches and I constantly work to understand and actually implement them better.

    There's always a skill gap of sorts – it never goes away (after mastering advanced CSS why not just move on to developing pages in assembly language?). An employer (or customer) hires and keeps its developers on the spectrum of skill that is most resourceful to its objectives. In my case, at least, whether I use a classic or advanced approach rarely makes a difference to the people who hand me my paycheck. They want the functionality and they want it manageable. There are some projects I learn on when I think they can afford the instability that may result, but other times it's just a matter of get er' done, now. In those cases and under similar circumstances, any classic approach, frames or otherwise, is handy dandy and makes the best sense.

    I agree that from a technical mastery perspective, it's weak, of course. But I for one should be so lucky that that's the only perspective development work actually boiled downed to. πŸ™

  • web says:

    I recently had to include a form from a seperate vendor on a page, I used and iFrame.

  • PÃ&Acir says:

    How about:

    1. Webmail. Where I need to persist the original document.

    2. And where i want display another document along side my own, for comparison?

  • Ed says:

    Pär got it spot on. The only valid reason to use frames is to display more than one document to the user.

  • Robert Nyman says:

    Steve,

    Yeah, that would've been in line with other web site names… πŸ™‚

    In my opinion, your concerns are correct.

    Dave,

    Sorry if I came off as a little harsh with my comment above, that wasn't my intention. What I meant was that of course everyone does their best they can in any given context, but that more specific experience of similar situations might help to solve the matter differently and more optimal.

    In the end it's definitely about getting the job done, but as we all know, there are seldom just one way to do it and in my humble opinion frames are seldom the best solution, in the long run, for anything.

    web,

    Tricky scenario if you need to include something from a different URL (and domain). Not sure what the best solution in that case would be (except for the given response to mimic that form in your web page and then make sure to post it to their server).

    Pär,

    When you say persist the original document, what do you mean? To have one part of the web page constant while updating another? In that case, AJAX or something similar (thinking GMail here) sounds better to me.

    When it comes to displaying two document beside each other, how often is that a requirement? πŸ™‚

  • Robert dM says:

    So far I've only once used an iframe when a client insisted on integrating his jobpage at stepstone.be into his own company site. (stepstone gave its permission). here's the page . Quite frankly, I haven't been able to come up with a better solution and any remarks or suggestions are more than welcome.

  • For a player on a bandpage.

  • When you have to show on your page, a page from someplace else, like advertisements, like the Google ads just before the comments on this page which uses an iframe.

    Or how about an email application, is it really better to use AJAX or would frames do the same thing? I don't know but don't screen readers get informed when a frame has loaded? Isn't that more accessible than AJAX which doesn't inform the screen reader? I know that accessibility is not all about screen readers and I know that you can't bookmark a page in frame, but sometimes you don't want the user to bookmark a page. You want them to go through the steps to get the data.

    At work in 1999, I wrote a web front end for the email system we use. There are many users who had over a 1,000 folders in their email database. AJAX or a frame can be used to load the folder's data. Or in our worse case you can load the whole page with 3,000 plus folders in a tree, use complicated javascript to open the tree to the current folder which is now five pages below the list of items in the folder so the user has to scroll up to see the data or scroll down to see where the folder is in the tree. Use a frame and this isn't a problem.

    I have seen to many abuses of frames, like using a frame so that a banner with simple navigation is always on top. I believe that 99.9 percent of web sites most likely don't need and shouldn't use frames (not talking about iframes here). As long as there are advertisements on web pages, I don't think that iframes are going to disapear.

  • Olly Hodgson says:

    <blockquote cite="http://www.robertnyman.com/2006/09/26/why-would-anyone-use-frames/#comment-10598">When it comes to displaying two document beside each other, how often is that a requirement?We have a CMS that does versioning and allows you to bring up two versions of a document side-by-side, to visually compare them. It's a very useful tool and one of the very few decent uses for frames.

    Are we including iframes here? WordPress's live preview is a great example of a good iframe.

  • Adam Burmister says:

    Without reading all the comments:

    I think the main advantage of frames is that they maintain state.

    For instance, you can have a navigation frame maintain it's state easily, where as if you were using a CSS navigation menu you would have to update it on each page refresh.

    So you've got advantages in the fact they allow for less redundant code (navigation in this example), which means faster access times, as well as reducing development time (updating CSS menu classnames, etc).

    That said, I haven't used a frameset in years and years after moving over from the "dark" side. Iframe's seem to be making a comeback, maybe framesets are next?

  • Johan says:

    Out of pure nostalgia?

    Or to defeat bugs (eg the IE Z-INDEX BUG WITH SELECT INDICES) with a buggy thing that is frames?

  • Robert Nyman says:

    Robert dM,

    Hmm, I see. Thanks for the example.

    Jeena,

    Why would you need a frame for that? Isn't an <code>object</code> element for a media player alternatively Flash sufficient for that?

    Tanny,

    First, I'd say that I personally think I prefer JavaScipt/AJAX solutions in those cases its necessary (and possible) to get content from another URL, and then only offer some kind of framed alternative to those that don't support JavaScript.

    But I agree, I can't guarantee what's the best alternative in every given scenario either.

    When it comes to ads in web pages, and most notably Google ads that are all over the web and consists of a JavaScript that creates an <code>iframe</code> through <code>document.write</code>. I'm not a big fan of such a solution and I would prefer a DOM implementation where one would specify the <code>id</code> of the element where to input the ad content. A better, more unobtrusive approach.

    Olly,

    For versioning, I definitely buy using frames. πŸ™‚

    Same with live preview. But in most products and web sites, comparing versions and live previews are fairly rare.

    Adam,

    Usually the HTML is, and should be, so very slim nowadays with all CSS and JavaScript externally included and cached, so in most cases I don't think it would be so bad.

    And the accessibility and usability lost on having frames is too big of a reason to use them, in my opinion.

    Johan,

    No, nostalgia is not a valid reason. πŸ™‚

  • Jens Wedin says:

    Iframe can be used when having different plarforms where it takes too much time (money) to rebuild the old stuff.

  • PÃ&Acir says:

    When you say persist the original document, what do you mean? To have one part of the web page constant while updating another? In that case, AJAX or something similar (thinking GMail here) sounds better to me.

    In my opinion GMail is a perfect example where you should not use JS/Ajax when displaying emails. I mean GMail is a great service and has a lot of nice features but the way it displays html emails is horrifying. Of course you could argue about using html emails. But mainly because it strips out a lot of my "good" html witch leads to quirky html hacking. πŸ˜‰

    When it comes to displaying two document beside each other, how often is that a requirement?

    As said, leave closed systems and CMS out of this conversation. But how often it is a requirement is not relevant. It could be used for such purpose.

  • Stephen Hill says:

    I would agree that In most cases, iframes or frames are not required and that solutions can be found in css and js.

    However, one use of an iframe is in a html wysiwyg editor such as the FCKEditor. This creates an iframe and hide the textarea so that you can edit your html.

  • Robert Nyman says:

    Jens,

    There are interim solutions when there isn't time for more thought-through solutions, yes.

    Pär,

    What I meant with GMail is the whole application feel with updating just certain parts of the web page withouth reloading the entire web page. Then, if HTML e-mails looks weird shouldn't be because of if AJAX or frames is being used.

    But how often it is a requirement is not relevant. It could be used for such purpose.

    Well, true enough. It is a scenario wehere frames are ok. Why I think it's somewhat relevant, though, is that we're talking about a feature that's not even used in one per a million web sites, so it feels more like an exception to the rule.

    Stephen,

    Yeah, maybe, altough most WYSIWYG editors use Midas in Gecko-based web browsers and <code>contenteditable</code> in IE to achieve this effect without using an <code>iframe</code>.

  • Maaike says:

    Robert,

    Why would you need a frame for that? Isn’t an object element for a media player alternatively Flash sufficient for that?

    Suppose you use a small flash film to play an mp3 file. You put it somewhere on the page with css. Whenever your visitor browses to another page within the site, the player will start playing again from the start. This doen't happen when the flash file is in a frame.

  • Devon says:

    I think frame users just need to know two things:

    1. position: fixed.

    2. include('file.htm');

  • Robert Nyman says:

    Maaike,

    In that case, I understand the need for it.

    Devon,

    Yeah, at least when it comes to <code>position: fixed</code>; it will do the trick in most cases (with necessary IE workarounds).

  • zupaman says:

    hello everyone !

    now, for example imagine this situation:

    <code>

    </code>

    so… somewhere on site (ex: index.php) there is div where I include 1st.php, now if i click on any link in 1st.php, site have been reloaded, and new site is site which has been goten from the link of 1st.php, and now there is no more my index.php :(, so how could I forget iframes, could I get that all this situation about including doesn't leave borders of my div, where 1st.php had been included ..

    Sory about my nonenglish, and try to answer me on this, this will mean so much to me πŸ™‚

    BTW) my mail is valid, so . .

  • zupaman says:

    because code>/code> doesn't work there is my situation again:

    edit: and here is my mail πŸ™‚ again

  • zupaman says:

    -DIV- -? include("http://subdomain.address.net/sub/1st.php&quot;);?–/DIV-

    sory again, sory, pls sory, here ^^ is my code(situation) finally

  • Robert Nyman says:

    zupaman,

    I'm not entirely sure what you mean, but if I understand this correctly you have the need tp present something from another URL within your web page. If you can't incorporate that content within your code, you have two options:

    You can either use AJAX to dynamically get that content from the other URL or you can, as I think you're doing right now, include it in an <code>iframe</code>.

  • Dave says:

    It's okay Robert, I didn't take it as harsh really. Admittedly I'm just trying to be a little annoyingly ironic by suggesting that the best answer to your question may involve non-technical reasons. The technical discussion itself is quite rousing! πŸ˜‰

  • Lars Gunther says:

    Late to the party…

    Frames is bad 99 % of the time. But in PhpMyAdmin they are an easy way to cache the contents of the left panel that – uncached – would cause lots and lots of unnecassary communication between PHP and the DBMS.

    A server side cache-solution would be a better solution, but is it worth the effort?

    Another use of iframes that is unavoidable today: Rich text editing in Gecko browsers. Script an iframe or edit the entire page!

  • Robert Nyman says:

    Lars,

    Valid points.

  • FrameGuy says:

    Technical reasons:

    1) Frames are faster to program than full Ajax applications

    2) Frames are FASTER in performance that many Ajax Microsoft techniques. (UpdatePanels anyone??) UpdatePanel post the whole ViewState and the page go through a full postback. Frames don't need that.

    3) They can be used by anyone since they don't involve programming, so your design people will love it.

    4) The menu gets refreshed in normal apps (it always depends on client's caching that you can never predict), in a website with Frames you are SURE it will not be loaded again.

    In conclusion I can bet I can do a website with Frames and IFrames quicker and have it perform better than your Ajax fancy app.

    That said, the problems are the following:

    1) SEO

    2) Bookmarks of a page can't be done (I actually know how to do them with #javascript but the average joe will not maintain that)

    3) They are "unfashionable", and considered old. (Without a real understanding of their benefit etc) but you know people don't like to use their own brain..

    So it shouldn't be used for any "frontend" website. But mainly for CMS or similar Functional website, where the main aim is to be good at what they do, not rank well.

    example of a successful frontend:
    http://www.zvon.org/xxl/DOM2reference/Output/inde
    (the best Dom2 reference and more)

  • 1) The designer doesn't actually want people to use, visit, or bookmark pages on the site

    2) The designer hasn't heared of the css overflow property

    Really there are good reasons to use frames… But I've never done it.

Leave a Reply

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