I am trying to learn lately pure CSS, tabless layout. Although I don't suggest we do that on the toolkit. Doing CSS makes things cleaner. I would suggest that you look at how http://style.tigris.org did it. The style project covers NS4 compatibility. That means they use some table (not too much) use for layout.
Based from my newbie experience of using pure CSS. What I can say is that:
- Includes and master are better and cleaner.
- I tried experimenting in making a pure CSS form template. You will be surprised how clean the code gets. A lot of "if" tags are removed. It basically becomes a loop of elements only. I will show the pure CSS layout on the 2nd bcms ui I am making.
- A lot of unlearning needs to be done, for those used to use tables for layout.
Anyway I think we are still far off from pure CSS layout. But I would suggest a CSS heavy driven toolkit, that just degrades gracefully on older browser. This will make:
- the adp/html code cleaner
- easier to customize on new browsers
We should aim only graceful degradation not full compatibility for older browsers. Because if the developer needs full compatibility, its easier to start from a clean adp/html code rather than removing cruff around.
4.7 will need to have some tables. Although in my opinion full compability must not be the target. But rather just graceful degradation.
If you check this on style.tigris.org
http://style.tigris.org/nonav/docs/sampler.html (this is NS 4 compat, but with not too messy tables used)
http://style.tigris.org/nonav/docs/sampler_inst.html (Using the same exact html and just changing the css you get this)
If we strive for full compatibility with NS 4 then we can throw away any real progress. We just support it but not full compatibility. As in same exact look on NS 4 and NS 7. The target must be lower. Like:
- same layout
- pages are still functional
Aside from that I think we should not target anything else. Using simpler html targeted for NS 7 or IE 6 is easier to add compatibility stuff for NS 4. The other way of making NS 4 full compat and removing stuff for newer browser is harder. Well atleast this is my opinion and based from my experience.
That being said, it seems there is an increasing sentiment to screw NS4.7 support throughout the web dev world, particularly in the OACS community. If, a Jun says, there's a way to provide partial support for NS4.7 but no longer go out of our way, sounds good to me.
Also, isn't 95%+ of the net using IE5+?
Most don't like and won't use browser sniffing. However, I think it should be a standard feature of openACS, if openACS starts to use standard CSS. There is no CSS that will render the same result in all browsers. Browser sniffing should be a flexibility feature of openACS. Some may want perfect layout support for netscape because we rely on AOLserver for example...
What do others think?
How do the CSS class definitions used for .LRN meet WAI? Or, more aptly, do they fail gracefully, such as with NN4.7 or lynx?
Also, I think that trying to move toward fulfilling the WAI Guidelines is a good thing. I've got a client right now that is asking for this (it's a guide dog school) and it's going to mean some modifications to OpenACS itself to achieve.
To put a little bit more gas into this fire, some stats on current "brokeness" of OpenACS w.r.t. web standards:
These counts may not be too accurate, but I am sure they are pretty close.
Multi-column CSS layouts can be built that will render very simply in older browsers, by using various css hiding tricks to provide a basic stylesheet for the older browsers, which is then overidden by an advanced stylesheet for those browsers that support it.