タグ: python

  • NVDAのこれから

    このエントリーは Webじゃないアクセシビリティ Advent Calendar 2018 の12日目の記事になります。
    NVDA日本語チーム の西本です。ふだんは広島県広島市にいます。オープンソースのスクリーンリーダー NVDA の日本語対応に関わりながら、NVDA 日本語版のリリースを続けています。ウェブアクセシビリティ基盤委員会 WAIC WG2 にも参加しています。
    今年は自分の会社 シュアルタ を設立しました。
    NVDA に関するコンサルティングや受託開発を、株式会社シュアルタでお受けするのでよろしくお願いします。
    後述するように NVDA と Windows アクセシビリティを取り巻く環境は2019年にも大きく変化します。
    視覚障害者の雇用などで NVDA を活用したい企業や団体などの法人に向けて、コンサルティング契約により NVDA の技術サポートを提供します。
    現在は申込受付の準備中です。
    詳細は info@shuaruta.com にお問い合わせください。

    Windows と Edge のこれから

    Webアクセシビリティ Advent Calendar 2018 の4日目として NVDAのブラウズモード という記事を書いて、「Microsoft が Chromium 技術で作ったデスクトップアプリ」の紹介をしたら、直後に Microsoft Edge が Chromium に移行するという発表がありました。
    momdoさんの日本語訳
    そこまで Chromium 大好きになってたのか。。
    Windows 10 がリリースされた直後に NVDA は Microsoft Edge をちゃんとサポートできていない、という宣言をしたのが懐かしいですね。
    最大の理由は Internet Explorer 11 がサポートしてきたアクセシビリティAPIを Edge が廃止して UI Automation という技術に移行してしまったから、なのですが、その後、長い間をかけて Microsoft と NV Access は Edge が NVDA でちゃんと動き、性能的にも問題がないようになった、というのが2017年の終わりごろでした。
    Chromium になった Edge は、もはや Chrome や VS Code や Skype のようにきちんと NVDA で操作できるようになるのだろうな、と思ったら、今度は Microsoft が Chromium の UI Automation 移行を進める、という話になっています。ということは Edge と Chrome にちゃんと対応できたばかりの NVDA は、また新たな作業が必要になるかも。。
    Windows スクリーンリーダーのワクワク・ドキドキ・ハラハラの日々はなかなか終わりそうにありません。

    NVDAのこれから

    Python 2 のサポートが2019年末に終了する、ということがわかっていたにも関わらず NVDA はいまだに Python 2.7 に依存しています。
    あれやこれやのアップデートに対応する作業に NVDA が追われることがなければ、もっと前向きな作業ができたのではないか、と言われそうですが、私は「もともとスクリーンリーダーというのはそういう運命のもの」だと思っています。
    つまり OS やアプリやコンテンツが「理想的に作られていない」ことで起きる不具合を「取り繕う」のが、スクリーンリーダーの(本質とまでは言わないけれど)「重要な価値」になってしまっています。
    なので「スクリーンリーダーの未来は?」と聞かれると、「スクリーンリーダーがなくなる」は言い過ぎとしても「スクリーンリーダーが単純になるのが理想の未来」と私は答えます。
    話を戻すと、NVDA は来年 2019.1 から 2019.4 までの4回のリリースを行うあいだに、互換性を切り捨てて大きく変わり、Python 3.7 あるいは Python 3.8 を積んでパワーアップした NVDA に生まれ変わります。
    ですが、そのパワーアップは、ユーザーには「何の得にもならない」と思われる可能性が高いです。
    Windows XP のサポートが終わったときにも、Firefox で WebVisum が動かなくなったときにも、ガラケーで Web サイトが閲覧できなくなったときにも、むかしの Visual Basic で書かれたアプリが動かなくなったときにも、同じような話がありました。
    今度は NVDA にその試練が降りかかる番ですね。。
    たぶん NVDA 2018.4 やその日本語版を、アップグレードしないで何年か使い続けたい、という要望が出るだろうなあと覚悟をしています。
    まあ、そういう使い方をする PC を割り切って温存するのは「アリ」かも知れません。。
    ユーザーが直接得をしない「新しい技術への移行」は、そうは言っても、標準化、ソフトウェア開発、セキュリティ、オープンソース、など多くの企業やコミュニティの活動が関わって作られた「大きな流れ」であり、逆らうことは「孤立」を意味します。
    そして「孤立」は「コンピューターとインターネットを学びたい、楽しみたい、活用したい」というスクリーンリーダー利用者には「残念な」選択だと思います。
    実はまだ NVDA コミュニティは NVDA を Python 3 に移行させるための技術的課題を完全にはクリアできていません。
    私の手元で動いている Python 3.7.1 版 NVDA は、今日やっとフォーカスハイライトが動いたところですが、まだ重要な機能がボロボロと欠けている状態です。
    大丈夫なのか、ほんとにやれるのかよ、と心配しています。
    来年は NVDA 日本語版よりも、まず本家 NVDA コミュニティのチャレンジを支えたい、と思っています。

    NVDA 日本語アルファ版の新しい仕様

    ここからはメーリングリストに投稿した内容です。
    現在 NVDA 2018.4 のリリース候補版が出ていて、NVDA 日本語ベータ版 nvda_2018.4jp-beta-181210j はその変更が反映された、事実上の日本語リリース候補版になっています。
    来週中に 2018.4jp の正式版もリリースできると思います。
    本家は NVDA 2019.1 に向けた作業を進めており、日本語アルファ版では 2019.1 に向けた変更をテストしています。
    最新の日本語アルファ版で、NVDA のアドオンについて大きな変更があるので、お知らせしておきます。
    以下の説明を読んで、不都合と思う場合は、前もってリリース版やベータ版に移行することをお勧めします。
    2019.1 以降の NVDA は、原則として、アドオン開発者によって互換性が確認されたアドオンだけをインストールできます。
    アドオン開発者は、互換性を確認していることを知らせるために、アドオンを作り直して公開する必要があります。
    先日リリースした focusHighlight 5.4 ではこの問題を修正しています。
    NVDA 2019.1 系の日本語アルファ版をインストールするときに、従来のアドオンがインストールされていると、
    「アドオンの互換性について了解しました」
    というボタンが表示される場合があります。
    ですが、そのボタンを押してインストールを実行するだけだと、互換性のないアドオンはすべて無効化されてしまいます。
    インストールを実行する前に「アドオンの互換性の確認」というボタンからダイアログを開き、それぞれのアドオンについて「有効にする」のチェックボックスをチェックすれば、従来のアドオンを使い続けることができます。
    この作業は、すべてのアドオンについて必要です。
    (NVDA をインストールし直すたびに必要かどうかは再調査中です)
    アドオンをたくさんインストールしている場合や、頻繁に NVDA 日本語アルファ版を更新している人には、かなり面倒ではないかと思います。
    場合によってはベータ版や安定版に切り替えたほうがよい、というのはそういう理由です。
    この数日、本家では、この仕組みのリリースで大きな混乱がありましたが、メーリングリストなどの議論を読んでいるかぎりでは、アドオンの互換性チェックを見直すつもりはなさそうです。
    NVDA が依存している Python を2019年末までに 2 から 3 に切り替えて、そのほかの NVDA の内部の改良を進めるために、アドオン開発者に対応をしてもらう必要があり、その準備としてこの機能が必要だと考えられているためです。
    NVDA 日本語版についても、こういう仕組みになったことを早く知っていただこうと考えています。
    インストール時のアドオンの操作についてのメッセージは、日本語アルファ版では日本語に翻訳しました。
    通常よりも早いタイミングで翻訳作業をしたので、不完全な部分があるかも知れません。
    従来動いていたアドオンが「手動で有効化」すれば動くかどうかは、アドオンごとに状況が異なりますが、2019.1 で動いているとしても、アドオンそのものが更新されなければ、2019.4 や 2020.1 で動かない可能性が高いです。
    新しい日本語アルファ版を試してもらい、どのアドオンで不都合なことが起きるかを調べながら、NVDA 日本語チームの取り組むべきことを検討したいと思います。

    アドオン開発者のための補足

    アドオン開発者のための公式の説明は developerGuide に書かれています。
    https://github.com/nvaccess/nvda/blob/master/developerGuide.t2t
    具体的には manifest ファイルに

    minimumNVDAVersion = 2017.4
    lastTestedNVDAVersion = 2018.3
    

    のように記載します。
    前者を「最小要件の NVDA バージョン」
    後者を「動作確認済みの NVDA バージョン」
    と日本語では表記しています。
    未来のバージョン番号を 2019.2 のように書いてもエラーにはなりません。
    (が、最新のアルファ版のバージョンにしておくべきという本家のMLでの議論あり)
    2019.1 と書くと本家版 2019.1 とも互換性があり、NVDA 日本語版 2019.1jp とも互換性がある、と解釈される見込みです。
    (日本語版でしか動かない、みたいなチェックは想定していません)
    本家のコミュニティで公開されているアドオンのテンプレート
    https://github.com/nvdaaddons/AddonTemplate
    こちらには
    updateChannel
    という項目もありますが、これは本家の addonUpdater で使われる項目で、不要な場合は None にしておきます。
    focusHighlight の buildVars.py も紹介しておきます。
    https://github.com/nvdajp/focusHighlight/blob/master/buildVars.py

    NVDAとアドオン開発者のための補足の補足

    ユーザーには何の役にも立たないように見えるであろう「NVDA の Python 3 移行」ですが、NVDA の現在と未来の開発者が幸せになれる、というメリットが、めぐりめぐって NVDA のユーザーを幸せにする、という展望があります。
    例えば、いままで NVDA が日本語環境でうまく動いていない不具合の多くは「Windows で日本語の文字コードが使われている場合だけで起きる問題」の見落としでした。
    Python 3 への移行で、そのような不具合が起こりにくくなる、と私は期待しています。

    おまけ:今年出演したポッドキャスト(再掲)

    サイトワールド2018特集 第6回 NVDA日本語チーム(日本視覚障害者ICTネットワーク JBICT ポッドキャスト)
    AccSell ポッドキャスト第140回: 「こういうもの俺自分で作らなくて良い時代になったんだ」
    わしポ 9: Kinsai PyCon mini Hiroshima (nishimotz)

  • PyCon mini Hiroshima 2018 終了

    PyCon mini Hiroshima 2018 が無事に終了しました。
    有料イベントになったにも関わらず、60人以上の人にご参加いただくことができました。
    私は実行委員長として、また企業・団体パトロンの株式会社シュアルタとして、そして「舞え!ひろしま Kaggler」講演者として、あわただしい一日でした。

    まだまだ記録とか精算とか報告作成とかやっている途中です。
    Togetter まとめ
    いつものように最後にスタッフみんなでご挨拶した写真。


    まだ広島で Python 流行ってないの?と言わせてるみたいなスローガンでしたが、今回は「広島で流行らせよう!」というテーマをすこしずつ実践できていけそうな、そんな一日でした。
    今後ともよろしくお願いします。

  • PyCon mini Hiroshima 2018 参加者・発表者募集中 #pyconhiro

    2018年10月6日(土曜)に PyCon mini Hiroshima 2018 を開催します。

    概要

    PyCon mini Hiroshima 2018
    すごいPython 広島で流行らせよう!
    2018年10月6日(土曜)
    基調講演
    Pythonで遊ぼうコンピュータ将棋
    芝 世弐(岡山県立大学情報工学部)
    Pythonの10年と今、これから
    佐藤治夫(株式会社ビープラウド)
    会場
    広島大学東千田未来創生センター
    広島県広島市中区東千田町1-1-89
    参加費
    学生:無料
    一般:1000円
    事前の申し込みをお願いします)

    講演者募集

    Python に関するご講演を募集しております。
    講演申込 Google フォーム をご利用ください。
    またはメールでのお申し込みに関する説明を参照してください。
    申込締切は8月29日(水曜)です。

    西日本豪雨の影響

    以下、現時点での個人的な見通しです。

    • 当日の会場への新幹線(JR広島駅)や広島空港からの交通アクセス:問題なし
    • 広島市中心部から西側(宮島など)の観光スポット:問題ありませんが、JR在来線の運行区間に変更があり、運行本数も少なめです。時間に余裕をもって行動するとよいと思います。
    • 広島市中心部から東側(呉、東広島、尾道など)へのアクセス:JR在来線が被災し、10月の時点ではまだ全線復旧できていない見込みです。バスや車での移動は運休、不通区間、渋滞に注意が必要です。
    • 西条酒まつり:開催されます。ですが JR 在来線で広島市内から移動できない可能性があります。酒蔵ツアーについては8月中旬にご案内する予定です。
    • 追記(8月16日)PyCon mini Hiroshima 2018 Sake-Matsuri Tour 募集中です!当日はJR在来線で広島市内から移動できる見込みです。

    雑感

    私自身は、豪雨から3週間以上が過ぎた現在も、自宅地域が避難勧告の対象になっています。川沿いの道路がいたるところで陥没して、愛犬と散歩をする道がごくわずかになってしまいました。それでも、この地域にも多くのボランティアが来てくださって、砂ぼこりを巻き上げていた道路が少しずつきれいになり、通勤などでの不便は残っているものの、日常を取り戻しつつあります。
    こんな状況でしたが、7月22日に「PCNひろしま」のプログラミング教室を予定通りに開催して、改めて、自分の置かれた状況に配慮しながら、やってきたことをやり続けることの意味もあるような気がしました。


    PyCon mini Hiroshima でも、広島で今年起きたことを踏まえた取り組みを、なにか扱えるのでは、と思っています。先週の水曜日に開催した「すごい広島 with Python」でも、位置情報を扱うライブラリやオープンデータなどの情報交換をしたところです。
    「すごい広島 with Python」は1年以上毎月開催して、ここで Python を勉強しはじめた人が、東京で開催される PyCon JP のプロポーザルを出す(通ったかどうかはいずれ。。)という段階までたどり着きました。参加者としても今年も何人かが広島から PyCon JP に参加することになりそうです。
    Python を広島で使い始めている人に、ちゃんと広島にコミュニティがあって、全国的なコミュニティとつながっている、ということを知っていただくために、もうしばらくこのイベントを続けたい、という気持ちで準備を進めています。
    現在受付中の講演募集ですが、30分、15分に加えて、持ち時間5分のライトニングトーク(LT)も選択可能にしています。 Python に関するいろいろなアイディアやノウハウをお持ちの方は、お気軽にお申込みください。
    よろしくお願いします。
    追記
    講演申込締切を8月29日(水曜)に変更しました。(8月15日)