Fire AtkTable "row-reordered" or "column-reordered" when aria-sort value changes
Categories
(Core :: Disability Access APIs, defect, P3)
Tracking
()
People
(Reporter: jdiggs, Unassigned)
References
(Blocks 1 open bug)
Details
Steps to reproduce:
- Load https://w3c.github.io/aria-practices/examples/grid/dataGrids.html#ex2_label
- Launch Accerciser and use its event monitor to watch for object:row-reordered
- Click on "Date" to toggle the sort order of the rows
Expected result: An event would be emitted.
Actual result: An event is not emitted.
Impact: Orca cannot inform the user with the sort order changed.
Notes:
-
A similar event should be emitted when column order changes as a consequence of the aria-sort value being changed on the row header
-
At the time of filing this, the Atk docs seem broken. Here's docs from teh wayback machine: https://web.archive.org/web/20180104223723/https://developer.gnome.org/atk/stable/AtkTable.html#AtkTable-column-reordered
-
It appears that there is not an AtkObject signal to be emitted when the object's attributes change. We should probably add that to ATK. (IA2 has it)
Comment 1•5 years ago
|
||
FYI: Works correctly on Windows. I see under my finger on the braille display how the button label changes from "Sort ascending" to "sort descending". And when just using table navigation after this, the new order is immediately present in NVDA's virtual buffer.
Reporter | ||
Comment 2•5 years ago
|
||
Yeah, the impression I get is that IA2 has an event when object attributes change. ATK does not have that -- at least not yet. So Orca cannot listen for that non-existent event. Orca is listening for the table reordered event, but Gecko isn't emitting those.
Updated•5 years ago
|
Comment 3•5 years ago
|
||
There are two ways we could fix this:
- Create new Gecko events for row/column reorder.
- In this case, we'd stop firing EVENT_OBJECT_ATTRIBUTE_CHANGED for sort, but map these new events to IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED on Windows.
- Map Gecko EVENT_OBJECT_ATTRIBUTE_CHANGED with attribute "sort" to the relevant ATK event.
- When we send these events from the content process, we don't send the attribute name. So, we'd need to make that happen: introduce PDocAccessible::ObjectAttrChangedEvent, etc.
- We'd have to determine the correct ATK event based on the role.
Comment 4•5 years ago
|
||
Joanie, I'm guessing you'd expect this to be fired on the table, not the header? Right now, Gecko's attribute change event is fired on the header (where aria-sort changed).
Reporter | ||
Comment 5•5 years ago
|
||
(In reply to James Teh [:Jamie] from comment #4)
Joanie, I'm guessing you'd expect this to be fired on the table, not the header?
Correct. This signal is specific to AtkTable.
Updated•5 years ago
|
Description
•