Closed
Bug 280920
Opened 20 years ago
Closed 20 years ago
Make DHTML menus accessible, if role attribute used
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: aaronlev, Assigned: aaronlev)
References
()
Details
(Keywords: access)
Attachments
(1 file, 3 obsolete files)
18.43 KB,
patch
|
pkwarren
:
review+
jst
:
superreview+
|
Details | Diff | Splinter Review |
As part of the ongoing DHTML accessibility work, we need special changes to
accomodate DHTML menus.
Assignee | ||
Updated•20 years ago
|
Assignee | ||
Comment 1•20 years ago
|
||
Attachment #173276 -
Flags: superreview?(jst)
Attachment #173276 -
Flags: review?(pkwarren)
Assignee | ||
Comment 2•20 years ago
|
||
Assignee | ||
Updated•20 years ago
|
Attachment #173294 -
Flags: review?(pkwarren)
Assignee | ||
Updated•20 years ago
|
Attachment #173276 -
Attachment is obsolete: true
Attachment #173276 -
Flags: superreview?(jst)
Attachment #173276 -
Flags: review?(pkwarren)
Assignee | ||
Comment 3•20 years ago
|
||
Thanks pkw for noticing the leaks and the forgotten null check.
Comment 4•20 years ago
|
||
Comment on attachment 173294 [details] [diff] [review]
1) Fix leaks and forgotten null check 2) Add comments describing menu event computation, 3) Add loop to deal with deeply nested menupopup objects, in menubar check
>Index: accessible/src/base/nsRootAccessible.cpp
>===================================================================
>RCS file: /cvsroot/mozilla/accessible/src/base/nsRootAccessible.cpp,v
>retrieving revision 1.105
>diff -p -u -5 -r1.105 nsRootAccessible.cpp
>--- accessible/src/base/nsRootAccessible.cpp 1 Feb 2005 08:50:47 -0000 1.105
>+++ accessible/src/base/nsRootAccessible.cpp 3 Feb 2005 18:02:38 -0000
...
>+ while (containerRole == ROLE_MENUPOPUP) {
>+ nsIAccessible *current = mMenuAccessible;
>+ current->GetParent(getter_AddRefs(mMenuAccessible));
>+ if (!mMenuAccessible) {
>+ break;
>+ }
>+ mMenuAccessible->GetRole(&containerRole);
>+ }
>+ // Will fire EVENT_MENUEND as well if parent of menu is menubar
>+ if (containerRole == ROLE_MENUBAR) {
>+ mMenuAccessible = nsnull;
>+ }
This logic seems reversed. You are only firing EVENT_MENUEND below if
mMenuAccessible is non-null.
>+ while (0 == (state & STATE_MULTISELECTABLE)) {
>+ nsIAccessible *current = container;
>+ current->GetParent(getter_AddRefs(container));
>+ container->GetFinalRole(&containerRole);
>+ if (!container || containerRole == ROLE_PANE) {
This seems wrong. You are getting the parent, calling a function on it, and
then checking if the parent is null.
Attachment #173294 -
Flags: review?(pkwarren) → review-
Assignee | ||
Comment 5•20 years ago
|
||
Attachment #173294 -
Attachment is obsolete: true
Attachment #173296 -
Flags: review?(pkwarren)
Comment 6•20 years ago
|
||
Comment on attachment 173296 [details] [diff] [review]
Address pkw's comments
This looks like the patch for another bug.
Assignee | ||
Comment 7•20 years ago
|
||
Attachment #173296 -
Attachment is obsolete: true
Attachment #173298 -
Flags: review?(pkwarren)
Assignee | ||
Updated•20 years ago
|
Attachment #173296 -
Flags: review?(pkwarren)
Updated•20 years ago
|
Attachment #173298 -
Flags: review?(pkwarren) → review+
Assignee | ||
Updated•20 years ago
|
Attachment #173298 -
Flags: superreview?(jst)
Comment 8•20 years ago
|
||
Comment on attachment 173298 [details] [diff] [review]
Correct patch
sr=jst
Attachment #173298 -
Flags: superreview?(jst) → superreview+
Assignee | ||
Comment 9•20 years ago
|
||
Checking in accessible/src/base/nsAccessibilityAtomList.h;
/cvsroot/mozilla/accessible/src/base/nsAccessibilityAtomList.h,v <--
nsAccessibilityAtomList.h
new revision: 1.12; previous revision: 1.11
done
Checking in accessible/src/base/nsAccessible.h;
/cvsroot/mozilla/accessible/src/base/nsAccessible.h,v <-- nsAccessible.h
new revision: 1.55; previous revision: 1.54
done
Checking in accessible/src/base/nsAccessible.cpp;
/cvsroot/mozilla/accessible/src/base/nsAccessible.cpp,v <-- nsAccessible.cpp
new revision: 1.127; previous revision: 1.126
done
Checking in accessible/src/base/nsRootAccessible.cpp;
/cvsroot/mozilla/accessible/src/base/nsRootAccessible.cpp,v <--
nsRootAccessible.cpp
new revision: 1.106; previous revision: 1.105
done
Checking in accessible/src/base/nsRootAccessible.h;
/cvsroot/mozilla/accessible/src/base/nsRootAccessible.h,v <-- nsRootAccessible.h
new revision: 1.44; previous revision: 1.43
done
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Comment 10•20 years ago
|
||
(From attachment 173298 [details] [diff] [review]) accessible/src/base/nsRootAccessible.cpp:
+ // Fire focus if it changes, but always fire focus events for menu items
+ PRBool fireFocus = gLastFocusedNode != aNode || (role == ROLE_MENUITEM);
Correct me if I'm wrong, but it appears to me that apart from initialization,
fireFocus is never used.
Assignee | ||
Comment 11•20 years ago
|
||
> Correct me if I'm wrong, but it appears to me that apart from initialization,
> fireFocus is never used.
Hmm, nice catch -- I'll fix that.
Comment 12•6 years ago
|
||
Keywords: sec508
You need to log in
before you can comment on or make changes to this bug.
Description
•