[Kde-accessibility] my crazy thoughts

Pupeno pupeno@pupeno.com
Wed, 27 Nov 2002 09:06:12 -0500


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Wednesday 27 November 2002 06:37, Gunnar Schmi Dt wrote:
> I think we need to ask Trolltech to extend their QAccessible-architecture
> to something similar to the ATK-API. Then we can implement either of three
> bridging approaches:
> 1) QAccessible <-> ATK <-> AT-SPI
> 2) QAccessible <-> AT-SPI
> 3) QAccessible <-> DCOP/MCOP-AT-SPI <-> AT-SPI
>
> The first two approaches would add some dependencies on GNOME libraries or
> on CORBA. The third approach would put all dependencies into a stand-alone
> DCOP/MCOP-CORBA bridge and would require the most work.
>
> I would like to go for the first approach as all three have similar results
> and the first it is the one with the fewest work ;-)
I think there's still confusion here.
What you're saying Gunnar is, AFAIK, the same thing I understood and I don't 
like and the thing that Olaf told that wasn't right, or maybe it was just a 
proble of expretion:
I'll do a diagram on fixted font, so, please, switch to fixed font to 
understand it.
[KDE App]--[QAccessible]--[QAPlugin]-----\
                                         |
[KDE App]--[QAccessible]--[QAPlugin]---[KATK]------\
                                         |         |
[KDE App]--[QAccessible]--[QAPlugin]-----/         |
                                              [KATK-ATK-BRIDGE]
[Gnome App]--[GAIL]--[ATK]------\                  |  
                                |                [ATK]
[Gnome App]--[GAIL]--[ATK]-->[AT-SPI]--------------/
                                |
[Gnome App]--[GAIL]--[ATK]------/

Explaining:
KDE App are kde applications (simple KDE applications or screen 
readers/on-screen keaboards/anything). Gnome App is the same as KDE App but 
for Gnome.
QAccessible is the api that will describe all the aplication structure, 
automatically (without needing to do anything by the developer), same thing 
GAIL does except that GAIL is only loaded if needed.
QAPlugin would be the QAccessible plug in that makes sharing the QAccessible 
object into dcop/mcop or something (In Windows/mac would be diferent).
KATK would be in charge of all the comunication, etc, etc.
So, if KOSK (KDE On Screen Keyboard) sends a letter to KMail, that 'event' 
will never go thru ATK or AT-SPI. KDE would be a whole accessible desktop in 
its own, but there will be a KATK-ATK-BRIDGE understanding both, ATK and KATK 
to allow interoperability. it could be a KATK-AT-SPI-Bridge as weel.
This is not totally acurate and still depends on what's going to happen with 
QAccessible. The idea of making it plug in based was proposed by SadEagle or 
Daniel Molketing IIRC.
Is this what you said Olaf ?

> BTW: Why exactly is the ATK-API based on GObject? Is it possible to modify
I don't know, but you could see it here: 
http://developer.gnome.org/doc/API/2.0/atk/atkobject.html

> ATK to be able to use some toolkit-independend classes (which then could be
> instanciated through multiple inheritance from either GObject or QObject?)?
No, that's not posible that would require a lot of work inside Gnome and I 
don't think they will do it or let us do it, but more important thant that 
remember that they're working on C. It is not really object oriented like 
C++. I don't even understand how heritance works yet as clases seems a group 
of global functions, structs and defines and I don't think it supports 
multiple inheritance (I remember seeing a tree of inheritance and it was a 
simple tree, always opening), and if it was posible, our classes are totally 
diferent to them and if we make the class enough versatile for both it may 
end up being bad for both, look at the diagram I made.
A cross solution would be plain C with no object orientation (or not a real 
one at least) and I think we can do better than that inside KDE.

> In that case we would only to do four things:
> 1) Ask Trolltech to base their extended QAccessible objects on those
> toolkit-independent classes
If the toolkit-independt classes are cross-platform, Unix, Windows, MacOS, 
then, Qt may consider it. As this doesn't seem the case, I bet the plug in 
based aproach is better, we'll make the plug in. It will work similart to 
styles, you use Keramik on KDE, Qt applications also use Keramik because the 
plug in work for both and Qt configuration is overwritten by KDE if I'm not 
wrong.

> 2) extend the KDE classes
> 3) modify ATK to use the toolkit-independent classes in the API
> 4) Start KDE-applications, load the ATK-library and feel happy.
>
> It would not matter if the ATK<->AT-SPI bridge would internally still use
> Gnome libraries.
Well I think this questions are answered by the previous questions :P
Maybe we should held another meeting (absolutly informal) for the people 
intrested specifically in this, anyway, the answer for Qt is a key part of 
this development.
- -- 
Pupeno: pupeno@pupeno.com
http://www.pupeno.com
- ---
Help the hungry children of Argentina, 
please go to (and make it your homepage):
http://www.porloschicos.com/servlet/PorLosChicos?comando=donar

PS: to see what I think about the GObjects, take a look at my post: 
"Understanding the whole picture". Yes, I've read what you Gunnar and Olaf 
where talking on irc but I think it is not worth it save all of it.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE95NFWLr8z5XzmSDQRApdFAKCS3+G5gmvb5g/GkkuzBL9Eu9POmQCZAfJn
jQnIFsPmkMuj9d6nEXzFMGw=
=93PR
-----END PGP SIGNATURE-----