Don't hide menus
Jürgen Spitzmüller
jspitzm at gmail.com
Fri Oct 13 08:43:45 UTC 2023
Am Freitag, dem 13.10.2023 um 08:05 +0200 schrieb Daniel:
> 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.)
Don't like it since
1.) we will end up in overcrowded menus full of disabled entries. Too
long for sure in some cases
2.) we will run out of accelerators. We currently can provide
accelerators in the insert and edit menus only since we only show
active items.
I know you don't care about accelerators as they seem to be not common
on Mac OS. However, I find them a key element of accessibility and much
more important that some sort of user didactic by showing which
functions there might be. I also don't see what users gain if they see
a disabled function as long as they don't learn when and how it is
enabled.
The two HIGs I consulted (and actually the two we base LyX UI on) have
this to say:
"Menus should contain between three and twelve items, and submenus
should contain between three and six items."
No word about hiding or not hiding items, but it's clear that you can
only achieve this by selective display.
https://developer.gnome.org/hig/patterns/controls/menus.html?highlight=menu
And
"Don't put more than 12 items within a single level of a menu. Add
separators between logical groups within a menu. Organize the menu
items into groups of seven or fewer strongly related items."
It also says:
"Disable menu items that don't apply to the current context instead of
removing them from view. Exception: It is acceptable to hide menu items
completely if they are permanently unavailable on the user's system due
to missing hardware capabilities."
But this is hard to achieve with the number of items we have.
In any case, however this discussion turns out, this is not something
to be implemented so shortly before a major release. If done, it has to
be implemented very early in a development cycle and then carefully
tested.
--
Jürgen
More information about the lyx-devel
mailing list