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)?
There's a couple of misconceptions in your post. First, the
Note 1: the
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).
Framesets are often used in a way where they break the fundamental principle of the web, that each document has a single URL. This leads to problems with linking, bookmarks, search engines etc.
Typical use of a frameset would be a frame on top with a logo or header, a frame at the side with a menu, and a content frame. But search engines index individual pages, so when you find some page in google, it would like directly to the content page without the frameset, so you lose the navigation. The problem with links and bookmarks is you would typically want to link or bookmark a particular content page inside the frameset, without losing the frameset itself. The is no easy way to do that.
The reason framesets became popular in the first place was because they allowed a statically positioned header and menu with a scrolling content area. But that can be achieved much easier with CSS today. Furthermore frames allowed you to use common elements like logos and menus on multiple pages without using any server-side coding. This was an advantage at at time where server-side coding where tedious and error prone (cgi-scripts!), and many hosts didn't allows server-side scripting at all. Today with CMS'es and better server-side platforms this is much better handled at the server side.
So basically there are no advantages to frameset but lots of problems.
IFrames can be used the same way that framesets were used, and in that case they also lead to the same problems. But there are also many legitimate uses of iframes which does not lead to the same problems.
In my opinion there will be significant loss to versatility the day that browsers no longer support will framesets.
I don’t build websites but I do a lot of project planning documentation for my clients, provided on CDs, using framesets. This method is head and shoulders above any other way of making the material efficient and user-friendly to technically trained personnel .
Being able to pull in content from anywhere, either off the web of in house data and display side by side within the CD browser give the client instant access to well documentation technical information and data to support competent decision making.
All CDs however are viewed through a browser and the loss of this frames function will destroy one of the best coded facilities I have for this particular application.
I have also use them in technical websites where there is absolutely no criteria for SCO, site navigation by dummies, or problems with information transfer.
Each individual frame can be opened in its own separate window and easily printed into a PDF format of saved as html. Material that is presented in a PDF format can be printed directly with one click and material coming in from external sources including WWW is the most current available and again can be saved as HTML document or opened in its own window and printed to a PDF
No doubt the sector of coding professionals dedicated to Internet applications of marketing and entertainment may have a problem with the use of 'frameset' facilities but I don’t think all code should be written with just one application in mind.