web-platform-tests / interop

web-platform-tests Interop project
https://wpt.fyi/interop
278 stars 28 forks source link

[selectors-4] `:blank` pseudo-selector support (re form fields) #595

Closed brandonmcconnell closed 10 months ago

brandonmcconnell commented 10 months ago

This is a copy from last year's Interop 2023 proposal for this same feature: https://github.com/web-platform-tests/interop/issues/179

Description

:blank is a pseudo-selector that allows CSS to target a form field when it is blank/unpopulated.

Quoting the spec:

The :blank pseudo-class applies to user-input elements whose input value is empty (consists of the empty string or otherwise null input).

Rationale

There's currently no viable way to target a blank form field. The most common vanilla workaround for this so far is to mark the field as required and then check for :valid along with some pattern matching, however there are quite a few fundamental problems with that approach:

More recently, another workaround for this that has been growing in popularity is :placeholder-shown but this doesn't appear to work when there is no placeholder set.

Open issues:

Related discussions:

Specification

https://w3c.github.io/csswg-drafts/selectors-4/#blank

Tests

No tests yet, but fully spec'd and actively being discussed in the open issues listed above

foolip commented 10 months ago

Hi @brandonmcconnell, I'm going to close this for the same reason as https://github.com/web-platform-tests/interop/issues/594. However, I'll add that it seems like a relatively small implementation effort. If there is a pull request for WHATWG HTML to resolve https://github.com/whatwg/html/issues/8451 and test written in WPT, it's the kind of thing that could be done quickly outside of Interop. It seems like a sensible feature, and if you think it's stuck in some process/discuss, I'd be happy to take a look if requested.