JAWSでLivedoor Readerを使ってみました

ずいぶん前から人気のあるRSSリーダーLivedoor Readerですが、いろいろあってあまり使い込んでいませんでした。先週オープンソース版のFastladderが公開されたことに刺激され、フレッシュリーダーからOPMLインポートして少しまじめに使ってみました。
その結果、ちょっとしたこつを覚えるとスクリーンリーダーのJAWSでもかなり満足な使い勝手が得られることがわかりました。そこで、そのこつなどを書いてみたいと思います。主な対象はJAWSユーザの方ですが、そうでない方も、「そんなにめんどくさいのか」とか思いながら読んでいただけるといいかと思います。なお、環境は、

です。思いの外長文になって、細かいことから入ってしまうので、まずは最後の「私の使い方」を読んでいただけるといいでしょう。

まずは登録

何はともあれLivedoor IDを登録市内といけません。先ほど確認したらいわゆる画像認証があり、代替手段は提供されていないようでした。自分はどうしたのか忘れてしまいましたが、たぶん身内の協力を得たのでしょう。ここはそろそろ改善してほしいところですね。

ページの基本構造

Livedoor Readerのトップページは特徴や操作ガイド、お知らせなどが表示されています。ここでページ最初のほうにある「マイフィード」というリンクを選択するとログインフォームのあるページに遷移し、ログインすることができます。私はこのマイフィードのページに最初からアクセスするようにしました。
マイフィードのページもお知らせやおすすめフィードが表示されていますが、フィードを読み始めたら関係ないので上の方だけ把握すれば十分です。
ページ最初の方には、以下のようなエリアがあります。広告などが挿入されますが、適当に無視しています。

  • Livedoor検索のフォーム
  • 「ロード完了」などメッセージが表示されるエリア
  • 「ようこそxxxさん」や設定、ガイド、ログアウトのあるエリア
  • 「未読xxxフィード|yyyyエントリ」と状況が表示されているエリア
  • 「更新」「編集」「追加」のボタンがあるエリア。
  • フラット/フォルダ/レートなどの選択と、並べ替えの選択状態が表示されているエリア
  • フィード名を検索できるエディットフィールド
  • フォルダ名やフィード名の一覧が表示されるエリア
  • フィード内容が表示されるエリア

操作の特徴

ページ繊維を行わない作りであるため、いくつか覚えていないと引っかかるところがあります。

  • 状態を示すメッセージは最初の方に: 何か動作が発生したとき、そのメッセージは「ようこそ」よりちょっと前の部分に表示されます。JAWS8の仮装バッファでは15行目付近です。
  • 内部でポップアップする小さなウインドーはページ下の方に: たとえばフィードを追加する場合、「追加」ボタンをクリック(Enter)すると、ページ下の方にURL入力フィールドと「次へ」ボタン、「閉じる」ボタンなどが表示されます。フォルダ表示/レート表示などを切り替える場合も、選択肢は動作を起こすボタンの近くではなく、ページ下の方に表示されます。困ったらCTRL+Endで仮装バッファの最後に移動して探してみると見つかることがあります。

フィードの登録

フィードの登録は、ガイドページにあるBookmarkletを利用するのが便利です。LDRの画面からとりあえず登録する場合は以下のような手順になります。

  • 「追加」ボタンをクリック(Enter)
  • フォーカスがURL入力フィールドに置かれるので、登録したいページかそのページのフィードURLを入力
  • 「次へ」を押すと、しばらくして「次へ」ボタンの下にそのページで利用できるフィードが表示されます。
  • 登録したいフィード名の前にある「追加」をクリックします。しばらくすると「追加」が「解除」に変わります。これで登録されました。
  • 必要なフィードを登録したら、ページ最後にある「閉じる」をクリックします。フィード追加のウインドーが消えます。

フィードの閲覧

フォルダやフィード名が表示されているエリアで、その名前の上でEnterを押します。ここでこれらの名前はリンクになっていないことに注意してください。Enterを押しても何も起きないように感じますが、フォルダならフォルダが開かれ、中に入っていたフィード名が下に現れます。そして、フィード名の上でEnterを押すと、フィードにあった未読記事がフォルダなどの表示エリアの下に現れます。

  • フィードが表示されたら、JAWSの見出し要素ジャンプ機能を使い、hキーを押していくことで各記事の見出しにジャンプできます。フィードに記事内容が含まれている場合は、見出しの下にその内容が表示されます。

フォルダ順とレート順の切り替え

フィード名の検索フィールドより少し上に「フォルダ 新着順」などと表示されたエリアがあります。ここで、「フォルダ」という部分の上でEnterを押します。
すると、ページ最後の部分に「フラット」「フォルダ」「レート」「購読者数」という選択肢が表示されます。「フォルダ」を選ぶとフォルダ順に、「レート」を選ぶとレート順にフィードが選択されるようになります。
同様に、「新着順」という部分でEnterを押すと、「新着順」「旧着順」「未読が多い」...などの選択肢が表示され、(たぶんフォルダやおなじレートの中での?)並び準が変更されます。

ピン機能の使い方

ピンは後からじっくり読みたい記事にマークをつけておいて、後からまとめて開くという機能です。一般にはフィード表示中に記事の上にあるマークをクリックするか、ショートカットキー操作で設定できますが、JAWSを利用している場合は多少工夫が必要です。
まず、フィードを表示した状態で、INSERT+vを押し、「ウェブページの画像通知」オプションを選びます。そして、これを一時的に「すべて」に設定します。
すると、記事見出しの上側に「icon/pin」という画像が確認できます。これがピンを行うためのマークです。
ここで、INSERT+F2からカスタムラベル機能を呼び出し、この画像に「pin」などわかりやすい名前をつけます。すると、次回からは画像表示設定にかかわらず、「pin」という画像が確認できるようになります。
ピンをたてたい記事の上にあるpin画像でEnterを押すことで、ピンを設定することができます。後は、読みたくなった時にINSERT+3 oと操作するとまとめてタブが開きます。(INSERT+3はoキーをブラウザに直接渡してLDRのショートカットを起動させるためのパススルーコマンドです。)

レートの設定

フィードに0から5のレートをつけて、レートが高い方から読んでいく機能があります。せっかくフォルダに分けても、実はチェックしたい重要度はそれとは関係なかったりするので、これは重宝します。ただ、レートの設定をJAWSから行う場合は一工夫必要です。
まず、フィードを表示した状態で、フィードタイトルの少し下に「pad/0」という画像を探します。これはレートが0であることを示していて、レート5ではpad/5となります。
次に、JAWSカーソルを仮想カーソルに合わせる操作(INSERT+ マイナスキー)を押し、JAWSカーソルをこの画像の上に合わせます。
続いて、JAWSカーソルを右に数回右矢印キーで移動させ、クリック操作(テンキーの/)を行います。仮想カーソルに戻すと、pad/0がpad/3などに変わっているのが確認できます。JAWSカーソルを右にずらす回数が多いほど高いレートが設定されます。
面倒ですがそれほど頻繁に行う操作ではないのでやってみると意外と簡単です。(発見したのは偶然でしたが。)

私はどうやって使っているかというと

まず、http://reader.livedoor.com/reader/にアクセスします。
次に、ロードが完了したようなタイミングでおもむろにINSERT+3 wとタイプします。
少し待ってからhキーを押します。するとレートが高いフィードで未読のあるものが表示されているのがわかります。
そのフィードをチェックしたら、さらにINSERT+3 wとタイプします。すると、次の未読フィードが……
という風にフィードを読み進んで行くことができます。wキーを押してからフィードが読める状態になるまでの時間は、未読件数にもよりますが、よくみるフィードならあまり気になりません。
平行して利用しているフレッシュリーダーでも同様にショートカットでフィード間を渡っていけることはわかっているのですが、何となくレート順に表示されていくことが気に入ってしまいました。実はそれだけかもしれないのですが。
(追記)wにはJAWS固有のコマンドがなかったので、実はwだけで次のフィードにいけることがわかりました。
問題点としては、やはりスクリーンリーダーユーザにとって最初の取っつきにくさがあります。画像認証もさることながら、操作した場所と変化する場所が離れていることにとまどう人は少なくないと思います。また、マウス操作が必須なところや、ハンドラを認識できない要素(フォルダ/フィード名など)があり、JAWS以外のスクリーンリーダーではきっと利用できないでしょう。
長々と読者の想定も曖昧なことを書いてしまいましたが、こうやってまとめることで、AJAXアプリケーションでどういうことが問題となりやすいのかを表に出していくこともまた必要かなというところです。
慣れてしまうと、Livedoor Readerかなり気に入っています。