Skip to content

Model live checkbox and radio indeterminate state #457

Closed

Description

@wieslawsoltes

Parent: #257

Proven gap

WebScene parses :indeterminate but the matcher rejects it. HTMLInputElement.indeterminate is not exposed or stored, checkbox activation cannot clear/restore it, and radio groups do not invalidate derived indeterminate state when live checkedness changes.

Focused implementation

  • add non-reflected live input.indeterminate boolean state to the existing cold form-control record and both generated/legacy binding lanes;
  • match checkbox indeterminate state from that live property;
  • clear checkbox indeterminate state during click activation and restore it when activation is canceled;
  • derive radio :indeterminate from the existing live checkedness group and target group members when checkedness changes;
  • compile live/property and relevant checked/type/name dependency invalidation;
  • paint the existing native checkbox affordance as a dash while indeterminate.

Deferred validation debt

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

Complete form-owner/reparenting group semantics, shadow-tree edge cases, <progress>:indeterminate, range states, user-valid/user-invalid, and cumulative product acceptance remain outside this child. Consolidation PR #76 is untouched.

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