Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Why were frames deprecated in HTML5, but not iFrames? After all, there is almost no difference between the two. In many instances using either of them would give the same output (pardon me if I am wrong)?

share|improve this question
stackoverflow.com/questions/4263509/… –  BBB Apr 15 '12 at 5:20
thanks for the link, but what's the little difference between the two, that iframes did not get deprecated. –  user221287 Apr 15 '12 at 5:22
Because frames were a terrible idea from the start but iframes do have a few legitimate use cases? –  GordonM Apr 27 at 7:59

2 Answers 2

up vote 53 down vote accepted

There's a couple of misconceptions in your post. First, the frame and frameset elements are not deprecated in HTML5, they're obsolete (i.e., they've been removed entirely).

Second, the frame and frameset elements are not the same thing as the iframe element, nor do they give the same output:

  • The frameset element replaces the body element in pages as a means to include a different document model for web pages: they're bad for usability and accessibility, and what they intended to accomplish have been completely replaced by CSS and ubiquitous server-side development.

  • The iframe element, on the other hand, does not replace the body of a page. It acts as a means to include a new browsing context embedded within a block of content. It does not suffer from the same usability or accessibility problems as the frameset model and is used almost anywhere one needs to include an embedded browsing context (widgets being the most prolific example).1

The iframe in HTML5 also takes on additional features in that it can be sandboxed, allowing the parent document to decide what gets executed within it. This allows for some measure of security for the parent document (and visitors to the parent document) when embedding untrusted content.


Note 1: the object element somewhat overlaps with the iframe element, but it has a different content model (which is intended mainly for plugins), has its own set of caveats, and doesn't have the sandboxing attributes the iframe element has.

share|improve this answer
Why are frameset elements bad for "usability" and "accessibility" but iframe elements aren't? –  meriton Apr 15 '12 at 13:18
@meriton The frameset constructs a page out of multiple documents all with with the same priority: this causes challenges for screen readers that do not know which document to focus on at any specific time. Iframe elements, on the other hand, are simply embedded into a single page: it's no different than having an embedded image. –  user8 Apr 15 '12 at 17:23
Challenges for screen readers: The blind people I have spoken to have all said that they prefer navigation to be stuck in a separate frame (not iFrame) because they can ignore it and only have it read to them when they want. The real culprit for screen readers is Javascript and AJAX which makes pages completely unusable with current screen readers (well, my info is about 10 months old). My personal experience with screen readers supports this. –  GlenPeterson May 13 '13 at 18:41
I've been wondering if a lot of 2005's often requoted accessibility assertions haven't been overdue for an update. Thanks for the dissent on that. –  Erik Reppen Aug 22 '13 at 20:25
@GlenPeterson the same effect without frame element can be achieved by using CSS to make the block element fixed in viewport. That is HOW it should be done if you want that kind of navigation. It makes more sense. –  netrox Feb 12 '14 at 21:10

Frames (frameset) acts as document. It's removed because it breaks HTML documents structure and navigation. Eg. you have links in one frame, content in the other, you can't open link from the page in in a new window, you can't link to specific sub-page, etc.

On the other hand iframes won't break anything if used correctly because they're meant to sandbox content (eg. ads).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.