Closed Bug 302677 Opened 19 years ago Closed 19 years ago

Accessible focus events incorrect for autocomplete

Categories

(Firefox :: Disability Access, defect)

x86
All
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: aaronlev, Assigned: aaronlev)

Details

(Keywords: access)

Attachments

(2 files)

Using accessibility testing tools, and watching the focus, I observe:

The first down arrow into an autocomplete fires no focus event. Then, after down
arrowing past the end of the list, the list itself receives focus and nothing is
shown selected. The next down arrow starts triggering focus events on the items.

- The items should get focus events right away
- The list itself should never get focus
OS: Windows XP → All
Attachment #191206 - Flags: superreview?(neil.parkwaycc.co.uk)
Attachment #191206 - Flags: review?(neil.parkwaycc.co.uk)
Comment on attachment 191206 [details] [diff] [review]
1) Stop traversing autocomplete list when arrow reaches top or bottom, 2) Okay to fire repeat focus events for DOMMenuItemActive-based focuses

>-            this.selectedIndex = this.getNextIndex(aReverse, amount, this.selectedIndex, this.tree.view.rowCount-1);
As far as I know, this behaviour is by design. Even IE does it.

>+                                  PRBool aDupeFocusEventsOk = PR_FALSE);
I would have just called it aForceEvent

>   aAccessible->GetFinalRole(&role);
Do you still use the role? You removed a condition that uses it.

>     // Only fire focus event for DOMMenuItemActive is not inside collapsed popup
>     if (0 == (containerState & STATE_COLLAPSED)) {
>-      FireAccessibleFocusEvent(accessible, targetNode);
>+      FireAccessibleFocusEvent(accessible, targetNode, PR_TRUE);
Are you expecting multiple focus events for real menuitems?
Attachment #191206 - Flags: superreview?(neil.parkwaycc.co.uk)
Attachment #191206 - Flags: superreview-
Attachment #191206 - Flags: review?(neil.parkwaycc.co.uk)
Attachment #191206 - Flags: review-
Attachment #191304 - Flags: superreview?(neil.parkwaycc.co.uk)
Attachment #191304 - Flags: review?(neil.parkwaycc.co.uk)
Neil, I addressed your parameter name change, and the arrow key behavior. The
role variable was still needed.

Multiple focuses could happen for an menu/list/tree item that uses
DOMMenuItemActive if the user is at the end of the choices and hits down arrow,
if the widget doesn't cycle.
Comment on attachment 191304 [details] [diff] [review]
1) Allow arrow off of list back into URL bar, 2) Change param name to aForceEvent, 3) Move GetFinalRole(&role) right before role is used

OK, so you can have r+sr on nsRootAccessible but I'm not convinced on the
autocomplete change, please get a toolkit user peer to double-check edge cases.
Attachment #191304 - Flags: superreview?(neil.parkwaycc.co.uk) → superreview+
Comment on attachment 191304 [details] [diff] [review]
1) Allow arrow off of list back into URL bar, 2) Change param name to aForceEvent, 3) Move GetFinalRole(&role) right before role is used

Mike, I need r= only on the autocomplete.xml change
Attachment #191304 - Flags: review?(neil.parkwaycc.co.uk) → review?(mconnor)
Attachment #191304 - Flags: review?(mconnor) → review+
Attachment #191304 - Flags: approval1.8b4?
Attachment #191304 - Flags: approval1.8b4? → approval1.8b4+
Checking in toolkit/content/widgets/autocomplete.xml;
/cvsroot/mozilla/toolkit/content/widgets/autocomplete.xml,v  <--  autocomplete.xml
new revision: 1.42; previous revision: 1.41
done
Checking in accessible/src/base/nsRootAccessible.h;
/cvsroot/mozilla/accessible/src/base/nsRootAccessible.h,v  <--  nsRootAccessible.h
new revision: 1.50; previous revision: 1.49
done
Checking in accessible/src/base/nsRootAccessible.cpp;
/cvsroot/mozilla/accessible/src/base/nsRootAccessible.cpp,v  <-- 
nsRootAccessible.cpp
new revision: 1.128; previous revision: 1.127
done
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
With this fix, pressing down at the last autocomplete selection causes that
value to go into the location bar (same with pressing up from the first
selection). This closes autocomplete when the user might want to continue with
the autocomplete.

If I type "b", bugzilla entries appear and I can press down to select them. But
if I want to go back up to the location bar to add an "o" for bonsai, it'll
select the first item and autocomplete will treat that whole selectin as the
base for the autocomplete instead.
(In reply to comment #8)
> With this fix, pressing down at the last autocomplete selection causes that
> value to go into the location bar (same with pressing up from the first
> selection). This closes autocomplete when the user might want to continue with
> the autocomplete.
> 
It causes bug 303928, which currently speficies Tab and should probably mention
down arrow.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: