aria-practices icon indicating copy to clipboard operation
aria-practices copied to clipboard

Navigation Menubar Example - menu child of menu

Open giacomo-petri opened this issue 11 months ago • 2 comments

In the Navigation Menubar Example, when "Admissions" and "Tuition" are expanded, a menu is a child of another menu. This violates the ARIA specs, as menus should not contain other menus as direct children.

Relates to: https://github.com/w3c/aria/issues/2438

giacomo-petri avatar Feb 13 '25 14:02 giacomo-petri

The ARIA Authoring Practices (APG) Task Force just discussed Issue 3237 - Potential bug: incorrect menu structure in navigation menubar example.

The full IRC log of that discussion <jugglinmike> Topic: Issue 3237 - Potential bug: incorrect menu structure in navigation menubar example
<jugglinmike> github: https://github.com/w3c/aria-practices/issues/3237
<jugglinmike> mk: The reporter is saying that we have menus with descendants that are menus. That would be incorrect because a menu should be either standalone or inside a menu item
<jugglinmike> mk: I'd like someone to look at whether or not this is only happening in this one example
<jugglinmike> mk: I guess this menu has a different structure than our other examples
<jugglinmike> Adam_Page: I'm comparing "tuition" and "admissions" (because the reporter specifically called those out) with comparable items in the other items (eg. "facts" and "about"), and I'm not seeing any difference
<jugglinmike> mk: I'm wondering if this is also a problem with the editor menu bar
<jugglinmike> Adam_Page: We discussed this in last week's ARIA Working Group call. We might want to sit tight while Giacomo follows up on the related spec changes
<jugglinmike> Adam_Page: In the APG issue, he writes pretty emphatically that it violates the spec. But in last week's ARIA WG call, he posed it as a question, saying that the spec seems unclear on this topic
<jugglinmike> Adam_Page: If a menu cannot nest another menu, how can we do nested menus at all? A menu item also does not permit a nested menu...
<jugglinmike> mk: It doesn't?
<jugglinmike> Adam_Page: I'm scrolling through the ARIA spec of the different roles... Ah, I may be misreading
<jugglinmike> mk: In our example, the elements with role "menu" are actually linked
<jugglinmike> Adam_Page: The menus are "ul" elements and setting the "role" attribute to "menu"
<jugglinmike> mk: So when we have a sub-menu, it is a "ul" contained within the "li" that contains the parent menu item
<jugglinmike> mk: ...but the parent menu item isn't the "li"; it's the anchor.
<jugglinmike> mk: To change this, you would actually have to make the "li" the parent menu item, right?
<jugglinmike> Adam_Page: I'm not sure
<jugglinmike> mk: If something is a parent menu item, and if it had to contain the menu--if that's the way it's supposed to work...
<jugglinmike> mk: I suppose it could own it. We could use "aria-owns", right?
<jugglinmike> Adam_Page: I suppose so. The ARIA spec is confusing about this right now because I don't see any affordance for nesting menus
<jugglinmike> mk: I guess we wouldn't be able to use links for the parent menu item. Instead of having "li" with "role=none", that would probably be the parent item. It would take a menu, which would be on the "ul" element
<jugglinmike> Adam_Page: I'm not sure how I would do this, anymore. Though I don't have much experience working with the "menu" and "menuitem" roles
<jugglinmike> Adam_Page: I'm inclined to let Giacomo clarify the spec since that appears to be an outstanding issue
<jugglinmike> mk: I actually remember Brian talking about this, but you don't really need the menus to be descendants of... I wonder if there really is alignment on this
<jugglinmike> Adam_Page: In th spec, there's an explicit section for "allowed child roles" and "menu" is definitely absent
<jugglinmike> Adam_Page: But I don't see anywhere else in the spec that allows for nested menus, so I don't know how it should be achieved
<jugglinmike> mk: There's a practical challenge here in that there are probably a lot of menus written in the way that this one is written
<jugglinmike> mk: so clearly, it at least can work
<jugglinmike> Adam_Page: This relates to https://github.com/w3c/aria/issues/2438
<jugglinmike> mk: And that doesn't have a pull request, yet
<jugglinmike> Adam_Page: I think he just volunteered to take it last week
<jugglinmike> mk: I'm fine with us just watching for now
<jugglinmike> mk: I guess when he submits that pull request, he could hopefully reference this issue. That would cause it to float back up to the top of our list
<jugglinmike> mk: I'm hesitant to call this a bug because I'm curious to see what kind of feedback Giacomo's pull request will receive
<jugglinmike> mk: I thought that might be straightforward, but it wasn't!

css-meeting-bot avatar Feb 25 '25 19:02 css-meeting-bot

Related w3c/aria#2438

mcking65 avatar Mar 18 '25 15:03 mcking65