Bug 68466

Summary: Accessibility: Children changed notification fired on wrong node for visibility change
Product: WebKit Reporter: Dominic Mazzoni <dmazzoni>
Component: AccessibilityAssignee: Nobody <webkit-unassigned>
Status: UNCONFIRMED    
Severity: Normal CC: aboxhall, cfleizach, davidbarr, ericliang, jcraig, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Dominic Mazzoni
Reported 2011-09-20 13:36:55 PDT
If I have a parent node P and I insert a child C, I get the children changed notification on the parent P, as I'd expect. However, if I then make C invisible, or subsequently make it visible again, I get a children changed notification on C, which seems like a bug. On Windows we really need to have the notification on P, and it seems like that'd be the more logical thing to do in WebCore. I haven't yet tested to see if on the Mac VoiceOver is actually expecting the notification on C, or if it would work equally well on P, or if this is actually a bug under some circumstances.
Attachments
chris fleizach
Comment 1 2011-09-20 14:55:27 PDT
yes that does seem like a bug. it seems strange that it would happen since i believe all of these node destroyed methods operate on renderer()->parent()
Dominic Mazzoni
Comment 2 2011-09-20 14:58:37 PDT
(In reply to comment #1) > yes that does seem like a bug. it seems strange that it would happen since i believe all of these node destroyed methods operate on renderer()->parent() To clarify, this was setting visibility:hidden, not display:none. I think that objects with visibility:hidden still have render objects associated with them because they take up space on the page, so that may be the difference. I think you're right, when you actually delete a node, or set a node to display:none which deletes the render object, the notification is correct.
chris fleizach
Comment 3 2011-09-20 14:59:47 PDT
(In reply to comment #2) > (In reply to comment #1) > > yes that does seem like a bug. it seems strange that it would happen since i believe all of these node destroyed methods operate on renderer()->parent() > > To clarify, this was setting visibility:hidden, not display:none. I think that objects with visibility:hidden still have render objects associated with them because they take up space on the page, so that may be the difference. I think you're right, when you actually delete a node, or set a node to display:none which deletes the render object, the notification is correct. With that in mind, I can see how this is probably doing the wrong thing
Radar WebKit Bug Importer
Comment 4 2013-12-20 11:18:02 PST
Note You need to log in before you can comment on or make changes to this bug.