It seems to be a rather universally accepted UI rule that menu items should not be hidden. Feel free to can check your favorite apps or search the recommendation on the web. (There is also the more extreme recommendations to not even disable menu entries but I think it is generally agreed that this is a bad idea because it leaves the user clicking in vain.)

I am referring here foremost to the main menu items. Context-menus may be treated differently because they are expected to be context-dependent (as the name suggests).

Among the main reasons for why menu items should not be hidden are that with hidden menus users have a harder time

1) discovering features
2) figuring out and remembering where menu items are located

Notice that these two may be hard to appreciate for developers because they typically know the entries independently of whether they are shown. And I seem to remember a couple of instances where users were asking about missing features on the list which were due to OptItems being hard to discover.

In contrast to other applications, LyX has a greater number of menu entries that become hidden. I am not sure about what the history of this special behavior of LyX is but maybe it had to do with a trade-off in a time when screen size/resolution was quite limited?

I have made a test and changed all OptItems to Items in the stdmenus.inc. That might not show all the menu items since there are some whose "expansion" is hard-coded. Those expansions should typically have a disabled "empty" entry when there is nothing to expand. See, e.g., Navigate > (Empty Table of Contents) which is a perfect example of informing a user about a feature with a disabled entry while the feature is unavailable.

With this change I found that the length of the menus seemed totally acceptable to me (and at least not longer than for other "word processors").

The only exception were the various inset settings in the "Edit" menu. However, these seem to be mutually exclusive. So, there are different ways to resolve this problem. For example, to create one settings entry that rules them all and shows a disabled "Inset Setting..." when unavailable. In the short term, one might even have an exception here for using OptItems for this specific case.

Best,
Daniel

--
lyx-users mailing list
lyx-users@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-users

Reply via email to