diff -r 91f579b7a1e1 -r fee7fb9832d8 web/request.py --- a/web/request.py Wed Jul 29 09:09:11 2009 +0200 +++ b/web/request.py Wed Jul 29 10:44:55 2009 +0200 @@ -26,6 +26,7 @@ from cubicweb.common.mail import header from cubicweb.common.uilib import remove_html_tags from cubicweb.utils import SizeConstrainedList, HTMLHead +from cubicweb.view import STRICT_DOCTYPE from cubicweb.web import (INTERNAL_FIELD_VALUE, LOGGER, NothingToEdit, RequestError, StatusResponse) @@ -80,7 +81,7 @@ # to create a relation with another) self.search_state = ('normal',) # tabindex generator - self.tabindexgen = count() + self.tabindexgen = count(1) self.next_tabindex = self.tabindexgen.next # page id, set by htmlheader template self.pageid = None @@ -699,6 +700,14 @@ return useragent and 'MSIE' in useragent def xhtml_browser(self): + """return True if the browser is considered as xhtml compatible. + + If the instance is configured to always return text/html and not + application/xhtml+xml, this method will always return False, even though + this is semantically different + """ + if self.vreg.config['force-html-content-type']: + return False useragent = self.useragent() # * MSIE/Konqueror does not support xml content-type # * Opera supports xhtml and handles namespaces properly but it breaks @@ -713,5 +722,11 @@ return 'application/xhtml+xml' return 'text/html' + def document_surrounding_div(self): + if self.xhtml_browser(): + return (u'\n' + STRICT_DOCTYPE + + u'