投稿者: nishimotz

  • ふつう=ユニバーサルでアクセシブル

    この記事は ふつうの広島 Advent Calendar 2015 の8日目の記事です。
    昨日はkamera25さんの記事でした。
    冒頭から脱線しますが「普通の人にはない技術の持ち主」といえば「職人」ですね。
    今日から「職人」がテーマのイベントが広島で開催されますよ。
    広島職人博覧会
    12月8日(火曜)から14日(月曜)まで
    旧日本銀行広島支店(広島市中区袋町)

    ふつうとはなんだろう

    普通じゃない人にとって「普通に生きろ」という言葉は「苦痛」の一歩手前だったりするかも知れません。
    「普通の人」=「健常者」「定型発達の人」でしょうか?
    「普通の人」=「リモートワークじゃない人」でしょうか?
    もっといろんな「普通」があっていいような気がするので、グーグル先生に訊いてみました。
    普=「あまねく」「広く」
    通=「通用する」
    「あまねく」は「ユニバーサル」、「通用」は「アクセス」じゃないですか。
    「ふつう」=「ユニバーサル」で「アクセシブル」ということですね!!

    イベントの「ふつう」

    「ふつうの広島」=「どんな人でも学んだり働いたり活動したりできる広島」にしましょう。
    そういうつもりで2015年に私が取り組んだのが Python のイベント、PyCon mini Hiroshima 2015 でした。
    開催直前の告知と終了後の報告は PyCon JP のブログに書いたので、下記をどうぞ。
    PyCon mini Hiroshima 2015 を開催します!
    PyCon mini Hiroshima 2015 を開催しました!
    報告の中でも書いたことですが、カジュアルな勉強会は行動力のある人たちに任せて、私は「アクセシビリティを切り口に質を保障できるイベント」を、今後も続けていくためにお手伝いできたらいいなあと思っています。

    ソフトウェアの「ふつう」

    こないだ Web アクセシビリティのアドベントカレンダーに寄稿した NVDA 日本語版の現状の記事 ですが、途中から支離滅裂で勢いだけの駄文になってしまったので、もうすこし具体的に「アクセシビリティから考える本質とか品質とか」について書いてみます。
    NVDA の UI ウィジェットに wxPython が使われていることは PyCon mini でお話しましたが、おそらく NVDA の開発者たちはこのツールキット選びをかなり慎重に行ったはずです。
    wxPython のさらに土台になっている wxWidgets のレベルで、すでに Microsoft のアクセシビリティ API に対応する作り込みが行われていることが、ちゃんとドキュメントになっています
    マルチプラットフォーム開発のための UI ツールキットはいろいろありますが、それぞれのプラットフォームのネイティブなアクセシビリティ API に対応した実装が施されているものはなかなかありません。
    画面を Windows っぽく描画したり Mac っぽく描画したりすることだけできても、それが「ボタン」なのか「テキストフィールド」なのか、といった情報を OS のアクセシビリティ API に正しく渡すことができないフレームワークは山ほどあるのです。。
    モバイル開発についてはどうでしょうか。
    マルチプラットフォームといえば HTML で UI を作る「いわゆる PhoneGap」アプリを真っ先に思いつきます。
    あまりよいユーザー体験を実現できない、ということで、ここ数年は敬遠されてきたような印象ですが、最近あらためて調べてみたら、Apache Cordova と Angular.js という組み合わせの新しいツールがいくつか登場していました。
    ここでは Ionic Framework について最近私が調べたことをちょっと紹介しておきます。
    この Ionic フレームワークは単なるライブラリではなくコマンドラインインタフェースのツールが用意されています。
    ionic start コマンドで生成されるひな形の「タブ UI」アプリを Xcode でビルドして iPad にデプロイしてみたら、かなり VoiceOver でちゃんと使える、ということに気づきました。
    フォーカスの移動順序にやや不自然なところはあったもののの、多くの要素が理解可能、アクセス可能でした。
    Web技術はちゃんと「ユニバーサルにアクセシブル」に向かって進歩してるんですね。。
    残念ながら完全に VoiceOver に無視されてしまったのは ion-toggle でした。
    調べてみたらこのトグルスイッチの記述方法が他にも見つかったので、いわゆる WAI-ARIA の勉強がてら書き直してみたら、VoiceOver でちゃんと操作できて状態を読み上げられるトグルスイッチになりました。
    修正前:

     <ion-view view-title="Account">
       <ion-content>
         <ion-list>
    -    <ion-toggle ng-model="settings.enableFriends">
    -        Enable Friends
    -    </ion-toggle>
         </ion-list>
       </ion-content>
     </ion-view>
    

     
    修正後:

     <ion-view view-title="Account">
       <ion-content>
         <ion-list>
    +    <li class="item item-toggle">
    +      <span role="label" id="enableFriendsLabel">Enable Friends</span>
    +      <label class="toggle">
    +        <input type="checkbox" ng-model="settings.enableFriends" />
    +        <div class="track">
    +          <div tabindex="0" class="handle" aria-labelledby="enableFriendsLabel" role="checkbox" aria-checked="{{ settings.enableFriends }}"></div>
    +        </div>
    +      </label>
    +    </li>
        </ion-list>
       </ion-content>
     </ion-view>
    

     
    role とか aria-checked とかこうやって使うんですね。勉強になりました。
    これ Web 標準を使ってアクセシビリティを確保したので、たぶんプラットフォームごとの実装さえちゃんとしていれば「普(ユニバーサル)」に「通(アクセシブル)」なモバイルアプリになるはずですね。。
    Ionic のテンプレートは Visual Studio 2015 にも入ってます。
    Universal Windows Platform でもいけそうです。
    アクセシビリティを「品質」と捉えると、技術を見極めたり、新しいことを勉強したりできますね。
    「ふつうの広島」を目指して、開発者向けのアクセシビリティ勉強会をやったらいいですね、と提案しつつ、この記事を締めくくりたいと思います。
    以下、参考書:
    コーディング Web アクセシビリティ

    わかりやすい「WAI-ARIA 1.0」仕様解説書 Kindle版

  • スクリーンリーダー NVDA 日本語版の現状

    この記事は、Web Accessibility Advent Calendar 2015、4日目の記事です。
    Web Accessibility Advent Calendar に参加するのは初めてなので、自己紹介をします。
    広島出身、東京と京都を経て、現在また広島在住。
    2012年4月から NVDA 日本語チーム の代表としてオープンソースの Windows 用スクリーンリーダー NVDA の翻訳と日本語版開発を担当しております。
    今年の夏 AccSell ポッドキャスト 第75回に出演して喋ったので、よろしければ聞いてみてください。
    非営利法人 ATDO(支援技術開発機構)主任研究員として電子書籍のアクセシビリティ(EPUBやDAISY)に従事することもあります。
    Web アクセシビリティに関することでは、今年から WAIC WG2(ウェブアクセシビリティ基盤委員会 実装ワーキンググループ)に参加しています。
    NVDA の開発に Python が使われているというつながりで、広島で Python のイベント PyCon mini Hiroshima の実行委員長をやりました。
    その他の仕事としては、某ステルスモードのスタートアップでソフトウェア開発に従事しています。
    この記事では今年ポッドキャストやイベントで喋り足りなかった NVDA の実情をまとめてみたいと思います。
    まず、ユーザー数や市場占有率について。
    日本でよく参照されている「視覚障害者の携帯電話・スマートフォン・タブレット・ パソコン利用状況調査 2013」(新潟大学)によると、スクリーンリーダー利用者全体における NVDA 利用者の割合は6パーセントとされています。
    このことから「NVDA でしかちゃんと動かないWeb標準を実装しても、大半の視覚障害ユーザーには届かない」と判断されがちです。
    私は、話はそれほど単純ではないだろうと考えています。
    理由のひとつは、この調査が実施された2013年秋から現在までに、NVDA 日本語版のユーザーはおそらく2倍以上に増えているであろうこと。
    もうひとつは、同じくこの2年のあいだに「視覚障害者の Windows 離れ」が進んだと思われること、です。
    まずは NVDA 日本語版の普及状況から。
    NVDA には「更新の自動チェック」機能があり、24時間ごとにサーバーと通信をしています。
    サーバー側で「自動チェック」のアクセス数を数えることで、1日ごとのユーザー数を把握しています。
    ちなみに NVDA 本家版のユーザー数調査結果によると、1日あたり平均23775人が一番新しい数字になっています。
    (1週間のアクセス数を1日平均に直しているのは、曜日によってユーザー数が異なるからでしょう。詳しくは後述)
    NVDA 日本語版は2013年12月15日にリリースした 2013.3jp から、更新チェックを独自に運用していて、NVDA 日本語チームのサーバーでアクセスを数えています。
    2014年1月5日ごろの1日あたりの平均ユーザー数は64人ですが、これは 2013.3jp よりも古いバージョンを把握できていないので、すこし控えめな数字になっているはずです。
    その後、2014年3月20日に 2014.1jp を、6月2日に 2014.2jp をリリースしました。
    大半のユーザーが 2013.3jp 以降を使っていると考えられる2014年5月上旬で、NVDA 日本語版の1日平均ユーザー数は176人でした。
    そして2015年12月上旬、現在の1日平均ユーザー数は424人になっています。
    NVDA 日本語版の1日平均ユーザ数。2014年5月から2015年12月最初まで。バージョンごとに色分けされている。最初は176人、最新は416人。
    単純に伸び率を掛けると、6パーセントだったシェアは少なくとも15パーセントにはなっているでしょう。
    一方で、パソコンを利用する視覚障害者、つまりこのシェア計算の母数は、この2年でどうなっているでしょうか。
    はっきりとは分かりませんが、私は「期待したほど NVDA 日本語版のユーザー数が増えていない」ことと、視覚障害者コミュニティの「空気の変化」から判断して、「日常的なコミュニケーションや情報アクセスは iPhone の VoiceOver でやってしまう」というライフスタイルが急速に広まりつつあると感じています。
    ひとつの根拠は、NVDA 日本語版のユーザー数が2014年年末から2015年年始にかけての1週間に大きく落ち込んだ、というデータです。
    また、今回この記事を書くために、この3週間くらいの曜日ごとのユーザー数を調べてみたのですが、やはり土曜日と日曜日のユーザー数が少ない、という結果になりました。
    曜日ごとの NVDA 日本語版ユーザ数の比較。日曜日364人、月曜から金曜の426人、土曜372人
    視点を変えると、日本における NVDA は「日常生活を支援する道具」の座をスマートフォンに明け渡しつつあるかわりに、平日に職場で使われる「視覚障害者の就労支援ツール」になりつつある、という可能性を感じています。
    就労における NVDA というテーマでは、今年9月のイベントでも IT 技術者として働いている NVDA ユーザーによる発表がありました。
    また技術者ではない人からも、マッサージの仕事の予定管理にイントラネットが使われていて、そのWebサイトにアクセスするときに NVDA を使う、といった話を聞いたことがあります。
    日本盲人職能開発センター(東京都新宿区)ではNVDAの講習会が定期的に開催されているようです。
    (私は2014年の秋にこの施設で最初のNVDA講習会をお手伝いしました)
    何度か書いたり喋ったりしたことですが、NVDA は「スクリーンリーダーの本来果たすべき役割分担」に忠実な、初心者には取っつきにくい、不親切なスクリーンリーダーです。
    しかしそれはベンダーや開発者に「Web標準への準拠」「アクセシビリティAPIへの準拠」を促すための NVDA の戦略によるものです。
    また一方で、たった2人のコア開発者が膨大な開発を効率よく行うための、プロジェクト生き残りの手段であるとも言えます。
    NVDA の強みを手短に語ってほしい、NVDA でなければできない作業をアピールしてほしい、と言われるたびに複雑な気持ちになります。
    正しく迅速に「標準」に準拠するスクリーンリーダーよりも、「特定のコンテンツやアプリケーションに特化したスクリーンリーダー」のほうが、どうしても「すごいソフトウェア」「お金を払うに値する製品」に見えてしまうのです。
    開発中のアプリやコンテンツが NVDA でちゃんと動くようにするにはどうしたらいいか、という質問も、似たような状況です。
    「特定のスクリーンリーダーに特化したコンテンツやアプリケーション」の開発を促したくない、ということも NVDA のポリシーだからです。
    NVDA 本家の開発は最近、GitHub に移行しました。
    この GitHub Issues では WAI-ARIA をどう解釈して NVDA でどう実装しているのか、といったやりとりも 頻繁に 交わされています。
    NVDA に関わる前から「アクセシビリティ」にこだわっていた私にとって、アクセシビリティとは「物事の本質」であり「コンテンツの品質」であり「イノベーションの源泉」です。
    日本では Web アクセシビリティのコミュニティにとっても、スクリーンユーザーのコミュニティにとっても NVDA はまだまだメジャーな存在ではありません。
    Web アクセシビリティは「情報産業というエコシステムの傍流」かも知れませんが、しかし「技術ロードマップのど真ん中」だと信じています。
    開発者とユーザーがお互いに「Web標準を考慮して頑張っても、相手が使いこなせないから無駄」と思うのではなく、双方が「互いに歩み寄れる妥協点」を見つけてほしいと思っています。
    日本のユーザーに NVDA をリアルタイムに届けることで、まもなく始まるであろう「合理的配慮」をめぐる当事者たちと事業者たちの「戦い」を支えたいと考えています。
    告知:
    2016年1月9日(土曜)に大阪で開催される LibreOffice mini Conference 2016 Japan に参加します。
    それから1月16日(土曜)に東京で(久しぶりの) NVDA ミートアップを開催します。
    NVDA について質問したい人、一緒に NVDA コミュニティを盛り上げたい人のご参加をお待ちしております。

  • OSC広島, DB勉強会

    9月19日 オープンソースカンファレンス 2015 HiroshimaNVDAユーザ会広島として出展しました。

    オープンソースカンファレンス2015 Hiroshima #nvdajp #osc15hi

    Posted by Masataka Shinke on 2015年9月19日

    今年はセミナーの時間を作らず、出展だけにしました。
    そのかわりに NVDA日本語版 のサイトに 開発者のためのNVDA というページを作りました。
    アクセシビリティのチェックのために NVDA を使ってみたい、というかたに向けて、9月13日に東京で開催した講習会「Web制作者のためのNVDA入門」の資料をまとめて、最低限知っていただきたいインストールのコツなどを書いています。
    聞きに行ったセッションではOSC広島特別企画「IT企業で働くということ」と題して行われたパネルディスカッションが盛り上がっていました。
    学生時代に広島の勉強会コミュニティで活躍してくださり、社会人になった若手の人たちが登壇。


    ライトニングトーク&閉会式で、PyCon mini Hiroshima (11月22日)の告知をしました。
    この日はサイトしか紹介できませんでしたが、本日 connpass での参加者・発表者の募集も開始しました。
    翌日の9月20日は同じ場所で第11回中国地方DB勉強会に参加。
    自分はデータベースに関しては「自分の技術レベルを自覚する」ために勉強会に来ているという感じでしょうか。。
    技術的な話、技術者が意識するべきビジネスの話、勉強会コミュニティを通じて人脈や仕事を得たり成長したりする話、など、幅広く盛りだくさんでした。
    懇親会の「町家風古民家で穴子料理」がなかなか良い雰囲気でした。