You clearly know about this more than I do.
For legacy issues we cannot change the content-type: text.html but we
can change the <!DOCTYPE> in the scaffolding app.
As long as there are no major objections I say we should follow your
advice.
I look forward to your html patches. ;-)

Massimo

On Jul 3, 9:19 pm, Jonathan Lundell <jlund...@pobox.com> wrote:
> By way of background, web2py generates xhtml pages, with these  
> doctypes (I'm not clear on why one or the other is chosen; perhaps  
> someone could enlighten me):
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
> ">
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
> "
>
> The problem is, web2py's xhtml is not, by and large, valid. This ought  
> to cause a problem, because xhtml parsers aren't allowed to handle  
> invalid markup. We get away with it because essentially all servers  
> present our pages as html, not xhtml, and our browsers parse it as  
> html, which is more forgiving.
>
> (One of the better explanations of all this is: 
> <http://webkit.org/blog/2006/09/20/understanding-html-xml-and-xhtml/
>  >.)
>
> Here's an illustration. With a standards-compliant browser (I'm using  
> Safari 4.0.1 and Firefox 3.5 on OS X), have a look at these pages:
>
> http://www.web2py.com/examples/spreadsheethttp://lobitos.net/w2p/w2p.htmlhttp://lobitos.net/w2p/w2p.xhtml
>
> They're identical (I copied the first one, changing only some URLs to  
> be absolute instead of relative). You should see that your browser  
> won't display the third version.
>
> Why? Because the first two are served as "Content-Type: text/html",  
> while the third is served as "Content-Type: application/xhtml+xml".  
> This is how Apache handles .html and .xhtml files by default. Notice  
> that the browser pays attention to the Content-Type header and ignores  
> the DOCTYPE (the w3 validator looks at DOCTYPE, though). Notice also  
> that the browser is ignoring the "<meta http-equiv="content-type"  
> content="text/html; charset=utf-8" />" line; it really does believe  
> the http header: not the doctype, not the meta.
>
> So. Why use the XHTML DOCTYPE? The main reason that I can think of is  
> that the resulting document, if valid, has a DTD and can be parsed as  
> XML. Not by the browser, which is going to parse it as bad html, but  
> by someone else, maybe. But that reason only holds water if the  
> document is actually *valid* xhtml.
>
> (Another note: this is the spreadsheet application, but the same thing  
> would happen with many, perhaps most, web2py pages, certainly any with  
> <form action="">. You can try the same experiment with other pages.)
>
> What to do? In my view, there's a short-term answer and a long-term  
> answer. And they're both complicated by legacy compatibility issues,  
> which I'll take the liberty of ignoring here.
>
> In the short term, fix the output to be valid XHTML. This is easier if  
> you use transitional rather than strict.
>
> In the long term, move to HTML. Given that it looks like XHTML2 has  
> been abandoned, the future standard is going to be HTML5. Not very  
> soon, since browsers are only starting to support it, and the FSM only  
> knows when Microsoft will get around to it, but eventually, since  
> HTML5 has a lot of nifty features.
>
> Me, I've settled on HTML4 Transitional for anything I've got control  
> over, using XHTML only for a couple of pages that I need to parse as  
> XML.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to