Closed
Bug 504561
Opened 15 years ago
Closed 15 years ago
Comboboxes do not emit accessibility events when selection changes
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
status1.9.1 | --- | .4-fixed |
People
(Reporter: wwalker, Assigned: surkov)
References
(Blocks 1 open bug, )
Details
(Keywords: access, verified1.9.1, Whiteboard: orca:medium)
Attachments
(1 file)
(deleted),
patch
|
ginnchen+exoracle
:
review+
dveditz
:
approval1.9.1.4+
|
Details | Diff | Splinter Review |
Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.1b3) Gecko/20090429 Firefox/3.1b3
1) Go to http://mail.google.com/mail/signup
2) Tab to the "Security Question:" combobox
3) Run accerciser - monitor all the events from the above combobox
4) Back in Firefox, press the up/down arrows to change the combobox selection
No events are issued when the combobox selection changes.
Note that this may be an intermittent problem. I was able to manage to do something (some odd combination of changing windows, selecting different tabs in FF, etc.) to get it to emit events, but I don't know what it was.
On a related note, there doesn't appear to be any way to expand the combobox from the keyboard.
Reporter | ||
Updated•15 years ago
|
Component: Disability Access → Disability Access APIs
Product: Firefox → Core
QA Contact: disability.access → accessibility-apis
Reporter | ||
Updated•15 years ago
|
Whiteboard: orca:high
Comment 1•15 years ago
|
||
(In reply to comment #0)
> On a related note, there doesn't appear to be any way to expand the combobox
> from the keyboard.
Did you try Alt+Down Arrow? That works for me.
Comment 2•15 years ago
|
||
Will, did you try this with the latest release build of Firefox 3.5 as well? The build ID shows that you have Beta3, which is rather outdated by now. We put in some things after beta 3 still, so it's worth testing.
Reporter | ||
Comment 3•15 years ago
|
||
(In reply to comment #1)
> Did you try Alt+Down Arrow? That works for me.
Yep. Doesn't work. But, I did notice that Alt+Up arrow works. Seems to wake the events up as well.
(In reply to comment #2)
> Will, did you try this with the latest release build of Firefox 3.5 as well?
I haven't had a chance to grab it yet. I'm assuming you have it, though. :-) Can you give this a quick try?
Alt+Up or Down works for me.
The latest trunk still has this bug (no event).
What event are you expected?
focus event for list item or menu item?
Reporter | ||
Comment 5•15 years ago
|
||
Hi Ginn:
On this bug page, just below the "Additional Comments" area is a "Status" combobox. It behaves properly and issues focus events for the menu items in the combobox when you press Up/Down (i.e., the combobox is *not* popped up and you arrow up/down to select items).
Here's an example debug log line from Orca:
focus: detail=(0,0)
app.name='Firefox' name='UNCONFIRMED' role='menu item' state='enabled focusable focused horizontal opaque selectable selected sensitive showing visible' relations=''
Since Alt+{Up,Down} provide a way to access the combobox, I lowered this to orca:medium. It's still not a good bug, however. Without feedback that something has changed, a user may press Up/Down on a combobox and select things without realizing it.
Many thanks for looking at this!
Whiteboard: orca:high → orca:medium
The nsHTMLComboboxListAccessible under nsHTMLComboboxAccessible is somehow invalid.
In accerciser we can see the problematic combobox has no child or has a <dead> child.
In dbx, if I force to recreate a nsHTMLComboboxListAccessible, the problem is gone.
But I don't know why, and I couldn't create a test case.
Comment 7•15 years ago
|
||
Ginn, this is really weird. I looked at the markup of that combobox on the GMail signup page, and it didn't look particularly different from other comboboxes. But since this is not a problem in Firefox 3.0.11 apparently, we must have changed something that breaks it now. :(
I guess the different is it has a script to change the last option.
However I didn't recreate the problem with copying the code snippet to another html file.
This bug is really interesting.
The story is we get back to InvalidateChildren() for HTMLCombobox during CacheChildren() for HTMLCombobox.
So the mAccChildCount is -1 (init), 0 (setting to zero in nsHTMLComboboxAccessible::CacheChildren), -1 (InvalidateChildren), 0 (++mAccChildCount at end of nsHTMLComboboxAccessible::CacheChildren)
Finally, we got zero.
The solution should be easy. We can change ++mAccChildCount to mAccChildCount = 1.
Or we can call CacheChildren() again if mListAccessible->Init() caused InvalidateChildren().
But what about COMBO_BOX_WITH_THREE_CHILDREN, do we really need it?
Here's the stack of calling InvalidateChildren()
[1] nsAccessible::InvalidateChildren(this = 0xef78e640), line 549 in "nsAccessible.cpp"
[2] nsAccessible::Shutdown(this = 0xef78e680), line 524 in "nsAccessible.cpp"
[3] nsAccessibleWrap::Shutdown(this = 0xef78e680), line 311 in "nsAccessibleWrap.cpp"
=>[4] nsDocAccessible::CacheAccessNode(this = 0xed8dd530, aUniqueID = 0xef78e680, aAccessNode = 0xef78e680), line 578 in "nsDocAccessible.cpp"
[5] nsAccessNode::Init(this = 0xef78e680), line 197 in "nsAccessNode.cpp"
[6] nsHTMLComboboxAccessible::CacheChildren(this = 0xef78e640), line 1038 in "nsHTMLSelectAccessible.cpp"
[7] nsAccessible::GetChildCount(this = 0xef78e640, aAccChildCount = 0x80441cc), line 781 in "nsAccessible.cpp"
Assignee | ||
Comment 10•15 years ago
|
||
(In reply to comment #9)
> But what about COMBO_BOX_WITH_THREE_CHILDREN, do we really need it?
Practice shows we don't need it. We disabled this code a long time ago already and screen readers we work with feel good. Afaik Marco collaborate with another screen reader vendors so let ask him how much accessible our comboboxes are there.
Comment 11•15 years ago
|
||
They are very accessible the way they are now. For the Firefox 3.0 timeframe we ironed out a few problems, and since then have had no issues with comboboxes, until now...
Comment 12•15 years ago
|
||
The code has more problems than I thought.
Calling mListAccessible->Init(); would always kill itself.
Assignee | ||
Comment 13•15 years ago
|
||
So once nsHTMLComboboxAccessible::InvalidateChildren is called then we'll call nsHTMLComboboxListAccessible::Init one more time for mListAccessible in nsHTMLComboboxAccessible::CacheChildren. We shouldn't call Init if mListAccessible was created already I think.
Assignee | ||
Comment 14•15 years ago
|
||
Attachment #390644 -
Flags: review?(marco.zehe)
Attachment #390644 -
Flags: review?(ginn.chen)
Comment 15•15 years ago
|
||
Comment on attachment 390644 [details] [diff] [review]
patch
Yes, this is the fix I was trying to use.
Please remove all the code in #ifdef COMBO_BOX_WITH_THREE_CHILDREN.
Or you can do it in another bug.
Attachment #390644 -
Flags: review?(ginn.chen) → review+
Assignee | ||
Comment 16•15 years ago
|
||
(In reply to comment #15)
> (From update of attachment 390644 [details] [diff] [review])
> Yes, this is the fix I was trying to use.
then it should be right fix.
> Please remove all the code in #ifdef COMBO_BOX_WITH_THREE_CHILDREN.
> Or you can do it in another bug.
I'll file bug.
Assignee: nobody → surkov.alexander
Status: NEW → ASSIGNED
Assignee | ||
Comment 17•15 years ago
|
||
(In reply to comment #16)
> > Please remove all the code in #ifdef COMBO_BOX_WITH_THREE_CHILDREN.
> > Or you can do it in another bug.
>
> I'll file bug.
bug 506616
Assignee | ||
Comment 18•15 years ago
|
||
Comment on attachment 390644 [details] [diff] [review]
patch
Marco is on vacation, I think it's enough to have Ginn's review only.
Attachment #390644 -
Flags: review?(marco.zehe)
Assignee | ||
Comment 19•15 years ago
|
||
landed on 1.9.2 - http://hg.mozilla.org/mozilla-central/rev/6d50b269c43a
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Comment 20•15 years ago
|
||
Since this is a regression from 3.0 to 3.5, we should try to land this on the 1.9.1 branch too. Surkov, any objections to requesting approval?
Assignee | ||
Comment 21•15 years ago
|
||
Marco, is this regression? Patched code wasn't changed that time range afaik.
Comment 22•15 years ago
|
||
This is a regression from 3.0.
Comment 23•15 years ago
|
||
The code was not changed.
But the behavior differs if CacheChildren() is called at different time frame.
Even with Firefox 3.5, it's kind of random.
But it's very easy to reproduce with the certain google page.
Assignee | ||
Comment 24•15 years ago
|
||
Ok, if the bug hasn't seen in Firefox 3.0 then I think we should ask for approval. I think it's safe approach and it makes the code correct.
Comment 25•15 years ago
|
||
Comment on attachment 390644 [details] [diff] [review]
patch
Regression from 3.0, impacts a number of comboboxes on Linux. Safe fix.
Attachment #390644 -
Flags: approval1.9.1.4?
Updated•15 years ago
|
Attachment #390644 -
Flags: approval1.9.1.4? → approval1.9.1.4+
Comment 26•15 years ago
|
||
Comment on attachment 390644 [details] [diff] [review]
patch
Approved for 1.9.1.4, a=dveditz for release-drivers
Assignee | ||
Comment 27•15 years ago
|
||
landed on 1.9.1 - http://hg.mozilla.org/releases/mozilla-1.9.1/rev/dfd648c2652e
status1.9.1:
--- → .4-fixed
Comment 28•15 years ago
|
||
Marco, could you or the reporter verify that this is fixed in the nightly 1.9.1 build from ftp://ftp.mozilla.org/pub/firefox/nightly/latest-mozilla-1.9.1/ ?
Comment 29•15 years ago
|
||
Verified fixed in Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.4pre) Gecko/20090930 Shiretoko/3.5.4pre
Keywords: verified1.9.1
You need to log in
before you can comment on or make changes to this bug.
Description
•