Are Frames Still Used

etangins

Member
The title summs it up. It seems as though frames are being used less and less. What are your opinions on the use of frames? What are some good uses? Are they good web design?
 

chrishirst

Well-Known Member
Staff member
Nothing to do with 'good design' or bad design for that matter. Framesets and iframes have a specific use and the fact that frames were [ab]used in the early days of web development does not mean they have no place in current layouts.
 

etangins

Member
Would a frame nestled in the bottom of a page go well as a footer or should I just have the footer at the bottom of the normal page?
 

chrishirst

Well-Known Member
Staff member
Frame tags are outdated, go with iframes instead.

Did you not read the whole thread?

Frames are NOT "outdated" they will have a place in HTML layouts at least for the forseeable future.

You quite possibly use frameset layouts on a regular basis without even realising it. If you have a hosting account that uses WHM/Cpanel, Plesk, DirectAdmin or WebMin. Have online banking facilities and/or many other UIs that are in common use, they ALL employ framesets to make it simpler to use.
 

Edge

Member
Frames have been made obsolete in html 5 and I think rightly so as by placing content on one frame and links/navigation in another they break the document structure. It can also be problematic if I as a user want to open a link, which is in a frame, in a new window. Also screen reader users have to contend with multiple documents within one page which can be problematic if they aren't used to it. My take, is only use them if you have to and you shouldn't draw too many parallels (scuse pun) between something like plesk and your website.
 

chrishirst

Well-Known Member
Staff member
Let's get this in perspective.

Framesets are there to be used when and where appropriate, if your user interface requires something to be visible constantly WITHOUT reloading or refreshing, a frameset is what you SHOULD be using.

If you simply want a common navigation, you should NOT use a frameset.

If you need to display an external document in another HTML document an <iframe> IS what you should use.

The idea that, because an element is deprecated in, or removed from, a particular DTD and therefore should NEVER be used EVER is nonsense, BECAUSE you use a Document Type Declaration (DTD) to suit the document that you are creating. You do NOT choose a DTD then code to suit it.

If your UI requires a frameset then you USE A FRAMESET DTD!!!

If you want to use <font> or <center> elements use a HTML 3.2 DTD, there is NOTHING that actually states categorically that you HAVE to use the latest and greatest DTD for everything from this point on.
 

chrishirst

Well-Known Member
Staff member
And just to add.


A HTML5 DTD CAN be used on documents referenced in the framset it is ONLY the frameset document itself that should not be declared as HTML5
 

Edge

Member
The idea that, because an element is deprecated in, or removed from, a particular DTD and therefore should NEVER be used EVER is nonsense
No one on this thread has EVER said that they should NEVER be used. What WAS said was they were rightly removed (and some of the reasons have been PROVIDED) from HTML 5 and yes they are outdated which MEANS that moving forward there isn't a requirement that browsers support them.

if your user interface requires something to be visible constantly WITHOUT reloading or refreshing, a frameset is what you SHOULD be using.
I beg to differ. If we FOLLOW that logic then we might as well stick the logo, header etc of a website in a frame AND while we're at it half a dozen other things. The very real possibility of dwindling support, accessibility issues, splitting up structure between documents etc. means that even in the scenario you describe they SHOULD be avoided if possible.

sorry must be something wrong with my caps lock ...
 

chrishirst

Well-Known Member
Staff member
No one on this thread has EVER said that they should NEVER be used.

Okay, ..... that's not how these statements read
Frame tags are outdated, go with iframes instead.
In fact not just deprecated but obsolete as already stated.

No one on this thread has EVER said that they should NEVER be used. What WAS said was they were rightly removed (and some of the reasons have been PROVIDED) from HTML 5 and yes they are outdated which MEANS that moving forward there isn't a requirement that browsers support them.
But there IS a requirement for browsers to support frames for a very long time to come, there are untold numbers of servers and sites that use frames to display the user interface, are you suggesting that every one should be recoded because of HTML5??
Which of course is STILL several years away from being complete.

Banks are going to continue using frames simply because it means that they can physically and 'electronically' seperate servers that deliver navigational content from the servers that deliver transactional content, so the transactional servers are never actually 'exposed' to the Internet.

Framesets are there to be used when and where appropriate, if your user interface requires something to be visible constantly WITHOUT reloading or refreshing, a frameset is what you SHOULD be using.

I beg to differ. If we FOLLOW that logic then we might as well stick the logo, header etc of a website in a frame AND while we're at it half a dozen other things. The very real possibility of dwindling support, accessibility issues, splitting up structure between documents etc. means that even in the scenario you describe they SHOULD be avoided if possible.

I think I qualified that point with the sentence following it
If you simply want a common navigation, you should NOT use a frameset.

Although I didn't explicity state 'logo' and such it was implied, take the case of a radio station that wants to broadcast while allowing visitors to also browse their website, a band or artist who are promoting a new release
a frameset with one frame being a player is exactly what will do the job without needing popup windows or any coding to bypass browser "popup blockers"

"Semantic coding" in it's true form, ... Using the right tool for the right job.
 

Edge

Member
if your user interface requires something to be visible constantly WITHOUT reloading or refreshing, a frameset is what you SHOULD be using

Had you written 'there may be a small number of scenarios' where framesets represent an optimal solution i.e. possibly better than using pop-ups' then I'd have been less inclined to disagree. In the case of video or audio which needs to play without interruption you have your scenario, granted.

Taking the example of Online banking I can only say that Barclays and HSBC don't use framesets so I don't buy that scenario especially as the bank controls both the navigation and content. A frameset also potentially allows connections to third party untrusted sites without a user knowing it as the browser still shows the keylock symbol.

Will browsers continue to support frames on desktop for some time - probably - on mobile browsers I wouldn't like to bank on it.

Getting back to the context of the OP and unique scenarios aside - don't use frames as they are bad for accessibility and present usability problems. Here's some more for the list:
1 - they screw up bookmarking to as you can only bookmark the frameset and not the pages within the frameset. If you do manage to bookmark the page within the frameset then when you go back to it you end up on a page that isn't meant to be displayed on its own.
2 - they screw up printing
3 - they screw up sharing - you can't share a link which shows anything other than the original frameset url
4 - they introduce an unnecessary level of complexity for developers
5 - unexpected browser back button behaviour
 
Last edited:

chrishirst

Well-Known Member
Staff member
And all of which is why frames are not meant for the average website and should NEVER have been used for general websites.

But that is not my point, I agree with all the reasons why frames are 'bad', it's the sweeping generalisation that leads to misunderstanding and confusion that I'm trying to redress. Just because a frame tag is removed from one DTD does not make it 'obsolete' for everything.
It's like the "target" attribute, it was deprecated in a XHTML Strict Declaration, yet the general attitude is that it should NEVER be used EVER. The real truth is that the target attribute was NEVER valid in any document type other than a frameset DTD, incomplete or generalised information helps no one really.

People reading this thread in the future are more likely to get the impression that frames are not to be used ever, rather than only meant for fairly specialised uses rather than general sites.
 

Edge

Member
To be honest I don't think we are disagreeing too much.

I would say, however, that Frames SHOULD become obsolete in ALL senses of the word and the situations in which they are currently used (with justification) were they to be dealt with in a new way, that doesn't break the unified model of the web and create issues for users, as Frames do, then ... everybody could live happily ever after.
 
Top