I've been asked to create a design which uses sliders to allow the user to enter numerical values. Although (in my view) these are not appropriate, unfortunately my arguments for alternatives have been in vain! I'm therefore looking to understand if any research has been done to establish what a reasonable minimum slider gradiant is. So on a screen with (say) 800px width, how many px should be between each slider position? I'm not aware of any research in this area, and would appreciate being pointed in the direction of anything or hearing other people's experiences
-
1About how precise do you need to be? What are reasonable min/max levels?– ZeldaCommented Oct 26, 2012 at 15:39
-
Ben - that's kind of my point about not using sliders - unfortunately I've been more or less told to. The question is about how many pixels is reasonable for a single slider movement rather than what each movement needs. Assume it's an able-bodied person with no movement impairment, to simplify matters.– PeterCommented Oct 26, 2012 at 16:38
-
I recognize the constraint, but those factors are still important for deciding how you design the slider tself– ZeldaCommented Oct 26, 2012 at 18:10
-
Do you have any constraints on the number at all, eg. between 0 and some upper bound, or is it completely open? Even if it is completely open, is there some commonly-used range? (You could, in theory, have a non-linear slider that goes from 0 to infinity or -inf to +inf, but that may not be usable. But could actually appropriate for some scientific domains...)– BrendanMcKCommented Oct 26, 2012 at 21:11
-
Part of my reason for asking is to get more arguments against doing this (besides the motor control issues, lack of precision, ease of data entry and screen clutter arguments!). I have about 400px to display sliders. One of the values I've been asked to capture is a sum of money, which can be up to 100k. At 1px per unit, that's $250 per pixel. BUT: 1px is too small, and if I can present evidence that the smallest reasonable slider movement is, say, 10px, then a single movement becomes $2500 - which may help to change the approach.– PeterCommented Oct 27, 2012 at 18:31
3 Answers
Sliders are bad for precision over a large range, but great for getting in the right ball-park. Spinboxes are great for precision, but bad for making big changes. Would it be an option to combine a splitter and a spinbox? That way, you can use the slider to get in the right range, and the spinbox to fine-tune the selected value.
download bmml source – Wireframes created with Balsamiq Mockups
It sounds like you might be better served with a seamless slider that does not have any pre-configured steps at all. In other words, the bar would smoothly move pixel-by-pixel rather than snapping from step to step. For example:
If part of the requirement is that you must display individual steps, then typically I would determine how wide the space for the UI control should be (you mentioned 800px) and divide it based on the minimum step value the user should be able to set (e.g. only whole numbers, 1-10, which would give me 100px in between each step).
I would recommend at least 5-10px space between each step -- otherwise you would effectively create a seamless slider in all but name.
-
Note that even a pixel-by-pixel slide is step-by-step. The steps just coincide with the size of a pixel.– AndréCommented Oct 29, 2012 at 9:17
Ultimately, you need a good argument to push back on sliders. Sliders are notoriously bad for choosing a value in precise value in a large continuum. For instance, to select a value with a precision of 1 in a space of 800, for any screen resolution the task of pointing the cursor alone would be daunting. Look-up Fitz Law to do your own approximation of how much time it would take a user to achieve this task. It would be much easier to set the value manually in a text box.
If you really need a slider, I would recommend using some kind of trick like having snapping values when the mouse has a certain speed. In pointing tasks, the user slows down when he is approaching his target, and is slow in the most precise phase of the pointing. Other tricks like OrthoZoom may be able to help some, but it becomes really fancy.