Should ARIA ranges have value formatting defined? Also, spinbutton should be removed.

slider is defined as, "A user input where the user selects a value  
from within a given range." The value of aria-valuenow is a decimal,  
defined as "a real number, represented as a decimal." Furthermore, the  
user interface hints in the spec imply that the value will always be  
set by the web application (when the user presses the arrow keys), and  
that the value should never be set by the user agent or assistive  
technology. From the perspective of a screen reader user, what's the  
functional difference between a slider and a spinbutton if they both  
have 1, 2, and 3 as potential values? None, as far as I can tell.  
Finally, the resulting functionally identical to that of a listbox;  
the only difference is semantics.

listbox is defined as, "A widget that allows the user to select one or  
more items from a list of choices." Similarly, spinbutton, a type of  
range, is defined as, "A form of range that expects a user to select  
from amongst discrete choices." Therefore, the only semantic  
difference in ARIA seems to be that a range is just a listbox whose  
choices are in some form of numerical order.

I understand the semantic benefit of alerting the use to the fact that  
a range is ordered selections, but since the user cannot set an  
arbitrary value on any ARIA range widget, I propose both of the  
following changes. They are related, so I am listing them together,  
but they are not interdependent, so each proposal should be considered  

1. Remove the spinbutton role, because the functionality and semantics  
are already covered by slider and listbox.

2. Allow the the aria-valuenow property of range widgets to be set  
directly by the user agent or assistive technology. This will allow  
range widgets to be more in line with the behavior of desktop range  
widgets, but would require a value format property (and potentially an  
increment value).

For example, if the range were to increment a currency amount from 0  
to 100 US dollars, the value formation could be defined as "$###.##"  
with an aria-valuemin="0" and aria-valuemax="100", and if the range  
were to represent a date from December 10, 2008 through January 5,  
2009, the value format could be "yyyy-mm-dd" with an aria- 
valuemin="2008-12-10" and aria-valuemax="2009-01-05". There may also  
need to some hint of increment value if it cannot be determined from  
the value format or other range data.

Thoughts? Comments?

Received on Monday, 8 December 2008 07:01:22 UTC