[whatwg] [WA1] lang and xml:lang

Ian Hickson ian at hixie.ch
Sun Apr 17 06:16:43 PDT 2005

On Sun, 17 Apr 2005, Lachlan Hunt wrote:
> > > 
> > > # If both the xml:lang attribute and the lang attribute are set, user
> > > # agents must use the xml:lang attribute, and the lang attribute must be
> > > # ignored for the purposes of determining the element's language.
> > > 
> > > Is that the case for both HTML and XHTML documents?
> > 
> > Yes.
> So, if I have this HTML document
>   <!DOCTYPE ...>
>   <html lang="en" xml:lang="fr">
>   <title>HTML document</title>
>   <p>This is an HTML, not an XML, document.
> Considering that legacy HTML UAs won't know about the xml:lang 
> attribute, and will only use lang, are you saying that a conforming Web 
> Apps UA should treat the document as french?

No. The "xml:lang" attribute in that document is not the xml:lang 
attribute. It's the {null, "xml:lang"} attribute -- the attribute in the 
null namespace with the local name "xml:lang" -- whereas the xml:lang 
attribute, the one defined by XML, is the {xml, "lang"} attribute: the 
attribute in the XML namespace with the local name "lang".

See Namespaces in XML for more information.

> > > It would make more sense if, in the case of both being set, lang was 
> > > used for text/html documents and xml:lang for XML documents.
> > 
> > The only way you can set xml:lang in an HTML document is via the DOM
> Now I'm confused.  If that's the case, then wouldn't the above example 
> be treated as english [...]


> > (in HTML, there are no namespaces).
> Which is why xml:lang should be completely ignored, as an unknown 
> attribute, in HTML.

If there is a literal "xml:lang" attribute in an HTML document, it is 
ignored and has no effect on this conformance requirement. That, however, 
is not an xml:lang attribute.

Since this is clearly a source of confusion, I've added a paragraph to the 
Terminology section about this.

> I've seen people use lots of XML syntax in HTML documents, including 
> xmlns and xml:lang attributes even in one that had an explicit HTML4 
> DOCTYPE (though I can't remember where) and not just in MS Word 
> generated rubbish.  The point is authors do a lot of silly things, and I 
> thought UA behaviour needed to be well defined for as many use cases as 
> possible.

Absolutely. However none of the cases you mentioned result in the 
existence of a "lang" attribute in the XML namespace. They result in 
unknown attributes in the null namespace, which is very different.

> > > However, in the case of only one being set but for the wrong MIME 
> > > type (eg. xml:lang set for text/html document or lang for XML 
> > > document), for error recovery, should UAs be allowed to fallback on 
> > > it?
> > 
> > If xml:lang="" is set onin a text/html document, it'll be {html, 
> > 'xml:lang'}, not {xml, 'lang'} which is what xml:lang really is.

(Er, I should have said {null, 'xml:lang'}, not {html, 'xml:lang'}.)

> I don't understand how that answers the question.

I hope this e-mail clarifies it for you.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the whatwg mailing list