Re: Accessible Dynamic Menus

> Maybe I am missing something, list please correct me if I am wrong here...
> the answer is technically "no".
>
> 'Dynamic menus' that pop-up on rollover
> - require a mouse to roll over them
>   (there are a few exceptions that can be triggered using a key only in
> certain browsers)
> - require javascript to make a layer appear or hide


> DHTML menus are really neat for us dexterous, able-bodied types. However,
if
> you must comply with accessibility standards AND you want to use a
wiz-bang
> DHTML menu, then you must also have an alternate site navigation in the
HTML
> text or a noscript tag.

Or... start of with properly marked up HTML - like nested lists, which
display normally, then use javascript and CSS to convert that into a
drop-down menu - similar to those of http://gazingus.org/dhtml/?id=109 . I
think the important thing to remember with DHTML menus is to make sure
there's something usable and accessible when either Javascript or CSS or
mice (or any combination of them) are missing.

I've been giving this some thought for the past few weeks, and I'm slowly
convincing myself that it could be possible. Using onmouseover and
onmouseout for drop-downs does present a problem - without a mouse there's
definitely a problem. However, I've found that with the gazingus menus
above, pressing enter when a link is in focus also causes the drop down to
appear, so maybe onclick isn't restricted to just the mouse.

I have this idea - with a bit of javascript logic, present an
onmouseover/onmouseout type menu system to those user-agent configurations
that can deal with it, and revert to an onclick type system when there's no
onmouseover/onmouseout events being registered - and still after that, fall
back to a situation where the toplevel menu degrades to a list of links to
pages as a last resort. All three are usable, and with proper list and
anchor markup accessible.

The scheme I'm imagining (its just thoughts at the moment, I haven't
actually implemented it) is basically a set of boolean flags. When a
mouseover/out event is triggered first, then revert to a
onmouseover/onmouseout driven menu. If onclick is the first event triggered,
then revert to an onclick type menu (since I guess it would be difficult to
get an onclick event to trigger before an onmouseover when using a mouse,
unless there's a click-drag - in which case an onclick based menu might be a
better option for the visitor anyway).

I'm also toing-and-froing about including onfocus and onblur in there as a
possibility of creating a keyboard driven menu. (I noticed the gazingus
menus use accesskeys - quite a good solution if it works reliably).

There's also the option of having a clickable link that switches off the
drop-down menus, so leaving a simple list of links across the top - in a
horizontal menu scheme. All in all, I think the best first step has to be a
nested list of links representing the menu.


Mike.

Received on Wednesday, 28 May 2003 04:38:36 UTC