Fire name/description change event when aria-labelledby/describedby content changes
Categories
(Core :: Disability Access APIs, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox87 | --- | fixed |
People
(Reporter: surkov, Assigned: Jamie)
References
(Blocks 2 open bugs)
Details
(Keywords: papercut, parity-chrome)
Attachments
(5 files)
Our AT's want to get name change event when name change is changed with one exception they don't need name change event if it's calculated from subtree.
Reporter | ||
Comment 1•14 years ago
|
||
there is sub bug 507559 to fire name change events for window title changes.
Comment 3•9 years ago
|
||
Hi, can this issue be fixed recently?
Reporter | ||
Comment 4•9 years ago
|
||
(In reply to Xiao Yong Li from comment #3) > Hi, can this issue be fixed recently? what do you mean?
Comment 5•9 years ago
|
||
Our product is under accessibility certification process, Firefox doesn't fire a name change event and thus JAWS doesn't read the changed name on the button of our widget. If this issue can be fixed before release date (July 30th) we can declare our widget accessibility compliant, otherwise we need to file a deviation which means our widget is not completely accessible.
Reporter | ||
Comment 6•9 years ago
|
||
this bug is kind of generic and making a complete fix should regress our performance. Do you have use case?
Comment 7•9 years ago
|
||
We use dojo titlePane, this use case and problem are similar with bug#470082: https://bugzilla.mozilla.org/show_bug.cgi?id=470082.
Reporter | ||
Comment 8•9 years ago
|
||
(In reply to Xiao Yong Li from comment #7) > We use dojo titlePane, this use case and problem are similar with > bug#470082: https://bugzilla.mozilla.org/show_bug.cgi?id=470082. can you provide URL or attach a test case?
Comment 9•9 years ago
|
||
This is reference guide of dijit.TitlePane of dojo 1.8:http://dojotoolkit.org/reference-guide/1.8/dijit/TitlePane.html#programmatic-example Run any example and click the header of TitlePane. When a TitlePane is activated to open or close the associated panel the accessible name is changed, i.e. the prefix of title is a '+' if the pane is closed and '-' if the pane is open. However Firefox doesn't fire a name change event and thus JAWS doesn't read the new name on the button.
Reporter | ||
Comment 10•9 years ago
|
||
I can see accessible name like "I'm a TitlePanel too" and it's not changed at all. So the problem seems to be not about eventing. Does it what you see too?
Comment 11•9 years ago
|
||
The expand and collapse status marks ("+" and "-") changes alternately whenever the title being pressed. And these marks are inside a WAI-ARIA "button" role, so the accessible name of this "button" changes too.But Firefox doesn't fire a name change event and thus JAWS doesn't read the new name on the button.
Assignee | ||
Comment 12•4 years ago
|
||
This is affecting people in the real world. See NVDA issues https://github.com/nvaccess/nvda/issues/9387 https://github.com/nvaccess/nvda/issues/1626. This is a problem for the Facebook Notifications button (and the fact that this misbehaves was one reason for an NVDA performance improvement being backed out); see https://github.com/nvaccess/nvda/pull/9114#issuecomment-467665494. A similar problem applies to aria-describedby; see https://github.com/nvaccess/nvda/issues/9400.
Both of these test cases demonstrate the problem and work in Chrome, but fail in Firefox:
Label change (pressing the button should fire a name change event):
data:text/html,<div id="label">a</div><button aria-labelledby="label" onClick="label.textContent = 'b';">foo</button>
Description change (pressing the button should fire a description change event):
data:text/html,<div id="desc">a</div><button aria-describedby="desc" onClick="desc.textContent = 'b';">label</button>
In both cases, NVDA's virtual buffer does not update with the correct info because the appropriate events aren't fired.
Reporter | ||
Comment 13•4 years ago
|
||
Bug title feels too generic, because it's difficult to implement name change events whenever name is changed, but supporting aria-labelledby/described_by is doable. So I would change bug summary to reflect that. Regarding to implementation itself, it seems HasNameDependentParent logic should be extended to handle ID-referencing attributes.
Assignee | ||
Comment 14•4 years ago
|
||
Agreed. Thanks heaps for the implementation hint, Alex!
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 15•2 years ago
|
||
Assignee | ||
Comment 16•2 years ago
|
||
HasNameDependent is now set on an Accessible (and thus its descendants) which has A LABEL_FOR relation.
When text mutations occur on such an Accessible, EventQueue::PushNameChange now queues a name change for the Accessible being labelled.
Assignee | ||
Comment 17•2 years ago
|
||
This uses a similar approach to HasNameDependent, introducing a new HasDescriptionDependent.
However, we don't fire events on ancestors, since a description is never computed from an Accessible's own subtree without an explicit described by relation.
Assignee | ||
Comment 18•2 years ago
|
||
Assignee | ||
Comment 19•2 years ago
|
||
Assignee | ||
Comment 20•2 years ago
|
||
Comment 21•2 years ago
|
||
Pushed by jteh@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/12e73301de8f part 1: Rename HasNameDependentParent to HasNameDependent due to upcoming broader usage. r=eeejay https://hg.mozilla.org/integration/autoland/rev/24847760402f part 2: When an Accessible mutates, fire name change events on an Accessible labelled by it (or an ancestor thereof) via a relation. r=eeejay https://hg.mozilla.org/integration/autoland/rev/cefb1c1d3f5e part 3: When an Accessible mutates, fire description change events on an Accessible described by it (or an ancestor thereof) via a relation. r=eeejay https://hg.mozilla.org/integration/autoland/rev/2a3f24bdb8e2 part 4: Add a PivotRule to match any local Accessible in the same document. r=eeejay https://hg.mozilla.org/integration/autoland/rev/2c9004c95a7a part 5: When aria-labell/describedby is set, set HasName/DescriptionDependent on the target subtree. r=eeejay
Comment 22•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/12e73301de8f
https://hg.mozilla.org/mozilla-central/rev/24847760402f
https://hg.mozilla.org/mozilla-central/rev/cefb1c1d3f5e
https://hg.mozilla.org/mozilla-central/rev/2a3f24bdb8e2
https://hg.mozilla.org/mozilla-central/rev/2c9004c95a7a
Description
•