As we're approaching the release date for v2.5.0 of Rubberduck (an open-source VBIDE add-in), we're facing a bit of a dilemma regarding a specific type of tree nodes in one of our toolwindows:
The idea is to show library/project references in the treeview, and somehow convey whether a particular reference is in use or can be safely removed.
We've decided to gray-out reference nodes that aren't actionnable - either because they're locked-in (the VBA standard library and the host application's object library can't be removed), or because they're in use and removing them would break something.
But this is surprising to users that expect reference nodes that aren't in use (and therefore are actionnable) to be the grayed-out ones... and to me that seems a very reasonable expectation to have.
How can we reconcile contradicting user expectations and make it clearer for everyone?
Locked-in library references show up with a little padlock icon, so I think we've got those covered.
But what's the UX best practice for showing a UI element as "disabled" in a case like this?