Forms on the web have become terrible. Lost state. No keyboard nav. Weird refreshes. Mobile hostile.

The reason is #frontend developers that think clientside state management is how to implement a form. It is not.

Good forms work without client #javascript (and then are progressive enhanced by js to work even better).

Good forms always submit. Good forms remember values and display problems inline.

How do we fix the misconceptions and, in the process, fix the forms on the web ?

@brianleroux This is such a pervasive issue on the web.

I build form interfaces incrementally, with native HTML and a server endpoint. I make sure everything works fully before touching a line of JavaScript.

Colleagues will ask why I'm not "doing it in React." It's not until a few iterations in, once I've added client-side progressive enhancement with native JavaScript that the full picture starts to take shape. Then, "Wow, this is fast and snappy, and it works even when scripts fail to load."