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

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
jdalton added a commit that referenced this pull request Sep 17, 2026
Consolidated commits:
- d8158d9 Read the last token of a selector that ends in a nested pseudo-class (#182)
  Original author: John-David Dalton <jdalton@users.noreply.github.com>
- e0087aa Keep enabled and disabled states complementary (#190)
  Original author: John-David Dalton <jdalton@users.noreply.github.com>
- 3526e0c Use agent-aware test reporters
  Original author: jdalton <john.david.dalton@gmail.com>
- 0b43903 Share jsdom adapter configuration per document (#213)
  Original author: John-David Dalton <jdalton@users.noreply.github.com>
- 4fe8b2c fix: correct form states, defined elements and relative has anchors
  Original author: John-David Dalton <jdalton@users.noreply.github.com>
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