Closed Bug 333833 Opened 19 years ago Closed 19 years ago

Image buttons in Firefox Pref dialog can't be grabbed by GOK

Categories

(Firefox :: Disability Access, defect)

x86
Linux
defect
Not set
major

Tracking

()

RESOLVED FIXED

People

(Reporter: ginnchen+exoracle, Assigned: ginnchen+exoracle)

References

Details

(Keywords: access, fixed1.8.1)

Attachments

(1 file, 1 obsolete file)

1) Open Firefox pref dialog. 2) Use GOK to UI grab. Result: Image buttons (General, Privacy, Content, Tabs, Downloads, Advanced) are not grabbed.
Attached patch patch (obsolete) — Splinter Review
I don't know if it regresses Bug 302359. To use XULRadioButton is more reasonable.
Attachment #218393 - Flags: review?(aaronleventhal)
Comment on attachment 218393 [details] [diff] [review] patch Hmm we should never override GetFinalRole() -- we can override GetRole() but not GetFinalRole(). The idea of GetFinalRole() is that someoen can override something's role with a dhtml role in markup. Hmm we should never override GetFinalRole() -- we can override GetRole() but not GetFinalRole(). The idea of GetFinalRole() is that someoen can override something's role with a dhtml role in markup. People were confused by getting radio buttons there but list items made sense. Can't GOK grab list items?
Attachment #218393 - Flags: review?(aaronleventhal) → review-
OK, I found Bug 286145. GOK can grab list items. We're faking xulradiobutton/xulradiogroup to listitem/list here. It has a problem. I'll try to identify it.
Assignee: nobody → ginn.chen
Aaron, 1) The problem I found is nsXULRadioGroupAccessible doesn't implement nsXULSelecctableAccessible 2) After the fix, the pane is grabbed as a list, user has to click "list", and then click a pane button, then click "back", next click "UI Grab" again. It introduces more clicks than the radiogroup/radiobutton solution. Do you think it's OK?
Status: NEW → ASSIGNED
Ginn, it's really a flaw in how we implement DHTML accessibility. If something has xhtml2:role="wairole:list", it should support the selection API. We need to think about how to do that. It would be strange to call them radio buttons because radio buttons don't usually change what the content pane holds. I have seen lists do that. We used to call them radio buttons but it confused users. The right way to do this might be to make it a real XUL listbox with listitems or whatever, instead of using XHTML2:role.
If more clicks are not a problem, I agree we can use a real XUL list box instead of XHTML2:role. I think we should also give "prefpane" an accessible name instead of "list".
(In reply to comment #6) > If more clicks are not a problem, I agree we can use a real XUL list box > instead of XHTML2:role. > I think we should also give "prefpane" an accessible name instead of "list". > I would go for that solution if it doesn't look too difficult to get the same looks. Another benefit would be that home/end would work as well as typing the first letter of each item to get there fast. After all, a list should work like a list as far as the keyboard goes.
I don't want to go so far, and it's not very possible to be done in Firefox 2. Home/end benefits little, because we only have 6 buttons.
Attached patch patch v2Splinter Review
Attachment #218393 - Attachment is obsolete: true
Attachment #219134 - Flags: review?(aaronleventhal)
Comment on attachment 219134 [details] [diff] [review] patch v2 I can go with that. It doesn't solve every similar problem we might have but it takes care of what you need for Firefox 2.
Attachment #219134 - Flags: review?(aaronleventhal) → review+
Attachment #219134 - Flags: superreview?(neil)
Attachment #219134 - Flags: approval-branch-1.8.1+
I don't really know this panel; doesn't it work more like a set of tabs?
Neil, we're treating it like a list because one of the panels has its own set of real tabs. We don't want 2 rows of tabs active/visible at the same time.
One more comment -- XUL radio group should inherit from nsXULSelectableAccessible so that it supports nsIAccessibleSelection. So this fix should happen anyway, and just happens to help in this case. We're dealing with Ben's ugly hack for these icons where he used styled radio buttons by using the DHTML accessibility namespaced attributes to say they're actually list items. However the impl underneath is still for the XUL Radio buttons because that's what the elements are. You don't want to know too much more about how we're doing this hack. Just trust me on this one. We'll have to make some real deep changes to do it in a better way, but that's in the future.
Attachment #219134 - Flags: superreview?(neil) → superreview+
Checking in src/xul/nsXULFormControlAccessible.cpp; /cvsroot/mozilla/accessible/src/xul/nsXULFormControlAccessible.cpp,v <-- nsXULFormControlAccessible.cpp new revision: 1.56; previous revision: 1.55 done Checking in src/xul/nsXULFormControlAccessible.h; /cvsroot/mozilla/accessible/src/xul/nsXULFormControlAccessible.h,v <-- nsXULFormControlAccessible.h new revision: 1.27; previous revision: 1.26 done Checking in src/xul/nsXULSelectAccessible.cpp; /cvsroot/mozilla/accessible/src/xul/nsXULSelectAccessible.cpp,v <-- nsXULSelectAccessible.cpp new revision: 1.31; previous revision: 1.30 done Checking in src/xul/nsXULFormControlAccessible.cpp; /cvsroot/mozilla/accessible/src/xul/nsXULFormControlAccessible.cpp,v <-- nsXULFormControlAccessible.cpp new revision: 1.52.2.4; previous revision: 1.52.2.3 done Checking in src/xul/nsXULFormControlAccessible.h; /cvsroot/mozilla/accessible/src/xul/nsXULFormControlAccessible.h,v <-- nsXULFormControlAccessible.h new revision: 1.25.4.2; previous revision: 1.25.4.1 done Checking in src/xul/nsXULSelectAccessible.cpp; /cvsroot/mozilla/accessible/src/xul/nsXULSelectAccessible.cpp,v <-- nsXULSelectAccessible.cpp new revision: 1.27.2.2; previous revision: 1.27.2.1 done
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Keywords: fixed1.8.1
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: