Closed Bug 356415 Opened 15 years ago Closed 15 years ago

prefpane has no accessible object

Categories

(Firefox :: Disability Access, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 357969

People

(Reporter: ginnchen+exoracle, Assigned: nian.liu)

References

Details

(Keywords: access)

Attachments

(3 files, 2 obsolete files)

Open Firefox Prefs dialog,
Click some "tab",
Use at-poke to poke the prefs dialog, widgets on the previous "tab" is still under  the dialog accessible directly.
we didn't create accessible object for tabpanel and perfpane.
Evan, do you have time to look at ::GetAccessibleFor() and see why accessibles are not created for these objects?

You can set a breakpoint around here after testing for tabpanel and prefpane.

http://lxr.mozilla.org/seamonkey/source/accessible/src/base/nsAccessibilityService.cpp#1062
Assignee: nobody → Evan.Yan
Attached patch patch (obsolete) — Splinter Review
set accessible type for prefpane
Attachment #243451 - Flags: review?(mano)
Status: NEW → ASSIGNED
Assignee: Evan.Yan → nian.liu
Status: ASSIGNED → NEW
(In reply to comment #3)
> Created an attachment (id=243451) [edit]
> patch
> 
> set accessible type for prefpane
> 

great!
what about tabpanel?
> what about tabpanel?
> 
tabpanel can be a more general issue. see page info with at-poke. all palces which hbox/vbox is used will cause a structure issue for accessible tree.
i'll file a new bug for tabpanel/vobx/hbox and others container xul element which don't have a xbl def
Summary: Prefs dialog accessible tree contains invisible widgets → prefpane has no accessible object
bug 357969 is filed

aaron, what's the structure on windows? i guess same with linux?
Comment on attachment 243451 [details] [diff] [review]
patch

This seems weird, the pane selector is exposed as a xul list... Aaron is a better reviewer for this kind of change, so passing this to him (you have my moa on this either way).
Attachment #243451 - Flags: review?(mano) → review?(aaronleventhal)
Comment on attachment 243451 [details] [diff] [review]
patch

That's true, for <prefpane> we should use something besides nsIAccessibleProvider.XULTabBox because the other parts you'd expect for tab panels aren't there. There are no tabs to select from, they're exposed as items in a list.

So, please add a new accessible type nsIAccessibleProvider.XULPane and it should just map to an nsEnumRoleAccessible in GetAccessibleByType.
Attachment #243451 - Flags: review?(aaronleventhal) → review-
Attached patch patchv2 (obsolete) — Splinter Review
panel will be used for both tabpanel and prefpane
Attachment #243451 - Attachment is obsolete: true
Attachment #243741 - Flags: review?(aaronleventhal)
Attached patch .cppSplinter Review
Attachment #243742 - Flags: review?(aaronleventhal)
Attached patch .hSplinter Review
Attachment #243743 - Flags: review?(aaronleventhal)
Attached patch patch v2Splinter Review
change pane to panel for a wide use
Attachment #243741 - Attachment is obsolete: true
Attachment #243753 - Flags: review?(aaronleventhal)
Attachment #243741 - Flags: review?(aaronleventhal)
Comment on attachment 243753 [details] [diff] [review]
patch v2

In comment 9 I suggested you use nsEnumRoleAccessible. Why did you create a new class instead?

nsEnumRoleAccessible lets you pass in the nsIAccessible::ROLE_[whatever] into the constructor, and inherits from nsAccessible. You'll get the correct state for free, no need to override that just for an upcall. That happens automatically.
Attachment #243753 - Flags: review?(aaronleventhal) → review-
Attachment #243742 - Flags: review?(aaronleventhal) → review-
Attachment #243743 - Flags: review?(aaronleventhal) → review-
(In reply to comment #14)
> (From update of attachment 243753 [details] [diff] [review] [edit])
> In comment 9 I suggested you use nsEnumRoleAccessible. Why did you create a new
> class instead?
> 
> nsEnumRoleAccessible lets you pass in the nsIAccessible::ROLE_[whatever] into
> the constructor, and inherits from nsAccessible. You'll get the correct state
> for free, no need to override that just for an upcall. That happens
> automatically.
> 
sorry, too hurry and in a dizzy due to fever.

dupe to bug 357969, patch there.

*** This bug has been marked as a duplicate of 357969 ***
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.