I fool around with it a while back with modern js framesets are actually good. They feel much more like real applications and are much easier to work with than the dynamic js rolercoaster.
Say you have a menu + banner at the top. It's its own document. looking at the source it all makes perfect sense. The css only affects this frame so you can just target the links image or list items directly without a class or id.
Then you click on the links (at the top) and they open different side menus that are also amazingly simple documents.
Clicking on those opens all kinds of things in the main area. PDF images, video, widgets, error pages, EVEN DIFFERENT DOMAINS!
Or [say] music, in a small frame on the side.
The big frameset issue was that the address bar didn't show a useful url and opening a link in a new tab was a problem. These are now easily fixed by pushstate and you can also rebuild the frameset in a new tab if the user tries to open a link in a new tab.
As there is nothing dynamic about the documents they are easily cached. Clicking around feels like an application!
You can also reuse the side menu frame to open diagrams and charts to accompany the text without scrolling up and down like a madman.
On mobile you simply don't load the frame set. The menu is the mobile application.
We also got <details> and <summary> adding even more dept to the menus entirely without js.
Is not there a problem to have a popup menu from the top frame that will cover and overlap the main frame? As far as I know, frames can overlap only their parents - but not their siblings.
I'm not sure what you mean, are you referring to iframes perhaps? I mean framesets.[0]
The top arguments here[1] are:
> 1) Frames prevent users from properly bookmarking pages.
Not true anymore since we have History.pushState() and History.replaceState()
> 2) Frames present challenges for printing web pages.
This is just funny in 2024.
> 3) Users coming from search engines may not have access to navigational elements if they are located in another frame — they are directed to only that frame the search engine found the text in.
The top page is actually so simple that if pages that should be framed are loaded on their own they can can just act like a frameset and load themselves into one of the frames[2] (or redirect to the frame set)
I do. Partying like it's 1999.