mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 422744 - process a11y events caused by DOM events by target document, r=fer, a=blocking2.0Final+
This commit is contained in:
parent
13e7636df7
commit
b3c3197851
@ -355,6 +355,9 @@ nsRootAccessible::FireAccessibleFocusEvent(nsAccessible* aFocusAccessible,
|
||||
if (gLastFocusedNode == focusNode && !aForceEvent)
|
||||
return;
|
||||
|
||||
nsDocAccessible* focusDocument = focusAccessible->GetDocAccessible();
|
||||
NS_ASSERTION(focusDocument, "No document while accessible is in document?!");
|
||||
|
||||
gLastFocusedAccessiblesState = nsAccUtils::State(focusAccessible);
|
||||
|
||||
// Fire menu start/end events for ARIA menus.
|
||||
@ -373,7 +376,7 @@ nsRootAccessible::FireAccessibleFocusEvent(nsAccessible* aFocusAccessible,
|
||||
menuBarAccessible, aIsFromUserInput,
|
||||
AccEvent::eAllowDupes);
|
||||
if (menuStartEvent)
|
||||
FireDelayedAccessibleEvent(menuStartEvent);
|
||||
focusDocument->FireDelayedAccessibleEvent(menuStartEvent);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -384,7 +387,7 @@ nsRootAccessible::FireAccessibleFocusEvent(nsAccessible* aFocusAccessible,
|
||||
new AccEvent(nsIAccessibleEvent::EVENT_MENU_END, mCurrentARIAMenubar,
|
||||
aIsFromUserInput, AccEvent::eAllowDupes);
|
||||
if (menuEndEvent) {
|
||||
FireDelayedAccessibleEvent(menuEndEvent);
|
||||
focusDocument->FireDelayedAccessibleEvent(menuEndEvent);
|
||||
}
|
||||
mCurrentARIAMenubar = nsnull;
|
||||
}
|
||||
@ -395,9 +398,10 @@ nsRootAccessible::FireAccessibleFocusEvent(nsAccessible* aFocusAccessible,
|
||||
|
||||
// Coalesce focus events from the same document, because DOM focus event might
|
||||
// be fired for the document node and then for the focused DOM element.
|
||||
FireDelayedAccessibleEvent(nsIAccessibleEvent::EVENT_FOCUS,
|
||||
focusNode, AccEvent::eCoalesceFromSameDocument,
|
||||
aIsFromUserInput);
|
||||
focusDocument->FireDelayedAccessibleEvent(nsIAccessibleEvent::EVENT_FOCUS,
|
||||
focusNode,
|
||||
AccEvent::eCoalesceFromSameDocument,
|
||||
aIsFromUserInput);
|
||||
}
|
||||
|
||||
void
|
||||
@ -459,6 +463,9 @@ nsRootAccessible::HandleEvent(nsIDOMEvent* aEvent)
|
||||
if (!accessible)
|
||||
return NS_OK;
|
||||
|
||||
nsDocAccessible* targetDocument = accessible->GetDocAccessible();
|
||||
NS_ASSERTION(targetDocument, "No document while accessible is in document?!");
|
||||
|
||||
nsINode* targetNode = accessible->GetNode();
|
||||
nsIContent* targetContent = targetNode->IsElement() ?
|
||||
targetNode->AsElement() : nsnull;
|
||||
@ -692,8 +699,9 @@ nsRootAccessible::HandleEvent(nsIDOMEvent* aEvent)
|
||||
FireCurrentFocusEvent();
|
||||
}
|
||||
else if (eventType.EqualsLiteral("ValueChange")) {
|
||||
FireDelayedAccessibleEvent(nsIAccessibleEvent::EVENT_VALUE_CHANGE,
|
||||
targetNode, AccEvent::eRemoveDupes);
|
||||
targetDocument->
|
||||
FireDelayedAccessibleEvent(nsIAccessibleEvent::EVENT_VALUE_CHANGE,
|
||||
targetNode, AccEvent::eRemoveDupes);
|
||||
}
|
||||
#ifdef DEBUG_DRAGDROPSTART
|
||||
else if (eventType.EqualsLiteral("mouseover")) {
|
||||
|
@ -67,12 +67,11 @@
|
||||
{
|
||||
document.getElementById(this.ID).style.display = 'block';
|
||||
document.getElementById(this.ID).focus();
|
||||
todo(false, "Enable show event handling when bug 422744 is fixed.");
|
||||
}
|
||||
|
||||
this.eventSeq = [
|
||||
new invokerChecker(EVENT_FOCUS, this.DOMNode),
|
||||
// new invokerChecker(EVENT_SHOW, this.DOMNode)
|
||||
new invokerChecker(EVENT_SHOW, this.DOMNode),
|
||||
new invokerChecker(EVENT_FOCUS, this.DOMNode)
|
||||
];
|
||||
|
||||
this.getID = function showNFocusAlertDialog_getID()
|
||||
|
@ -43,7 +43,6 @@
|
||||
this.invoke = function setCaretOffsetInvoker_invoke()
|
||||
{
|
||||
this.target.caretOffset = aOffset;
|
||||
todo(false, "Enable focus event handling when bug 422744 is fixed.");
|
||||
}
|
||||
|
||||
this.getID = function setCaretOffsetInvoker_getID()
|
||||
@ -52,7 +51,7 @@
|
||||
}
|
||||
|
||||
this.eventSeq = [
|
||||
// new invokerChecker(EVENT_FOCUS, this.target),
|
||||
new invokerChecker(EVENT_FOCUS, this.target),
|
||||
new caretMovedChecker(this.target, aOffset)
|
||||
];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user