Subject says it all.

The control used (the graphical on/off switch) is designed to be used on actions that are undertaken immediately (think about a light switch), which is not the case. There is a warning about this on the settings page, but people should not be forced to go to there to be educated about this. Usually the Save button is below the fold, which make things worst, as it implies that no other action is required. Lastly, the combination of green (on), red (off) and grayed on/off is very confusing.

IMHO, all this make this feature very bad, in terms of UX. The end user is much better served with checkboxes.

So I propose that this feature defaults to off.

(BTW, as stated in the setting description, "this is purely cosmetic (at least for now)". But I am afraid that we will never be able to make it happen -- i.e. to enable/disable modules immediately --, because this involves a lot of more than just turning a light bulb on or off, so to speak. As I am sure everyone here is aware, we have module dependencies, the admin may want to review the dependencies, dependencies may fail to install, etc.)

CommentFileSizeAuthor
#5 Schermata del 2015-06-12 17:01:40.png10.79 KBfmantov
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

greenSkin’s picture

Status: Active » Closed (works as designed)

Thanks for expressing your opinion. I can't say I share your point of view however, and I think the switch is a much better fit as well as better for UX than the checkbox. Let's compare.

The checkbox can be construed in the same way as you've described as "confusing" in reference to the switch's colors. For example, when a module is unavailable to enable/disable, the checkbox version has the checkbox disabled. This is very similar to the switch in that we use a grey color instead of the usual red or green, and the switch is not switchable. Functionally a tie.

The implication of switching a switch on or off is the same as checking a checkbox. People on one hand can expect an immediate result of something whether using either visual indicator (a switch or a checkbox). It's not uncommon to see immediate AJAX response from checking a checkbox (or radios for that matter). Sometimes it's as simple as hiding/showing other page elements. Sometimes it's partially submitting a form (Aurora theme does this on it's settings page). The one thing the switch has going for it that the checkbox does not, is a visual state that implies the action is not complete. When toggling a switch to it's other state, it's color is yellow which signifies to the user it's neither green or red (on or off). Blocks admin page, and other draggable tables, do this with a yellow warning message, a yellow outlined row for the row that moved, and an asterisk that visually links the action to the message. For UX, the edge goes to the switch.

On the note of the ability to enable/disable modules immediately, I think this is quite doable. It would really be no different than submitting the form manually, but instead I foresee a modal popup shown in the event there are required modules that need to be enabled. Otherwise enabling the module could be relatively seamless. Much like emulating devices in Chrome's devtools, I'd also imagine a message be displayed (similar to the draggable tables message) when a module would be enabled/disabled stating to refresh the page to load any potential page features such as additional menu items or other features provided by the newly enabled module. My one reason for not taking a higher priority with this feature is the argument that it would be too slow to enable multiple modules. This is the one argument which is truly holding the feature back, not that the feature isn't feasible or doable. This functionality is neither pro switch or checkbox and can be accomplished for either.

So by my calculations, the switch edges out the checkbox specifically in UX.

I appreciate your perspective immensely, and I'm willing to continue the debate if you still feel strongly that the checkbox is better suited over the use of a switch.

flaviovs’s picture

Hello greenSkin. Yes I am aware that the the 4 possible states of a checkbox can be represented by the switches. Maybe it is a matter of personal preference, but by using checkboxes I can tell spot on which modules are enabled and which are not (and which can not be -- i.e. missing requirements), though with switches I had initially a hard time telling what was enabled/disabled.

You may be aware that there are a strong discussion on UX forums about how toggle switches are confusing. The main point of confusion is: the label represent the current status or the status the control will toggle to when activated?

Just thinking, maybe this is the reason that the entire list is so confusing to me?

I was not aware that clicking on the switch toggles it and also change its color. I simply never didn't that. The first time I saw the toggles after updating the module I found them so confusing that I immediately went to setting trying to find a way to turn them off (found it -- thanks). But IMHO, this 5th state just make things yet more confusing.

Well, maybe it's me. Who knows. I am not pretending to be an UX expert -- I am not. But I struggled on the modules page full of toggles, and thought that maybe this might happen to others too.

As of the immediate action argument, it is certainly is doable. But what we should question is: should all module dependencies be enabled when we toggle the switch on with no question? Definitively no. But should we present a dialog box so that the admin can confirm the action? Certainly we can do this... but this defeat the immediate action a toggle switch is trying to represent, doesn't it?

(BTW: As a matter of personal preference, I hate immediate action checkboxes/radiobuttons. I think it is very unfortunate that they are of so widespread use. The reason is that it is difficult, maybe impossible, to undo or tell the previous state. "Oh heck, was this firewall rule enabled or not when I opened the dialog? Let's cancel... oh no, wheres the fine cancel button?". Been there, done that.)

Well, personal preferences aside, I would recommend that you leave this issue open for some time, say, 4 weeks, so that other users, and not just you an me, can debate.

greenSkin’s picture

Status: Closed (works as designed) » Active

Certainly, can leave this as active to help other eyes find it and contribute to the debate. ;)

Robert_T’s picture

I just updated this module from 7.x-1.8 to 7.x-2.0. After seeing the very confusing slide buttons, I immediately went to the issues queue to see if there was a patch to revert the controls to the familiar checkboxes. Thankfully, I found this thread which hinted that there was a settings page. I unchecked the "Use switch instead of checkbox" and all is well again.

Count me as one who finds the slide buttons very difficult to understand. The slide position and the positioning of the labeling are not intuitive. On a positive note, I did find the color coding to be useful.

fmantov’s picture

Hello,

Could you please explain me in one phrase what is a GREY ON switch button?
I have (look attach picture) location_cck enabled with all requirement OK but still in gray and not in green.

Thank you

greenSkin’s picture

@fmantov The grayed out switch signifies it is locked in that position. This is the same has a disabled checkbox that is checked. Drupal locks modules ON if there are other modules enabled that depend on that module (these are listed in the "required by" listing for the module). On a similar note, Drupal locks modules OFF if they require modules that aren't available.

For your Location CCK module, it is locked in the ON position because it is enabled and there is another module enabled that requires Location CCK. Similarly, Location CCK requires the Location module which means you will find that module also locked in the ON position.

CL-PSL’s picture

I agree that the switch is far less clear, and the default should be checkboxes.

Along with the UX issues outlined above, a disabled checkbox is clearly on or off because the check can be seen in either case. The disabled/locked switches (and this may depend on your admin theme) all look the same - they just have the switch in a different position.

Yes, the color does make it jump out more, but in my case with disabled switches, the color was not visible.

Also, scan your eye down a long list of checkboxes vs. a long list of switches with different positions and colors. I think it's hard to argue that switches are more clear. I think the “label as current status vs. label as switched status” issue is reason enough to default to checkboxes.

flaviovs’s picture

IMHO, it is none of any module business to change the visual of its own UX elements, because it may cause inconsistencies and other problems.

For example, other similar UX elements in the site (e.g. checkboxes on the permissions page) don't not change, if you do this -- and you introduce an inconsistency.

Also, if the admin install a module/theme that purposely change all checkboxes on the Drupal install to switches, then there is a high chance of the other checkboxes to use a different visual. Another type of inconsistency.

But in this last scenario, inconsistencies are not your worst enemy. Having separate code changing elements may cause a conflict that can wreak havoc your forms (in the case of this module, it will OMG wreak havoc your modules form).

lilifrancklyn’s picture

Why can't we explain the color coding at the top of the module page? This would be so easy and convenient.

Leeteq’s picture

Version: 7.x-2.0 » 7.x-2.x-dev

Personally, I think that the switch is better than checkboxes, and should be the default, however, it seems clear that the fact that this module comes with a settings page with many useful options, is easily eluded.
IMO, that settings page should be made (more) available as a gray tab link along the top, beside the "uninstall" etc. other tabs.

aubjr_drupal’s picture

I'm not a fan of the switches in 2.0 either. The checkboxes are much more concise and easy to understand than what 2.0 provides.

To be fair, however, it may just be the theming of the switch in this case.

alex.skrypnyk’s picture

Ok, so firstly, I did not even know that you could disable switches on the settings page for this module because I did not even know that such settings page exists. It would be nice to have some kind of indication that there are settings for this module.

Secondly, switches are not the most understood UX elements simply because they are not physical elements that every person saw in their life: same as electricity sockets, light switches (the most commonly used switches) differ from country-to-country. For me personally, the state of this switch is never clear as in Eastern European countries (where I'm originally from) the switches markings are written outside of the the switch elements, so you usually move the toggle _towards_ a side where the marking is specified. This is visually totally opposite to how the switches in this module show state.

smustgrave’s picture

Status: Active » Closed (outdated)

With D10 now out going to putting all the focus on the 4.x version of this
module supporting D9 + D10.

Will keep an on the 7.x-2.x branch for reviews but no active work will
probably happen