I would like to use HTML 4.01 Strict, and used a DOCTYPE of it in my
application template. But look like when a style sheet is included by a
helper function
<%= stylesheet_link_tag ‘style’ %>
the code produced is XHTML:
is there a way to ask Rails to use HTML instead of XHTML?
I would like to use HTML 4.01 Strict, and used a DOCTYPE of it in my
application template.
[…]
Why? XHTML is definitely the way to go these days.
coz IE doesn’t support XHTML. So while we use XHTML, we are actually
using something that the majority of the client doesn’t understand.
If I remember correctly, IE does support XHTML from version 6, if not
before, so long as you have the proper DOCTYPE declaration. I would
guess that quirksmpde.org would have more information.
All my webapps and static sites use XHTML, and they work fine in IE as
far as I know.
If I remember correctly, IE does support XHTML from version 6, if not
before, so long as you have the proper DOCTYPE declaration. I would
guess that quirksmpde.org would have more information.
I think on SitePoint and StackOverflow.com, they usually say XHTML is
not supported by IE 6, 7, 8.
Most web browsers have mature support[15] for all of the possible XHTML
media types.[16] The notable exception is Internet Explorer by
Microsoft; […] Microsoft developer Chris W. explained in 2005 that
IE7’s priorities were improved security and CSS support, and that proper
XHTML support would be difficult to graft onto IE’s
compatibility-oriented HTML parser.[19]
Not really; the DOCTYPE still tells the browser that it’s XHTML.
and we aim to output it
as XHTML anyway…
pragmatically, it will work… i just wonder why we don’t just output
what is really being accepted by most browsers.
Most browsers have no problem. IE is the exception, sort of.
Anyway, XHTML is a cleaner standard than HTML – since it’s 100%
well-formed XML, it’s easier to parse and more extensible. There is
absolutely no reason not to use XHTML for all your output. You are
creating a problem out of thin air.
Not really; the DOCTYPE still tells the browser that it’s XHTML.
except IE use it as HTML.
and we aim to output it
as XHTML anyway…
pragmatically, it will work… i just wonder why we don’t just output
what is really being accepted by most browsers.
Most browsers have no problem. IE is the exception, sort of.
Please note that MOST BROWSERS out there are IE. about 66%. So how do
you mean most browser has no problem when 66% of browsers have problem?
Anyway, XHTML is a cleaner standard than HTML – since it’s 100%
well-formed XML, it’s easier to parse and more extensible. There is
absolutely no reason not to use XHTML for all your output. You are
creating a problem out of thin air.
I hope you won’t accuse people of something. HTML is a standard. XHTML
is a standard. If some people want to use a particular standard, it is
not so bad as “creating a problem out of thin air”.
Yes it is. HTML is an obsolescent standard, basically simply a matter
of backwards compatibility at this point. XHTML is the way forward, for
reasons I’ve already explained. If you follow the procedure I have
recommended, XHTML does not even cause problems with IE. That is a
fact. So why make more work for yourself by not using it?
mainly, i feel weird using something that 66% of browsers don’t
understand… so if I use HTML in some part of my code, and Rails
produce XHTML, then the final result won’t be able to validate.
Not really; the DOCTYPE still tells the browser that it’s XHTML.
except IE use it as HTML.
Perhaps…but better browsers will understand it for what it is. In
other words, it degrades gracefully.
[…]
Most browsers have no problem. IE is the exception, sort of.
Please note that MOST BROWSERS out there are IE. about 66%. So how do
you mean most browser has no problem when 66% of browsers have problem?
I was counting distinct programs, not total number of client
installations.
Anyway, it’s extremely dangerous to rely on across-the-board statistics
like these. It’s well established that different sites can have wildly different browser usage figures.
Besides, IE’s market share is shrinking as more and more people
recognize it for the piece of crap it is.
[…]
I hope you won’t accuse people of something.
Huh?
HTML is a standard. XHTML
is a standard. If some people want to use a particular standard, it is
not so bad as “creating a problem out of thin air”.
Yes it is. HTML is an obsolescent standard, basically simply a matter
of backwards compatibility at this point. XHTML is the way forward, for
reasons I’ve already explained. If you follow the procedure I have
recommended, XHTML does not even cause problems with IE. That is a
fact. So why make more work for yourself by not using it?
Irrelevant. As I already explained, across-the-board statistics are
not useful here.
it is a fact that all browsers do understand XHTML served as I have outlined above – that is, the
way Rails does it by default!
so if i write
will IE close the div?
Self-closing container tags are basically the only risky XHTML syntax in
IE, as I understand it. I suggest you try this and see what you get.
If it turns out to be a problem, use
, which is valid HTML
and XHTML. I don’t think Rails’ helpers produce empty containers in any
case, so you’re safe.
Again: try it. If you have problems, then fix them. But most things
should Just Work, so don’t worry until something actually goes wrong.
mainly, i feel weird using something that 66% of browsers don’t
understand…
The idea that it won’t be understood is simply false. Leaving aside the
questionable accuracy of the 66% figure, it is a fact that all browsers do understand XHTML served as I have outlined above – that is, the
way Rails does it by default!
This is why I say you’re creating a problem out of thin air: the fact is
that Rails’ default settings work for IE with no problem whatsoever
and no extra effort on your part.
If you don’t believe me on this point, try it and see for yourself.
so if I use HTML in some part of my code, and Rails
produce XHTML, then the final result won’t be able to validate.
Whether it will validate depends entirely on the DOCTYPE declaration.
Wow, where to begin? Your references are very interesting, but as I
read them, it seems to me that their authors have leapt to conclusions
from a farrago of spurious “facts” and unwarranted assumptions.
It is very unfortunate, that RoR chose this path. Especially now,
when some may want to use HTML5.
HTML 5 supports at least some of the XML-style syntax, including things
like “ ”, so I wonder how much of a problem this would be in
practice.
I’ll try to write a detailed explanation of why your references really
don’t impress me, but for now let me just say that while they provide
some interesting information on the issues involved, I do not think that
they have sufficient credibility for their recommendations to be worth
following.
Wow, where to begin? Â Your references are very interesting, but as I
read them, it seems to me that their authors have leapt to conclusions
from a farrago of spurious “facts” and unwarranted assumptions.
You can begin by reading apropriate specifications and trying things
out. Then you will very well see how “unwarranted” those assumptions
are.
It is very unfortunate, that RoR chose this path. Especially now,
when some may want to use HTML5.
HTML 5 supports at least some of the XML-style syntax, including things
like “ ”, so I wonder how much of a problem this would be in
practice.
HTML5 supports two different modes of serialization. Once again
using XML brings nothing to the table if you use text/html.
I’ll try to write a detailed explanation of why your references really
don’t impress me, but for now let me just say that while they provide
some interesting information on the issues involved, I do not think that
they have sufficient credibility for their recommendations to be worth
following.
Well, even if names of Anne van Kesteren (Opera), Ian Hickson(Google,
author
and maintainer of Acid2 and Acid3 tests, editor of HTML5 spec),
Lachlan Hunt (Opera), Roger J. (prominent web standards advocate)
are not credible enough, you can always try for yourself and see.
I’ve done that five years ago: http://rimantas.com/bits/xhtml-test.php
It is trivial to test if DOCTYPE affects if page is processed with HTML
or
XHTML parser (it doesn’t) or is it only influenced by MIME type (it is).
Also it is not difficult to see that in XHTML mode CSS may be
interpreted
differently, Javascript is affected (just try to add line if (x<y) in
your
Javascript, do not escape it with CDATA and serve with
application/xhtml+xml.
You will see what I am talking about. Or try to wrap your JS code with
Not really; the DOCTYPE still tells the browser that it’s XHTML.
DOCTYPEs do not matter in this case. Browsers do switch
rendering modes depending on doctypes, but the only thing
that influences the choice of parser is MIME type [1]
Most browsers have no problem. Â IE is the exception, sort of.
All the browsers, IE or not, will treat XHTML document served as
text/html. And no, IE does not understand XHTML with
MIME type of text/xhtml+xml.
And yes, means completely different thing in
SGML and hence HTML. If browsers were treating this
correctly you’d see “>” scattered all over the “xhtml” documents.
Sure, no vendor will now risk to fix this.
By the way, Gecko 1.9 in source view shows “/” in red i.e.
as error if page uses xhtml syntax and is served with html
MIME type.
Anyway, XHTML is a cleaner standard than HTML – since it’s 100%
well-formed XML, it’s easier to parse and more extensible. Â There is
absolutely no reason not to use XHTML for all your output. Â You are
creating a problem out of thin air.
Except that all browser will parse your xhtml served as text/html with
their HTML parser, hence none of the above benefits will apply.
Semantically XHTML has no advantages over HTML 4—it is the
same spec reformulated in XML.
Serving with proper MIME type you will once again hit the problem
that IE does not support it. Also there are other issues, and sadly,
majority of XHTML users who chose it because “Zeldman told so”
are not aware about them [2,3,4].
It is very unfortunate, that RoR chose this path. Especially now,
when some may want to use HTML5.