1年間Flutterで開発をしていてわかったアクセシビリティの問題(Android編)


この1年コンスタントにFlutterでコーディングをしていてわかったスクリーンリーダー(TalkBack)の問題についての記録です。
iOSについては1年間Flutterで開発していてわかったアクセシビリティの問題(iOS編)をご覧ください。


文字入力時にボリュームボタンでカーソル移動した時の文字読み上げがない

iOSに比べAndroidは動作の安定性や不具合の修正があり、現状ほとんど問題なく開発ができています。
ただ最近のバージョンで上記の問題が発生しています。
これはAndroid特有のアクセシビリティ機能であり、大変協力な物です。
文字入力中に

  • ボリュームダウンボタン → 左カーソルキー
  • - ボリュームアップボタン → 右カーソルキー

の役割を果たします。
スワイプによるジェスチャーでも同様のことができますが、ボタン操作のほうが確実です。
が、残念ながらこのカーソル移動の時にフォーカスされた文字を読み上げない問題が起きています。
これは以前からあった問題ではなくバージョンアップに伴い起きている物です。
私が確認しているところではバージョン2.1.0-12.2.preまでは正常に動作していました。
全てではありませんが、バージョン2.5.0-5.3.preまでのいくつかで試してみましたが、読み上げがされませんでした。


まとめ

上記問題はissueとして報告していますが、暖簾に腕押しな状況です。
ほんとうは最新のバージョンで開発をしたいのですが、この問題のため古いバージョンを使っています。
Flutterの開発に関わっている方やバグ修正の得意な方がいらっしゃいましたら、改善に力を貸していただけますと幸いです。

下記サンプルでTalkBackをONにすると問題の確認ができます。
TalkBackは
設定 → ユーザ補助 → TalkBack
から
ショートカットの設定
TalkBackを使用する
の順で有効にしてください。
TalkBackがONになるとジェスチャーが変わり、操作に戸惑うことと思います。
上記の順番で有効にすることでいつでもボリュームボタンのアップとダウンの同時押しでON/OFFを切り替えることができます。
端末内にTalkBackの項目がない場合は
Android ユーザー補助設定ツール - Google Play のアプリ
からインストールをお願いします。

TalkBackサンプル