Chromium Code Reviews
DescriptionSend AX focus changed events for modal dialog open/close
Otherwise, accessibility technology doesn't interact
well with modal <dialog>. For example, JAWS would continue
navigating through inert content after a modal is opened.
This patch makes the following changes:
1) Call AXObjectCache::handleFocusedUIElementChanged
from inertSubtreesChanged. This is necessary because a
focus event for some AX object id may have been queued up and
became invalid after throwing away the AX tree.
2) Call AXObjectCache::handleFocusedUIElementChanged
in Document::setFocusedElement even if m_focusedElement
is null. This is necessary because we set m_focusedElement
to null when a modal dialog opens, removing focus from the
previous focused element in CheckFocusedElementTask.
3) When AXObjectCache is about to send a focus changed
event on the docment, send one for the active modal dialog
instead. This is a bit of a workaround until the HTML spec bug
for dialogs and focus is resolved (http://crbug.com/298079).
It's necessary because JAWS seems to ignore the focus
event if it is for the document, for the purpose of refreshing
the AT tree.
No test because a layout test won't be able to test what
AX events are sent by Chrome.
BUG=324401, 304779
Patch Set 1 #Patch Set 2 : refactoring #
Total comments: 5
Messages
Total messages: 8 (0 generated)
|
||||||||||||||||||||||||||||||||||||||||||||||