I recently came across an interesting question, that I think is quite thought provoking. The original question was, how the person in question could make a radio button look and act enabled, but not actually check at the moment he clicked it. The reason was that the radio buttons actually controlled a hardware device setting (a PLC), and that he really wanted the state of the radio buttons to reflect the hardware state. So, if the PLC changed state, the radio buttons selected state would be updated.
That got me wondering. While I think the intention is good, I doubt this is the best solution to communicate to the user that the hardware state has not changed yet. I think I would get frustrated with a radio button that doesn't immediately change to the item I clicked. At first I would try to click it again, but depending on how long it takes, I may give up and then be quite surprised to see the change occur pershaps seconds later anyway.
My question would be: what would be a good way to provide feedback? Should the control not indicate that it at least registered the request? And how do you communicate that the state change succeeded, or worse, failed? Note that this kind of scenario can not only occur when dealing with PLCs or other hardware, but also when such a state change trigges some complicated software path that may take a while to complete, and that may fail.


