4

私は、見栄えの良い GtkTreeView を使用して Python+Gtk3 アプリケーションに取り組んでいます。 ツリー ビューを表示したアプリケーションのスクリーンショット

これは目の見えるユーザーにとっては素晴らしいことですが、Orca (スクリーン リーダー) がそのツリー ビューの行に対して言う内容は次のとおりです: "Image, Devhelp, Collapsed, 9.2 MB"

もちろん、いくつかの問題があります。まず、3 つのセル レンダラーを 1 つの列にまとめているため、各行のチェックボックスについて言及していません。3つが利用可能ですが、どういうわけか、オルカはそれほど深く埋もれているときにチェックボックスについて言及しません. 一方、それが言及している画像は左端のもので、通常は空ですが、「再起動が必要」のインジケーターが表示されることがあります. 当然のことながら、目の見えないユーザーは、目の見えるユーザーと同じように、それが画像であることを気にしません。

私がやりたいのは、このテーブルを説明するアクセシビリティ オブジェクトを調べて、もう少し役立つようにすることです。Accerciser を使用すると、これらが存在することがわかりますが、それらはすべて非公開の文書化されていないクラス (GtkTreeViewAccessible など) で実装されているように見えます。ツリービューのアクセス可能なオブジェクトは、あるレベルで AtkTable であることを知っていたので、次の手順を実行して、バックアップ行の画像セルにアクセス可能な説明を設定しました。

    access = self.treeview_update.get_accessible()
    cell_access = access.ref_at(0,0)
    cell_access.set_image_description("Requires system restart")

(シャチは説明を話した後も「画像」と言っていますが、自分が何をしているのか知っていると思います)。

ただし、そのコードはあまり良くありません。access.ref_at を呼び出すときは、GTK がセルの位置を ATK オブジェクトの行と列にどのようにマッピングしているかについて、特定の仮定を立てています。また、最初にツリーにデータを入力するときにそれを呼び出すことに制限されており、それが特に正気かどうかはわかりません。

そこで私の問題があります。ツリー ビュー セルにアクセシブルな説明を、予期せず壊れないように適切な方法で追加したいと考えています。どうやってやるの?

4

0 に答える 0