Closed Bug 1104947 Opened 6 years ago Closed 2 years ago

Accessibility mapping for aria-current

Categories

(Core :: Disability Access APIs, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla65
Tracking Status
firefox65 --- fixed

People

(Reporter: davidb, Assigned: MarcoZ)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Joanie/ATK is mapping to ATK_STATE_ACTIVE. What should we do for IA2?
I can't find any documentation about aria-current, even in the 1.1 draft. Link or info please?
I'm not sure whether there's a final wording but discussion is here http://lists.w3.org/Archives/Public/public-pfwg/2014Nov/0039.html. To make long story short aria-current (boolean) is used to mark the element whose related content is visible, for example, a link within a navigation block is current when its target is shown.
Blocks: aria
Summary: ARIA mapping for aria-current → Accessibility mapping for aria-current
If aria-current and aria-activedescendant are different things then IA2 ACTIVE state cannot be used since it's for active element in the focusable container, and proposed ATK change might be unfortunate in terms of IA2 compatibility.
Joseph thinks aria-current and aria-activedescendant can be used together and used for separate stuff [1] so I think ATK_STATE_ACTIVE is rather unfortunate mapping [2].

[1] http://lists.w3.org/Archives/Public/public-pfwg/2014Nov/0287.html
[2] http://lists.w3.org/Archives/Public/public-pfwg/2014Nov/0289.html
The definition for aria-current is now reasonably stable. It's in the draft here:
http://www.w3.org/TR/wai-aria-1.1/#aria-current
If you need an AT to test with, JAWS 18 beta now supports aria-current.
FYI, NVDA now supports aria-current: https://github.com/nvaccess/nvda/issues/6358
I will take this and implement according to the WAI-ARIA 1.1 CoreAM spec: https://www.w3.org/TR/core-aam-1.1/

1. aria-current with a recognized value will map to the appropriate object attribute, plus ATK active state and Mac AXARIACurrent.
2. aria-current with an unrecognized value will map as if it had specified "true".
3. aria-current with false or undefined will not be mapped.

Part of the implementation is already there, the additions will be to recognize the known token values and map unknown values to true.

This will also fix bug 1365904.
Assignee: surkov.alexander → mzehe
Blocks: 1365904
Status: NEW → ASSIGNED
(In reply to Marco Zehe (:MarcoZ) from comment #9)
> 1. aria-current with a recognized value will map to the appropriate object
> attribute, plus ATK active state and Mac AXARIACurrent.

Turns out the ATK bit has been implemented in bug 1355921.
We already mapped aria-current to the correct attribute, but we did so unconditionally unless the value was false or undefined. However, if the value was an invalid token, it would not be mapped to "true" as per spec. Now, any bogus value for aria-current will be mapped as if the author had specified "true".

This required a change in the way the ARIA attribute iterator collects attributes. It now checks against a known set of token values before mapping the attribute values. To be consistent, other ARIA attributes now also have their tokenized value sets checked.

In addition, this patch adds aria-current to the known set of attributes with rules, which causes NSAccessibilityService::MustBeAccessible to make sure an accessible gets created if aria-current is set, even if that accessible is a html:span element. This fixes bug 1365904.
Pushed by mzehe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a6493a0b53a3
Complete the accessibility mapping for aria-current, r=Jamie
https://hg.mozilla.org/mozilla-central/rev/a6493a0b53a3
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
You need to log in before you can comment on or make changes to this bug.