YADM - Yet another dynamic menu
YADM is an accessible DHTML dropdown/flyout/explorer solution with complete separation of CSS and Javascript
Dropdown navigations still seem to be cool and are part of almost every screen design these days. The fact that they cause a lot of accessibility and usability issues seems not to transpire, and clients keep asking for them. The amount of badly written obstrusive and bloated scripts is staggering. There are some very good ones though (Son of suckerfish, aqTree2, Gazingus), so why another one?
Why you might want to use YADM
YADM was created with the following ideas in mind:
- Javascript Independence - YADM enhances a nested list in the markup - and doesn't generate any extra markup.
- Mouse Independence - By applying the functionality when clicking and when hovering over the item keyboard users can also reach the nested menus - something that cannot be done in CSS-only solutions
- Easy restyling - The look is maintained exclusively in CSS, YADM applies different classes to the markup to achieve that.
- "Style on the fly" - You can define a style for the non-Javascript menu and one for the Javascript enhanced one in the same style sheet. Interactive elements get an own class indicating the user that this is not a simple link, but contains a hidden menu. Active elements get an own class.
- No script knowledge necessary - Changes in the markup (adding classes) change the behaviour, rather than you knowing how to change the Javascript.
- Unobtrusive Javascript - Only applies itself if all is working (right markup, DOM-enabled browser) and works fine with other scripts
- Browser independence - Although some browsers may behave oddly (Opera still has issues updating the screen, resulting in half-visible menus), the script does not sniff or check for any browser - just for objects.
News
08.09.2004 - YADM released and Mac testing and fixing help needed. I don't have access to a Mac, so if you are savvy of CSS and Javascript and use a Mac, please contribute by fixing some of the issues that might be showing up.