LT駆動開発 01 – 発表することで勉強しように参加してきました。
テーマを設けずにみんなでライトニング・トークをして発表のスキルを磨こうということで、今回が最初の勉強会でした。
今後は定期的に開催されるとのことです。
誰でも気軽に入れるようにしたいという気持ちはわかるのですが、主催者が「裏でこっそり」はよくないかと。。みんなでちょっとずつ会場代を負担させてもらいました。
「会場費を払うスポンサー 緩やかに募集」だそうです。
私は WAI-ARIA と NVDA というテーマでしゃべりました。デモの段取りが悪くてすみませんでした。。
スライドにも書きましたが、喋ったこと、喋るべきだったことを「ふりかえり」しておきます。
日本語スクリーンリーダーとWAI-ARIAというブログ投稿によると、 NVDA 日本語版は日本語環境で使えるスクリーンリーダーとしては WAI-ARIA 対応が充実していると言えるでしょう。
しかし Windows 以外の環境である Mac や iOS, Android などにも目を向けると、モダンなブラウザはどれも WAI-ARIA などのアクセシビリティ規格への対応を進めており、しかも OS 標準のスクリーンリーダーが無料または安価に利用できるわけです。
モダンなWebアクセシビリティ環境を、誰にでも使えるようにするための手段が、オープンソースのスクリーンリーダー NVDA ということになります。
海外では最近 Window-Eyes for Office の無料提供が発表されて状況が変わりましたが、日本ではまだ無料のスクリーンリーダーといえば NVDA 日本語版だけという状況です。
Windows のバージョンにかかわらず最新版を利用できる Firefox と NVDA という組み合わせは、いずれWeb制作者がスクリーンリーダー利用者に推奨せざるを得ないようになると思っています。
今回は「王道としての説明」で、ランドマークなど「マークアップに意味的構造という属性を追加する」話をして、「邪道としての説明」で、ライブリージョンという機能がWebアプリケションから音声合成エンジンを叩く方法として使えることを話しました。
後者は広島市の動画サイトの実例があり、NVDAとFirefoxの組み合わせで使ってくださいと書かれています。
WAI-ARIA についての自分の覚え書きページに、その他のリンクや情報を書いています。
そういえばAngularJS と NVDA という記事も去年に書きました。AngularJS はアクセシビリティを損なわずに開発を効率化してくれそうで、よさそうだなあと思って、それっきりでしたが、今日のLTを聞いてまた何かに使ってみようと思いました。。
おまけ、自己紹介で触れた話:Higglety Pigglety Pop! or There Must Be More to Life
タグ: nvda
-
WAI-ARIA と NVDA
-
#OSH2014 感想と懇親会LT #nvdajp
オープンセミナー2014@広島に参加しました。
懇親会LT(ライトニングトーク)の私のスライド「テスト駆動開発とアクセシビリティ(仮)」は下記の通りですが、スライドだけではわからないでしょうし、トークも言葉足らずだったので、昼間のセッションの感想をふくめて補足します。
NVDA 日本語版 の紹介。NVDA の開発には Python が使われています。
実は「NVDA日本語チーム」を立ち上げる前に、私はまず「NVDAユーザ会広島」を立ち上げて、地域コミュニティ活動を始めました。
オープンソースカンファレンス2013広島への参加の後、活動が滞っていますが、暖かくなったら再開したいです。
アクセシビリティ、Python、Windows API、テキスト音声合成、自然言語処理、バージョン管理など、NVDA の開発を語る切り口はいろいろあるので、いろいろな団体と交流が必要だと思い続けています。
NVDA は Web 開発者の方々にも、アクセシビリティチェックツールとして注目されています。
NVDA は誰にでも無料で使えて、視覚障害をもつユーザーに実際に利用されている(され始めている)ツールです。
一方で、ソフトウェアの自動テストという文脈からは、例えば Selenium でスクリプトを書いて Web アプリのテストをされる方も多いでしょう。
NVDA が動いている状況で Selenium で Firefox を制御するスクリプトを書いて実行するとどうなるか、最近少し試してみました。
Tab によるフォーカス移動、フォーム要素(コントロール)の操作、文字入力などはうまく制御できるので、Firefox でウェブを操作する様子を読み上げながら自動テストすることができます。
しかし、NVDA が提供しているのは単なるフォーカス移動だけではありません。ブラウズモードという特別な操作が追加され、例えば数字キーの1から6で見出しジャンプができたり、文字単位で任意のテキストの内容を確認できたりします。
こうした機能は Firefox ではなく NVDA がキーイベントを受け取って、NVDA と Firefox のプロセス間通信(IAccessible2という専用プロトコルが使われます)を通じて Firefox を制御しているため、Selenium で Firefox に ‘1’ や ‘2’ などのキーイベントを送っても見出しジャンプは実行されません。
残念ですが、もうちょっと何かできないかなと検討中です、というのが最初に言いたかったネタでした。
2個目のネタですが、NVDA を Windows 7 以降で使うと UI Automation という技術がデフォルトで有効になります。
この技術は Windows システム・スクリーンリーダー・アプリケーション、というレイヤーをつなぐ一種のプロセス間通信で、特に GUI をリモートプロセスから制御するモダンなオブジェクトモデルを備えています。
そして UI Automation は「ソフトウェアの自動テストの技術」でもあり、Microsoft のエバンジェリスト(当時)だった長沢さんが、そういう文脈でいろいろ記事を書いておられたわけです。
しかし、和田さんの朝一番のセッションで FAQ として触れられた「GUIはテスト駆動開発に向いていない」という話は、私もうすうす気づいていた事実でした。
Python 界隈では「Selenium は負債」という認識 がちらほら聞こえていましたが、どう「負債」なのかは、和田さんの講演で腑に落ちました。
GUI テストは一般にターンアラウンドが長すぎて、「黄金の回転」が回せない、「ただのテストがある開発」になってしまうのです。
「早くて小さい回転をうまく回す」という「TDDのこころ」を、テスタブルでアクセシブルなUIの開発という目標にどうつなげていくか、新しいチャレンジが必要と痛感しました。
3番目のネタですが、NVDA 日本語版は点訳エンジンを「テスト駆動開発」しています。
こう書くと大げさですが、実は liblouis という(日本語に対応していない)多言語対応オープンソース点訳エンジンはちゃんとテストを Jenkins でチェックしながら開発が行われています。
それに倣って、日本語点訳エンジンを、まずテストを書いて、テストが落ちることを確認して、それから実装を直す、というサイクルで作ってみました。
実際の作業は2012年春から2013年春にかけて行ったのですが、実は最初はタッチカーソルのカーソル位置を処理する「ポジションマッピング」というアルゴリズムを入れていませんでした。
点訳エンジンをあちこち書き換えつつ、既存の処理を壊さずに最小限の修正でタッチカーソル対応できたのは、テストケースという命綱のおかげでした。
最後に2枚追加したスライドは、昨日のオープンセミナーを通じて感じたことでした。
私はチクセントミハイの「フロー体験理論」を1990年代後半に知り、最初はヒューマンインタラクションの評価手法などに応用したいと思っていました。
スライドに張り付けた「技能と挑戦のモデル」はちょっと古いモデルの図ですが、要するに「いきなり難しいことをする、身の丈に合わないことをすると、不安になり、挫折する。自分の技能にあったちょうどよいレベルのチャレンジを繰り返していくと、人はその作業に集中でき、没入でき、自己目的的な楽しさを得られる」ということです。
このフロー体験理論のことを最近ふっと思い出したのは「アジャイルサムライ」の読書会でした。
フロー体験理論という社会心理学のモデルは、日本ではゲームデザインの研究者に着目され、近年ではモチベーションの研究で参照され、もはや古典なのかも知れません。
しかし、テスト駆動やアジャイルというプラクティスの根幹に、フロー体験というシンプルな社会心理学のモデルが、やはり無視できないかかわりを持っているように、あらためて感じた、和田さんや長沢さん、そのほかの貴重な事例報告のセッションでした。#osh2014 WindowsタブレットでSQLアンチパターンの電書にサインしていただきました pic.twitter.com/nhpjwNYRbg
— にしもつ (@24motz) 2014, 2月 1
-
NVDAに関する活動の近況
(1)
オープンセミナー2014@広島 が明後日の2月1日に開催されます。
今回「テスト駆動開発(TDD)」や「アジャイル開発」をテーマに、興味深いゲストやセッションが予定されています。
参加費は無料ですので、実行委員のひとりとして、ぜひ多くのかたにご参加いただければと思います。
このままだと NVDA と関係ない宣伝になってしまうのですが、実行委員としてあまり活動できてないことのお詫び(笑)として、懇親会で「テスト駆動開発とアクセシビリティ」というテーマのLTをする予定です。
NVDA に対応したアプリケーションの開発について問合せがときどきありますが、例えば最近の Microsoft の技術である UI Automation は、アクセシビリティの技術であり、ソフトウェアの自動テストの技術でもあります。
長沢智治のライフサイクルブログ 【UIA】UI Automation を用いたユーザーインターフェイスのテスト
おや、こんなところに長沢智治さんのお名前が。。
NVDA 日本語版の開発でも、テスト駆動開発のエッセンスを取り入れようと、例えば点訳エンジンをテスト駆動で実装するなど、工夫をしているところです。
そんな話が会場や懇親会でできるのを楽しみにしております。
(2)
ブラインドパソコンサポート(BLPC)さんが発行するメールマガジン「BLPCパソコンメモ」に、昨年12月から連載をしています。今週、2回目の記事が掲載された号が発行されました。
第1回の発行のときにご案内するべきでしたが、お知らせが遅くなって済みませんでした。
BLPC パソコンメモのご案内
バックナンバー(最新号)
BLPCパソコンメモ:2013年12月23日号
あと数回、NVDA について書かせていただく予定なので、よろしければお読みください。
(3)
NVDA日本語チームの2012年度と2013年度途中(2012年6月から2013年11月まで)の活動報告書を公開しました。
改めて、ご寄付やイベント参加、普及活動などを通じて、
NVDA 日本語チームをご支援くださる皆様にお礼を申し上げます。
(4)
NVDA 日本語チームは NVDA 日本語版のユーザーのために、以下のような問合せや情報交換の場を設けております。
1. メールアドレス nvdajp@nvda.jp からの問い合わせの受付
2. sourceforge.jp のチケットシステムや掲示板
3. Google グループ nvda-japanese-users メーリングリスト
4. 不定期の「Skype開発者会議」(第1回を昨年10月26日に開催)
5. イベント「NVDA ワールド」開催、配信、記録の公開
6. 毎週月曜夜の「Skype交流会」(昨年8月までは「Skype会議」)
このほかに一方的な情報提供の手段として Twitter の @nvdajp やウェブサイトの nvda.jp があります。
NVDA 日本語チームの活動とは別に、多くのコミュニティやボランティアのかたがたに、NVDA を取り上げていただけるようになってきました。
View-Net 神奈川さんの「らくらくNVDA」
「視覚障害者のWindows活用ML」でも NVDA の質問が増えています。
NV Support さん
まほろばさんの NVDA 紹介記事
DemekinText さんのNVDA初心者向け教材
「陸の部屋」さんの NVDA 関連ファイル
「プロジェクトつどい」さん:有償版音声アドオン”Vocalizer for NVDA”のご紹介
「友加の日々の記録」さん スクリーンリーダー NVDA に関する即席リンク集
Wikipedia 日本語版の NVDA のページをひさしぶりに開いたら、NVDA 日本語版の情報が増えていました。
最後に、私自身は個人事業者として、NVDA の技術サポートなどのご相談を承りますので、お気軽にご連絡ください。