Skip to content

unprefix the -webkit-user-select CSS property #1000

@o-t-w

Description

@o-t-w

Description

The user-select CSS property still needs a -webkit- prefix in Safari.

A note about the current state of CSS vendor prefix’s

  • Chrome, Edge and other Chromium-based browsers had required a -webkit- prefix for print-color-adjust. This is no longer the case as of version 136.
  • As part of Interop 2025, Safari removed the need for the -webkit- prefix for the text-decoration CSS shorthand property.

That leaves only a handful of properties requiring a prefix:

  • user-select
  • stretch: Implemented as -webkit-fill-available in WebKit and -moz-available in Firefox.
  • text-size-adjust: Needs -webkit- prefix in WebKit and Firefox. (Firefox also supports the -moz- prefix.)
  • box-decoration-break: Needs -webkit- prefix in WebKit.
  • line-clamp: Needs a -webkit- prefix and some additional non-standard properties (display: -webkit-box and -webkit-box-orient: vertical) to be set in Chromium, WebKit and Firefox.

Autoprefixer is downloaded from NPM 33 million times per week. Needing to complicate build tooling with Autoprefixer for such a tiny handful of properties is an unfortunate situation.

Of those properties that do require a prefix, some are pretty niche, but that can’t be said for user-select. While line-clamp is another very useful and popular CSS feature that requires a prefix, Autoprefixer doesn’t prefix line-clamp, so it is primarily user-select that necessitates continued use of Autoprefixer). While ideally no property would require a prefix, for the reason just stated user-select in particular should be prioritised.

Specification

https://www.w3.org/TR/css-ui-4/#content-selection

web-feature

https://web-platform-dx.github.io/web-features-explorer/features/user-select/

Test Links

https://wpt.fyi/results/css/css-ui?label=master&label=experimental&aligned&q=user-select

Additional Signals

WebKit issue
Unmerged PR
various open bugs.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions