[Webkit-unassigned] [Bug 109937] [EFL][WK2] Additional bits of having Accessibility in WebKit-EFL.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Feb 18 03:34:03 PST 2013


https://bugs.webkit.org/show_bug.cgi?id=109937





--- Comment #5 from Krzysztof Czech <k.czech at samsung.com>  2013-02-18 03:36:22 PST ---
(In reply to comment #3)
> (In reply to comment #1)
> > In order to expose information from WebKit (server) to clients applications
> > (Assistive Technologies example. GNOME Orca) DBus is used. AT-SPI2 is something 
> > that mediates between server and client in terms of passing dbus messages. 
> >
> > WebKit's events before land in AT-SPI2 should be translated into dbus messages 
> > by ATK-BRIDGE module, which should be properly loaded. In GNOME it's out of the 
> > box, in EFL it's not.
> 
> Right.
> 
> > Generally this should be done transparently without WebKit support, but till 
> > EFL does not do this, it may be the only way.
> 
> You mean forcing to load the ATK bridge from WebKitEfl, right? If so, and providing that for EFL the "desktop" does not do the job, then I guess you're pretty much stuck with two options: either you do it in WebKit or you do it in every single application using WebKit.

Thanks Mario for your reply. Frankly speaking, I'm having the same concerns. Generally my intention was to have something that can be easily tested with MiniBrowser. I know this solution is not complete in terms of the whole Accessibility flow (lack of EFL, lack of UIprocess support, loading ATK bridge). I wanted to expose only WebProcess part.

You are right, the idea is to load ATK bridge from WebKitEFL since nor EFL or any single EFL's application do this.
> 
> In this regard, I wonder whether it would certainly be more "clean" to do it the apps (or even in the EFL's widget toolkit, if that was possible), so you would not have to mess with AtkUtil in WebKit at all.
This would the best scenario, when initialization is done transparently without WebKit knowledge. You are right EFL's widget toolkit should do this as GTK does. Unfortunately this is not happen in EFL.
> 
> Still, I see a problem with that approach for the case WebKit2, since you still need to have the ATK bridge loaded for the Web process, so it can expose its a11y tree for the DOM and "connect it" to the one hanging from the UI process, and that won't happen automatically if you do that in the application or the EFL widgets toolkit, I guess.

Generally, my intention was to load ATK bridge from WebProcess. While testing, I could see ATK bridge is linked to WebProcess. It looked a11y tree for DOM was properly exposed. GNOME Orca was able to read Web's content.
> 
> So, you would still need to force the load of the ATK bridge module in the WebProcess but perhaps that would be enough and you still would avoid having to mess with AtkUtil? In any case, I'm not 100% sure about this, the "AtkUtil expert" here is Alejandro Pinheiro, so I guess it's better if he commented more on that idea.

Would be great to hear his opinion.
> 
> > I'm proposing a patch that loads ATK-BRIDGE and adds implementation of 
> > AtkUtilClass that registers listeners for specific ATK events
> 
> I would really love to hear Pinheiro's opinon on this. As I said, he's the AtkUtil expert here :)
> 
> > and creates top level accessible object for WebKit.
> 
> I have a doubt about this "top level accessible object":
> 
> As far as I can see from the patch, it seems to be just a dummy AtkObject that you're returning from the implementation of AtkUtil, but I can't see the relationship between that object and the a11y hierarchy exposed by the WebProcess: an AtkPlug object (which is the root Atk object in that process) associated to the WebPage object where the a11y hierarchy of Atk objects wrapping the DOM world "hangs" from, and which serves as the "bridge" with the UI process by means of the AtkSocket object that is implemented up there, as the associated a11y object for the WebView widget.
> 
> So, I really wonder why you want to return this dummy root object, which isolated from the world, instead of plainly returning that AtkPlug object, which is also a AtkObject that connects you to the a11y hierarchy wrapping the DOM.

Generally, I also thought about it, that the good candidate is one from WebProcess. The thing is, it's a AtkPlug type. ATK bridge, while initialization is being done checks whether root is AtkPlug. If it is, it omits creation of dbus address line, where the server will listen and where clients will connect to. I hope this is a thing and that's way I provided this dummy object of type ATK_TYPE_OBJECT
> 
> > I would like to discuss this approach.
> > I'm looking forward to hearing your opinion about this.
> 
> Just trying to add my 2 cents here. Please forgive me in advance if what I'm saying makes no sense at all :)

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list