Page tree
Skip to end of metadata
Go to start of metadata

Right click menu

In most applications, right click menu gives the user some extra functionality, or a quicker access to certain functionality. However, to put it short – we don't have a right click contextual menu. There are three reasons behind this.

  1. Creating and maintaining a contextual menu is a costly process. We would have to make sure it is accessible, it supports keyboard commands (like arrows up/down, enter to select), click outside to close, and many other features.
  2. Even if we created it, this would put the user in an awkward situation as right clicking inside our Web View part would give one contextual menu, whereas right clicking in the native VS Code part would give a system default menu. This dual world is simply not a good UX.
  3. And lastly, when our extensions are transferred to SAP Business Application Suite, the custom coded menus would look strange there. SBAS, as a web page, already only has custom coded contextual menus, as they cannot really function without it (how else would they do right click on the files column which is essential for Theia?). All of the actions we have injected into the native right click menu of VS Code, SBAS parses and translates into their custom drop downs.

Left click menus & drop-downs

On the other side, all of the left click menus should be left native if it's possible, and we should strive to create the designs so that it is indeed possible to keep them native. Sometimes we will need to create a custom menu, due to a need to add more details to each line item (like an icon, or an additional description), however, we should aim to keep things as native as possible.

Native menus have many advantages, and one of the big advantages is the ability for our extensions to be embedded into other locations (like SBAS) without a glitch. Other locations can do whatever they need with native drop downs and extract from them items to use in their own fashion. If SBAS wants to display those native drop downs using their standard, being native helps them. If we custom coded those, they might have trouble figuring out what to do with custom menus.

And besides, our users are already accustomed to seeing native drop down menus while using their computers. MacOS users know how their menus look like, Windows users know this, and Linux users as well. There is no learning curve for them, all of the accessibility tools work with native drop downs, keyboard shortcuts work, etc.

  • No labels