The accessibility notifications that a new accessible node was focused in the page are fired from the ChromeClientImpl::focus() method. This method is currently wrongly invoked every time the focus change in the page, it should only be invoked when the containing Widget gets the focus. Therefore the accessibility notifications should be fired from the more appropriate ChromeClientImpl::focusedNodeChanged().
Created attachment 57171 [details] First version of the patch
Comment on attachment 57171 [details] First version of the patch WebKit/chromium/src/ChromeClientImpl.cpp:195 + WebURL focusUrl; nit: webkit style is focusURL (see the Names section at http://webkit.org/coding/coding-style.html). WebKit/chromium/src/ChromeClientImpl.cpp:201 + hitTest.setURLElement(reinterpret_cast<Element*>(node)); nit: this should use static_cast since an Element "is a" Node. WebKit/chromium/src/ChromeClientImpl.cpp:211 + ASSERT_NOT_REACHED(); nit: indent by 4 spaces otherwise, LGTM. please correct those nits, and then good to commit.
Created attachment 57552 [details] Applied fishd suggested changes
Created attachment 57568 [details] Prevent a crasher when NULL passed to ChromeClientImpl::focusedNodeChanged()
Comment on attachment 57171 [details] First version of the patch Cleared Darin Fisher's review+ from obsolete attachment 57171 [details] so that this bug does not appear in http://webkit.org/pending-commit.
Comment on attachment 57568 [details] Prevent a crasher when NULL passed to ChromeClientImpl::focusedNodeChanged() this makes sense.
Comment on attachment 57568 [details] Prevent a crasher when NULL passed to ChromeClientImpl::focusedNodeChanged() Clearing flags on attachment: 57568 Committed r60695: <http://trac.webkit.org/changeset/60695>
All reviewed patches have been landed. Closing bug.