This is all explained here: http://www.wait-till-i.com/index.php?p=327 but anyways...
I have often been told that pure CSS is a good idea as javascript is something that can be turned off - is this true?
Yes, JavaScript can be turned off. However, the flipside of that is that you can test if it is enabled or not - you can even test if the user hit a key or clicked a mouse to activate the current link, all things you cannot do in CSS. In CSS you expect the browser to support all functionality you create - with JavaScript you can test for it and only apply it when it is available. If the browser does not support it you start hacking. This is why a lot of CSS only menus (not TJK's) add extra invalid markup for MSIE 6 to behave. In essence, you sacrifice clean, quick loading HTML to make a technology work that is supposed to be lightweight and easy.
I am very much in the camp of pushing envelopes etc - but in the 'page' - at the end of the day, maybe navigation is the one area where you need to stick to what works best across all scenarios.
Navigation is a very important part of a site, you can get people with a good page, you keep them with a sturdy and easy to grasp navigation.
I think the most important phrase for this kind of thing is 'graceful degradation'. I personally think you should have a menu that looks exactly as you want it with all bells and whistles - on the perfect platform say a std FF browser. Then it should be capable of degrading as each bell and whistle is removed. As part of this process I guess trade-offs are made and that is the beauty of every client being different. Where one may leave off a bell to help out a particular group of users ... another may ask for a bag of whistles and stuff 'em!
I'd like to tell the council that I am not paying for not getting any service, yet I have to. Every shop owner would like people to not complain but just come, buy and leave, but that never happens either. You don't build web sites for yourself, you build them for people to come to them and either buy stuff or tell you how great you are. If your attitude is that you decide what people are allowed to talk to you (or which bells and whistles are good for them), you shouldn't wonder when not many come. This is normally the step when people start thinking about search engine optimization, cause surely this is why nobody hangs around or not many people comt to the site. Graceful degredation is always reacting. You build something shiny and then take things off, fix them, change them and so on. You look backward. Instead, we should be planning for the future, not the past and that is called Progressive Enhancement. The idea is simple: You create a web site with a navigation that is easy to grasp and has all the necessary elements in it to navigate around the site. This does not mean you add all levels and allow the user to jump to every page in the site with the menu - this is what sitemaps are for. If you ever had to tab through 50 links you know it is not helping but simply annoying. Also consider mobile phones and PDAs as potential user agents. You make sure this menu works with no images, no JavaScript and no CSS available. Then you add CSS to make it look better. Then you take JavaScript to make it behave differently - maybe add an extra class to the main navigation element when JS is available to apply a different style. You use JavaScript after testing that it is available and apply all the behaviour with it. To ensure ease of maintenance, you don't put any look and feel in the JavaScript, but you apply classes dynamically and keep all the "pretty" look in CSS.
So, I am quite clear on what you DON'T like - but what about these great combination menus with CSS and javascript? Can you point us to some of your work? I am not really interested in key tab navigation right now -
And this is where you miss out. A dynamic menu has to be keyboard enabled, not only for the sake of accessibility, but also for plain usability. I don't know about you, but I am using keyboard predominantly to navigate around my operating system. If someone offers me a menu that looks like it belongs in the browser toolbar or in a rich user interface app, I do expect it to allow me to navigate around different levels with cursor keys. Pushing the envelope does not stop with doing things the same way we've done them when browsers were awful. I love reading RSS feeds with Google Reader and navigate them with my cursor keys; I also think it is very convenient to highlight all my mails in Yahoo Mail with ctrl+a and mark them as read with another keystroke. Do you prefer clicking checkboxes?
I'd just like to see: 1. How good these 'super-valid' menus can look. 2. What methods are used to achieve them and how they cope with the 'turning off' idea I have mentioned above.
As to full fledged great examples of dynamic menus: http://developer.yahoo.com/yui/menu/ http://developer.yahoo.com/yui/examples/menu/ http://www.udm4.com/ Both have been tested with help of disabled people using assistive technology. I have a non pretty example that does show what I mean in my book: http://beginningjavascript.com/Chapter8/navigation/index.php This one takes an even more radical approach: It allows the user to choose between a dynamic and a "just the necessary parts" menu. You could turn that around and use the dynamic bit by default and offer the user an option to turn it off. Granted, an extra level of complexity, but at least I can expect the user to know what she wants rather than assuming what she needs. More on keyboard navigation: http://developer.mozilla.org/en/docs/Accessible_DHTML#Keyboard_navigation ******************************************************************* List Guidelines: http://webstandardsgroup.org/mail/guidelines.cfm Unsubscribe: http://webstandardsgroup.org/join/unsubscribe.cfm Help: [EMAIL PROTECTED] *******************************************************************
