Closed Bug 154704 Opened 23 years ago Closed 22 years ago

no accessible event fired as user exits menus

Categories

(Core :: Disability Access APIs, defect, P1)

x86
Windows 2000
defect

Tracking

()

RESOLVED FIXED
mozilla1.2alpha

People

(Reporter: aaronlev, Assigned: aaronlev)

References

Details

(Keywords: access)

Attachments

(2 files, 2 obsolete files)

As the user exits the menus, an MSAA focus event should be fired to indicate
As the user exits the menus, an MSAA focus event should be fired to indicate focus is back where it was. In Mozilla, menu activation does not move the focus. Menu selection highlighting is achieved with a style rule on menuactive="true". We have to watch out for problems this will cause. I'm going to have to create a DOM event that gets fired when the menu bar becomes activated. This will come out of work on bug 132489 (caret needs to be hidden while menus are active).
Status: NEW → ASSIGNED
Keywords: access, sec508
Priority: -- → P1
Target Milestone: --- → mozilla1.2alpha
Depends on: 132489, 154721
This fix depends on the patches currently in bug 132489, and bug 154721 Seeking r=
Comment on attachment 89532 [details] [diff] [review] Listens for menu bar changes, and fires accessibility events based on them r=jgaunt
Attachment #89532 - Flags: review+
Comment on attachment 89532 [details] [diff] [review] Listens for menu bar changes, and fires accessibility events based on them sr=jag
Attachment #89532 - Flags: superreview+
Attached patch 2nd half of fix (obsolete) — Splinter Review
Seeking r= for this (the second part of the fix). Originally this was going to be part of the fix in bug 132489
Jag, Jgaunt, could you r=/sr= the second half of the fix as well? I had left this out of the first patch because it was originally part of the fix that turned of caret blinking when the menu bar was activated.
Comment on attachment 89709 [details] [diff] [review] 2nd half of fix r=jgaunt
Attachment #89709 - Flags: review+
Comment on attachment 89709 [details] [diff] [review] 2nd half of fix >Index: mozilla/layout/xul/base/src/nsBoxFrame.h >=================================================================== >RCS file: /cvsroot/mozilla/layout/xul/base/src/nsBoxFrame.h,v >retrieving revision 1.72 >diff -u -r1.72 nsBoxFrame.h >--- mozilla/layout/xul/base/src/nsBoxFrame.h 21 Feb 2002 13:39:39 -0000 1.72 >+++ mozilla/layout/xul/base/src/nsBoxFrame.h 28 Jun 2002 09:52:51 -0000 >@@ -253,7 +253,8 @@ > protected: > nsresult RegUnregAccessKey(nsIPresContext* aPresContext, > PRBool aDoReg); >- >+ NS_IMETHOD FireDOMEvent(nsIPresContext *aPresContext, const nsAString& aDOMEventName); >+ nsresult, not NS_IMETHOD. Or better yet, keep it |void| since you're not doing anything with the return value anyway. > private: > friend class nsBoxFrameInner; > friend class nsBoxDebug; >Index: mozilla/layout/xul/base/src/nsMenuFrame.cpp >=================================================================== >RCS file: /cvsroot/mozilla/layout/xul/base/src/nsMenuFrame.cpp,v >retrieving revision 1.226 >diff -u -r1.226 nsMenuFrame.cpp >--- mozilla/layout/xul/base/src/nsMenuFrame.cpp 11 Jun 2002 20:46:35 -0000 1.226 >+++ mozilla/layout/xul/base/src/nsMenuFrame.cpp 28 Jun 2002 09:52:53 -0000 >@@ -594,7 +574,7 @@ > domEventToFire.Assign(NS_LITERAL_STRING("DOMMenuItemInactive")); > } > >- FireMenuDOMEvent(domEventToFire); >+ nsBoxFrame::FireDOMEvent(mPresContext, domEventToFire); > return NS_OK; > } > No need for the nsBoxFrame:: prefix here.
Attachment #89709 - Flags: needs-work+
Attachment #89709 - Attachment is obsolete: true
Attachment #89834 - Attachment is obsolete: true
Comment on attachment 89836 [details] [diff] [review] whole fix (with Jag's changes) Carrying over jgaunt's r=
Attachment #89836 - Flags: review+
Comment on attachment 89836 [details] [diff] [review] whole fix (with Jag's changes) sr=jag
Attachment #89836 - Attachment description: 2nd half of fix with Jag's changes → whole fix (with Jag's changes)
Attachment #89836 - Flags: superreview+
This fixes causes OS/2 to crash popping down menus. Here is the callstack: Function 0x0013F5CA NS_AllocateContiguousHandleWithData(const nsSharedBufferHandle<unsigned short>*,unsigned int,const nsAString*) NS_AllocateContiguousHandleWithData(const nsSharedBufferHandle<unsigned short>*,const nsAString&,unsigned int) nsSharableString::do_AssignFromReadable(const nsAString&) nsAString::Assign(const nsAString&) nsSharableString::operator=(const nsAString&) nsPromiseFlatString::nsPromiseFlatString(const nsAString&) PromiseFlatString(const nsAString&) GetAtomHashEntry(const nsAString&) NS_NewAtom(const nsAString&) nsDOMEvent::SetEventType(const nsAString&) nsDOMEvent::InitEvent(const nsAString&,int,int) nsBoxFrame::FireDOMEvent(nsIPresContext*,const nsAString&) nsMenuBarFrame::SetActive(int) nsMenuFrame::OpenMenuInternal(int) nsMenuFrame::AttributeChanged(nsIPresContext*,nsIContent*,int,nsIAtom*,int,int) nsCSSFrameConstructor::AttributeChanged(nsIPresContext*,nsIContent*,int,nsIAtom*,int,int) StyleSetImpl::AttributeChanged(nsIPresContext*,nsIContent*,int,nsIAtom*,int,int) PresShell::AttributeChanged(nsIDocument*,nsIContent*,int,nsIAtom*,int,int) nsXULDocument::AttributeChanged(nsIContent*,int,nsIAtom*,int,int) nsXULElement::SetAttr(nsINodeInfo*,const nsAString&,int) nsXULElement::SetAttribute(const nsAString&,const nsAString&) nsMenuFrame::OpenMenu(int) nsMenuFrame::ToggleMenuState() nsMenuFrame::HandleEvent(nsIPresContext*,nsGUIEvent*,nsEventStatus*) PresShell::HandleEventInternal(nsEvent*,nsIView*,unsigned int,nsEventStatus*) PresShell::HandleEvent(nsIView*,nsGUIEvent*,nsEventStatus*,int,int&) nsViewManager::HandleEvent(nsView*,nsGUIEvent*,int) nsView::HandleEvent(nsViewManager*,nsGUIEvent*,int) nsViewManager::DispatchEvent(nsGUIEvent*,nsEventStatus*) HandleEvent nsWindow::DispatchEvent(nsGUIEvent*,nsEventStatus&) nsWindow::DispatchWindowEvent(nsGUIEvent*) nsWindow::DispatchMouseEvent(unsigned int,void*,void*) nsWindow::ProcessMessage(unsigned long,void*,void*,void*&) fnwpNSWindow 0x1E935800 nsAppShell::Run() nsAppShellService::Run() main1(int,char**,nsISupports*) main _start 0x1C04C183
+ FireDOMEvent(mPresContext, mIsActive? NS_LITERAL_STRING("DOMMenuBarActive"): NS_LITERAL_STRING("DOMMenuBarInactive")); This is probably broken on OS/2 (ask your compiler team, they'll know ;). mkaply: can you change that to something like: NS_NAMED_LITERAL_STRING(active, "DOMMenuBarActive") NS_NAMED_LITERAL_STRING(inactive, "DOMMenuBarInactive") FireDOMEvent(mPresContext, mIsActive ? active : inactive);
This patch does fix OS/2.
checked in a while back.
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: