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
|
|
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. |
||||
|
|
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. |
|||
|
|

