W3C home > Mailing lists > Public > ietf-http-wg@w3.org > October to December 2011

Re: Possible issue: Accept-language priority based on language order

From: Julian Reschke <julian.reschke@gmx.de>
Date: Sun, 27 Nov 2011 10:01:59 +0100
Message-ID: <4ED1FC87.5030301@gmx.de>
To: Harald Alvestrand <harald@alvestrand.no>
CC: ietf-http-wg@w3.org
On 2011-11-27 07:44, Harald Alvestrand wrote:
> ...
>> I just tried FF8/IE9/Chrome15/Opera11, and they all send q values.
>> (For Safari, I couldn't figure out how to get multiple languages into
>> the header).
> They are all over the map, it seems.
> Some Android versions, some Chrome versions, some MSIE Media Center
> edition, some Safari versions, some crawlers ...... it seems that these
> are the long tail of the browser market, and stuff that uses HTTP but
> isn't really browsers.
>
> Example:
>
> en-us,en Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; Valve Steam
> Client/1672; ) AppleWebKit/534.1 (KHTML, like Gecko) Chrome/6.0.444.0
> Safari/534.1
>
> That's likely not a Chrome or a Safari, but an embedded browser in Valve
> Steam.

Staying with the example: in all cases, this browser sent either no A_L 
header, or

   en-us, en

That really doesn't look like a sufficient reason to make a change.

> If practice out there is consistent with regard to this interpretation,
>>> I think it is good to document it, so that we might reduce the chance of
>>> future practice from diverging from current practice.
>>
>> I'm still unconvinced that there is a problem here:
>>
>> - we have no proof that the order is intentional and that it matters
>> in these cases
> We have code examples that pick the leftmost language at the server.
> We have no code examples that do anything else (so far).
>>
>> - there may be implementations written to what HTTP always said that
>> treat values with same q value (or missing q value) as having the same
>> preference, and a change to the spec would make those non-compliant
> Hm. The Apache 1.3 documentation:
> http://httpd.apache.org/docs/1.3/content-negotiation.html
> seems to indicate that Apache treats them like a set.
>
> The Apache 2.2 documentation:
>
> http://httpd.apache.org/docs/2.2/content-negotiation.html
> says "Select the variants with the best language match, using either the
> order of languages in the Accept-Language header (if present), or else
> the order of languages in the LanguagePriority directive (if present)."
>
> (this step is applied only if two or more variants have the same preference)
>
> So it seems that Apache 1.3 did not document the RFC 3282 behaviour, but
> Apache 2.2 documents that it behaves according to RFC 3282.

No. What it says is "or else the order of languages in the 
LanguagePriority directive (if present)." - that's the order in the 
httpd config entry, not the header field.

>> - changing Accept-Language would make it inconsistent with the other
>> Accept header fields (or do we want to change them all?)
> What other fields do we have?
> The four Accept headers are Accept, Accept-Charset, Accept-Encoding and
> Accept-Language.
>>
>> We *could* add a note that the interpretation is different here to the
>> MIME variant, and point out that some senders may rely on it (if we
>> really believe that).
> I don't believe this header is in significant use outside HTTP. The
> writeup in RFC 3282 was intended specifically to capture HTTP usage. If
> you really have evidence that common HTTP usage is not consistent with
> RFC 3282, an errata should be filed against RFC 3282.

Hm, no. So far, the header type registry refers to RFC 2616 as normative 
specification for Accept-Language. It only mentions RFC 3283 for mail.

> I have so far seen no such evidence.
>
>                       Harald

What I see is that all major desktop browsers send q values. Sure, there 
are many non-browser UAs, but so far we don't have any statistics that 
could help making a decision.

Best regards, Julian
Received on Sunday, 27 November 2011 09:02:36 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 06:51:50 GMT