Hi, when a PopupMenu is too large to fit in a single column, the navigation order with VoiceOver is line by line (all items of first line, then all items of second line etc) instead of column by column (first item of first column, then second item of first column, etc…).
In order to fix that I suggest to add an explicit focus order when building the juce::MenuWindow constructor:
if (i + 1 < menu.items.size() || ! item.isSeparator)
{
auto* child = items.add (new ItemComponent (item, options, *this));
+ child->setExplicitFocusOrder(1000+i);
if (initialSelectedId != 0 && item.itemID == initialSelectedId)
setCurrentlyHighlightedChild (child);