Closed Bug 282095 Opened 20 years ago Closed 19 years ago

Correct get_accFocus() behavior

Categories

(Core :: Disability Access APIs, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: aaronlev, Assigned: aaronlev)

Details

(Keywords: access)

Attachments

(1 file)

From MSDN for get_accFocus(), describing what out VARIANT parameter contains:

  // VT_EMPTY:    None. This object does not have the keyboard focus itself
  //              and does not contain a child that has the keyboard focus.
  // VT_I4:       lVal is CHILDID_SELF. The object itself has the keyboard focus.
  // VT_I4:       lVal contains the child ID of the child element with the
keyboard focus.
  // VT_DISPATCH: pdispVal member is the address of the IDispatch interface
  //              for the child object with the keyboard focus.

document
   grandparent
      parent
         focused_child

What I see in IE, is that document and parent both return the focused_child,
grandparent returns VT_EMPTY, and focused_child returns VT_I4 with CHILDID_SELF.
Attachment #174190 - Flags: review?(pkwarren) → review+
Comment on attachment 174190 [details] [diff] [review]
When current parent has a focused child, return that for get_accFocus()

Brian, we cache the focus via gLastFocusedNode because the accessible focus
represents whatever is active, including menu items. So, we're caching the
results of focus, DOMMenubarActive, DOMMenuitemActive etc. in one variable --
the last accessible focus.
Attachment #174190 - Flags: superreview?(bryner)
Comment on attachment 174190 [details] [diff] [review]
When current parent has a focused child, return that for get_accFocus()

>@@ -383,20 +383,38 @@ STDMETHODIMP nsAccessibleWrap::get_accKe
>+    if (parentAccessible && parentAccessible == this) {

You can skip that null check, |this| won't be equal to null.

sr=me with that change.
Attachment #174190 - Flags: superreview?(bryner) → superreview+
Comment on attachment 174190 [details] [diff] [review]
When current parent has a focused child, return that for get_accFocus()

Needed for tight testing schedule with a screen reader vendor.
Attachment #174190 - Flags: approval1.8b?
Comment on attachment 174190 [details] [diff] [review]
When current parent has a focused child, return that for get_accFocus()

a=caillon for 1.8b
Attachment #174190 - Flags: approval1.8b? → approval1.8b+
Checking in nsAccessibleWrap.cpp;
/cvsroot/mozilla/accessible/src/msaa/nsAccessibleWrap.cpp,v  <-- 
nsAccessibleWrap.cpp
new revision: 1.17; previous revision: 1.16
done
Status: NEW → RESOLVED
Closed: 19 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: