ValueChangeRequest events and sliders

warning: highly speculative material follows.

The following is my understanding of the problem raised by James at the
meeting on Thursday.

The basic scenario
<div role="slider" aria-valuenow="0">
  <!-- The thumb of the slider -->
  <div>[Image goes here]</div>
  <!-- Slider track -->
  <div>[another image, positioned appropriately]</div>
</div> <!-- slider -->

The JavaScript and CSS are of course omitted. James supposes that we add a
ValueChangeRequest event listener, for example, to the outermost DIV element
or one of its ancestors in the DOM tree.

If the user tries to manipulate the slider via touch or mouse events, the user
agent can't determine (1) the coordinates that correspond to the minimum
value; (2) the coordinates of the maximum value; or (3) the step size by which
to change the value as the slider is moved within the range. These data should
be sufficient in typical cases to implement the visual interface of the
control. Thus one solution (which I understand to be along lines suggested by
Rich) would be to define an attribute that gives a reference to the
manipulable element (slider thumb in this instance) and provides the necessary
data for a linear manipulation.

Problem: this would only work for sliders, and perhaps not even all of these.
Consider a knob that the user rotates by touch, or one that has a
hand/indicator similar to a clock face. Here we have a circular path that
corresponds to value change events, and clearly the proposal breaks down at
this point.

Perhaps what is required, then, is a callback function for calculating values
based on movements, i.e., formalizing the kind of solution that James
suggested without actually invoking move events on the manipulable component
of the control. Or maybe James' proposal is the best we have on offer after
all.

Received on Saturday, 22 February 2014 04:29:05 UTC