Skip to content

chore(deps): bump soupsieve from 2.10 to 4.0 - #565

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/uv/soupsieve-4.0
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/uv/soupsieve-4.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 13, 2026

Copy link
Copy Markdown
Contributor

Bumps soupsieve from 2.10 to 4.0.

Release notes

Sourced from soupsieve's releases.

4.0

  • BREAK: The contents of an HTML template are no longer treated as part of the document. Selectors do not descend into a template, and elements inside one can't see beyond it, which also applies to pseudo-classes such as :lang(), :disabled, and :default. select and filter will still reach the contents of a template when they are called on the template itself, for example soup.template.select('p'). See the FAQ for more information.
  • BREAK: The contents of an iframe are no longer treated as a separate document, as they are not one in a browser. Elements in an iframe are normal children, so :root does not match them, and :default, :indeterminate, :checked, :dir(), :lang(), and :read-write treat them like any other element. Recent versions of html.parser, lxml, and html5lib all escape the contents of an iframe like a browser does, so this mostly affects XHTML, Python versions that still don't escape such content in their specific html.parser, and elements added to an iframe by hand. :-soup-contains() now also includes the escaped text in an iframe. See the FAQ for more information.
  • NEW: Update :disabled and :enabled to treat option and optgroup elements inside a disabled select as disabled, following a recent HTML specification update.
  • FIX: Fix the subsequent-sibling combinator and :has(~ ...) never matching top level elements of a fragment that has no root element, unless caching was disabled.
  • FIX: :indeterminate now treats a radio button group without a form as extending across the whole document instead of the top level element that contains it, and it no longer ignores radio buttons at the top level.
  • FIX: Fix :default to treat a button with a missing or invalid type, and an input with type="image", as submit buttons.
  • FIX: Fix :in-range and :out-of-range raising TypeError when the document contains an input without a type attribute.
  • FIX: :read-write (and :read-only) now treat contenteditable="plaintext-only" elements as editing hosts and match the editable elements inside an editing host, following the nearest contenteditable state.
  • FIX: :read-write (and :read-only) now ignore contenteditable on non-HTML elements, such as an SVG foreignObject, as the attribute only applies to HTML elements. Such elements inherit the state of their parent.
  • FIX: :checked now only matches the last radio button with a checked attribute in a radio button group, as in a browser, where a group is the radio buttons with the same name and form, including the form attribute. :default still matches all of them, and the contents of a template are unaffected as they are not connected.
  • FIX: :dir() and :defined no longer affect the rest of the selector list they are in. Previously, a selector list that used either of them could not have its combinators cross an iframe, ignored the specified namespaces, and matched nothing in XML, not even the parts that didn't use them. They still do not match in XML, but :not(:dir(ltr)) and :not(:defined) now do.
  • FIX: :default and :indeterminate now honor the form attribute, which can associate a submit button or radio button with a form it is not in, or leave it without a form. It is ignored in a template, as in the HTML specification. Submit buttons outside of a form can now be its default button.
  • FIX: :default, :checked, and :indeterminate now handle a form inside a form like a browser. In HTML, a browser ignores the nested form and takes its end tag for that of the parent, which matters for parsers that keep the nested form, such as html.parser. In XHTML and in a template, nested forms are real forms.
  • FIX: :checked now matches the option that a browser would select. Without multiple, that is only the last option with a selected attribute in a select, and if there are none and the select shows a single option, the first option that is not disabled. :default still only considers the selected attribute.
  • FIX: Fix [attribute!=value] excluding values that only start with the specified value, and in XML documents, type values that contain a newline.
  • FIX: Match the values of every attribute that the HTML specification lists as ASCII case insensitive (rel, method, lang, dir, ...) without ASCII case sensitivity on HTML elements in HTML documents, not just type. Non-HTML elements are matched case sensitively.
  • FIX: :dir() now matches non-HTML elements, such as SVG and MathML, by the direction they inherit from their

... (truncated)

Commits
  • ff1a5ce Cache ancestor matches in the descendant combinator (#351)
  • 144deae Update docs
  • cce8eb5 Fix iframe tests
  • fcfde02 Respect iframe boundary and ensure behavior matches browsers
  • f78ac28 Various spec fixes
  • d305d43 Generally fix template handling (#349)
  • cedc978 Respect namespaces provided by the parser when root is not HTML element (#348)
  • d0e5402 Various :dir fixes (#347)
  • b7bc7d7 Inherit the direction of non-HTML elements in :dir() (#346)
  • 33f9057 Allow spaces or T in datetime-local value
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [soupsieve](https://github.com/facelessuser/soupsieve) from 2.10 to 4.0.
- [Release notes](https://github.com/facelessuser/soupsieve/releases)
- [Commits](facelessuser/soupsieve@2.10...4.0)

---
updated-dependencies:
- dependency-name: soupsieve
  dependency-version: '4.0'
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies PR: Update/Remove a (dev/optional) dependencies python:uv Pull requests that update python:uv code labels Nov 13, 2026

This branch has not been deployed

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

Labels

dependencies PR: Update/Remove a (dev/optional) dependencies python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants