IAccessible group information is not updated if an element is removed from a set with more than 2 items
Categories
(Core :: Disability Access APIs, defect, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox66 | --- | fixed |
People
(Reporter: derek.riemer, Assigned: MarcoZ)
References
(Blocks 1 open bug)
Details
Attachments
(2 files)
| Reporter | ||
Updated•7 years ago
|
Comment 1•7 years ago
|
||
Comment 2•7 years ago
|
||
Updated•7 years ago
|
| Assignee | ||
Comment 3•6 years ago
|
||
OK this is ... interesting. If I add a check to the if statement in https://dxr.mozilla.org/mozilla-central/source/accessible/base/AccGroupInfo.cpp#96 to check not only if the groupInfo for the (next) sibling is present but also if that is not dirty, removing the first list item in Derek's test case works. Also this enables Jamie's test case to work. But removing an item from the middle or end, this change does not cause an update of the setsize property. Also adding a check further up that file where the previous children are checked, to check whether that is also not dirty, does not fix this. Likewise, if I add a call to set the dirty flag on children in the Accessible::RemoveChild method, does not fix this.
| Assignee | ||
Comment 4•6 years ago
|
||
The reason was that our code assumed that if you had a, b, c, d as children, then removed b, c and d would be marked as having dirty group info, but a wouldn't. That is totally not true, since the removal of b changes the necessity for a to update its group info as well.
Got a working patch, now writing the test.
| Assignee | ||
Comment 5•6 years ago
|
||
Updated•6 years ago
|
Comment 7•6 years ago
|
||
| bugherder | ||
Description
•