Jump to content

Trouble with Switches


Recommended Posts

I’ve been trying to come up with my own consistent set of custom controls that has a more modern “flat” or “near-flat” style.  Largely this was inspired by reading Google Material Design, and I’ve just added the results as a package in the CR: Flatline Controls.  The latest thing I’ve been toying with are slider switches (here the Material Design guide on switches).  But I’m having a hard time coming up with something that is flat and non-skeumorphic, but also clearly a switch.  Attached is a VI (2011) with multiple switch types.  The most 3D, old-school, looks like a real-world switch (on the left) seems best in terms of being obviously a switch.  My most Google-like switch, on the right, is flat and simple, but not immediately obvious.

Switches.png

My question is: what of the multiple LabVIEW switches do people actually use? 

Trouble with Switches.vi

 

  • Like 2
Link to comment

I've had issues with switch controls like these in the past with users who aren't exactly sure what the states of the switch are the first time they use it.  I don't want to say it is unintuitive, it is just one of those things you need to some times learn the first time.  Don't get me wrong I like the look of the flat controls you've shared and I can see using them, but I can already hear some of my users when they see the switch the first time, and see the text "OFF" they will ask, "Does clicking this turn it off or is it off right now?"  As soon as you've seen the two states of the button it is quite clear which is ON and which is OFF  As a result I generally try to use system checkboxes, radio buttons (with two states with text for each), or a drop down, like a system enum.

  • Like 1
Link to comment

I've got to parrot hooovahh's comment, though I think yours look like smartphone/tablet controls that all behave similarly.

I've used the radio buttons with two round LEDs with good success for true/false selection; one LED was darker blue (false) and the other was lighter yellow (true). Back a lifetime ago I worked with a system that had that setup for colorblindness and quick response (use was due to military study leading to a specification). The NI buttons look the same in true/false state when you view them in grayscale; yours appear different, so would be usable by those colorblind.

Link to comment

I think is makes a difference if one has one, two, or many switches in view.  Many switches both true and false lets one tell the two states apart, especially with radio buttons where only one is true.  With a two-state radio button there can still be User confusion.  And then there is having a lone switch.  The more elaborate design I made is for a lone switch, while the simpler one is for groups.  

I also have relied on checkboxes in place of true switches.  Though I read somewhere that a checkbox implies an option that don’t immediately take effect (such a as configuration or a form that has to be applied/submitted), while a switch suggests immediate control of something.

Link to comment
24 minutes ago, drjdpowell said:

Though I read somewhere that a checkbox implies an option that don’t immediately take effect (such a as configuration or a form that has to be applied/submitted), while a switch suggests immediate control of something.

I did not know that this was a semi-standard, but I think the majority of the time I have used checkboxes it was in this type of UI.

Link to comment
5 hours ago, drjdpowell said:

I think is makes a difference if one has one, two, or many switches in view.  Many switches both true and false lets one tell the two states apart, especially with radio buttons where only one is true.  With a two-state radio button there can still be User confusion.  And then there is having a lone switch.  The more elaborate design I made is for a lone switch, while the simpler one is for groups.  

I also have relied on checkboxes in place of true switches.  Though I read somewhere that a checkbox implies an option that don’t immediately take effect (such a as configuration or a form that has to be applied/submitted), while a switch suggests immediate control of something.

It may be challenging to make, but I think these web elements are nice:

http://getbootstrap.com/components/#btn-groups

You can label each item so you get the benefits of a radio group (in fact you could argue this looks more like a radio button than most radio buttons). Plus its actually a button, so you get the feeling that it takes immediate effect.

Also, note the "Notify me of replies" when you post here on lava after the upgrade. Having the check or the x makes it pretty easy to understand the meaning, but thats because its also labeled well..."Notify me of replies" is an obviously true or false statement.

Quote

Don't get me wrong I like the look of the flat controls you've shared and I can see using them, but I can already hear some of my users when they see the switch the first time, and see the text "OFF" they will ask, "Does clicking this turn it off or is it off right now?"

I think this happens more often if the "ON" or "OFF" is on top of or otherwise seems to be part of the 'moving part' of the switch. Because then it kind of feels like you're pressing a button labeled "ON" rather than indicating the state. If you separate the label from the moving part (like the dr's switches on the right) I think it works.

Edited by smithd
Link to comment
12 hours ago, hooovahh said:

I can already hear some of my users when they see the switch the first time, and see the text "OFF" they will ask, "Does clicking this turn it off or is it off right now?"

To take another page from Google's Material Design, their switches convey state by using colours without "ON"/"OFF" labels at all:

components_switches_switch3.png
(From https://material.google.com/components/selection-controls.html#selection-controls-switch)

 

 

1 hour ago, smithd said:

Also, note the "Notify me of replies" when you post here on lava after the upgrade. Having the check or the x makes it pretty easy to understand the meaning, but thats because its also labeled well..."Notify me of replies" is an obviously true or false statement.

I actually experienced the issue that @hooovahh described. It showed "Notify me of replies", with an "X" next to it. I wondered to myself, "Does clicking the 'X' get rid of notifications?" because, from prior experience, clicking 'X' closes windows. Thus, I had to play with it to discover its meaning.

Link to comment
7 hours ago, smithd said:

It may be challenging to make, but I think these web elements are nice:

http://getbootstrap.com/components/#btn-groups

You can label each item so you get the benefits of a radio group (in fact you could argue this looks more like a radio button than most radio buttons). Plus its actually a button, so you get the feeling that it takes immediate effect.

I include a radio group with buttons in the package (calling it "Selection Buttons”).  It also works well if you use icon decals instead of text.  Can’t do the nice borders like in that package, unfortunately. 

7 hours ago, smithd said:

"Notify me of replies"

That’s an example of something that (to me) should be a checkbox, since it is part of a form that must be submitted.  

5 hours ago, JKSH said:

because, from prior experience, clicking 'X' closes windows

Part of the reason I chose not to add the ‘X' is that it makes it more like a checkbox: check for true and nothing for false.  

5 hours ago, JKSH said:

To take another page from Google's Material Design, their switches convey state by using colours without "ON"/"OFF" labels at all:

But that requires the User to learn what the funny circles are, and what “white circle to the left” means.

  • Like 1
Link to comment
2 hours ago, drjdpowell said:

Nope.  Painfully tedious manual steps.   Trial and error learning all the weird LabVIEW minutiae.  I aint doing this twice.

Well the community thanks you for your effort.  In the past I could automate replacing button decals with ones from other PNG files.  So I was at one point able to just script out a few hundred system buttons, with glyphs from an open library.  This worked out well enough, but I still ended up having to do some manual manipulation of every control.

Link to comment

Sure thing, I had to clean it up a bit but here it is.  Attached is some code that I originally found in this thread showing how to read the contents of a control file, and replace a section with a new PNG.  I think one caveat is the PNG that is being replaced needs to be larger (in file size) than the new PNG but in my tests I haven't seen an issue.

https://decibel.ni.com/content/thread/4901

Extract the attached code, and run the Replace Button Decals\Create Multiple Controls From PNGs.vi It should set the control values on first run to paths relative to the running VI to use the example images and controls included.  It will make a control for each PNG in the directory chosen.  This will replace the decal, the VI Icon, change the label, the button text, and VI title so that it can be packaged up with VIPM nicely. I also included a VI to extract images from controls.

Create Multiple Controls From PNGs.zip

  • Like 2
Link to comment
On 6/15/2016 at 4:52 PM, drjdpowell said:

But that requires the User to learn what the funny circles are, and what “white circle to the left” means.

True. All icons/glyphs/symbols need to be learnt from somewhere first.

The key is creating controls that are consistent with what the target audience is already likely to know, and are unambiguous. (e.g. you can safely assume that smartphone-savvy young'ns already know what "white circle on the left" means :D)

Back to answering your original question...

On 6/14/2016 at 8:59 PM, drjdpowell said:

My question is: what of the multiple LabVIEW switches do people actually use? 

For user-facing GUIs, I use the Silver push buttons (the middle column of the gallery in your original post) The leftmost columns are too ugly for my liking, unless the customer specifically asks for the old-school look.

 

On 6/14/2016 at 8:59 PM, drjdpowell said:

I’m having a hard time coming up with something that is flat and non-skeumorphic, but also clearly a switch.

http://ux.stackexchange.com/ is a good place to find enthusiasts + experts who are happy to share their ideas and discuss yours

 

 

Link to comment

Oh yeah I forgot about that toolkit.  I tried it when it first came out, and realized the core of it was the code I already posted and figured I wouldn't need it.  Sure the toolkit has other neat features that my code posted above, doesn't do, but for the most part I didn't need them.  I remember some kind of quick color selection option where you could have a single image, and then swap selected colors for the other states of the button.  Still not having the source code available makes it quite limiting when you want to automate, or pull pieces apart for your own needs.  I think this used to be be a paid product but now appears free, I also don't remember the internet requirement when I used this before but maybe it was.

Link to comment
  • 2 weeks later...

Experimenting some more.   I don’t really like either of my switch designs, as they seem too flat to identify as controllable objects.   So I’ve worked on a new one (second from the left, below).  This seems “just enough” non-flatness to aid in identifying it as a switch.

Slide switch styles.png

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.