Skip to content

Match required and optional form-control pseudo-classes #446

Closed

Description

@wieslawsoltes

Parent: #257

Proven gap

The merged live-value slice implements :valid, :invalid, and :placeholder-shown, and the selector dependency compiler already records required mutations for :required/:optional. The matcher has no required or optional branch, so both selectors currently fall through as unsupported.

Focused implementation

  • define which input, select, and textarea controls support the required state;
  • match :required and :optional from the live element type and required content attribute;
  • preserve the existing bounded required and type attribute invalidation routes;
  • keep buttons, hidden/range/color and button-like input types, and unrelated elements outside the applicable set.

Deferred validation debt

This implementation-only slice intentionally skips browser/WPT/native correctness runs, performance, allocation, memory, lifecycle, scene/pixel, product, hosted checks, and CI monitoring. Those remain required before #257 product acceptance.

This child does not extend full constraint validation, range, checked/indeterminate, disabled/enabled, read-only/read-write, user-valid/user-invalid, form-owner, or reset behavior. It does not touch consolidation PR #76.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions