The datalist element on iOS 26

The datalist element is all fucked up on iOS. Again.

I haven’t “upgraded” my iPhone to iOS 26 and I have no plans to. The whole Liquid Glass thing is literally offputting. So I wouldn’t have known about the latest regression in Safari if a friend hadn’t texted me about the problem.

He was trying to do a search on The Session. He was looking for the tune, The Road To Town. He started typing this into the form on the home page of the site. He got as far as “The Road To”. That’s when the entire input was obscured by a suggestion from the associated datalist.

A screenshot of The Session on an iPhone during a search on the homepage. The search input is completely obscured by the text: The Road To Lisdoonvarna.

This is incredibly annoying and seems to be a pattern of behaviour for Safari. Features are supported …technically. But the implementation is so buggy as to be unusable.

I’ll probably have to do some user-agent sniffing, which I hate. And it won’t be enough to just sniff for Safari on iOS 26. Remember that every browser on iOS is just Webkit in a trenchcoat.

Time to file a bug and then wait God knows how long for an update to get rolled out.

Update: I filed a bug, but in the meantime it looks like user-agent sniffing is going to be impossible.

Have you published a response to this? :

Responses

Marco Hengstenberg

@adactio I love using datalist… and now I see a few clients might hit our inbox at work in a few days.

I remember using awesomplete by @leaverou before the platform provided most of the parts. Can already see myself stepping back and use that for client projects again. 🤔

mb21

🫠 so annoying.

# Posted by mb21 on Sunday, January 18th, 2026 at 7:00pm

Luke

@adactio so I hate to say it but there’s something you could do alongside the user agent sniff to detect a real 26.0 safari version…

Feature detect something that was added in v26, like doing (‘TrustedHTML’ in window). Though be aware that iPadOS pretends it’s a Mac so you’d then have to do an extra check to say is this reporting that it’s a Mac but has something iPad specific (matchMedia(‘hover:none’)). So it’s really not a fun time, but is doable.

# Posted by Luke on Monday, January 19th, 2026 at 4:35pm

Luke

@adactio that iPad bit isn’t foolproof and might break if you have a mouse connected to your iPad, it’s probable there’s a combination you can use though.

An alternative thing you can use is that desktop safari has (‘safari’ in window) but iPadOS doesn’t. It’s for the legacy apple push notifications service, which was always Mac specific.

# Posted by Luke on Monday, January 19th, 2026 at 4:38pm

8 Shares

# Shared by Alex Russell on Sunday, January 18th, 2026 at 11:06am

# Shared by Jakub Iwanowski on Sunday, January 18th, 2026 at 11:43am

# Shared by Matt Wilcox on Sunday, January 18th, 2026 at 11:43am

# Shared by mrtnvh on Sunday, January 18th, 2026 at 12:19pm

# Shared by Gaz Shaw on Sunday, January 18th, 2026 at 1:11pm

# Shared by Sue on Sunday, January 18th, 2026 at 8:56pm

# Shared by Ross McKay on Sunday, January 18th, 2026 at 11:18pm

# Shared by James Heppell on Monday, January 19th, 2026 at 7:11pm

17 Likes

# Liked by Duffeh on Sunday, January 18th, 2026 at 10:55am

# Liked by jrlarsen on Sunday, January 18th, 2026 at 10:56am

# Liked by Alex Russell on Sunday, January 18th, 2026 at 11:06am

# Liked by Ondřej Pokorný on Sunday, January 18th, 2026 at 11:06am

# Liked by Baldur Bjarnason on Sunday, January 18th, 2026 at 1:11pm

# Liked by Jamie And Lion (aka, SpacedOutSmiles) on Sunday, January 18th, 2026 at 1:11pm

# Liked by Gaz Shaw on Sunday, January 18th, 2026 at 1:11pm

# Liked by Martin Matovu on Sunday, January 18th, 2026 at 1:39pm

# Liked by Julien Roncaglia on Sunday, January 18th, 2026 at 1:54pm

# Liked by pgrucza on Sunday, January 18th, 2026 at 2:34pm

# Liked by Lyons on Sunday, January 18th, 2026 at 3:13pm

# Liked by Ross McKay on Sunday, January 18th, 2026 at 11:18pm

# Liked by Okiki Ojo on Monday, January 19th, 2026 at 3:02pm

# Liked by Luke on Monday, January 19th, 2026 at 4:40pm

# Liked by Roderick Gadellaa on Monday, January 19th, 2026 at 6:37pm

# Liked by James Heppell on Monday, January 19th, 2026 at 7:11pm

# Liked by 🎄 Riitti on Monday, January 19th, 2026 at 9:29pm

Related posts

The design of datalist

Have your combo-box cake and eat your select fallback too.

Progressive disclosure defaults

If you’re going to toggle the display of content with CSS, make sure the more complex selector does the hiding, not the showing.

Facebook Container for Firefox

The browser extension is running amok.

Multi-page web apps

A question via email…

Accessibility testing

It’s not just about finding the issues—it’s about finding the issues at the right time.

Related links

datalist experiment

This is wonderful stuff! I’m a big fan of the datalist element but I hadn’t realised how it could be combined with input types like range and date.

So nifty!

Tagged with

SCALABLE: Save form data to localStorage and auto-complete on refresh

When I was in Amsterdam I was really impressed with the code that Rose was writing and I encouraged her to share it. Here it is: drop this script into a web page with a form to have its values automatically saved into local storage (and automatically loaded into the form if something goes wrong before the form is submitted).

Tagged with

Bring Focus to the First Form Field with an Error :: Aaron Gustafson

A handy little script from Aaron to improve the form validation experience.

Tagged with

The ‘Form’ Element Created the Modern Web. Was It a Big Mistake? | WIRED

Paul Ford:

The web was born to distribute information on computers, but the technology industry can never leave well enough alone. It needs to make everything into software. To the point that your internet browser is basically no longer a magical book of links but a virtual machine that can simulate a full-fledged computer.

Tagged with

How To Build Resilient JavaScript UIs — Smashing Magazine

The opening paragraphs of this article should be a mantra recited by every web developer before they begin their working day:

Things on the web can break — the odds are stacked against us. Lots can go wrong: a network request fails, a third-party library breaks, a JavaScript feature is unsupported (assuming JavaScript is even available), a CDN goes down, a user behaves unexpectedly (they double-click a submit button), the list goes on.

Fortunately, we as engineers can avoid, or at least mitigate the impact of breakages in the web apps we build. This however requires a conscious effort and mindset shift towards thinking about unhappy scenarios just as much as happy ones.

I love, love, love the emphasis on reducing assumptions:

Taking a more defensive approach when writing code helps reduce programmer errors arising from making assumptions. Pessimism over optimism favours resilience.

Hell, yeah!

Accepting the fragility of the web is a necessary step towards building resilient systems. A more reliable user experience is synonymous with happy customers. Being equipped for the worst (proactive) is better than putting out fires (reactive) from a business, customer, and developer standpoint (less bugs!).

Tagged with

Previously on this day

4 years ago I wrote Installing progressive web apps

How I’m letting people know they can install The Session to their home screens.

8 years ago I wrote Analysing analytics

Ain’t no third party like a Google Analytics third party.

15 years ago I wrote Bye, bye 5

HTML5 is dead, long live HTML.

15 years ago I wrote Badge of shame

The W3C embark on a mission to confuse and befuddle.

20 years ago I wrote Backlash 2.0

Wintertime… and the coding ain’t easy. Sharks are jumping and the bubble is high.

24 years ago I wrote Black Hawk Down: Shoot first, don't ask questions afterwards

For anyone planning to see the film "Black Hawk Down", perhaps you should read this article first.