From 475ed9ae733b72b2cd0359dd5a03e04b50361d48 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Sat, 19 Sep 2026 09:47:42 +0800 Subject: [PATCH] webapi: remove "en" lang fallback The "en" css fallback on document. I tested a number of pages, and pages with no lang attribute return null on a `:lang('en')` query. --- src/browser/tests/element/pseudo_classes.html | 30 +++++++++++++++++++ src/browser/webapi/selector/List.zig | 8 +---- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/browser/tests/element/pseudo_classes.html b/src/browser/tests/element/pseudo_classes.html index 355d2ee71..36b1c6cc6 100644 --- a/src/browser/tests/element/pseudo_classes.html +++ b/src/browser/tests/element/pseudo_classes.html @@ -99,3 +99,33 @@ testing.expectEqual('escaped', escaped.id); } + + diff --git a/src/browser/webapi/selector/List.zig b/src/browser/webapi/selector/List.zig index ace41d4f0..5614c1e26 100644 --- a/src/browser/webapi/selector/List.zig +++ b/src/browser/webapi/selector/List.zig @@ -659,10 +659,7 @@ fn matchesPseudoClass(el: *Node.Element, pseudo: Selector.PseudoClass, scope: *N // Functional .lang => |expected| { if (expected.len == 0) return false; - // The element's language is the nearest ancestor-or-self lang - // attribute. Elements in a document with no declared language - // fall back to the UA default (en); detached subtrees have no - // language at all. + // The element's language is the nearest ancestor-or-self lang attribute. const lang = blk: { var current: ?*Node = node; while (current) |cur| : (current = cur.parentNode()) { @@ -672,9 +669,6 @@ fn matchesPseudoClass(el: *Node.Element, pseudo: Selector.PseudoClass, scope: *N break :blk value; } }, - .document => { - break :blk "en"; - }, else => {}, } }