- From: Matthew Raymond <mattraymond@earthlink.net>
- Date: Tue, 05 Dec 2006 06:19:40 -0500
This is my current understanding of how menus are supposed to work in HTML5: | <menu type="popup"> | <!-- A menu item that degrades to non-visible on legacy user --> | <!-- agents. --> | <command label="Item Text"> | | <!-- A submenu who's label degrades into nothing on legacy user --> | <!-- agents. --> | <menu label="Item Text"></menu> | | <!-- A menu (with possible submenus) that degrades a select --> | <!-- control. --> | <select>[...]</select> <!-- Additional Markup Here. --> | | <!-- A menu item that degrades into a list item. --> | <li>Item Text</li> | | <!-- A menu item that serves as a link and degrades into a list --> | <!-- item with a hyperlink. --> | <li><a href="URL">Item Text</a></li> | | <!-- A submenu that degrades into a list item containing a list. --> | <li> | Item Text | <menu>[...]</menu> | </li> | | <!-- A submenu (with possible nesting) that degrades into a --> | <!-- list item containing a select control. --> | <li> | Item Text | <select>[...]</select> | </li> | | <!-- A separator that degrades into a list item with a --> | <!-- horizontal rule. --> | <li><hr></li> | | <!-- A separator that degrades into a horizontal rule. --> | <hr> | </menu> Any |label|-free <menu> elements that are immediate children of a <menu type="popup"> or <menu type="toolbar"> should be ignored. A menu within a menu shouldn't be used for anything but a submenu. If we want true command groups, we need a new element, perhaps named "cmdgroup" or something. (Is there a sufficient use case for non-hierarchical groups that produce separators? Or is <hr> sufficient? Note that <hr> degrades to a visible form on legacy user agents.) I'm not sure the spec says this or not, but any <menu> that is the descendant of a <menu type="popup"> or <menu type="toolbar"> element should be ignored if it has an explicit |type| attribute value of "list" or "toolbar". Toolbars and popups should only contain popup submenus, so anything that isn't <menu> (with no |type|) or <menu type="popup"> should be ignored. Is there a ways to set an <option> or <li> element as default item? I'll have to check the spec again, but I believe some features are specifically reserved for <command>...
Received on Tuesday, 5 December 2006 03:19:40 UTC