[Development] Trip report, Accessibility Hackfest, A Coruña

Quim Gil quim.gil at nokia.com
Thu Jan 26 18:57:23 CET 2012


On 01/26/2012 07:35 AM, ext Frederik Gladhorn wrote:
> Accessibility in Qt 5
> =====================
>
> What is that thing anyway?

The stuff below is just too good not to end up in a more stable location 
such as http://wiki.qt-project.org/Accessibility

Please...  :)

> While a11y is a broad term, in this context it's about exposing semantic
> information about the application using some IPC framework.
> This enables other programs to assist the user (AT=assisitive technology). An
> example of an AT is a screen reader that helps users with low vision and blind
> people to use the application.
> Of course there are many more things in the field, but for our part this is
> what we care about. Other parts such as font and color settings are important
> but part of the platform, not enforced by Qt as library.
>
> Currently three people spend part of their time on improving our accessibility
> implementation.
> All of us work on improving the general APIs in Qt base and the new parts in
> Qt Quick. We are happy that we got the basics for QML integrated in the
> beginning of this year. Since then we can make Qt 5 applications written in
> QML accessible. Ubuntu actually tested this work for their Unity-Qt and ships
> it since the last release as a backported patch to Qt 4.7. This is not
> recommended. Anyone who wants to have accessibility working with Qt should use
> 4.8 and in comparison Qt 5 looks much better still.
> For the different platforms we were lucky enough to find one person interested
> here in Oslo.
> Jan-Arve Sæther started to implement IAccessible2 (Windows) support for Qt 5,
> which is about to reach a state where we can review it on gerrit. Currently
> there is support for the older MSAA only which is often insufficient.
> Morten Sorvig improves the Mac support since we now need to support Cocoa, the
> Carbon accessibility we had was falling apart.
> I feel most at home on Linux and adapted the qt-at-spi bridge which integrates
> Qt applications with the Gnome accessibility framework using DBus.
>
> For accessibility we chose to consciously break even source compatibility in a
> few places. This simplifies the APIs in many places and makes it easier for
> application developers to extend custom widgets with useful a11y information.
> We are relatively sure not to break many applications since the old version
> was so fragile that any user would have run into so many bugs that we'd have
> heard of them.
> The change-log (dist/changes-5.0.0) will list all source incompatible changes
> we deemed necessary.
> One big example was the removal of an integer parameter in almost all
> functions. This was part of the MSAA API (around Win95) where everything is
> assumed to have a window handle and maybe if it's a really complex beast, a
> few children. We changed it to handle all children as real objects and in the
> process of removing this fixed several issues and inconsistencies in behavior.
>
>
> ATK/AT-SPI/Accessibility Hackfest
> =================================
>
> The event was organized by the Gnome Accessibility team and hosted by Igalia
> in A Coruña. I was able to attend thanks to Nokia supporting me.
>
>> From Wednesday to Saturday we discussed the state of Accessibility on Linux.
> For Gnome this means lots of polishing and getting the details right. Some big
> issues are that it's currently impossible for them to switch on and off the
> accessibility framework on the fly.
> Qt is currently the newcomer to Linux Accessibility. After researching
> different solutions that would be viable to expose our internal QAccessible
> framework on Linux, I concluded with advice from others, that the best idea
> would be to use AT-SPI 2. AT-SPI 2 is a DBus protocol that Gnome implements
> using ATK and which the ATs communicate with using libatspi.
>
> Using ATK would have been one option but not have matched with what we have
> internally very well. Implementing just the DBus protocol gives us the benefit
> of no additional dependencies.
>
> AT-SPI 2 is the DBus port of the older AT-SPI (Assisitive Technology-Service
> Provider Interface). A Qt bridge to this DBus protocol was started before I
> picked it up, it can be found here:
> http://gitorious.org/qt-at-spi
>
> For me as a newcomer there was a lot to learn, such as why and when I need to
> keep sending accessibility updates. An example is text editing, where it's
> important to keep the AT in the know of what text is there, which sections are
> selected etc. I will write more detailed explanations and how to make custom
> widgets play nice for all of this since it would be great if others joined in
> completing this work.
>
> We discussed many infrastructure bits. It turns out that there was much
> agreement between the Qt and Gtk people :) Much of the discussions were needed
> for us to understand what the screen reader writers need.
>
> I was also happy that José Millán Soto joined. He improved KDE a11y last
> summer as summer of code project. Together we worked on some applications.
> Amongst them Qt Creator, Kate, Konsole, KMail and KDevelop. Many of the
> changes and fixes for one application benefit the others since they could often
> be made in Qt itself. It was great to dive into using the APIs we work with
> for a change.
> I'm personally very happy how fast progress is in this area, since it shows
> that our QAccessible framework now reached a state where it is useful and will
> get our software into the hands of more users.
>
>
> Cheers
> Frederik



More information about the Development mailing list