In an earlier post I pointed to Dave Shea's MOSe design proposal, which I'll summarize as "make it work in IE and then make it work better in Mozilla, Opera and Safari using advanced CSS that IE ignores." Today, after reading Andreas at WebGraphics I realized there's something that mildly bothers me about this approach.
Andreas outlines the design process as "1. design for IE6 and 2. tweak your design and add extra functionality for MOS."
I'd like to propose this variation: 1. design to the subset of the standards which works well in version 5 browsers and newer. 2. tweak your design to make it more usable for people with more capable (MOS) browsers.
There are still a lot of IE 5 browsers out there and 6 doesn't seem to me to be sufficiently more advanced in standards support to warrant making it the new baseline. Maybe the part about designing to the spec rather than the browser is just semantics but I think it's probably important nonetheless, that is, if designing to a spec rather than to a browser is still an ultimate goal. Browsers aren't there yet but they're getting a lot closer and we should take advantage of that. Designing to a subset of the spec and then carefully extending seems like the best possible approach.
For a system like this to work well, that spec subset needs to be very clear and very visible. If it hasn't been done already, then we really need, for example, a CSS 2 specification document which covers just the subset of CSS 2 that works essentially the same modern IE and MOS browsers. We'd need the same for HTML, DOM, the rest of CSS, etc. Does something this already exist?
I'm fairly new to site design and I'm very guilty of designing for one particular browser and then tweaking to try to make it look right in the others. I never intend to do this professionally and I don't even intend to get very good at it, but as I get more familiar with the w3c specifications I increasingly want to be able to design and implement my site with just that spec (or some subset of it) in hand rather than a bunch of browsers reload buttons.