Live data from Hacker News

There's 200 form builders, but none do what a programmer can, so I built my own

blog.keenforms.com

61–70 of 82 posts

Re: There's 200 form builders, but none do what a programmer can, so I built my own

#61

Earlier quoted context omitted.

> I plan to create my own custom number input that has its own increment/decrement buttons. How will you handle users who have javascript disabled? Why reinvent the wheel? Why not fix whatever problem you have with numeric input?

> How will you handle users who have javascript disabled? They won't/can't. Their only real options are to fallback to either the "text" field or the "numeric" field. > Why reinvent the wheel? Why not fix whatever problem you have with numeric input? JS devs will prioritize chasing after their ideal UIX long before they consider things like JS being disabled, screen readers, ARIA tags, cross-platform compatibility, e…

You cannot make a webpage that has dynamic interactions and responds the way a desktop application does WITHOUT Javascript unless you reload the page AFTER EVERY INTERACTION, and the page reload screen blip is visually disorienting.

folkhack I'm reading this, I've done quite a bit to address accessibility and will continue to do so. But disabling JS because not going to happen. The whole thing is built with React. And to make a comment like that is incredibly myopic and egocentric as if NOTHING ELSE MATTERS except javascript being disabled.

What world of technology do you live in where the terrible UX of no javascript is acceptable?

Re: There's 200 form builders, but none do what a programmer can, so I built my own

#62
post #39
post #3

And now there's 201!

https://xkcd.com/927/

“Learned helplessness”, comic edition, where the author’s self-insert is still The Smartest Guy In The Room because he knows better than to ever try anything.

Re: There's 200 form builders, but none do what a programmer can, so I built my own

#65

Earlier quoted context omitted.

> How will you handle users who have javascript disabled? They won't/can't. Their only real options are to fallback to either the "text" field or the "numeric" field. > Why reinvent the wheel? Why not fix whatever problem you have with numeric input? JS devs will prioritize chasing after their ideal UIX long before they consider things like JS being disabled, screen readers, ARIA tags, cross-platform compatibility, e…

You cannot make a webpage that has dynamic interactions and responds the way a desktop application does WITHOUT Javascript unless you reload the page AFTER EVERY INTERACTION, and the page reload screen blip is visually disorienting. folkhack I'm reading this, I've done quite a bit to address accessibility and will continue to do so. But disabling JS because not going to happen. The whole thing is built with React. An…

> What world of technology do you live in where the terrible UX of no javascript is acceptable?

We're conversing on HN... a site that has specifically avoided UIX overhauls to maintain the simplicity and functionality of the forum. This site uses absolutely minimal JS, and although I've trusted HN to run JS I still have it disabled for the majority of the web.

Many, many people still have a foot in the "no-JS" world for many reasons: accessibility, security, tracking, site load time, non-ideal geographic network conditions. You will find many people here who browse no-JS by default. Yes - it is clearly a minority of users who browse no-JS but it is absolutely still a thing in 2022.

---

> page reload screen blip is visually disorienting

I don't find this to be true. I think it's a difference between FE developers where many of us are fine with the traditional way the web works vs. trying to abstract it all into a SPA-like experience. I just don't find a page-to-page interaction to be "visually disorienting," and, neither do my users.

Specifically, for forms I've learned to make them as-bullet-proof as humanly possible to the point of sometimes ensuring they use with a traditional multipart POST with JS disabled... Historically, I've had to work in industries like US higher education which has very specific regulations in regards to accessibility.

I understand that many experience-based form solutions like Typeform, Jotform, etc do not do this.

---

Also - just want to address your consistent use of caps in comments here. As-per HN community guidelines:

> Please don't use uppercase for emphasis. If you want to emphasize a word or phrase, put asterisks around it and it will get italicized.

I've fallen for this one myself, not trying to be pedantic - just informing.

Re: There's 200 form builders, but none do what a programmer can, so I built my own

#66

Earlier quoted context omitted.

Linking that article from 2020 is problematic - please read my response here: https://news.ycombinator.com/item?id=32141468

So I started writing code for this back in 2017, and I discovered a lot of issues with the number input back in 2019 so I never revisited it. So I'm glad certain issues have been resolved, but there are still others. I could probably write an article just about why the number input is terrible.

> I could probably write an article just about why the number input is terrible.

And, with as many people are saying outright "don't use numeric inputs" I would very much want to understand what issues you encountered, when, and, on what platform. Otherwise it sorta feels like FUD in 2022 to push against numeric inputs without specifying the actual issues.

In other words, please do write an article. Although I'm skeptical, I would read it with an open mind + in good faith.

Re: There's 200 form builders, but none do what a programmer can, so I built my own

#67

Earlier quoted context omitted.

> As a web designer with a speciality in a11y This is hard to believe - as I remark above, the accessibility issues with the number input type are extreme. It's much, much worse than any alternative, including a plain text input type. ` ` is something that might be recommended blindly on the basis of a checklist, but not something that might be recommended by anyone familiar with relevant concepts.

> > As a web designer with a speciality in a11y > This is hard to believe Oof. Even if they're outright wrong they could still have lots of experience with accessibility. On HN we typically assume good faith even when we disagree with each other. That being said, I agree with them. The arguments made against the "numeric" field here are out of date, and not something I have ever ran into with my own testing. I'm not…

> I've read the .gov.uk article and it's from 2020 and many of the issues are resolved in the years since it came out.

> please read my response here: https://news.ycombinator.com/item?id=32141468

Reading that response was a surreal experience. "Many of the issues are resolved since it came out"... except for the important ones?

Here are the issues you rebutted:

- A number input blocks dictation and selection when using Dragon Naturally Speaking

- number inputs appear unlabeled in NVDA's element list

- plus, they look weird in NVDA's object navigation

- and they're unlabeled when using nvda+tab

But you appear to have confused the article section titled "Accessibility" with the concept of accessibility. Here are some accessibility issues, also mentioned in the article, that you didn't bother to address:

- Values in a number input are automatically rounded or even converted to exponential notation by the browser. Because while it might look like your credit card number is 4000 0566 5566 5556, what you want to put into the form is 4.000056655665556e+15.

- Safari 5.1 inserts commas into "number"s with at least 16 digits. (Yep, Safari 5.1 is old. It was also old in 2020. Doesn't make this less of a disaster for users on Safari 5.1.)

- Values within a number input change at random if the user's mouse has a mouse wheel.

Between the issues that have been fixed, and the issues that haven't been fixed... which ones sound like they're worse problems? Imagine this changelog:

    1. NVDA now has better visibility into number input elements.

    2. number input elements still don't work.
> The arguments made against the "numeric" field here are out of date, and not something I have ever ran into with my own testing.

You need to do some real testing. It's not hard to run into the mousewheel issue. I've run into it on multiple occasions. It is not necessary to dispatch mouse events to child elements - anyone who clicks on the input element to focus there has now positioned their cursor directly over the input element.

Re: There's 200 form builders, but none do what a programmer can, so I built my own

#68
So now there are 201 form builders ..... ?

All jokes aside (given that I suck as a web-dev and still resort to plain vanilla html/css/js to build front ends for my webapps) what would have been great to see in your post was a list of problems with the 200 form builders - or atleast top N common anti-patterns amongst those and your understanding of how they came be and your philosophy and solution for tackling those. The demos definitely help but I couldnt help but feel this was more of a whackamole?

Re: There's 200 form builders, but none do what a programmer can, so I built my own

#69

Earlier quoted context omitted.

> > As a web designer with a speciality in a11y > This is hard to believe Oof. Even if they're outright wrong they could still have lots of experience with accessibility. On HN we typically assume good faith even when we disagree with each other. That being said, I agree with them. The arguments made against the "numeric" field here are out of date, and not something I have ever ran into with my own testing. I'm not…

> I've read the .gov.uk article and it's from 2020 and many of the issues are resolved in the years since it came out. > please read my response here: https://news.ycombinator.com/item?id=32141468 Reading that response was a surreal experience. "Many of the issues are resolved since it came out"... except for the important ones? Here are the issues you rebutted: - A number input blocks dictation and selection when us…

> But you appear to have confused the article section titled "Accessibility" with the concept of accessibility.

I mean. Yeah - I guess I expect the section named "Accessibility" to be about the concept of accessibility.

---

> Values in a number input are automatically rounded or even converted to exponential notation by the browser. Because while it might look like your credit card number is 4000 0566 5566 5556, what you want to put into the form is 4.000056655665556e+15

So, just like a telephone number - CC #'s are not technically numeric as they're more accurately thought of as a "sequence of numbers"... and funnily enough many people will sorta hijack the functionality of the using "pattern" and other attributes to input them correctly.

Whatever the case is, it is considered a bad practice to use type="number" for a CC field. type="number" specifically is for when a field is a numeric "value" - this is not the case with a CC number as it's a sequence of digits (as-in the value of the digits doesn't mean anything).

Your point is valid for very large numbers, or numbers with incredible precision. Sometimes yes, those extreme values can cause weird non-intuitive behavior from the number field. While I have ran into these use cases, I 100% consider them to be edge. Most people aren't inputting numbers that large into an application; and it can actually be considered a bad UIX practice (ex: making someone enter a large value in bytes vs. smaller value scaled in gigabytes).

---

> Yep, Safari 5.1 is old. It was also old in 2020. Doesn't make this less of a disaster for users on Safari 5.1

So, Safari is on 15 and according to https://caniuse.com/usage-table it is 0.02% the market share.

Every time we create software targeting the browser as a presentation layer we have to ask ourselves what the acceptable market cut-off for browser support is. This is largely dictated by the nature of the software, who is using it, geographies... lots of things.

Unless the solution warranted, or the client demanded incredible backwards compatibility, I would not shackle myself to supporting browsers with that low of a current use %. The economics for my time, vs. what I would sacrifice in capability just do not work out. Also, I don't have the scale of Facebook or Google where I need to support... everything. 99.9% of the time I just need to support reasonably modern browsers 3-4 major versions back.

---

> It's not hard to run into the mousewheel issue. I've run into it on multiple occasions. It is not necessary to dispatch mouse events to child elements - anyone who clicks on the input element to focus there has now positioned their cursor directly over the input element.

Although browsers differ in how they handle value changing on scrolling for number fields (Chrome: no change, FF: value changes), I don't think it's outside of the realm of expected functionality...

Similarly, if you click on a dropdown element gives it focus, scrolling the mouse wheel the dropdown will select different options; even if the cursor isn't directly over it. The same is true with other inputs, my cursor is not on this but I am still able to type within it because it has focus. It will not lose focus unless I click off of it.

I sorta get how this behavior doesn't translate well for the number field. I will note you can easily stop the behavior with onscroll="return false" attribute or a JS event listener with event.preventDefault() ... I've seen both in the wild and they're fine solutions. Even for no-JS users I think it's still OK since they've consciously opted-in to the default browser behavior for stuff like this.

But still - it's not completely outside of the realm of unexpected behavior for an input to still react to scroll if it the element has focus. And, if it's a problem it's incredibly easy to fix and still get all of the accessibility benefits that a number field offers.

---

> You need to do some real testing

I find this aggressive.

Although you have clearly decided I haven't... I have. I just think people making real arguments against the using numeric input elements is off. I've used them for years now without encountering the edge cases people are throwing out there; and, I still find using the 2020 GOV.UK site as basis against the use is problematic. I think often it's more accessible to use them when appropriate, even given the quirks we've discussed.

I've shared my thoughts - feel free to rebut for others to read, but I'm fully done conversing on this with you.

Re: There's 200 form builders, but none do what a programmer can, so I built my own

#70

Earlier quoted context omitted.

> How will you handle users who have javascript disabled? They won't/can't. Their only real options are to fallback to either the "text" field or the "numeric" field. > Why reinvent the wheel? Why not fix whatever problem you have with numeric input? JS devs will prioritize chasing after their ideal UIX long before they consider things like JS being disabled, screen readers, ARIA tags, cross-platform compatibility, e…

You cannot make a webpage that has dynamic interactions and responds the way a desktop application does WITHOUT Javascript unless you reload the page AFTER EVERY INTERACTION, and the page reload screen blip is visually disorienting. folkhack I'm reading this, I've done quite a bit to address accessibility and will continue to do so. But disabling JS because not going to happen. The whole thing is built with React. An…

> What world of technology do you live in where the terrible UX of no javascript is acceptable?

The world where people can be blind or deaf so a fancy javascript-powered UX does nothing except waste CPU cycles. The world where I want a website to be as plain as possible because what you see on your screen isn't what I want to see on my screen. The world where javascript is a vector to attack users and steal data. The world where client-side input validation is, at best, a pointless because you still need to validate input on the server too. There are many reasons to disable javascript.

What world of realism are you living in where you completely dismiss peoples' valid reasons for disabling javascript?

Post reply on HN