Qtブログ(日本語)

アクセシビリティへ向けて

作成者: 朝木卓見|Apr 14, 2011 9:50:30 AM

この記事は Qt Blog の ”Not yet Accessible” を翻訳したものです。
執筆: Frederik Gladhorn 2011年4月1日

最近、アクセシビリティについて少し調べる機会を得ました。Qt では、プラットフォームで設定されたハイコントラストカラースキームやビッグフォントをサポートしています。それ以外のアクセシビリティの機能としては支援技術(Assistive Technology:AT)があります。この機能ではアプリケーションが画面に表示しているものをエクスポートして、AT クライアントがそれを別の手段で解釈します。スクリーンリーダではユーザに画面をナビゲートする助けとして、その情報を音声合成に使用します。AT の規格はいくつかあります。Qt では全てのサポートプラットフォームで、そのネイティブインターフェースのサポートを目的としています。現時点で Windows では、若干古くなりましたが現役の MSAA(Microsoft Active Accessibility) をサポートしています。Linux の状況はこれまでかなり悪かったようです。これはまだリサーチプロジェクトですが、そのゴールは Linux デスクトップで Qt や KDE のアプリケーションで AT が動くようになることです。

最近 Orca(GNOME のスクリーンリーダ) が DBus と AT-SPI 2 で動き始めました。[qt QAccessibleBridgePlugin] を利用して、Qt はそれらと同じインターフェースを提供することが出来ます。そのプラグインは Qt の IAccessible2 (乱立するアクセシビリティの別の規格) の内部実装を使用します。これはまだ実装中ですが、ビデオでご覧いただいたように基本的な部分は実装済みです。

カスタムウィジェットを用いるアプリケーションに関連するのは [qt QAccessiblePlugin] を実装することです。もちろん、このプラグインは全てのプラットフォームで共通なので、一度だけ作成すればよいですし、標準のウィジェットには Qt 側で用意してあります。

実際に動作させるまで信じられないという方は、遠慮無く gitorious からプラグインを取得してください: http://gitorious.org/qt-at-spi
(訳注: 原文の公開日は4月1日でした。)

もちろん、プラグインからの情報を受け取るシステムが必要です。プラグインを使用するには AT-SPI-2 が動作している必要があります。AT-SPI2 のテスト時に問題の素早い修正を行ってくれた Mike Gorse と数名に感謝します。ブリッジはまだ開発途上のためアプリケーションがクラッシュすることがあります。

at-spi2-core, libatk-adaptor/at-spi2-atk, pyatspi2 そして Orca をインストールしてください。 Accerciser はデバッグ時に大きな助けとなるでしょう。

gconf に AT-SPI 2 を利用する設定をしてください:

gconftool-2 --set /desktop/gnome/interface/at-spi-dbus --type bool true
gconftool-2 --set /desktop/gnome/interface/at-spi-corba --type bool false

以下の環境変数を設定してください:

export GTK_MODULES=gail:atk-bridge
export QT_ACCESSIBILITY=1

Will と Jonathan のおかげで、SuseKubuntu 用のパッケージが既に準備されています。しかし上記の通り、それらはまだクラッシュする状態にあります。Qt の master ブランチ(4.8)では問題は修正済みです。

Qt および KDE アプリケーションでは、さらなるテストと Qt の標準ではないウィジェット用の QAccessiblePlugins が必要です。