I'm one of the developers of the survey app. While I would love to have the app work seamlessly without JavaScript, the reality is that when you build apps with a React/Next.js stack the path of least resistance does usually take you in a direction that requires JS to work.
Personally I don't see it as a good or bad thing, it's just one way of building web apps, and it so happens it's the one I know how to do.
Taking the survey myself definitely showed me my own HTML skills are rusty as a consequence of building JavaScript apps for the last decade.
The truth is that building web apps is a large and complex enough field that it's quite hard for a single person to master all of it, and I think we should normalize the fact that any single developer will have their areas of strength and weakness.
Agreed. I think the two of us can talk all day about the necessity of it becoming a “large and complex field”. I accept I am an old miser about it, but it is indeed the reality.
I only got part-way through the survey before moving on, but based on what I did see of it, it doesn't look like an alternative HTML-only/non-JavaScript version should be that hard to put together at all for future surveys.
Just do it on a single page, in one big form that's submitted at the end. Don't even bother with styling it.
If a version like that were available, I probably would've completed the survey because I could have more easily judged how long it would take to finish it.
I would recommend 2D semantic HTML documents (using a table), and no, HTML tables are not harmful (https://webaim.org/techniques/tables/ with a real life example https://iroiro.neocities.org/ ). People with visual impairment can still navigate easily (see webaim page above) with screen readers.
How do you detect which version to serve in this case? Using User-agent server-side, or something else client-side? Or maybe letting the user decide using a separate website?
It's a bit ironic to host the state of html survey in an environment that absolutely requires JavaScript. It is also a pretty bad thing since progressive enhancement is a key principle of the web.
Personally I don't see it as a good or bad thing, it's just one way of building web apps, and it so happens it's the one I know how to do.