2

I have a context menu set on a list box. The list items support a Rename command. Right clicking a single list item adds the Rename command to the context menu. The Rename command cannot execute when several items are selected in the list because the item names are unique. Should Rename be disabled or removed from the context menu in this case?

This is what the Windows UX Guidelines say:

Remove rather than disable context menu items that don't apply to the current context. Doing so makes context menus contextual and efficient.

Exception: Disable menu items that don't apply if there is a reasonable expectation for them to be available:

  • Always have the relevant standard context menu commands, such as Cut, Copy, Paste, Delete, and Rename.
  • Always have the commands that complete related sets. For example, if there is a Back, there should also be a Forward. If there's a Cut, always have a Copy and Paste.

I think Rename should be removed in the multi-select case, but I guess I'm not sure if this fits as an exception to this rule. Is there a "reasonable expectation" for it to be available?

1

Remove actions that don't make sense.

This is true everywhere not only in context menus. I understand the desire to let users know that there is a possible action that is only temporarily unavailable, however, this causes more friction than utility. It is much more clear to the end user when the only options they ever see make sense in the current context.


  1. Gmail has buttons to let you select all, refresh, and more stuff by default...

enter image description here

  1. Once you select 1 or more email messages other appropriate actions appear...

enter image description here

  • 1
    Both answers make sense to me which is why I asked the question. I think there's better precedent for just hiding the menu item. – Skrymsli Jan 26 '15 at 22:33
0

Windows itself doesn't remove nor disable Rename for multiple selection, but still makes the names unique. You can select a number of files, and if you hit Rename, they will be renamed NewName, NewName(1), NewName(2) and so on. I'd consider adopting that solution too.

If you decide against it, I think that it should be disabled rather than renamed. Actions are removed when they aren't relevant to the entity that you've selected. But if they are normally available for the entity, and they're only unavailable in this very specific context of multiple selection, it makes sense to convey this message to the user by leaving the action in, only disabling it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.