[whatwg] Menus, fallback, and backwards compatibility: ideas wanted

Matthew Raymond mattraymond at earthlink.net
Tue Dec 13 14:29:50 PST 2005


Nathan Heagy wrote:
> While it is true that authors will want to style their menu buttons it's
> not true that every menu item would need a label. In that case nesting
> <menu> inside its label becomes quite ugly with a menu of menus only
> some of which have labels:
> 
> <menu>
> 	<menulabel>
> 		Foo
> 		<menu>
> 		...
> 		</menu>
> 	</menulabel>
> 	<menu>
> 	...
> 	</menu>
> 	<menulabel>
> 		Foo
> 		<menu>
> 		...
> 		</menu>
> 	</menulabel>
> </menu>

   First of all, my suggestion is that submenus always have an
associated <menulabel>. If the |type| is "popup" (or "context", as Ian
calls it), then the menu doesn't display unless activated by the
associated menu label element. Additionally, a |for| element can be used
to avoid nesting:

| <menu type="menubar">
|   <li>
|     <menulabel for="menu1">Foo</menulabel>
|     <menu id="menu1" type="popup">
|       ...
|     </menu>
|   </li>
|   <li>
|     <a href="frobozz.html">Frobozz</a>
|   </li>
|   <li>
|     <menulabel for="menu2">Bar</menulabel>
|     <menu id="menu2" type="popup">
|       ...
|     </menu>
|   </li>
| </menu>

   With this model, you can even pull the menus out nesting altogether:

| <menu type="menubar">
|   <li><menulabel for="menu1">Foo</menulabel></li>
|   <li><a href="frobozz.html">Frobozz</a></li>
|   <li><menulabel for="menu2">Bar</menulabel></li>
| </menu>
|
| <menu id="menu1" type="popup">
|   ...
| </menu>
|
| <menu id="menu2" type="popup">
|   ...
| </menu>

   Hmm. The name "context" as a menu |type| is more semantic, but less
accurate in non-context-menu cases, such as popup menus and submenus.
The name "popup" is more general, but more presentational.



More information about the whatwg mailing list