Open Bug 1632963 Opened 4 years ago Updated 4 years ago

Fire AtkTable "row-reordered" or "column-reordered" when aria-sort value changes

Categories

(Core :: Disability Access APIs, defect, P3)

defect

Tracking

()

People

(Reporter: jdiggs, Unassigned)

References

(Blocks 1 open bug)

Details

Steps to reproduce:

  1. Load https://w3c.github.io/aria-practices/examples/grid/dataGrids.html#ex2_label
  2. Launch Accerciser and use its event monitor to watch for object:row-reordered
  3. 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:

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.

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.

Priority: -- → P3

There are two ways we could fix this:

  1. 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.
  2. 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.

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

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

Severity: -- → S4
You need to log in before you can comment on or make changes to this bug.