On Jul 3, 2009, at 8:20 PM, mdipierro wrote: > > You clearly know about this more than I do.
I'm hoping there are people on this list who know more than either of us. > For legacy issues we cannot change the content-type: text.html but we > can change the <!DOCTYPE> in the scaffolding app. I ask only out of curiosity: who's relying on the content-type? (Are we talking about the meta tag here?) Another question: why do I see xhtml strict on the example page <http://www.web2py.com/examples/spreadsheet >, but xhtml transitional when I run web2py locally? > As long as there are no major objections I say we should follow your > advice. > I look forward to your html patches. ;-) I have the glimmerings of an idea.... > > 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 -~----------~----~----~----~------~----~------~--~---