bogus accessible for native windows

RESOLVED INACTIVE

Status

()

Core
Disability Access APIs
RESOLVED INACTIVE
7 years ago
23 hours ago

People

(Reporter: Fernando Herrera, Unassigned)

Tracking

Trunk
x86
All
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

7 years ago
For native windows, native implementations handle accessible creation.

That is ok for native dialogs, but not for stuff like XUL panels, where we create the proper accessible in our tree and native implementations its own accessible.

An example of this is bug #443097, where we get showing/visible notifications for an accessible object that is not in the tree, and it is not the one we expect.
(Reporter)

Updated

7 years ago
Blocks: 443097
(Reporter)

Comment 1

7 years ago
I have been testing around accessible injection into native windows and, at least, it is not an option for gtk/gail.

It is a little bit hacky:


  void *oldAtkObj = g_object_get_qdata (G_OBJECT (aWindow), g_quark_from_static_string ("gtk-accessible-object"));
  if (oldAtkObj) {
    if (strcmp(G_OBJECT_TYPE_NAME(oldAtkObj), "GailWindow") != 0)
      return;

    g_object_unref (G_OBJECT(oldAtkOjb));
  }
  // Horrible hack
  AtkObject *AtkObj = nsAccessibleWrap::GetAtkObject(aAcc);
  g_object_set_qdata (G_OBJECT (aWindow),
                      g_quark_from_static_string ("gtk-accessible-object"),
                      AtkObj);

but the main problem is that gail objects are not intended to be de-attached from their widgets and they don't remove signal handlers. It's dangerous to keep those callbacks connected even if they check accessible object type and are not executed.

So the other option I can think is passing the DOM node to nsWindow::Create and if we have an accessible for that node, prevent native accessible object creating and attach our.

What do you think?
(Reporter)

Comment 2

7 years ago
thinking more about it, setting our accessible object as accessible object for native window won't help for bug #443097, as our gecko accessible objects do not listen to native widgets events, and then we miss native show/hide events for those windows. Native accessible objects take care of those events, so what about of keeping them and "fixing". I'm attaching an exmaple of such fixing function. Yeah, it look like a mess but I cannot figure out other solution.
(Reporter)

Comment 3

7 years ago
Created attachment 513753 [details] [diff] [review]
modify native accessible for atk
Assignee: nobody → fherrera
Assignee: fherrera → nobody

Comment 4

23 hours ago
Per policy at https://wiki.mozilla.org/Bug_Triage/Projects/Bug_Handling/Bug_Husbandry#Inactive_Bugs. If this bug is not an enhancement request or a bug not present in a supported release of Firefox, then it may be reopened.
Status: NEW → RESOLVED
Last Resolved: 23 hours ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.