Re: hreflang

Jukka K. Korpela wrote:
> "user agent must use this list as the field value of the accept-language 
> request header when requesting the resource using HTTP"
> http://www.w3.org/TR/xhtml2/mod-hyperAttributes.html#s_hyperAttributesmodule 
> 
> This is indeed new as compared to previous versions of HTML, and it 
> would be harmful if accepted and implemented.
> 
> It would mean overriding the user's preferences, forcing the author's 
> guess on them, and probably mostly because the author _did not 
> understand_ the issue at all but simply wrote what he regards as useful 
> metainformation.

If you don't want to override the user's preferences, don't use the 
attribute, it's as simple as that. If you want to supply an explicit 
link to a particular version, by whatever method you use, you are by 
definition trying to possibly override the user's accept-lang: headers, 
and this method gives you a way to do it in accordance with the existing 
standards.

What is the use of metainformation if it is wrong? As I demonstrated in 
an earlier post, if the metainformation is correct then there is no 
perceivable difference in the two definitions. But when the 
metainformation is incorrect the new definition performs markedly better.

>> When you want users to have the version in the languages they choose, 
>> you don't use hreflang:
>>
>>     <a href="report">The latest version</a>
> 
> Indeed.
> 
>> but if you want to supply an explicit link to a language version, you 
>> can include the attribute:
>>
>>     <a href="report" hreflang="nl">The report in Dutch</a>
> 
> This would imply that if the language of the linked document is changed, 
> the user gets an error message (Not Accepted). But that's actually a 
> minor issue. The approach uses an _attribute_ to refer to a specific 
> language version, instead of using a specific _URL_.
> 
> If the specific language version _has_ a URL, it should be used.

The HTTP spec does not guarantee that individual representations of a 
resource have their own URLs. It may be that servers do it that way, but 
there is no agreed standard on how to address particular representation 
*except* through HTTP. If you want to use another method then that is 
fine, and entirely your choice, but that is not a reason in itself to 
disallow other methods.

> If not, how is the user going to be able to bookmark it, for example? 
> Are browsers expected to secretly copy the hreflang attribute in the 
> bookmarking process and secretly use it instead of normal user preferences.

You should write to the authors of the HTTP specification if you want to 
address that issue. Bookmarking a URL has *never* guaranteed that you 
will get the same resource twice. In fact bookmarking is not 
standardised anywhere, so recording the media type, encoding and 
language are all possibilities.

>> I would call this the best of both worlds. It means, for instance, 
>> that someone whose preferred language is not Dutch, but who can 
>> nevertheless speak Dutch, can get to the Dutch version (for instance 
>> to check the translation).
> 
> That's certainly a good idea, or indispensable. And it has _always_ been 
> possible by using an explicit link to the specific version.

I'm sorry, but this might be allowed in some servers, but they don't do 
it in a consistent way, and it is not standardised anywhere. The HTTP 
spec does not guarantee that it is *always* possible. The *only* way 
that it is *always* possible is using HTTP headers.

Best wishes,

Steven Pemberton

Received on Monday, 6 February 2006 12:34:54 UTC