Slider


 

type: widget

release: 1.5

status: released

documentation: http://api.jqueryui.com/slider/

demo: http://jqueryui.com/slider/

 

 


 

1 - Description:

 

A slider allows a user choose from a continuous range of allowable values presented in a visual continuum. The simplest slider (G1) allows for a single point to be selected. A range of values can be selected by providing two sliders (G2) or having a combination of a slider with a fixed maximum (G3) or minimum (G4) value. Each of these slider types can also be presented hortzintally (G1-4) or vertically (G5). These should be able to be embedded into a page (G1-5, G8) or inserted into menus as small UI 'helpers' for form inputs or embedded controls (G6-7).

 

In the standard ThemeRoller slider, there is unfilled "track", one or two square sliders and a filled line that connects multiple sliders. We should provide a means to use the slider with a custom background image (G8).

 

Sliders should be able to be created by progressive enhancement techniques by scraping the values from a set of radio buttons, select options, unordered list or other html structures. The html > data utility will be instrumental for this. For a detailed example of a PE slider with axis labels and tooltip features, see Filament Group's example:

http://www.filamentgroup.com/lab/progressive_enhancement_convert_select_box_to_accessible_jquery_ui_slider/

 

 

Configuration options should include:

 

There is an existing jQuery UI slider but it only supports horizontal sliders. PE support, axis labels and groupings, drag tooltips and other important features need to be added.

http://docs.jquery.com/UI/Slider

 

 


 

2 - Visual Design:

 

 


 

 

3 - Functional Specifications/Requirements:

 

Options/Methods/Callbacks

One handle slider (default)

 

Specifications

Changes from 1.5, 1.6rc2 in refactor

 


 

4 - Markup & Style:

 

4.4 Accessibility recommendation

 

    See keyboard support discussion.

The slider requires the following ARIA attributes:

 

For range sliders, one handle provides a boundary for the other handle (as range sliders handles can't pass each other). Because of this, changes to the first handle (representing the lower value of the range) need to trigger an update to  the "aria-valuemin" value of the second handle (representing the upper value of the range. Similarly, changes to the second handle need to trigger an update to the "aria-valuemax" value of the first handle.

 

Each handle needs to have an accessible name. This name can be set using either:

Note that only the last option is really useful for sighted keyboard users. For the other options, redundant visual text will have to be added for a sighted user to understand what the handle represents.

Regardless of how the accessible name is implemented, the developer needs to be able to specify it through widget parameters.

 

Handles are currently implemented as <a href="#">, which is less than semantic and triggers a statusbar change.  This should be changed to <a tabindex=0> as soon as possible, probably in 1.9.0

 


 

5 - Latest version of plugin:

 

http://view.jqueryui.com/master/demos/slider/default.html

 


 

6 - Open issues being discussed

 

none