Muhammed Senussi
Muhammed Senussi
  • Muhammed Senussi
Progressive Enhancement Is Not NostalgiaFrontend

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

  • Omar Haddad

    November 5, 2024

    The third-party tag scenario happened to us in December. One analytics script threw and the entire checkout stopped responding.

    • Muhammed Senussi

      Muhammed Senussi

      AuthorNovember 5, 2024

      That 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.

Leave a comment