The phrase sounds like a relic and the underlying engineering argument has never stopped being true.
The failure modes are ordinary
- A CDN request times out on a mobile network in a tunnel.
- A corporate proxy strips or mangles a script.
- One chunk of a deploy is stale because a cache did not invalidate.
- An error in an unrelated third-party tag stops the main bundle from executing.
None of those involve anyone choosing anything, and in all of them a form that posts to a URL still works while a form that only exists in a click handler does not.
The cheap version
You do not have to build everything twice. Use real links and real forms as the foundation and enhance them, rather than building interactions on divs and adding accessibility afterwards. The enhanced experience is identical; the difference only shows up on the days something breaks, which is exactly when you want it.
2 Comments
Leave a comment
Sign in to leave a comment.
Signing in is unavailable right now.







Omar Haddad
November 5, 2024The third-party tag scenario happened to us in December. One analytics script threw and the entire checkout stopped responding.
Muhammed Senussi
AuthorNovember 5, 2024That one is worth writing up internally, because it is the scenario that convinces people who dismiss the no-JavaScript argument. Nobody disabled anything; a vendor shipped a bad build and took your checkout with it.