On 4/1/25 5:00 PM, Jeffrey Yasskin wrote:

Have you proposed that a standards body adopt this into a working group of some sort? Especially since Safari is doing something similar, it seems like the WHATWG might be willing to adopt this into the Fetch standard.
I think it may be possible to standardize the "only send one language" aspect, but not the rest (until other vendors express support). But my take on https://www.rfc-editor.org/rfc/rfc9110.html#name-accept-language is that this is already covered. If approved to ship, we're happy to take on the work to move this to Fetch (I can also work on a PR if that's useful now).
I'm also somewhat concerned about the internationalization concerns expressed in https://github.com/explainers-by-googlers/reduce-accept-language/issues/10. I couldn't get `curl` to reproduce the content negotiation claimed in https://github.com/explainers-by-googlers/reduce-accept-language/issues/10#issuecomment-2093906527 (e.g. Wikipedia seems to react to navigator.language and not Accept-Language), but it'd be good to at least get all the Googlers on that thread to agree on the facts about website behavior.
I appreciate the concerns raised, but I don't share them. Our experiments (and Safari's behavior) show that this change is web-compatible. Solving for navigator.languages may be trickier, but that's why we've split it out from the proposal.

Jeffrey

On Tue, Apr 1, 2025 at 7:56 AM Victor Tan <victor...@chromium.org> wrote:


            Contact emails

    victor...@chromium.org <mailto:victor...@chromium.org>,
    miketa...@chromium.org <mailto:miketa...@chromium.org>


            Explainer

    https://github.com/explainers-by-googlers/reduce-accept-language
    <https://github.com/explainers-by-googlers/reduce-accept-language>


            TAG review


            To be filed


            Summary

    In order to reduce the amount of passively available entropy in
    HTTP requests, we want to reduce the amount of information the
    Accept-Language header exposes. Instead of sending every user's
    language preferences via Accept-Language, we propose to only send
    the user’s most preferred language after language negotiation in
    the Accept-Language header. For the HTTP Accept-Language header,
    we will potentially expand a base language based on the
    language-region pair (e.g., if the preferred language is “en-US”
    we will expand to “en-US, en;q=0.9”). To minimize compatibility
    risks, this intent only covers HTTP. We plan to reduce the related
    navigator.languages JS getters in the future.


    We would like to start rolling out in M136.


            Blink component

    Privacy>Fingerprinting
    
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Privacy%3EFingerprinting>

    Risks


            Interoperability and Compatibility

    The compatibility risk is relatively low for most users since
    we're planning to reduce the amount of information in the
    Accept-Language header, rather than remove the header or change
    value format in the header. Most existing Accept-Language
    detection code should continue to work. The 1% stable experiment
    from M128 to M132 inclusive showed that there is no interesting
    movement on crashes, latency metrics, and manually language
    translation metrics. Also, we didn’t receive compatibility bug
    reports. Our study of the top 10k sites provided by Tranco shows
    that few sites actually use the Accept-Language header. For
    subresources, we found no impact to CSS or images. For
    JavaScripts, there are only a few sites that have different locale
    bundles loaded when requesting with different Accept-Language.
    Only a few embedded iframes (~30 unique origins, ~2.6% of all
    unique subresource origins) have changed content based on a
    different requesting Accept-Language header.


    For the interoperability issues, it might create inconsistencies
    between browsers for sites using the Accept-Language header, since
    some provide a user's full Accept-Language list, while others only
    provide the user's primary language. Another signal is that the
    Chrome incognito model already reduces the Accept-Language header
    and JS interface navigator.languages to a single language, and
    Safari ships this same behavior.


    Gecko:Pending
    (https://github.com/mozilla/standards-positions/issues/1014
    <https://github.com/mozilla/standards-positions/issues/1014>)


    WebKit: Shipped
    (https://github.com/WebKit/standards-positions/issues/338
    <https://github.com/WebKit/standards-positions/issues/338>) Safari
    already reduced the Accept-Language to a single language in most
    cases.


    Web developers:No signals, but some concerns have been raised
    about the client-side language negotiation implications
    (https://github.com/explainers-by-googlers/reduce-accept-language/issues/10
    
<https://github.com/explainers-by-googlers/reduce-accept-language/issues/10>).
    However, for this launch, we intend to reduce only the
    Accept-Language HTTP header. Client-side language negotiation may
    not be impacted at this phase, since tools use navigator.languages
    for language negotiation. Additionally, most existing tools have a
    fallback language if they do not find a language they support.


            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?

    None


            Debuggability

    Both of these settings and the resulting network requests are
    visible in DevTools.


            Will this feature be supported on all six Blink platforms
            (Windows, Mac, Linux, Chrome OS, Android, and Android
            WebView)?

    No (All but WebView)


            Is this feature fully tested byweb-platform-tests
            
<https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>?

    No (We fully test in browser_tests, for WPT, we have tests for JS
    getter and it has limits to set different users’  language
    preference to cover all the test cases in the Accept-Language HTTP
    header regarding the language negotiation). But otherwise, the
    simple case is covered.


            Flag name on chrome://flags

    #reduce-accept-language-http


            Finch Flag name

    kReduceAcceptLanguageHTTP


            Tracking bug

    https://issues.chromium.org/issues/40218547
    <https://issues.chromium.org/issues/40218547>


            Launch bug

    https://launch.corp.google.com/launch/4317282
    <https://launch.corp.google.com/launch/4317282>


            Link to entry on the Chrome Platform Status

    https://chromestatus.com/feature/5188040623390720
    <https://chromestatus.com/feature/5188040623390720#details>
-- 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 visit
    
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJh4P7HisRSZYAgG99BpAR_Kjwxx26czQx05NqH-apXdSJo_3g%40mail.gmail.com
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJh4P7HisRSZYAgG99BpAR_Kjwxx26czQx05NqH-apXdSJo_3g%40mail.gmail.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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7c76519b-0336-4270-b44a-4f2a153ec22c%40chromium.org.

Reply via email to