投稿者: nishimotz

  • NVDA 2015.2 の数式対応

    NVDA 2015.2 の数式対応について、ミツエーリンクスさんのブログで解説されています。
    http://www.mitsue.co.jp/knowledge/blog/a11y/201506/17_1000.html
    NVDA 2015.2 ユーザーガイドにも上記記事にも書かれているとおり、MathPlayer 4 ベータ版をインストールしないと、数式の読み上げは動作しません。
    http://www.dessci.com/en/products/mathplayer/download.htm
    この機能に関して、NVDA 日本語版は独自のオプションを追加したので、コメントしておきたいと思います。
    NVDA 日本語版の説明
    https://www.nvda.jp/nvda2015.2jp/ja/readmejp.html#toc26
    からまず引用します:
    5.2.14. 数式を英語で読み上げる
    「数式を英語で読み上げる」オプションの初期値はチェックされています。
    MathPlayer がインストールされていて、このオプションがチェックされている場合、コンテンツの言語属性や NVDA の設定に関わらず MathML で記述された数式は英語で読み上げます。
    このオプションをチェックなしにすると、コンテンツや設定によって MathML の数式が日本語で読み上げられる場合があります。
    しかしこのとき、数式の対話的ナビゲーションを実行すると
    “No navigation files for this speech style in this language”
    と通知されて操作ができない場合があります。
    この問題についての詳細はチケット35208 および本家チケット #5126 を参照してください。
    日本語チームチケット 35208
    https://osdn.jp/ticket/browse.php?group_id=4221&tid=35208
    本家チケット 5126
    http://community.nvda-project.org/ticket/5126
    数式を読み上げるためのテキスト化の処理は NVDA ではなく MathPlayer に実装されています。
    実は MathPlayer 4 自身が音声エンジンと点訳エンジンを内蔵しており、スクリーンリーダーがなくても動作します。
    点字は MathPlayer が Nemeth コードへの変換を行っているようです。
    ただし NVDA と組み合わせて使う場合は MathPlayer 内蔵の音声エンジンは使われません。
    MathPlayer は Internet Explorer のプラグインとして動作しますが、Firefox で MathML を読み上げるときにも、NVDA は内部的に MathPlayer のエンジンを呼び出しています。
    MathPlayer をインストールすると Windows のコントロールパネルに MathPlayer の設定をするダイアログが現れます。
    そこに数式を読み上げる言語の設定オプションもあります。
    しかし NVDA が MathPlayer を通じて数式を読み上げるときに、数式をどの言語で読み上げるか、という設定は、私が確認したかぎりでは、あまりうまく制御できません。
    HTML で言語属性がどのようにマークアップされているか、
    あるいは NVDA の音声設定
    「自動言語切り替え」
    「記号と文字の説明に音声の言語を使用」
    などのオプションが、数式の読み上げに影響を与えるようです。
    日本語 Windows で NVDA を使っていれば、 MathML コンテンツは通常、日本語で読み上げられます。
    しかし、上記に引用した説明にも書いたとおり、 MathPlayer の制約で「対話的なナビゲーション」(NVDA+Alt+M)が正しく動作しない場合があります。
    これは私が頑張って追求したのですが、 NV Access の判断は MathPlayer の不具合なので NVDA は直さない、ということでした。
    2015.2 の重要な新機能のひとつが日本語環境でうまく使えない、という事態を避けるために、NVDA 日本語版においては、「数式を英語で読み上げる」オプションを提供して、デフォルトでは
    「数式は英語で読み上げるけれど NVDA+Alt+M は確実に使える」
    という状態にしました。
    例えば JTalk で音声設定「自動言語切替」を有効にしていると、数式の部分だけ eSpeak の英語の声で読み上げる、という状況を確認していただけるはずです。
    一方で、NVDA+Alt+M の動作は不完全かも知れないが、日本語環境では数式も日本語で読ませたい、という場合は、この日本語設定「数式を英語で読み上げる」をチェックなしにしていただくと、本家版 2015.2 と同じ動作になります。
    ミツエーリンクスさんのブログには、数式の日本語での読み上げには不自然なところがある、というご指摘も書かれています。
    これは MathPlayer 自身に「数式を日本語でどう読み上げるか」という処理が入っているため、 NVDA 側では改善できません。
    数式の日本語での読み上げをもっと自然にすること、日本語でナビゲーションが使えるようにしていただくこと、などの件について MathPlayer 開発元である Design Science へのフィードバックも重要と思います。
    MathPlayer の開発チームには日本の数式アクセシビリティ研究者のお名前も挙がっているので、きちんと問題提起すれば改善されるのではないかという期待もあります。
    http://www.dessci.com/en/products/mathplayer/tech/credits.htm
    NVDA の数式対応についての Design Science と NV Access の協業は、今年3月に正式発表されましたが、現在もまだ MathPlayer 4 がベータ版として配布されている状態なので、今後も状況が変化していくと思います。
    まずは日本のコンテンツ制作者の皆様にアクセシブルな MathML コンテンツのブラウズ環境を体験していただき、適切なマークアップ方法についてご議論いただくために、NVDA 2015.2 の新機能を体験していたければ幸いです。
    追記
    https://osdn.jp/projects/nvdajp/wiki/MathML に私が検証に使っているMathMLコンテンツのリンク集を作りました。ご利用ください。

  • NVDA 2015.2jp リリースおよび NVDA 関連イベントのお知らせ

    NVDA 日本語チームから NVDA 2015.2jp のリリース、NVDA ミートアップ東京 2015.2 の再度のご案内、そして NVDA ワールド 2015 東京 開催決定のお知らせです。
    無料(オープンソース)の Windows 用スクリーンリーダー NVDA (NonVisual Desktop Access) の日本における開発コミュニティである NVDA 日本語チームは、2015年6月15日に NVDA 2015.2jp をリリースしました。
    ダウンロード
    http://i.nvda.jp/
    NVDA日本語版 ダウンロードと説明
    https://www.nvda.jp/
    Windows 8.1, 8, 7, Vista, XP(SP3) の32ビット版および64ビット版に対応しています。
    Windows 8 以降ではタッチ操作が利用できます。
    NVDA 日本語版のライセンスは GPL v2 です。
    オーストラリアの非営利法人 NV Access がリリースする NVDA 本家版は、Michael Curran, James Teh の両氏が中心となって開発を行い、世界のコミュニティが支援しています。
    NVDA は多くのアプリケーションに対応し、インストール不要で利用できるポータブル版、アドオンによる機能拡張など、さまざまな特長を備えています。
    NVDA 日本語チームがリリースする NVDA 日本語版は、NVDA 本家版に日本語の音声エンジンと点訳エンジンを追加するなど、日本語 Windows 環境のための改良を行っています。
    NVDA 日本語版 2013.3jp 以降がインストールされ、「自動的に確認してNVDAを更新」を有効にしている場合は、このリリースを新しいバージョンとして通知します。
    このリリースは NVDA 本家版 2015.2 に基づいています。
    2015.2 の改良点は、Microsoft Excel のグラフ読み上げ対応、数式コンテンツ(MathML)への対応などです。
    以下は日本語版 2015.2jp での変更点の概要です。
    (1)
    日本語入力で変換前文字のキャレット移動が「空行」と通知される不具合への対応
    (2)
    BrailleNote 46C/46D でタッチカーソルを押すとエラーになる不具合への対応
    (3)
    更新チェックの安全な通信(HTTPS)への移行
    (4)
    日本語設定「ヘルプを独自のウィンドウで開く」を無効にできるオプションの追加
    (5)
    音声設定の既定値「大文字にビープを付ける」をチェックなしにして「大文字の前に大文字と読む」をチェックする変更
    (6)
    日本語点字出力の改善
    (7)
    ユーザーガイドの日本語表記の改善
    (8)
    日本語設定「数式を英語で読み上げる」オプションの追加。
    これは NVDA 本家版および MathPlayer の実装で、NVDA の言語が日本語のときに数式コンテンツの操作ができない問題に対応するための変更です。
    詳細は「NVDA日本語版の説明」をご確認ください。
    NVDA日本語版の説明 バージョンごとの変更点
    https://www.nvda.jp/nvda2015.2jp/ja/readmejp.html#toc64
    NVDA最新情報(本家版のバージョンごとの変更点)
    https://www.nvda.jp/nvda2015.2jp/ja/changes.html
    NVDA ミートアップ東京 2015.2 では今回リリースした NVDA 日本語版 2015.2jp の概要とNVDA 日本語チームの活動報告、アンカンファレンスを行います。
    NVDA と Windows スクリーンリーダーの情報交換の場としてぜひご参加ください。
    日時:2015年6月20日(土曜)13時から17時
    場所:東京都新宿区 日本盲人会連合 日本盲人福祉センター
    詳細と参加のお申し込み方法は下記でご確認ください。
    NVDAミートアップ東京 2015.2 (connpass)
    http://nvdajp.connpass.com/event/12178/
    最後に、NVDA 日本語チームは、2013年、2014年に続いて、2015年も下記の通り「NVDAワールド」を開催することをお知らせします。
    イベント名:NVDAワールド 2015 東京
    日時:2015年9月12日(土曜)10時より
    場所:東京都港区虎ノ門で調整中です。
    詳細は下記のサイトでお知らせします。
    NVDAワールド 2015 東京
    https://www.nvda.jp/2015/nvda-world-2015-tokyo.html
    (以上)

  • すごい広島 95 と NVDA 日本語版のソースコード管理

    すごい広島 95 に参加してきました。
    事前に呼びかけてみたら、NVDAユーザ会広島の関係者が、私を含めて3人集まりました。
    やること宣言した作業は NVDA 日本語版の点訳エンジンに関する下記の検討でした。
    日本語点訳で (日) と (火) の区別がつかない
    NVDA 日本語版のソースコードは Git で管理されています。
    また、NVDA 日本語版に含まれている日本語点訳エンジンにはテストコードが用意されており、なにか修正をしたときに、いままでうまくいっていた点訳の事例を壊さないように作業をしています。
    テスト駆動開発の理念を尊重して作業しています。
    いわゆる「デグレード」を避けるべき理由はいろいろあるでしょうが、不具合が増えてしまうと、それを嫌って「古いバージョンをわざわざ使う人」が増えてしまいます。
    NVDA 本家版はそのようなことがないように努力しているのがわかるので、日本語版もそうしたいと思います。
    私がこの日にやった作業は以下のような感じでした。

    • 点訳エンジンのテストを実行して、既存のテストケースでエラーが出ていないことを確認
    • 報告があった「不具合の事例」をテストケースに追加
    • 追加されたテストケースで、テストを実行して、そこだけが新しいエラーになることを確認

    本当はエラーが出ているのでコミットするべきではないですが、作業手順の説明とバックアップのためにコミットされました。
    帰宅して数日のうちにもうひとつのコミットを行い、この時点でエラーの数は0に戻りました。
    作業はチケットに対応するトピックブランチ ti34973 で行い、作業が完了してから master にマージされました。
    この作業をしたレポジトリは通称 miscDepsJp と呼んでいるもので nvdajpmiscdep という名前で管理されています。
    この miscDepsJp レポジトリは nvdajp 本体のレポジトリから submodule として参照されています。
    NVDA 日本語版の実行ファイルをビルドすることなく、miscDepsJp のソースだけで点訳エンジンの開発と単体テストが可能になっています。
    修正の中身をすこし詳しく説明しておきます。
    日本語点訳において(日)(火)などの曜日表記が、読み付与が間違っているためにどちらも「ヒ」になっていて、区別がつかない。
    このような事例だけでも個別対応をして修正できないか、というのがいただいた要望でした。
    日本語点訳の読み付与は Open JTalk の処理系に合わせて MeCab で行っています。
    一般的には「日」や「火」という文字が出てくるたびにすべてを「ニチ」「カ」のように変換してしまうわけにはいかず、本来は文脈に応じた処理を行う必要があります。
    もし文脈に応じた処理をしないと、たぶん既存のテストケースのどこかが壊れてしまうでしょう。。
    今回はメーリングリストでいただいたアイディアを参考に、「(日)」のように「前後にカッコ、カッコとじがついている場合」だけ特別な対応をするという方針で作業をしてみましたが、実際には「記号」「一般名詞」「記号」という3つの形態素として処理されるべきなので、MeCab の辞書登録に加えて形態素解析結果の後処理で正規化(形態素の分割)を行って、なんとかつじつまを合わせています。
    MeCab の辞書に単語を追加したので JTalk の読み上げにも影響が及ぶのですが、今回の作業の結果 JTalk の読み上げで「(日)」「(火)」は「ヒ」「ヒ」のままになっています。
    音声読み上げについては音声合成に送られる前に句読点記号辞書が適用されるので、音声エンジンが受け取る前に「カッコ 日 カッコトジ」「カッコ 火 カッコトジ」のような文字列になってしまいます。
    なので「(火)」のような単語を MeCab 辞書に追加しても、点訳エンジンに対してしか効果はありません。
    以上、やった作業の簡単な報告でした。
    NVDA 日本語チームのメーリングリストにおいて、日本語テキスト解析に関する開発には多くのひとが興味をお持ちのようなので、この部分に特化した開発をしていただくために、ソース、ドキュメント、ツールなどを整理したいと思っています。
    複雑な作業であることにはかわりないので「誰でも開発に参加できるようになる」と期待されるとつらいですが。。
    なお NVDA 日本語版のソースコード管理システムを github にまとめる作業を進めているところです。
    ソースを github にコミットすると点訳エンジンのテストを自動実行する、いわゆる「継続的インテグレーション」などもやりたいと思っています。