写真 青い空と雲と建物と木々の緑

nishimotzの日記

  • NVDAのブラウズモード

    このエントリーは Webアクセシビリティ Advent Calendar 2018 の4日目の記事になります。
    NVDA日本語チーム の西本です。ふだんは広島県広島市にいます。オープンソースのスクリーンリーダー NVDA の日本語対応に関わりながら、NVDA 日本語版のリリースを続けています。ウェブアクセシビリティ基盤委員会 WAIC WG2 にも参加しています。
    今年は自分の会社 シュアルタ を設立しました。以前から NVDA に関わる研究や調査・開発にフリーランスの立場で関わっていましたが、今後は NVDA に関するコンサルティングや受託開発を、株式会社シュアルタでお受けするのでよろしくお願いします。

    NVDAのブラウズモード

    ブラウズモードさえなければ NVDA の操作は基本的に Windows の操作です。Windows やWebブラウザに備わっている機能の不足を補っているのがNVDAの「ブラウズモード」です。
    一方でブラウズモードが理解できないと「Windows がおかしくなった」ようにさえ思えます。
    NVDA のブラウズモードについては、講習会用の教材として(図がなくて申し訳ないですが)「NVDA日本語版ガイドブック」を公開しています。
    ブラウズモードの理解に「フォーカスハイライト」アドオンが役立つという話は2016年の記事に書きました。
    今年「アクセシビリティの祭典」にあわせて作った「NVDAチートシート」も「ブラウズモードの仕様をいかに可視化するか」が大きな目的でした。

    NVDAチートシートの一部

    11月にサイトワールド2018で開催した「NVDA体験会」でも、ブラウズモードの説明のセッションを担当しました。そのときに、他のスタッフから「最近の Skype は NVDA のブラウズモードで操作すると便利だ」と教えてもらいました。
    ご存知のとおり、最近はデスクトップアプリを Web 技術(いわゆる Electron )で開発することが増えています。
    NVDA では「ブラウズモードは Web コンテンツだけではなく PDF や HTML メールや電子書籍なども対象にしていて、それらをできるだけ一貫性のある方法で操作できる」ことを目指しています。
    ここでは「Webアクセシビリティ」とはちょっと離れてしまいますが、ブラウズモードで覗いてみるとちょっと興味深いアプリを2つ紹介します。

    Visual Studio Code 1.29.1

    最初は Visual Studio Code です。
    Visual Studio Code
    Electron が使われていること、オープンソースで開発されていること、などが知られています。また、アクセシビリティに配慮されており、NVDA に対応しています。スクリーンリーダーで使いこなすのはなかなか大変と思いますが、まあ私も使いこなせてるとは言えませんね。。
    VS Code には「スクリーンリーダー互換モード」のようなスイッチがあります。これが有効になっていないと、テキストエディタの行単位の読み上げがあまりちゃんと動きません。モードが自動切り替えに設定されている場合は、NVDAが動いているかどうかを判断して、モードを切り替えますか?みたいに聞いてきたりします。
    スクリーンリーダー互換モードをずっと有効にしていると、行の折り返し表示が期待通りに機能しません。どうやら、論理行と物理行を一致させることを前提にスクリーンリーダー対応を実現しているようです。
    さて、その設定ですが、Settings の画面の中にコンボボックスがあります。
    フォーカスハイライトが赤くなるのは、ブラウズモードだからですね。。
    Visual Studio Code の「アクセシビリティ サポート」設定
    ブラウズモードなら「要素リスト」が使えるはずなので NVDA+F7 を押してみます。フォームフィールドの表示に切り替えると、
    Editor Accessibility Support コンボボックス・折りたたみ on
    のように、この設定項目が現れます。
    Visual Studio Code の設定画面で NVDA の「要素リスト」ダイアログから「フォームフィールド」を表示
    この要素リストで「ランドマーク」に切り替えると、「コンテンツ情報」「ナビゲーション」「メイン」のランドマークがあり、メインの中にさらに「Settings フォーム」という項目も見つかります。ランドマークの「フォーム」は解説に書いてあるけど、あまり見たことなかったです。。
    Visual Studio Code の設定画面で NVDA の「要素リスト」ダイアログから「ランドマーク」を表示
    VS Code はフォルダーを開くとその中のファイルを複数開いて切り替えながら編集ができます。そのファイルを探したり切り替えたりする画面要素はテキストを編集する部分の左側にあり、「エクスプローラー」という名前になっていて、ツリービューのような表示になっています。その状態で「要素リスト」を開くと、下記のような画面になります。
    種別「見出し」では「開いているエディタ」「フォルダ名(その内容を表示できる)」「アウトライン(プログラミング言語のクラスやメソッドや変数の定義などをツリー表示できる)」の項目が見つかります。ということは、見出しジャンプできたり、要素リストから移動できるわけですね。。
    Visual Studio Code のファイルエクスプローラーで NVDA の「要素リスト」ダイアログから「見出し」を表示

    Skype 8.34.0.78

    Skype for Windows も最近のバージョンは Electron で作られています
    たしかに NVDA+スペース でブラウズモードとフォーカスモードに切り替わるし、テキスト入力のところに移動すると「ガシャ」と音がして、自動的にフォーカスモードに切り替わったりします。

    Skypeチャット画面 全体がフォーカスハイライトの赤い枠で囲まれている

    要素リストで「見出し」を確認すると、チャット画面の日付が見出しになっていました。この例では「2017年5月7日」と「今日」という2つの見出しがあります。

    要素リスト「見出し」

    ブラウズモードで H と Shift+H を押すと、日付の区切り線のようなところにジャンプできます。
    以下は「2017年5月7日」に移動したところ。

    Skypeチャット画面 日付2017年5月7日のところがフォーカスハイライトの赤い枠で囲まれている

    以下は「今日」に移動したところ。

    Skypeチャット画面 今日のところがフォーカスハイライトの赤い枠で囲まれている

    Web コンテンツであれば「見出し」にはレベルがあって、レベル2の見出しには数字 2 を押すとジャンプできるのですが、この Skype チャットの日付は「レベル1から6」のどれにも当てはまらない「レベルなしの見出し」でした。いずれ詳しく調べてみたいと思います。興味深いですね。。
    ブラウズモードで E を押すと「エディットフィールドにジャンプ」ができるので、この Skype のチャット画面では、チャット入力コントロール(ここに入力と書かれている場所)にジャンプできます。

    Skypeチャット画面 ここに入力という箇所がフォーカスハイライトの赤い枠で囲まれている

    文字を実際に入力するためにはフォーカスモードに戻す必要があります。

    Skypeチャット画面 ここに入力という箇所がフォーカスハイライトの青い点線の枠で囲まれている

    上下の矢印キーでエディットに移動するとフォーカスモードに自動的に切り替わるのですが、1文字ナビゲーションの E で移動すると、ブラウズモードのままになりますね。。
    以上、ブラウズモードで Web コンテンツっぽい操作ができるアプリの実例を紹介しました。
    仕事では iOS で WebView を使うアプリの開発もするのですが「Web 技術をアクセシブルに使う」と VoiceOver でだいたいちゃんと使えます。
    見えないところも、きれいに正しく作れたらいいですよね。。
    アプリやコンテンツのアクセシビリティ検証に NVDA を使ってくださる皆様、イベントのサポートや寄付などのご支援をしてくださる皆様、ありがとうございます。これからも NVDA 日本語チームをよろしくお願いします。

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

    サイトワールド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日)