このコーナーでは、今までにいただいたご質問の中から、比較的 数が多かったものを中心に、Q&A形式でご紹介していきたいと思います。
(コーナーの性質上、多少 難しい内容のものも含んでいます。)
尚、文章中で解説されている内容は、1999年12月〜2000年5月の時点において動作確認を行なったものです。
その後のソフトウェアの機能アップ等に伴い、ここに書かれた内容と異なる結果が生じることも考えられますので ご注意下さい。
また、ここで対象としているソフト(音声ブラウザ)は、比較的 利用者の数が多いと思われるソフトであり、すべての音声化ソフトに共通するものではないことをご了承下さい。
-
CGIを利用した掲示板等は読み上げられますか?
- 読み上げられます。
これは、掲示板等では、通常 CGIの実行結果をHTMLとして出力しているからです。
-
リンク箇所は読み分けされることがわかりましたが、それ以外で(例えば<EM>タグや<STRONG>タグでマークアップされた部分は音声が変わるなどの)読み分けはされるのですか?
- 特にされません。
<EM>や<STRONG>など特定の意味を持つ要素の読み上げ時に、音声(音量等)が変化するということはありません。
また、「強調」などというようにその要素の意味を読み上げるということもありません。
確かにそのような読み分けをするソフトがあるという話は、私も聞いたことはありますが、今のところ、まだ確認出来ていません。(外国のソフトでしょうか?)
〔 2004年5月25日 追記 〕
新しいソフトの中には、<EM>や<STRONG>要素を読み分けできるソフトもあるようです。
-
フォームはどのように読み上げられますか?
- フォームについては、まず音声で「フォーム開始」などというようにフォームが始まることを通知します。(通知しないソフトもあります。)
次に入力項目(または選択項目)があると、「テキスト入力」「テキストエリア」「選択メニュー」などというように、その項目の種類を読み上げます。
この時、各項目はリンクと同じように扱われるので、利用者は該当項目をクリックすることで入力モード(または選択処理)へ移行することが出来ます。
ボタン(INPUT要素におけるtype属性の値が"Submit"や"Reset"の場合)については、value属性で指定された値が読み上げられます。
-
Shockwave Flash には対応していますか?
- 対応していません。
使用する場合は、代替手段を検討しておく必要があります。
以下は、<OBJECT>,<EMBED>,<NOEMBED>の3つの要素を使用した対応例です。
【例】
<OBJECT(属性設定)>
<PARAM (属性設定)>
・
・
<EMBED(属性設定)>
</EMBED>
<NOEMBED>
(ここに代替メッセージを記述。
必要に応じて、リンクの設定などもしておく。)
</NOEMBED>
</OBJECT>
ただし、Javaアプレットの時と同様に、音声ブラウザによっては、このような代替手段が通用しないものもありますので、確実に伝えたい情報などは、通常のテキスト文で記述しておくことをお勧めします。
-
PDFの読み上げは可能ですか?
- PDFを音声ブラウザで読み上げることは出来ません。
これは、音声ブラウザの特性(即ち、基本的にHTMLのソースを解読して、必要な情報を音声化するという点)を考えると当然かもしれませんね。
ちなみにPDFのように外部のアプリケーションを必要とするものについては、一般に音声ブラウザではなく スクリーンリーダーを使います。
しかし、残念なことに、日本のスクリーンリーダーのPDFへの対応状況は、あまり思わしくないようです。
また、PDFをHTML/テキストに変換するシステムもあるようですが、現状では英語のPDFを対象としており、これもまた日本語のPDFをサポートしきれてはいないようです。
電子文書としてのデファクトスタンダードとなりつつあるPDFが、日本語音声化という点で未対応の状況であるというのは、非常に残念なことですね。
※ 尚、PDFのHTML/テキスト変換については、「自治体情報政策研究所」の黒田 充さんより情報をいただきました。
どうもありがとうございます。
-
HTML4.0で新しく追加された要素や属性には対応していますか?
- ソフトによって、極 一部の機能に対応しているというような状況です。
例えば、「ホームページ・リーダー v2.5」では、画像 或いはイメージマップのAREA要素に対し、alt属性が付けられていない場合、もし title属性が付けられていれば、それを読み上げます。
また、画像のlongdesc属性は、「画像の説明」としてリンクが設定されたりもします。
しかし、全体的には、サポートされていない機能の方が圧倒的に多いようです。
(注意:マークアップされた文章を読み上げないということではありません。)
例えば、ABBR要素やACRONYM要素にtitle属性で値を指定し、さらにスタイルシートを使用して
ABBR { speak: spell-out }
ACRONYM { speak: spell-out }
としても、title属性の値を読み上げることはありません。
また、他のソフトにおいては、新しい機能はほとんど(或いは全く?)サポートしていないものもあるようです。
個人的には、FRAME要素のtitle属性などを読み上げてくれたりすると、なかなか便利で良いと思うのですが.....。
-
音声スタイルシートには対応していますか?
- 前の質問で登場した「speak」プロパティをはじめ、「volume」,「speech-rate」など、スタイルシートにおいて音声に関わるものもいくつかありますが、現状では対応していないようです。 残念ですね.....。
CODE { speak-punctuation: code }
こんなことが音声で実現出来たらいいですね。
-
音声化ソフト全般におけるJavaScriptへの対応状況は?
- ソフトによっては、ある程度 Scriptに対応出来るものもあります。
しかし、すべての処理に対応出来るわけではなく、また、動作的にも今ひとつ安定しているとは言いがたい状況のようです。
そういった意味では、音声化ソフト全体として見ても、未だ模索しているような段階と言えるのではないでしょうか。
ちなみに「HTMLのソースを解読して音声化する」というオーソドックスな音声ブラウザよりも、「画面の情報を拾い上げる」というスクリーンリーダー的な発想を兼ね備えたソフトの方が、Scriptの読み上げには力を発揮するようです。
いずれにしても、満足のいく読み上げ結果が得られるようにするためには、Scriptを解釈し 適切な音声化が出来る機能を音声ブラウザ自体が実装しなければ、難しいのかもしれません。
開発サイドも、ここら辺の問題については、いろいろ苦労されているのではないかと思います。
-
JavaScriptを使って、ページを開くと同時にサブウィンドウが開くような処理をしている場合はどうなりますか?
- まず、「JavaScriptに対応していないのであれば、サブウィンドウが開くこともないのでは?」と思われた方もいるかもしれませんが、音声ブラウザは、IEやNetscapeなどの一般ブラウザをエンジンとしているため、それらのScriptによって自動的に生成されたウィンドウも、読み上げの対象となることがあります。
言い方を変えると、一般ブラウザ側で勝手にScriptを実行して生成したサブウィンドウを、音声ブラウザ側がカレント・ウィンドウ(=読み上げ対象)として受け取るということです。
読み上げ方については、その時の状況によって、メインページの中身だけが読み上げられる場合と、サブウィンドウとして開かれたページの中身だけが読み上げられる場合との二通りのケースがあります。
(どちらのケースで読み上げられるかは、ソフトの設定等により異なります。)
ここで注意していただきたいのは、開かれた各ページ(ウィンドウ)のいずれか一方だけが読み上げられるのであって、両方のページが順次読み上げられるわけではないということです。
例えば「ページを開いた途端に広告のページがサブウィンドウとして開く」というような処理をしている場合、状況によっては 広告のページのみが読み上げられ、メインページの中身が読み上げられないということも起こり得るので注意が必要でしょう。
-
リンク先を別ウィンドウで開く際、JavaScriptを使って、ウィンドウの大きさなどを制御したいのですが、このような処理をすると、やはり音声ブラウザからは開けなくなってしまうのですか?
- 通常、リンク先を別ウィンドウで開く場合、<A>要素のtarget属性で指定をしますが、「onClick」イベントハンドラから JavaScriptを使って開くようにすると、ウィンドウの大きさやツールバーの有無などを制御することが出来ます。
しかし、大抵の場合、<A>要素のhref属性にリンク先のURLを記述しない方法を取るため、Script未対応の音声ブラウザでは リンク先を開くことが出来なくなってしまいます。
そこで、少し工夫をして、href属性にリンク先のURLを指定した状態で、同様の処理を実現する方法をお勧めします。
具体的な記述例については、下記のページを参考にして下さい。
(「とほほのWWW入門」より) 別ウィンドウに表示するScriptのサンプル
この方法であれば、Script未対応の音声ブラウザでも、リンク先へジャンプすることが可能です。
(考え方のポイントは、「JavaScriptがオフの状態でも、取りあえずリンク先を開くことが出来るかどうか」という点にあります。)
ただし、同じようなウィンドウ操作を、<INPUT>要素を用いたボタンクリックで行なう場合は、要素の性質上、上記に相当するような対応策は見当たりません.....。
-
<META>要素のRefresh機能を使って、自動的に他のページへ移動させるような場合はどうなりますか?
- サイトが引越しをした時などに、よく見かけるケースですね。
<META http-equiv="refresh" content="20(=移動するまでの秒数); url=http://xxx.com/">
というように、<META>要素のリフレッシュ機能を使って、他のページへ自動的にジャンプさせる場合、音声ブラウザの種類や設定などによって、次の3つのケースが見られます。
- リフレッシュを行なう。
(この時、ページを読み上げている最中であれば、読み上げは強制的に中断されます。)
- リフレッシュはされないが、ページの最後に「移動するためのリンク」が設定され、これをクリックすることで、移動先へジャンプできる。
- リフレッシュされない。 (この場合、利用者は立ち往生してしまいます。)
以上のことから、リフレッシュ機能を使ったページ移動を行なう場合には、次の2点に注意をするようにして下さい。
- リフレッシュするまでの時間(秒数)は、十分な余裕を持たせる。
(ページの読み上げにかかる時間は、黙読の時よりも長くかかるので注意して下さい。)
- 自動的にジャンプ出来ない時のために、ページ内に移動先へのハイパーリンクも貼っておく。
「移動先へのハイパーリンクも貼る」というのは、一般的なマナーとしても定着してきましたね。

