vict...@chromium.org, mike...@chromium.org
https://github.com/explainers-by-googlers/reduce-accept-language
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.
Risks
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)
WebKit: Shipped (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 ). 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.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None
Both of these settings and the resulting network requests are visible in DevTools.
No (All but WebView)
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.
#reduce-accept-language-http
kReduceAcceptLanguageHTTP
https://issues.chromium.org/issues/40218547
https://launch.corp.google.com/launch/4317282
--
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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJh4P7HisRSZYAgG99BpAR_Kjwxx26czQx05NqH-apXdSJo_3g%40mail.gmail.com.
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'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.
TAG reviewTo be filed
Jeffrey, Thanks for raising this concern. We understand that some popular multilingual sites, based on our study, do indeed use the full language list in the HTTP header. Your concerned use case, in other words, highlights a privacy issue that this feature intends to mitigate. These multilingual sites typically support major popular languages. However, for users whose primary language is less common and therefore might not be supported by those sites, but whose second or third languages are more widely used, exposing the full language list in the HTTP header creates significant passive fingerprinting. This means these individuals could be easily identified.
--
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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/35bf986c-e830-4265-8621-c1a24a70ce43n%40chromium.org.
We do intend to follow suit there once we learn we can ship this
and its compatible with the web. It seems nice to separate web
compat problems from app compat problems, if we can.
Also, thanks for the offer to help with the appcompat assessment
- let's connect off-list to discuss that.
Tier 1: High Importance India, South Africa, Singapore, Switzerland
Tier 2: Moderate Importance Canada, Belgium, Malaysia, Nigeria
I think we need to be careful about undercoverage bias and sampling bias while analysis the impact of this change
https://www.scribbr.com/research-bias/undercoverage-bias/
https://www.scribbr.com/research-bias/sampling-bias
On 4/9/25 3:51 PM, Frank Yung-Fong Tang wrote:
> Safari already reduced the Accept-Language to a single language in most cases.
If my understanding of the English is correct:
This mean, right now, in some cases, Safari does NOT reduced the Accept-Language to a single language, right?
Please read https://github.com/explainers-by-googlers/reduce-accept-language/issues/10#issuecomment-2093927039, the claim that "safari only contains one language" is incorrect when I check last May. Please correct me if Apple change that after May 2024.
Then., we should understand why Apple does NOT reduce to only one language for those cases?
In https://github.com/explainers-by-googlers/reduce-accept-language/issues/10#issuecomment-2098949098I listed the following regions which should have higher impact by this change:
Tier 1: High Importance India, South Africa, Singapore, Switzerland
Tier 2: Moderate Importance Canada, Belgium, Malaysia, NigeriaI think we need to be careful about undercoverage bias and sampling bias while analysis the impact of this change
https://www.scribbr.com/research-bias/undercoverage-bias/
https://www.scribbr.com/research-bias/sampling-bias
> HTTP-only
Does this mean you are not proposing to ship this to HTTPS?