This could easily be fixed by the browsers but they don't. Sure wish these back button tricks would stop. Especially news sites try to keep you from getting back to your search and makes your page refresh over and over. I wonder if that behavior counts as hits to their advertisers.
I don't know about "easily." replaceState() is actually intended to make single-page apps easier to use, by allowing you to use your back button as expected even when you're staying on the same URL the entire time.
Likewise, single-page apps are intended to be faster and more efficient than downloading a new static page that's 99.9% identical to the old one every time you change something.
Fixing this bad experience would eliminate the legitimate uses of replaceState().
Now, what they could do is track your browser history "canonically" and fork it off whenever Javascript alters its state, and then allow you to use a keyboard shortcut (Alt + Back, perhaps?) to go to the "canonical" previous item in history instead of to the "forked" previous item.
I'd prefer not to let the bad actors dictate browser design.
"Let's get rid of images since companies can use images to spoof browserchrome elements."
"Let's get rid of text since scammers can pretend to be sending messages from the computer's operating system."
"Let's get rid of email since phishing exists."
Nah. We can do some stuff (like the aforementioned forked history) to ameliorate the problem, and if it's well-known enough, companies won't find it necessary anymore. Heck, browsers like Firefox would probably even let you select Canonical Back as the default Back Button behavior, and then you can have the web the way you want it (like people who disable Javascript).
I'm frustrated that removing bad functionality is being treated as a slippery slope with obviously bad and impossible jokes as the examples chosen.
I see a bad feature being abused, and I don't see the removal of that bad feature as a dangerous path to getting rid of email. I don't ascribe the same weight that you seem to towards precedent in this matter.
I've been working in full stack for long enough to know that history manipulation is as much a part of the modern web as images and email. I'm not trying to be flippant, that's just the state of the modern web. Single-page apps are here, and that's a good thing. They're being used badly, and that's endemic to all features. So no, history manipulation is not "bad functionality," though I admit it's not fully baked in its current implementation.
I accept that it's how things are, I just personally feel as though the only way this feature could ever work as it does now is with the implementation it has now, and that the convenience of single page webapps that use history manipulation is not worth the insane annoyance of helping my grandma get out of websites that tell her that she has been hacked by the FBI.
I don't think I'm disputing your facts, I was responding to the scenario you presented which was, essentially, "what about email". I would say it's fair that my opinion on a canonical browser history is solid and unlikely to change, though.
That would absolutely make everything worse, no question; the web should be more integrated, not less. We shouldn't incentivize even more companies to silo off their content into apps.
Yes, I think you're correct, but using browsers to coerce the web back into static documents will result in companies creating their own apps so that they can continue to deliver experiences. And the past 10+ years has shown that users will absolutely follow them.
Sorry, this comment was mainly just providing the previous user with a correction because they seemed to think that the other person that they were replying to was talking about forcing people to use phone apps, which I assume we all agree is bad and would likely work if there were a concentrated push for it.
Concerning your points after "using the browser": I want websites to use replaceState and manage their own intra-page navigation with a cookie. They can still intercept the back button as they do now, but they should only get the single history entry until they switch to a new page, if they ever do.