Re: changing the default semantics of the meter element

Hi Francis, 

I am cc’ing Steve Faulkner, the editor of the ARIA in HTML spec. 

ARIA had the progressbar role well before there was a <progress> or <meter> element. Progress bars are used extensively. So, no we will not be changing the progress bar role. That said, in this week’s meeting with the web platform working group, and specifically web components, we have been asked to create roles for each HTML element in ARIA 2.0. We can definitely separate out a meter role from a progressbar. 

You should know that the mapping that exists in the HTML-AAM for <meter> refers to the OS platform specific progress bar mapping and not the ARIA mapping specifically. With ARIA 2.0 and a future version of the HTML-AAM and the ARIA in HTML specification we can definitely modify the HTML-AAM mapping of <meter> to a new ARIA meter role mapping.  This would require new OS accessibility API definitions for the <meter> element to which ARIA can map. Currently, they do not exist which is why I believe that ARIA in HTML maps to a progressbar (closest fit). 

Would that address your issues? Steve, any comments?

Rich

> On Sep 18, 2016, at 4:50 PM, Storr, Francis <francis.storr@intel.com> wrote:
> 
> Hi, all
>  
> I’d like to discuss the default ARIA semantics for the <meter> element, which I don’t believe is correct.
>  
> I was recently usability testing a design with a screen reader user. In the design I’d marked up a rating out of five using the <meter> element which, according to the HTML spec (http://w3c.github.io/html/sec-forms.html#the-meter-element <http://w3c.github.io/html/sec-forms.html#the-meter-element>), is the correct thing to do. Note that the HTML spec calls out that “the meter element should not be used to indicate progress (as in a progress bar). For that role, HTML provides a separate progress element”.
>  
> The user I was testing with was confused when his screen reader announced the meter element as a progress indicator, which is isn’t. That’s the job of the HTML <progress> element. Seemingly, the only way I can fix this is reduce the semantics of the code to remove the <meter> element, which is less that optimal.
>  
> According to the ARIA In HTML document (http://w3c.github.io/html-aria/#docconformance) <http://w3c.github.io/html-aria/#docconformance)> the default implicit ARIA semantics for the <meter> element is the progressbar role which is defined as “A progressbar indicates that the user's request has been received and the application is making progress toward completing the requested action.” (https://www.w3.org/TR/wai-aria/roles#progressbar) <http://w3c.github.io/html-aria/#index-aria-progressbar)> which is not what the <meter> element is for. Again, that’s the role of the <progress> element. Looking at an old HTML5doctor post from 2009 (http://html5doctor.com/measure-up-with-the-meter-tag/ <http://html5doctor.com/measure-up-with-the-meter-tag/>), Ian Hickson states in the comments that “The main reason it’s in the spec is to give people a reason to not abuse <progress> for gauges (<progress> is the element for progress bars)”. By giving the <meter> element a default role of “progressbar” ARIA is abusing the <progress> element.
>  
> There doesn’t appear to be a good existing alternative role for the <meter> element. Could the current default progressbar role be removed to lessen confusion and bring ARIA in line with the HTML spec?
>  
> Regards
>  
> Francis
> — 
> Francis Storr
> Lead Designer, Software Accessibility Program
> Information Technology Chair for the Intel Diverse Abilities Network.
>  
>  
>  
>  

Received on Tuesday, 20 September 2016 10:11:02 UTC