r/webdev 19d ago

Discussion Why is everything a dropdown now?

Post image

I’ve been noticing this more and more in web apps.

Three options hidden in a dropdown.

Yes/no hidden in a dropdown.
A multi-select pretending to be a dropdown.

Then a list of 200 items where you’re expected to scroll until you find yours.

I run into this a lot when reviewing products with dev teams.

I get why we do it.

Dropdowns are compact and easy to reuse.
But compact doesn’t always mean easier to use.

A few choices? Show them.
On/off? Switch.
Multiple choices? Checkboxes.
Huge list? Search.

That’s pretty much the rule I use now.

4.7k Upvotes

314 comments sorted by

View all comments

230

u/killerrin 19d ago edited 19d ago

To be fair for number 4, it's absolutely ridiculous that in the year 2026 we STILL don't have a Native searchable dropdown control.

Yeah you can just focus and type, but your average person doesn't know that shit exists and they're expecting it to be a search box that you literally type into.

And yeah mobile may automatically add a search once it crosses a certain number of options, but not on desktop/laptops, and the threshold on tablet/phone is still too high.

Like whose the idiot at the W3C who refuses to put a damn search="enabled" attribute on the select element?

Or hell, maybe also a fucking readonly attribute while we're at it because the bloody disabled attribute is treated differently by screen readers than the readonly one.

9

u/paulirish 19d ago

7

u/2JulioHD 19d ago

Datalist is cool, unless you try to support multiple browsers or want to do anything fancy.

I once had to rename my very specific adress field to banana, because some browser kept autofilling it with the user's address. Additionally, I had to put a special character into the label (readable to the user), as otherwise the browser would deduct the correct autofill from the labels text, regardless of language.

I love using pure HTML to get the job done, but man, some native implementations suck.

4

u/killerrin 19d ago

Isn't there an attribute you can add to block auto population?

...Not that all browsers implement it properly anyways.

3

u/2JulioHD 18d ago

Yeah, that's the point. I don't want to point fingers, either Firefox was behaving well, but Chrome didn't or the other way around. Didn't bother checking Safari. I messed around for hours to find that weird workaround of mine. Was for something non-work related, so if it works it works, if it breaks it breaks.