There is a remotely operated device / toy / drone, which has a number of "functions": various lights, sound effects and so on. There is a remote control with a number of physical buttons. This remote control can be configured with a GUI so the user can set which button operates which functions. By the press of a button, the remote control sends a command containing the states of all the functions.

It seems simple at first: if we have 4 functions to be controlled for a specific button, we could just have a list of checkboxes:


download bmml source – Wireframes created with Balsamiq Mockups

This will turn functions 2 and 3 on, and functions 1 and 4 off, on the press of the button.

However, we would like to have a possibility to not touch a specific function. For example, we want the user to be able to specify the following: "turn on function 1, turn off function 2, and leave the others as they were" (because they might have been activated by another button and we don't want to undo that).

I fear that an undetermined (tri-state) checkbox won't be clear enough:

enter image description here

We want to clearly indicate that it's a "turn on" command, a "turn off" command, or there is no command.

Another straightforward way would be to use drop-down lists:

enter image description here

The problem with this is that the vast majority of the userbase is not computer-savvy at all, and might get confused. Checkboxes in the first example were so simple...

But having two checkboxes per row (one for "affect this function?" and the next for the actual command, which is greyed out if the first is unchecked), would be even more confusing.


To clear up some possible misunderstandings. My problem is not that I need to make clear that a function is already "used" by another button. That's not a problem. Precisely that is why I need the option for a button to leave a function untouched (untouched when using it, not untouched when configuring it).

For example, let's say button A switches functions 1 and 4 off, and functions 2 and 3 on. That's how I, as a user, want it.

Now I, as a user, want to have a button C configured so that it turns on function 1, and a button D which turns it off again.

If I only had binary choices, then when I pressed D it would not only turn off funciton 1, it would turn all of them off. That's what I want to avoid.

Therefore, the configuration has to have three options: turn it on, turn it off, and leave it as it was.

3 Answers 3


If checkboxes don't solve it for you, maybe radio buttons are a better option:

enter image description here

  • Sorry, no. The problem is not that the function is already set for another button. (I'll have to reformulate my question). The problem is that if a function is already activated by another button, I would like to have an option to leave it alone while using (not while configuring, as you understood it)
    – vsz
    May 26, 2020 at 12:01
  • @vsz I think it can be better solved using radio buttons, see my (edited) answer. But I still don't see why button D would not only turn off function 1 but also function 2, 3 and 4. Maybe you can clarify that bit too. Is it possible to use a real example?
    – jazZRo
    May 26, 2020 at 13:56
  • Because if you only had two states, on or off, you could not differentiate between turning it off or leaving it as it is.
    – vsz
    May 26, 2020 at 13:59

vsz, if I put my UX Strategist head on, here's something that makes me nervous: you write, literally, that…

the vast majority of the userbase is not computer-savvy at all

…, but the feature you're designing here actually is pretty complex. Does your research provide enough "evidence" that your target audience would need, or at least appreciate, this feature/behavior?

As an alternative to the customizability, providing a simple "one-control-per-function" approach might provide a much better user experience over a feature that might not be used widely, because users find it confusing.

If you do build this feature, though, ;) I'd experiment with a matrix (control vs. function) that uses popup menus for all combinations, with very clear labels, such as "Turn On", "Turn Off", "Don't Change", or somesuch.

Oh, one more thing: you might also consider a "Toggle" option, so you could actually use that kind of matrix to map one function to one control for, well, switching the corresponding function on and off with the same control.


An alternative approach is to start with a clean slate, and let the users add new commands explicitly.

Mockup: Add new commands explicitly

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.