Visitar URL original
New `defaultindeterminate` attribute for <input type=checkbox> by AtOMiCNebula · Pull Request #13224 · whatwg/html · GitHub
Skip to content

New defaultindeterminate attribute for <input type=checkbox> - #13224

Open
AtOMiCNebula wants to merge 2 commits into
whatwg:mainfrom
AtOMiCNebula:Input-DefaultIndeterminate
Open

AtOMiCNebula wants to merge 2 commits into
whatwg:mainfrom
AtOMiCNebula:Input-DefaultIndeterminate

Conversation

@AtOMiCNebula

@AtOMiCNebula AtOMiCNebula commented Nov 9, 2026 •

Copy link
Copy Markdown

Fixes #6578, which identified a gap where indeterminateness could not be specified statically, blocking static HTML generators and server-side rendering processes from being able to use indeterminate checkboxes without resorting to invoking JavaScript. To fill this gap, I'm adding a defaultindeterminate content attribute that is reflected by a defaultIndeterminate IDL attribute (not the existing indeterminate IDL attribute). A dirty indeterminateness concept is added, and parallels the existing concept of dirty checkedness, to allow interaction and usage of the indeterminate IDL attribute to separate the control from the "default" value.

The name choice is in line with other groups' recent decisions, such as Open UI choosing initiallyopen over a live open content attribute (see openui/open-ui#311 (comment)). It also helps address confusion around the (lack of) liveness between the content attribute and the actual value of the control.

Additionally, introducing a new dirty indeterminateness concept instead of overloading dirty checkedness better matches existing user agent behavior, where the indeterminate IDL property doesn't establish dirty checkedness. User interaction would establish dirty indeterminateness, in addition to dirty checkedness.

Explainer: https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/DefaultIndeterminate/explainer.md


  • At least two implementers are interested (and none opposed):
    • Chromium
    • …
  • Tests are written and can be reviewed and commented upon at:
    • …
  • Implementation bugs are filed:
    • Chromium: …
    • Gecko: …
    • WebKit: …
    • Deno (only for timers, structured clone, base64 utils, channel messaging, module resolution, web workers, and web storage): …
    • Node.js (only for timers, structured clone, base64 utils, channel messaging, and module resolution): …
  • Corresponding HTML AAM & ARIA in HTML issues & PRs:
  • MDN issue is filed: …
  • The top of this comment includes a clear commit message to use.

(See WHATWG Working Mode: Changes for more details.)


/acknowledgements.html ( diff )
/browsers.html ( diff )
/browsing-the-web.html ( diff )
/canvas.html ( diff )
/common-dom-interfaces.html ( diff )
/common-microsyntaxes.html ( diff )
/comms.html ( diff )
/custom-elements.html ( diff )
/dnd.html ( diff )
/document-lifecycle.html ( diff )
/document-sequences.html ( diff )
/dom.html ( diff )
/dynamic-markup-insertion.html ( diff )
/edits.html ( diff )
/embedded-content-other.html ( diff )
/embedded-content.html ( diff )
/form-control-infrastructure.html ( diff )
/form-elements.html ( diff )
/forms.html ( diff )
/grouping-content.html ( diff )
/iana.html ( diff )
/iframe-embed-object.html ( diff )
/image-maps.html ( diff )
/imagebitmap-and-animations.html ( diff )
/images.html ( diff )
/index.html ( diff )
/indices.html ( diff )
/infrastructure.html ( diff )
/input.html ( diff )
/interaction.html ( diff )
/interactive-elements.html ( diff )
/introduction.html ( diff )
/links.html ( diff )
/media.html ( diff )
/microdata.html ( diff )
/named-characters.html ( diff )
/nav-history-apis.html ( diff )
/obsolete.html ( diff )
/parsing.html ( diff )
/popover.html ( diff )
/references.html ( diff )
/rendering.html ( diff )
/scripting.html ( diff )
/sections.html ( diff )
/semantics-other.html ( diff )
/semantics.html ( diff )
/server-sent-events.html ( diff )
/speculative-loading.html ( diff )
/structured-data.html ( diff )
/syntax.html ( diff )
/system-state.html ( diff )
/tables.html ( diff )
/text-level-semantics.html ( diff )
/timers-and-user-prompts.html ( diff )
/urls-and-fetching.html ( diff )
/web-messaging.html ( diff )
/webappapis.html ( diff )
/webstorage.html ( diff )
/workers.html ( diff )
/worklets.html ( diff )
/xhtml.html ( diff )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

New indeterminate attribute for <input type=checkbox>

1 participant