Latest TweetsGreat post about the latest power grab: www.eff.org/deeplinks/2018/09/…
Perishable Press

What is the Difference Between XHTML 1.0 Strict and XHTML 1.1?

As some of you (e.g., Louis) may have noticed during the recent site redesign, I decided to switch the default doctype from XHTML 1.0 Strict to XHTML 1.1. Just in case you were wondering, XHTML 1.1 is different than XHTML 1.0 in three important ways1:

  1. On every element, the lang attribute has been removed in favor of the xml:lang attribute
  2. On the a and map elements, the name attribute has been removed in favor of the id attribute
  3. The “ruby” collection of elements has been added

Beyond these three differences, XHTML 1.1 is identical to XHTML 1.0. Personally, I chose to markup my current design with XHTML 1.1 because of its advancement of the web-standards paradigm: complete separation of structure, behavior, and presentation.

Footnotes

Jeff Starr
About the Author Jeff Starr = Fullstack Developer. Book Author. Teacher. Human Being.
Archives
7 responses
  1. That’s courageous to go with XHTML 1.1, but as it’s very close to XML, you have to serve it with the proper content-type. A quick look in Firebug shows that your are serving this page in text/html.

    I’m sure you are the kind of person who only refers to W3C texts – and I agree that it’s the more trustable way – so I give you this link as a reference :

    http://www.w3.org/TR/xhtml-media-types/xhtml-media-types.html#summary

    Also, I see that you are using the xml declaration at the very top of your source code. Once again, very brave, as IE goes quirks mode then. Though, the page I’ve linked previously explains that :

    Therefore, while it is STRONGLY RECOMMENDED to specify an explicit charset parameter through a higher-level protocol, authors SHOULD include the XML declaration (e.g. ). Note that a meta http-equiv statement will not be recognized by XML processors, and authors SHOULD NOT include such a statement in an XHTML document served as ‘application/xml’ (and ‘application/xhtml+xml’ as well for that matter).

    I hope I started a reflexion on the relevance of going XHTML 1.1. I mean, 1.1 is so close to XML, that you may just want to wait for XML democratization.

  2. Jeff Starr

    You raise some good points, Louis, especially about serving XHTML 1.1 as text/html. Unfortunately, Internet Explorer does not support XML as a valid content type. If I were to ignore this fact, a considerable percentage of my visitors (those using IE) would not see anything but a blank white screen (or worse) when visiting my site. Trust me, I would love to serve these pages as per the W3C recommendations, however, I find it necessary to compromise because of our old friend, IE.

    As for the XML declaration throwing IE into quirks mode, I am well aware of this as well, and have spent considerable time testing to ensure that the various versions of IE deliver my content with reasonably consistent design fidelity. I suppose this article is not so much intended to persuade anyone to switch to XHTML 1.1 (it definitely involves its own set of issues) as much as it is meant to point out the (relative lack of) differences between the two content types.

  3. I understand, but it makes me feel like you want to “do it right”, and that you do too much. If you do not serve XML, what is the point of starting with a xml declaration ?

    W3C recommands two behaviors :

    serving XHTML 1.0 strict as text/html content, to ensure that your pages are read by IE browsers;
    serving XHTML 1.1 as application/xml content – wich break if there is any mistake in the code (break = blank page) – to come closer to XML, and be “because of its advancement of the web-standards paradigm: complete separation of structure, behavior, and presentation.” ;)

    My point is that, as you want to serve content for iE, you should use XHTML 1.0 strict, with no xml declaration, and in html/text.

  4. Jeff Starr

    Sure, I get your point; in fact, I have been contemplating working with HTML for my next redesign. I really like HTML, and looking forward to some of the new features of HTML 5, adopting HTML now seems like a good idea. Nonetheless, for the time being, I feel that serving my pages as text/html in order to accommodate IE is a livable compromise in order to enjoy working with an otherwise consistent XHMTL 1.1 content type. In any case, I do like XHTML 1.0 and continue to use it on many sites.

  5. I’m using XHTML 1.1 and with a little influence of an outside language like PHP you can serve IE its content.

    Perhaps is not really a fix, its more less of a workaround.
    But our friend IE may someday… be compatible with the world instead of being compatible with their own rules.

    More information can be found at this website: http://juicystudio.com/article/content-negotiation.php

  6. Jeff Starr

    Thanks for the heads up on this technique, Themis. Interestingly enough, another reader recently sent a link to the exact same article. Perhaps it’s time to finally check it out! In the past, I have tried to implement various types of content negotiation, but so far have been unable to achieve the desired result. After digesting the article, I will experiment further and hopefully devise a suitable solution. If/when I find success, I will definitely share it with the community.

  7. Louis says “(if) you want to serve content for iE, you should use XHTML 1.0 strict, with no xml declaration, and in html/text.”

    Of course you could do that, and many do, but I’d suggest 1.1 without the xml declaration is actually closer to the spirit of web standards. Then, one day, when IE is either fixed or dead, just add in the xml declaration to the headers of your sites, and voila. In the meantime, serving up as text/html will have no drawbacks, and you have the added benefit of having the ruby elements at your fingertips. People get way too obsessed about serving XHTML 1.1 as application/xml – the web isn’t ready for that yet, but that’s no excuse not to move forward where you can.

[ Comments are closed for this post ]