- From: Becky Gibson <Becky_Gibson@notesdev.ibm.com>
- Date: Mon, 26 Feb 2007 14:38:42 -0500
- To: wai-xtech@w3.org
In early February I proposed menu behavior and asked a few questions and got some feedback [1]. I am still struggling with menu implementation so here is are some additional questions. Menus are used a bit differently on the Web as they generally provide navigation rather than action on some object. There are sites which nest these navigation type menus. Consider www.fidelity.com - this Site has what appear to be two nested horizontal menu bars. On the Fidelity site in the tab order after "contact us" is a set of links: Accounts & Trade, Research, Retirement & Guidance, Investment Products, Your Profile, Customer Service. These are visually styles somewhat like tab panels but when you focus on one of these links the main content of the page does not update. Instead, an additional horizontal list of item appears below. When I focus or click on Accounts & Trade, a list appears below it with links labeled, Portfolio, Account Positions, Trade, Transfer Money/Shares, Billpay, Update Accounts/Features, Statements, Full View. Likewise, each of the other top level items also have an associated menu. I can't find a way to get focus from Accounts & Trade or the other top level menus (except for the last) into the menu associated with it. I am struggling as to how to best present this to the user. I believe these are nested horizontal menus. But, there is no way to distinguish between a horizontal and vertical menu - there is no accessibility api that makes that distinction. Generally menubars are assumed to be horizontal and menus are assumed to be vertical. Thus, when you are navigating a menu bar, the left and right arrow keys are used and up or down arrow opens any associated submenu. In a menu, the up and down arrow keys traverse the menu items and the right or left arrow key opens any associated submenu. The problem is that most operating system menubars have a fairly complicated use pattern that I documented in my previous email. The behavior that I am referring to is that once a submenu has been opened in a menubar there is no way to close it. When there are open submenus, pressing the left or right arrow key may eventually lead to the submenu of the next menubar item being opened. This seems like overkill for the way menus are used on the Web and I would like to explore alternative behavior. While I think it is important to maintain a parity of behaviors on the Web and the Operating Systems for ease of use, I'd like feedback on the following proposal. Basically I would like menubar and menu to work the same except one is horizontal and the other is vertical and the key usage follows the orientation. This description is similar to the one proposed previously with some of the menu bar behavior removed. It also allows nesting of menubars. -First item in menu bar should be in the tab order (tabindex=0). -When a menu bar item has focus and no menu is open, pressing left or right arrow will cycle focus to the other menu bar items. -When a menu bar item has focus, pressing enter should open the menu and place focus on the first menu item in the opened menu or child menu bar -When a menu bar item has focus, pressing the up or down arrow should open the menu and place focus on the first menu item in the opened menu or child menubar. -With focus on an menu item in an open menu, pressing up or down arrow should cycle focus through the items in that menu. -When focus is on a menu item that has a submenu, pressing enter should open the submenu and put focus on the first submenu item. -Pressing escape with focus on an open menu item should close the open menu or submenu and return focus to the parent menu item -With focus on an menu item, pressing enter should invoke that menu action (which may be to open a submenu). -When a menu item has focus and that item has a submenu, pressing right arrow should open the submenu for that item and place focus on the first item in the opened submenu -With focus on a sub menu item, up or down arrows should cycle through the submenu items (behaves the same as open menu) -With focus on a sub menu item, pressing left arrow will close the submenu and return focus to the parent menu item -Disabled menu items receive focus but have no action when enter or left/right arrow is pressed. -Tabbing out of the menu component will close any open menus. -With focus on a menu item and a sub menu opened via mouse behavior, pressing down arrow will move focus to the first item in the sub menu. -With focus on a menu item and a sub menu opened via mouse behavior,pressing up arrow will move focus to the last item in the sub menu. -With focus on a submenu item, the user must use arrows or the escape key to progressively close submenus and move up to the parent item(s). Mouse Behavior -Mouse over on a menu bar item focuses the menu bar item (this is different from the previous proposal). -Clicking on a menu bar item opens the menu but leaves focus on the menu bar item. -Clicking on a menu bar item with an open menu will close the menu and set focus to the menu bar item -With focus on a menu bar item with an open menu, mouse over an adjacent menu bar item will set focus to that menu bar item -Mouse over an menu item sets focus to that item -Mouse over a menu item which has a submenu will open the submenu. Focus remains on the parent menu item. Timing for opening the submenu needs to be determined. To be more consistent with keyboard operation we should consider requiring the user to click on the menu item to open the submenu but this differs from current Windows menu behavior. -When a menu item which has focus and has a submenu open loses focus(because the mouse was moved over an adjacent menu item) the submenu closes. -With focus on a menu item via mouse over and no sub menu open for that item, moving the mouse out of the open menu returns focus to the parent menu item and leaves the menu open. Should consider that when mouse moves out of the open menu, the menu closes and focus goes back to the parent. -With focus on a menu item via mouse over which has opened a sub menu, moving the mouse out of the open menu leaves focus on the parent menu and the submenu open. Should consider that men mouse moves out of the open menu, the menu and submenus close and focus goes back to the parent. -With focus on a submenu item, moving the mouse out of the submenu returns focus to the parent menu item but the submenu remains open. Should consider that moving the mouse out of the submenu closes the submenu and returns focus to the parent. -Clicking out of the menu component will close any open menus -Clicking on a menu item should invoke that menu action or open the submenu. -There should be an adjustable delay between the time you mouseover a menu-item-with-submenu and the submenu opens. On Windows it defaults to 400ms. Consider removing the automatic open of menus on mouse over and require the user to click to open submenus - this is more consistent with keyboard action but differs from Windows menu behavior. I realize that this is a large volume of information to process but I am struggling to make accessible menus on the web and may need to make some compromises. Is it reasonable to abandon some of the Windows operating system conventions for how a menubar behaves and make menubars be a horizontal implementation of a menu? thoughts appreciated. -becky [1] http://lists.w3.org/Archives/Public/wai-xtech/2007Feb/0008.html Becky Gibson Web Accessibility Architect IBM Emerging Internet Technologies 5 Technology Park Drive Westford, MA 01886 Voice: 978 399-6101; t/l 333-6101 Email: gibsonb@us.ibm.com
Received on Monday, 26 February 2007 19:38:52 UTC