Skip to content

Make :enabled the complement of :disabled, fieldsets included - #190

Merged
jdalton merged 1 commit into
dperini:masterfrom
jdalton:fix/disabled-complement
Sep 6, 2026
Merged

Make :enabled the complement of :disabled, fieldsets included#190
jdalton merged 1 commit into
dperini:masterfrom
jdalton:fix/disabled-complement

Conversation

@jdalton

@jdalton jdalton commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Fix

Use one disabled-state predicate for :disabled, :enabled, :read-only, and :read-write. A disabled fieldset exempts only descendants of its first legend. Nested fieldsets cannot erase an outer restriction. Options inherit disabled state from their immediate optgroup, not their select or fieldset.

Tests

Focused regressions cover first and later legends, nested fieldsets, own disabled state, non-controls, option groups, and DOM changes. The complete local Docker CI workflow passes, including Node tests, package checks, Chromium, WPT on both builds, and unchanged coverage thresholds.

@jdalton
jdalton force-pushed the fix/disabled-complement branch 2 times, most recently from a8ec97d to cfa2a0e Compare September 5, 2026 02:48
@jdalton

jdalton commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator Author

This one sits with #191 and #192 and #193, which touch the conformance fixes found by comparing against Chromium.

They do not depend on each other. All seventeen in the series cherry-pick onto master in any order, and I checked that in both directions, so any one of these can land alone. The order below is the one they read best in:

  • #190 makes :enabled the complement of :disabled, fieldsets included.
  • #191 anchors the :required and :optional tests, and lets :optional take a button.
  • #192 makes a fieldset :valid when none of its controls is invalid.
  • #193 makes every built-in element :defined.

@jdalton
jdalton force-pushed the fix/disabled-complement branch from bd57ded to e0b8663 Compare September 6, 2026 14:16
@jdalton
jdalton merged commit 7df07ab into dperini:master Sep 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant