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.

Reply via email to