0

The question/debate is about the context menu items :

  • should I allow all commands at any time, then, when a user selects an action, either perform it or explain why it cannot be done (like missing access rights)
  • should I grey out items that cannot be executed in the context.

To make it clear : this is not about greyed-out vs. invisible items; this would be a later choice given the state of the command is known; this question is about showing selectable menu items vs greyed-out-or-invisible menu items and the cost of doing so.

Context :

  • a document management webapp that has an explorer-like user interface (with folders, too)
  • all data is persisted in a database back-end
  • the user can display a context menu (about 30-40 commands in it) over a selection of documents and/or folders; the size of the selection is not limited and can be easily beyond 100 items
  • there is an access rights model that handles access rights at document level for users and groups (for instance I may not have been assigned directly a specific right on a specific document, but because one of the groups I'm member of has it then I have it)
  • folders and documents have a persistent state (saved in the database)
  • folders and documents also have a transient state (which obviously does not 'live' past system restarts)
  • the system may handle up to 100M documents (although probably an average value would be between 100K - 500K documents)

Given the context...

  • The main disadvantage of the first approach seems to be that users can execute commands that may have nothing to do with the selection... but at least they end up with a message saying so.
  • The main disadvantage of the second approach is that given N commands and a selection of M items that means that some N*M checks have to be performed (obviously depending on the algorithm used), most involving database access with a non-negligeable cost.

Caching in memory doesn't seem a very efficient approach since the different users are unlikely to request data on the same items and cache maintenance (expiration and eviction may create additional cost with little value)

Any thoughts on this matter are highly appreciated. I'm quite sure a definitive solution does not exist, but I think based on others' experience one may find a solution appropriate to their own problem.

8
  • 3
    This question is similar to: Greyed-Out vs Invisible. If you believe it’s different, please edit the question, make it clear how it’s different and/or how the answers on that question are not helpful for your problem.
    – Danielillo
    Commented Oct 8 at 12:33
  • 1
    @Danielillo: I do not think it's similar because the question you suggested deals with how to handle items that are not available but do not provide feedback. Please see the title; this is a different scenario. Thank you.
    – stefanu
    Commented Oct 8 at 12:39
  • Similar question 1, Similar question 2, etc. Please, use the search field.
    – Danielillo
    Commented Oct 8 at 12:43
  • 1
    @Danielillo This is not about greyed-out vs invisible. It's a totally different question. Please read my question and understand it first.
    – stefanu
    Commented Oct 8 at 12:46
  • 'Showing Selectable vs greyed out or invisible'. Not sure why you are questioning displaying selectable items in a menu. And then the other part is greyed out vs invisible, which has been discussed in the other similar questions. Please explain how this is different.
    – Ren
    Commented Oct 10 at 5:51

2 Answers 2

0

I often object to disabling fields, links, buttons etc. I rather leave things enabled so that users can discover for themselves what works and what doesn't and why.

In your case: don't gray out the unavailable items and leave them enabled (clickable/interactive). To let users know in advance that it's not available, add that to the label: Delete (not available). People can either understand or accept that the action is not available or they don't and click on it anyway, then show a message why it isn't available.

If the (unavailable) addition makes the labels too long it is also possible to group unavailable items:

Rename
Move
-- unavailable actions --
Delete

Downside is that the order of items is not consistent, but if that is a real problem is something to observe.

6
  • thank you for your answer; in my case, unfortunately, the additional text is not an option, as the menu has a mix of icons and icon+text items, a bit like the windows explorer menu that has the copy/paste icons on top. Maybe I can reconfigure the menu items so that the icon-only items are never disabled; I'll look into this possibility.
    – stefanu
    Commented Oct 9 at 8:41
  • Please don't add "thank you" as an answer. Instead, vote up the answers that you find helpful.
    – Danielillo
    Commented Oct 9 at 16:12
  • @Danielillo : it's an interesting approach, but I wouldn't upvote yet... what's wrong with thanking someone for taking the time to read and answer ? Is it against policy ?
    – stefanu
    Commented Oct 11 at 7:48
  • Because in SE the way to thank is by upvoting the effort and dedication in preparing a response. Visit the Help Center.
    – Danielillo
    Commented Oct 11 at 12:35
  • 1
    @Danielillo This is a better link: ux.stackexchange.com/help/someone-answers. But the comment wasn't just "thank you" but also some feedback, there's nothing wrong with that.
    – jazZRo
    Commented Oct 11 at 13:43
0

You could use different colors to show unavailable actions like greying out and when the user hovers over, you can show a tooltip that says example ‘Missing Access Rights’.

1
  • Indeed, but this approach does not 'solve' the problem of deciding when it should change color, so not exactly a solution.
    – stefanu
    Commented Nov 9 at 8:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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