Skip to content

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

Closed

Description

@jasonkiss

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?

Activity

  1. asurkov commented on Oct 13, 2016

    @asurkov
    Contributor

    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

  2. self-assigned this
    on Oct 19, 2016
  3. cookiecrook commented on Oct 27, 2016

    @cookiecrook
    Collaborator
  4. added this to the milestone on Jun 17, 2017
  5. added a commit that references this issue on Nov 30, 2017
  6. jasonkiss commented on Nov 30, 2017

    @jasonkiss
    ContributorAuthor

    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.

  7. added a commit that references this issue on Jan 31, 2018
  8. asurkov commented on Jan 31, 2018

    @asurkov
    Contributor

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

  9. added a commit that references this issue on Feb 6, 2018
  10. jasonkiss commented on Feb 6, 2018

    @jasonkiss
    ContributorAuthor

    @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?

  11. chaals commented on Feb 7, 2018

    @chaals

    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).

  12. joanmarie commented on Feb 5, 2019

    @joanmarie
    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.

  13. melanierichards commented on Feb 5, 2019

    @melanierichards
    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.

  14. joanmarie commented on Feb 7, 2019

    @joanmarie
    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.

  15. joanmarie commented on Feb 25, 2019

    @joanmarie
    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.)

  16. scottaohara commented on Feb 25, 2019

    @scottaohara
    Member

    Closing per merge of #169

    Thank you again

  17. joanmarie commented on Feb 25, 2019

    @joanmarie
    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!

  18. scottaohara commented on Feb 25, 2019

    @scottaohara
    Member

    ah, sorry! i need more coffee...

  19. melanierichards commented on Feb 28, 2019

    @melanierichards
    Contributor

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

    @joanmarie @scottaohara

  20. scottaohara commented on Jul 24, 2019

    @scottaohara
    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.

  21. stevefaulkner commented on Aug 2, 2020

    @stevefaulkner
    Contributor

    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

  22. aleventhal commented on Aug 13, 2020

    @aleventhal
    Collaborator

    @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.

  23. aleventhal commented on Aug 13, 2020

    @aleventhal
    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.

  24. JAWS-test commented on Aug 13, 2020

    @JAWS-test

    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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions