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 _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
