Looking at the webkit tests, I"m concerned that some of them may conflict with the spec (as I understand it), and this presumably reflects an issue with webkit's implementation.
Specifically, in https://github.com/WebKit/WebKit/blob/main/LayoutTests/fast/selectors/lang-extended-filtering.html there are cases like shouldBe('document.querySelectorAll(":lang(foöÉbÁr)").length', '1'); which appear to expect a non-ASCII :lang() code to match. This seems unexpected to me, given that the Selectors 4 spec refers to BCP47 > An element’s content language <https://w3c.github.io/csswg-drafts/css-text-4/#content-language> matches a language range <https://w3c.github.io/csswg-drafts/selectors/#language-range> if, when represented in BCP 47 syntax [BCP47] <https://w3c.github.io/csswg-drafts/selectors/#biblio-bcp47>, it matches that language range in an extended filtering operation per [RFC4647] <https://w3c.github.io/csswg-drafts/selectors/#biblio-rfc4647> Matching of Language Tags(section 3.3.2). and BCP47 specifically mentions that > the language tags described in this document are sequences of characters from the US-ASCII [ISO646 <https://www.rfc-editor.org/rfc/rfc5646#ref-ISO646>] repertoire >From this, I would conclude that a string containing non-ASCII characters cannot be a "language tag" per BCP47 at all, and therefore cannot possibly match. On Thursday, 30 March 2023 at 07:58:10 UTC+1 Roger Zanoni wrote: > Hi Yoav, thanks for checking, I will answer inline > > On Friday, March 17, 2023 at 10:59:14 AM UTC+1 yoav...@chromium.org wrote: > > On Thu, Mar 16, 2023 at 11:09 AM Roger Zanoni <rza...@igalia.com> wrote: > > Contact emails rza...@igalia.com > > Explainer https://github.com/rogerzanoni/docs/tree/main/lang-level-4 > > Specification https://www.w3.org/TR/selectors-4/#the-lang-pseudo > > Summary > > The :lang CSS pseudo-class currently matches elements based on level 3 > specs logic, which describes a prefix-matching rule to match language > values. The level 4 spec changes this matching logic, supporting > argument-list and language range matching (according to the specs of the > extended filtering operation from RFC4647 - Matching of language tags - > section 3.3.2, and the simple priority list matching described on section > 2.3) > > > Blink component Blink>CSS > <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS> > > Search tags css <https://chromestatus.com/features#tags:css>, lang > <https://chromestatus.com/features#tags:lang>, pseudo > <https://chromestatus.com/features#tags:pseudo> > > TAG review Just extends functionality of the existing :lang selector. > > TAG review status Not applicable > > Risks > > > Interoperability and Compatibility > > This change mostly extends :lang functionality and don't change existing > behavior, except for adding implicit wildcard matching, which breaks one of > the existing level 3 tests: > https://wpt.fyi/results/css/selectors/i18n/css3-selectors-lang-005.html > > > *Gecko*: No signal (https://bugzilla.mozilla.org/show_bug.cgi?id=1121792) > > > Can you file for a Mozilla position? https://bit.ly/blink-signals > > > Filed: https://github.com/mozilla/standards-positions/issues/735 > > > > > > *WebKit*: Shipped/Shipping ( > https://webkit.org/status/#feature-css-selector-:lang) > > *Web developers*: No signals > > *Other signals*: CSSWG consensus to ship documented in > https://www.w3.org/TR/css-2017/#experimental (CSSWG includes reps from > all major browser vendors) > > WebView application risks > > Does this intent deprecate or change behavior of existing APIs, such that > it has potentially high risk for Android WebView-based applications? > > No. > > > Debuggability > > Automatically supported, same as other pseudo-elements. > > > Will this feature be supported on all six Blink platforms (Windows, Mac, > Linux, Chrome OS, Android, and Android WebView)? Yes > > Is this feature fully tested by web-platform-tests > <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> > ? No > > > Why not? How do we know that WebKit actually supports this if it's not > tested? > > > > It's tested by Webkit, but not by wpt tests, it's tested by > https://github.com/WebKit/WebKit/blob/main/LayoutTests/fast/selectors/lang-extended-filtering.html > > and > https://github.com/WebKit/WebKit/blob/main/LayoutTests/fast/selectors/lang-extended-filtering-with-string-arguments.html > > I'm still working on the wpt tests to make them cover as much as it's > tested there, I will update my CL with more tests. > > > > > > Flag name > > Requires code in //chrome? False > > Tracking bug https://bugs.chromium.org/p/chromium/issues/detail?id=1281157 > > Estimated milestones > > No milestones specified > > > Anticipated spec changes > > Open questions about a feature may be a source of future web compat or > interop issues. Please list open issues (e.g. links to known github issues > in the project for the feature specification) whose resolution may > introduce web compat/interop risk (e.g., changing to naming or structure of > the API in a non-backward-compatible way). > > > Link to entry on the Chrome Platform Status > https://chromestatus.com/feature/5071058079055872 > > Links to previous Intent discussions Intent to prototype: > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/dd1cdecb-3bd5-cf6c-bf5c-120735d36ee6%40igalia.com > > > This intent message was generated by Chrome Platform Status > <https://chromestatus.com/>. > > -- > > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to blink-dev+...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/29b5144d-ba62-bfc9-677c-a9a7e72c09f9%40igalia.com > > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/29b5144d-ba62-bfc9-677c-a9a7e72c09f9%40igalia.com?utm_medium=email&utm_source=footer> > . > > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7e68bcf5-ba1a-4ffe-b34d-59804826dba1n%40chromium.org.