An HTML attribute potentially worth $4.4M to Chipotle
cloudfour.com
cloudfour.com
Like how eBay's new search feature does not allow me to click in it and type in one motion. I have to click, wait for it to redraw without the magnifying glass, and then click again to put the cursor where I wanted it, before editing the query.
Or how some sites hijack the scrollbar, or muck with it, or how about that endless scroll that gets mucked up every so often and you gotta start over.
I suppose web programmers need something to do.
I shit you not, someone asked to remove scrollbars from nested lists in Windows.
> To test what would happen if Chipotle’s form used these standards, I opened my browser’s developer tools and edited the expiration year field:
> Video of autofill on the Chipotle order form after `maxlength=”2″` has been added using developer tools. It works!
> Adding the maxlength attribute to the field fixes the problem. This makes sense. We’re telling the browser, and by extension the autofill feature, how many digits it should use for the expiration year.
> Autofill is smart enough to know that if we only want two digits for a year field, that the form needs the last two digits of the year. We just need to tell the browser how many digits we expect.
Masking is generally surprisingly user-hostile. It’s better to instead take arbitrary user input and make sense of it after the fact—if you want to reformat the value they’ve entered, you might be able to get away with doing that after they blur the field (though even then there are often downsides to doing it), but I believe it’s genuinely impossible to accomplish in a side-effect way before then, across all devices. (It’s not easy, but possible to do it for desktop; but various mobile keyboards are particularly weird and do all kinds of crazy things if you meddle with the value while typing.)
I’m talking about the web specifically here. It’s possible to do things properly outside the web, but the web just doesn’t give you quite the right tools for bug-free implementations of masking.
It would be a fun programming exercise to take a long list of inputs and write some javascript that properly handles every one of them (or to point out where there are mutually exclusive requirements).
This is particularly terrible for addresses. The only acceptable solution (that nobody uses) is as follows: allow FREEFORM addresses. Like, I'm OK with the website or the server doing some post-hoc validation, and suggesting to the user "This address doesn't seem right, are you sure it is correct?" But the amount of time I have to enter "county" (or whatever) for my London address (and sometimes it's Greater London, other times just London, or probably something else as well...) is ridiculous, doubly so because mail in the UK arrives without problems with little more than just a postcode.
If you must do client-side massaging of form data, at least wait until the user has pressed Submit before messing with the form's contents. And don't assume that the keypresses are the only way your inputs will change.
Or to put it another way. Estimate how many programmer-hours it takes to fix this issue. With that number calculate the % of people that are likely to abandon the order. Is that % likely to be happening?
[0] https://www.blog.shippypro.com/2019/01/27/2019-ecommerce-con...
[1] https://www.growcode.com/blog/ecommerce-conversion-rate/
The estimate provides meaningful context. Without an estimate, this article amounts to complaining about web standards. With an impact estimate, it is actionable. We have a problem, we know roughly how bad it is, we have a solution.
Maybe it's off by an order of magnitude or 2. If it's costing them $44k/year, it's still worth fixing.
This problem does not happen on native mobile apps due to saved Apple Pay/Android Pay cards.
Still a nice article.
It was so easy that half our office was able to figure out that you can right click the picker, "Inspect", then type in any time you like.
ALWAYS SANITIZE YOUR INPUTS. When that sanitation is complete, replace what's in the form. You don't always have to sanitize the frontend, but ALWAYS sanitize the backend.
Click bait because there's nothing substantial claiming that this actually resulted in a loss of revenue for Chipotle other than some napkin mathematics. A counter point I would make is that I assume most people don't use CC saving in their browser as everyone seems to make a big stink about it. Additionally I would wonder about the amount of people that would notice their info was correct, but failing, and then go through and manually change the information before submitting again. In this case, they may be more inclined to follow the standard 2 digit year that everyone seems to ask for.
Auto fill messes up the entry, people refill manually. This happens all the time on numerous payment forms
Only if they suspect that might help. This case doesn't exactly make that clear.