I'm working on a Unity app:
The first menu has users choose a couple of items in an accordion list: When one parent button is clicked, then a extended list with all of the child items is shown below it. When the same button is clicked again, then this list is hidden again. Only child items can be selected for later use.
This menu supports both mouse and keyboard input/navigation: You either move the mouse and click LMB or use β and β to navigate from button to button, then press Enter to interact with it (=unfold/fold parent or select child).
Buttons in Unity have multiple states that you can set a color for:
- Normal Color (button is none of the below)
- Highlighted Color (mouse cursor is over the button)
- Pressed Color (LMB is held down over the button)
- Selected Color 1 (currently active item for keyboard navigation, only parent button: Becomes active when a button is clicked (=LMB released) or Enter is pressed)
- Selected Color 2 (only child button, becomes active when a child button is clicked or Enter is pressed on it, overrides all other colors)
- Disabled Color (button can't be interacted with - not used)
The problem I've come across:
The very first button in the list is selected at the beginning. When I now hover the mouse cursor over the third button in the list, then that one switches to the "highlighted" state, while the first button is still "selected". When I press β, then the second button becomes selected, while the third is still highlighted.
Here's a screenshot:
- White = Normal Color
- Light Blue = Selected Color 1
- Orange = Highlighted Color
Disclaimer: These are only temporary colors, so it's easier to distinguish between the button states. I intend to merge the "Pressed" color with "Normal" in the finished app, as it doesn't add any information of value.
This is a special case because you usually don't select multiple list items in game menus without there also being horizontal navigation (like "on" and "off" buttons for a single option), so there aren't any examples (that I know of) that I could just copy.
What behavior would you expect here? Is there any kind of "official" guideline for vertical-only button navigation? Should the fourth button have become selected because the mouse cursor was over the third button or is all of this way too complicated and I should just narrow it down to three colors: Normal=Highlighted=Pressed, Selected 1 (navigation or parent) and Selected 2 (only child)?

