Skip to content

Commit

Permalink
Implement updated HTML language inheritance rules.
Browse files Browse the repository at this point in the history
This makes two changes to match the HTML spec:
* only honor the unnamespaced lang attribute on HTML and SVG elements
* have <slot> elements in a shadow tree inherit language from the shadow
  host

Note that an update to the HTML specification regarding the SVG elements
case is proposed in whatwg/html#9882, but
https://www.w3.org/TR/SVG/struct.html#LangAttribute already defines it.

These changes match the related changes to the dir attribute, but use a
separate feature flag as a killswitch, since they are separable.

Fixed: 1490711
Bug: 576815
Change-Id: I6462181e6d4433aa1dcc9a2c42e5c12754830e52
  • Loading branch information
dbaron authored and chromium-wpt-export-bot committed Oct 25, 2023
1 parent ece4312 commit 516c893
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions html/dom/elements/global-attributes/lang-attribute.window.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
test(() => {
const container = document.createElement("div");
document.body.append(container);
container.setAttribute("lang", "en-CA");

const child = document.createElementNS("div", "test");
container.append(child);
child.setAttribute("lang", "en-NZ");

assert_true(container.matches(":lang(en-CA)"), "container matches en-CA");
assert_true(child.matches(":lang(en-CA)"), "child matches en-CA");
assert_false(container.matches(":lang(en-NZ)"), "container does not match en-NZ");
assert_false(child.matches(":lang(en-NZ)"), "child does not match en-NZ");

container.remove();
}, "unnamespaced lang attribute only works on elements in the HTML namespace");

0 comments on commit 516c893

Please sign in to comment.