Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mappings for <meter> should be different from <progress> #2

Closed
jasonkiss opened this issue Oct 11, 2016 · 19 comments
Closed

Mappings for <meter> should be different from <progress> #2

jasonkiss opened this issue Oct 11, 2016 · 19 comments
Assignees
Milestone

Comments

@jasonkiss
Copy link
Contributor

From ARIA issue 451 raised by @fstorr.

The element has an incorrect default ARIA role of progressbar which causes some assistive technology (I've tested in VoiceOver on OSX 10.11) to announce the element as a "progress indicator" and the value of the element as a percentage rather than the defined value (for example "80%" instead of "4 out of 5").

The HTML AAM specifies no corresponding ARIA role for meter, but it looks like the separate mappings for meter in MSAA+IA2, UIA, and AX reflect the progressbar role and progress element, which isn't correct.

@asurkov, the definition for ROLE_SYSTEM_PROGRESSBAR is wrong for meter. The meter element has semantics distinct from progressbar. Any suggestions? I note that ATK is using ATK_ROLE_LEVEL_BAR (as recommended in ARIA issue #150), which is certainly closer to the semantic for meter, but IA2 doesn't have a similar role.

@cyns, you raised the question of UIA mapping for meter in ARIA issue #344. What's there looks to be the same as the mapping for the progressbar role. How do you suggest UIA distinguish the meter and progress elements?

@cookiecrook, same question: the AX mappings for meter and progress elements are the same and don't reflect the different semantics. Is there a better role/roledescription for meter?

@asurkov
Copy link
Contributor

asurkov commented Oct 13, 2016

I think I agree that HTML5 progress and HTML5 meter have different semantics, I'd say that HTML5 progress is a special case of HTML5 meter concept, i.e. HTML5 progress is a meter that is used to track the progress.

I started IA2 thread on this issue [1].

[1] https://lists.linuxfoundation.org/pipermail/accessibility-ia2/2016-October/002198.html

@jasonkiss jasonkiss self-assigned this Oct 19, 2016
@cookiecrook
Copy link
Collaborator

I filed: https://webkit.org/b/164051

@LJWatson LJWatson added this to the WD for wide review milestone Jun 17, 2017
jasonkiss added a commit that referenced this issue Nov 30, 2017
Replaced incorrect mappings with ? to reflect that more data is needed.
@jasonkiss
Copy link
Contributor Author

Looks like mostly agreement that current mappings are wrong for MSAA+IA2, UIA, and AX. We need more information on what these mappings should be. In the meantime, I'm replacing (via 5ca8528) the incorrect mappings with '?' in the mapping table to indicate that more data on appropriate mappings is required.

@asurkov
Copy link
Contributor

asurkov commented Jan 31, 2018

pushed IA2 change ef13d52 for new IA2_ROLE_LEVEL_BAR (LinuxA11y/IAccessible2@0447f85)

jasonkiss added a commit that referenced this issue Feb 6, 2018
@jasonkiss
Copy link
Contributor Author

@cookiecrook has filed a bug for this for Webkit/AX.

UIA still maps meter to ProgressBar Control Type. @boggydigital: any plans to create new Control Type or map meter differently, given that it is not a progress bar?

@chaals
Copy link

chaals commented Feb 7, 2018

It is not that far off - a progress bar seems to be a specialised version of meter (fixed start value of zero, allows for no known values, is expected to be dynamic).

@joanmarie
Copy link
Contributor

@melanierichards: Could you please respond to the question @jasonkiss asked? Right now there are no mappings shown for your platform. And we want your platform filled out here so we can fill it out in the Core-AAM for our new meter role.

@melanierichards
Copy link
Contributor

@joanmarie @jasonkiss

Reporting on the current reality, the mappings in UIA are still:

Control Type: ProgressBar
Localized Control Type: meter
Control Pattern: RangeValue

I'm not previously tracking open plans to change the mapping or suggest a new Control Pattern so these mappings are stable for now, but I'll consider the original issue here and if there's any changes we can make or suggest on our platform.

@joanmarie
Copy link
Contributor

Thanks @melanierichards. Could you please do a pull request and then get @stevefaulkner or @scottaohara to review it? That will fill in the blank in their spec and then I'll just copy that for the new meter role in ARIA.

@joanmarie
Copy link
Contributor

#169 has the mappings for macOS. (Apple fixed their mappings in WebKit, so I used their new expectations to populate the HTML-AAM table.)

@scottaohara
Copy link
Member

Closing per merge of #169

Thank you again

@joanmarie
Copy link
Contributor

@scottaohara. You don't have the UIA mappings for meter; just a "?"
https://w3c.github.io/html-aam/#el-meter

@melanierichards said she'd do a pull request for her platform, so I didn't do that one; just macOS. Sorry!

@scottaohara
Copy link
Member

ah, sorry! i need more coffee...

@scottaohara scottaohara reopened this Feb 25, 2019
@melanierichards
Copy link
Contributor

Hi folks, apologies for the delay! Got a bit jammed up with my personal backlog. Just submitted PR #172.

@joanmarie @scottaohara

@scottaohara
Copy link
Member

Regarding the updates that have been done here, going to close this issue.

Once ARIA 1.2 is published and the meter role, among other new roles are added, we will need to address referencing those in HTML AAM. New issue for this incoming.

@stevefaulkner
Copy link
Contributor

stevefaulkner commented Aug 2, 2020

In chrome Version 84.0.4147.105 (Official Build) (64-bit) meter is exposed as progress bar in MSAA + iA2, expected Role: IA2_ROLE_LEVEL_BAR as per https://www.w3.org/TR/html-aam-1.0/#details-id-91 /cc @aleventhal

@aleventhal
Copy link
Collaborator

aleventhal commented Aug 13, 2020

@stevefaulkner correcting the mapping in Chrome unfortunately leads to a worse experience.
Using <p>Heat the oven to <meter min="200" max="500" value="350">350 degrees</meter></p>

Current Chrome, with incorrect mapping of ROLE_SYSTEM_PROGRESSBAR:
JAWS: [down arrow] Heat the oven to [down arrow] 350 meter
NVDA: [down arrow] Heat the oven to [down arrow] progress bar 350

Patched Chrome, with correct mapping of IA2_ROLE_LEVEL_BAR:
JAWS: [down arrow] Heat the oven to (another down arrow does not read the meter at all)
NVDA: [down arrow] Heat the oven to [down arrow] 350

Although one might argue that NVDA should not be calling it a progress bar, at least it's understandable.
Finally, I wonder how the screen reader should output the min and max. They seem relevant.

@aleventhal
Copy link
Collaborator

I feel like the text inside of the meter is more descriptive and is what should be read.
We should probably update the mapping to expose the inner text via the valuetext attribute on IA2/ATK and AXValueDescription for AX.

@JAWS-test
Copy link

I feel like the text inside of the meter is more descriptive and is what should be read.

See w3c/aria#1308

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests