fr33g's avatar
fr33g
Copper Contributor
Mar 12, 2025
Status:
New

Support for Submenus in Office JS Add-in Custom Menus

Dear Microsoft 365 Developer Team,

I would like to submit a feature request regarding custom menus in Word JavaScript Add-ins.

Currently, when defining custom menus for the ribbon via the manifest.xml, it is possible to create a root-level menu control with a list of menu items. However, submenus (nested menus) are not supported. This limits the ability to create well-structured and user-friendly menus, especially when dealing with more complex add-ins that require logical grouping of actions.

Use Case Example:


Imagine an add-in that handles document templates, formatting options, and insertion of custom content. It would be much more intuitive to organize these into hierarchical menus like:

My Add-in Menu  
|
|---Templates
|   |---Contract Template
|   |---NDA Template
|---Formatting
|   |---Apply Header
|   |---Apply Footer
|---Insert
  |---Clause
 |---Placeholder  

Currently, to achieve something like this, we either have to create long flat menus, which are less user-friendly and harder to navigate, or define multiple root-level menu controls as a workaround. However, having too many root-level menus clutters the ribbon and makes the overall user experience confusing and less efficient.

Feature Request:


Please consider adding support for nested menu structures (submenus) in Office Add-in command definitions. This would:

  • Greatly improve user experience for complex add-ins.
  • Allow better organization of actions and commands.
  • Align the Add-in UX closer to the native ribbon and menu experiences in Office apps.

Possible Implementation Suggestions:

  • Extend the Menu control to allow nested Menu or MenuItem elements.
  • Allow referencing predefined menus to enable reuse and modularity.

Related Documentation:

Thank you for considering this enhancement. It would be a huge step forward for creating more powerful and user-friendly Office Add-ins!

Best regards,


Ingo

 

  • I'd like to get this added to all the hosts, WXPO, as part of the Ribbon definition. Preferably with the option to dynamically populate the menus, but multi-level menus are a good first step.