Closed Bug 281538 Opened 20 years ago Closed 20 years ago

No focus or selection events fired as user arrows through download manager

Categories

(Toolkit :: Downloads API, defect, P2)

x86
All
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: aaronlev, Assigned: aaronlev)

References

Details

(Keywords: access)

Attachments

(1 file, 1 obsolete file)

No focus or selection events fired as user arrows through download manager.

At the very least we need to fire DOMMenuItemActive events for each item's
element if we don't want to use real focus. See other examples in the Mozilla
code that do this.

The current lack of events breaks screen readers. Currently the say nothing as
the user arrows through the list.
Priority: -- → P2
Depends on: 288499
Depends on: 285584
No longer depends on: 288499
Assignee: bugs → doronr
Blocks: deera11y
The latest patch in bug 285584 does send DOMMenuItemActive events.
The upcoming patch will fix richlistbox so that 
1) accessible objects are created for the list and the list items.
2) focus events are fired for the list items
3) accessible name is supported for each list item
4) home/end keys are supported
I suggest a spinnoff bug to implement the rest of
nsIDOMXULSelectControlItemElement nsIDOMXULSelectControlElement.

Are we ever going to implement seltype="multiple" for this? If we do, at that
point we'll need nsIDOMXULMultiSelectControlElement as well.

In general I think we should implement complete interfaces when we add a new
widget. It's important for accessibility at least. That's how we get labels and
states.
Attachment #186929 - Flags: review?(mconnor)
Attachment #186929 - Flags: review?(mconnor)
Assignee: doronr → aaronleventhal
Attachment #186929 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #186930 - Flags: review?(mconnor)
Comment on attachment 186930 [details] [diff] [review]
Minor change -- use this.control instead of this.parentNode to get to listbox

>       <handler event="contextmenu" phase="capturing">
>       <![CDATA[
>          // This needed to be called before the contextmenu gets shown to handle
>          // someone rightclicking on an unselected item
>          if (event.target == this) {
>-           this.parentNode.selectedItem = this;
>+           var listbox = this.control;
>+           if (listbox) {
>+             listbox.selectedItem = this;
>+           }

The brackets aren't necessary here, please drop them, and the other places
where this is done.  And man, how'd I miss the indenting here?	We've got some
weird indentation all around the CDATA chunks throughout the patch (mostly
inconsistent).	Can you fix this up a bit while you're in here? (doesn't have
to be global, just bits you've touched)

Yes, multi-select needs to be added for this at some point.  Not a blocker, but
a useful thing to have for the binding.  Doron was supposed to file a bug on
this, can you add comments about what needs to be included for the
accessibility side when that gets implemented?

r=me with the cleanup noted
Attachment #186930 - Flags: review?(mconnor) → review+
Comment on attachment 186930 [details] [diff] [review]
Minor change -- use this.control instead of this.parentNode to get to listbox

Will fix whitespace and extra { }
Attachment #186930 - Flags: approval-aviary1.1a2?
298371 is the bug for multi-select
Attachment #186930 - Flags: approval-aviary1.1a2? → approval-aviary1.1a2+
Forgot to mark this fixed.
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Product: Firefox → Toolkit
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: