<- blog

Native Select Styling Changes Form UX

Safari 27 is adding customizable select support. Form-heavy sites should test native styling before reaching for custom dropdown JavaScript.

#web-platform#cro#forms

Safari 27's incoming customizable <select> support is a practical reminder for ecommerce, booking, and quote-flow sites: many "custom dropdown" components can move back toward native HTML, but only if teams protect accessibility, analytics, and conversion measurement while they restyle.

The fresh trigger is WebKit's June 15 post, "The golden rule of Customizable Select", which says customizable select is coming to Safari 27. WebKit's headline benefit is simple: custom arrows, option layouts, colour swatches, icons, and fuller styling without replacing a browser control with a pile of JavaScript and <div> elements.

Why operators should care#

Dropdowns sit in expensive parts of a site: product variants, delivery options, country selectors, lead qualification, appointment types, budgets, and checkout forms. A brittle custom select can quietly cost money when it breaks keyboard navigation, mobile behaviour, autofill, validation, or screen-reader semantics.

Native styling support changes the trade-off. The visual polish that pushed teams into bespoke dropdowns is becoming possible on top of the real <select> element. That means fewer event handlers, fewer hydration traps, less design-system glue, and a better chance that browser behaviours keep working as users expect.

The useful parts of the new model#

Chrome's earlier developer-feedback article, "Request for developer feedback: customizable select", explains the core opt-in: use appearance: base-select on the <select> and ::picker(select) to style the opened picker while preserving the underlying select semantics. MDN's customizable select guide also documents the emerging pieces around the picker, the select button, and <selectedcontent> for displaying the current option.

In practice, this lets a team improve common form UI without abandoning native controls:

That is particularly relevant for small teams. A custom dropdown component is rarely "done" after it looks right in the happy path; it needs keyboard behaviour, pointer behaviour, focus management, mobile testing, disabled states, form integration, and accessibility review. Native controls lower that maintenance burden.

The accessibility rule is not optional#

WebKit's post is explicit about the golden rule: always provide text content or accessible text attributes for options. If an option is only a colour swatch, icon, logo, or image, the visual design might look clean while assistive technology receives too little information.

For business forms, that becomes an operational rule: every selectable choice needs a stable human-readable label, even when the UI adds icons or rich layouts. Use visible text where possible. If the design genuinely needs a visual-only affordance, make sure the accessible name still communicates the choice.

This matters for analytics too. If the option's human meaning is clear in the HTML, it is easier to log and debug form drop-off. "Blue / large / express delivery" is useful. "option-3" is not.

Browser support means progressive enhancement#

Do not rewrite every select overnight. MDN still warns that these features have limited browser support, and the Chrome article frames the work as an evolving customizable-select API. The right rollout is progressive enhancement: keep a plain, usable <select> as the baseline, then layer the richer styling where supported.

A safe pattern looks like this:

select,
::picker(select) {
  appearance: base-select;
}

Then test unsupported browsers to confirm they still get a normal select. Avoid designs where the only usable version depends on the new styling hooks. This is especially important for checkout and lead forms, where a small browser edge case can become lost revenue.

What to audit this week#

Start with the forms closest to revenue, not the prettiest component in Storybook.

  1. List every custom dropdown in checkout, booking, quote, contact, onboarding, and product configuration flows.
  2. Mark which ones could become native <select> elements if styling improved.
  3. Check keyboard navigation, screen-reader labels, mobile interaction, validation, and autofill on the current implementation.
  4. Add analytics events for opened dropdowns, changed values, validation errors, and form abandonment.
  5. Prototype one native select with progressive styling and compare completion rate, support issues, and code complexity.

For ecommerce stores, variant selectors and shipping choices are usually the best first candidates. For service businesses, start with appointment type, budget, location, and "what do you need help with?" selectors. These are high-intent interactions, and friction there is more expensive than friction in a preference screen.

The builder takeaway#

Customizable select is part of a broader web-platform trend: browsers are giving teams more styling control over native UI without forcing them to rebuild primitives. Operators should use that to simplify, not to add another fragile design-system abstraction.

If a dropdown affects conversion, the default question should now be: can this be a native select with progressive styling? If yes, keep the semantics, keep the browser behaviour, measure the funnel, and reserve bespoke JavaScript for cases where the native control genuinely cannot model the job.

Need technical help?

I'm a software engineer who builds web apps, APIs, and AI tooling. If you've got a project or a problem to talk through, book a free 30-minute call.

Book time with me ->