On 29/03/11 05:52, Gabriel Hurley wrote: > Switching to the HTML5 doctype won't hurt IE6 rendering (having dealt > with this myself several times). To the best of my knowledge--from my > own tests and third-party sources--using the new input attributes also > doesn't hurt IE6. However, if we start delving deeper into HTML5 and > using the new HTML5 elements, etc. we will definitely hit problems very > quickly. Techniques for solving those problems are pretty readily > available these days, but I don't think we have any reason to go there > right now. > > All the same, I'd still rather give people the choice and ability to > change output rendering rather than simply making a unilateral change. > I'd love for our default to be the modern choice as long as it's an > easily changeable option!
I don't think we can talk about "output rendering", as if internally to Django we had an output agnostic document tree which we just have to render. The reality is that in Django we've got XHTML markup. I think that supporting multiple doctypes by rendering different output, depending on the choice of the developer putting the site together, is actually a bad idea - a bug not a feature. My reasons are: * every attempt I've seen to get this working in Django has been as ugly as sin, and incurs performance and API overhead. * in reality, re-usable apps are going to go for one doctype or another, thus fragmenting the app ecosystem. * For those targeting HTML5, you *still* have to choose your features very carefully in line with browser support, and for those targeting older browsers you still have to be careful to work around browser bugs. In short, I think it it neither realistic nor worthwhile to go for the multiple doctype approach. Instead, I think we should think about the ultimate goal, which is compatibility with old browsers. And to address that, we should take the same approach as HTML5, and the approach that we *have* to take even with the very newest browsers, which is to carefully select features that have good browser support, providing graceful degradation for those that don't - and do this from a *single* output. As Django is a framework and is used in many situations, we're going to be pretty conservative. I think we need to support IE6 for some time, which at least means everything that works now continues to work correctly, although I'd allow for any older browser to suffer degradation in user experience in new features, relative to newer browsers. For an example of the kind of thing I mean, a new feature in the admin might make use of spin boxes: http://diveintohtml5.org/examples/input-type-number-min-max-step.html We'd certainly have server-side validation, and ideally we'd have a javascript fallback, but I would be happy for the feature to go in even without the javascript fallback. But I think we should argue those things out on a case-by-case basis. > But hey, aren't we starting to stray into... ::gasp:: front-end > territory here?! Where's our Benevolent Designer For Life ;-) I for one would definitely like Idan's input here, I'm sure he has more experience than me! Luke -- If you can't answer a man's arguments, all is not lost; you can still call him vile names. (Elbert Hubbard) Luke Plant || http://lukeplant.me.uk/ -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.