イメージ(img)のalt属性値が検索対象になるか? SVG内テキストが検索対象になるか?

EPUB3およびKindle(mobi)内のイメージ関連のテキストが検索の対象になるかどうかをざっとチェックしてみました。

調べましたのは次のテキストです。

①imgの代替テキスト(alt)属性値に指定した文字列
②SVGのテキスト要素に指定した文字列 (imgのsrcに指定したとき)
③SVGのテキスト要素に指定した文字列 SVGをスパインに登録したとき

EPUBリーダはiBooksとKindlePaperwhite(旧機種)です。

結果は次の通りです。

1.代替テキストは(alt)検索対象にならない。
2.SVGをimgのsrcに設定すると、ラスター画像と同等の扱いになり、text要素のテキストは検索対象にならない。また、文字列を指定して辞書引きの対象とすることもできない。
3.iBooksではSVGをスパインに登録したときテキストが検索対象となる。また、文字列を指定して辞書を引くことができる。KindlePaperwhiteでは、検索・辞書引きの対象とならない。

iBooks 3.1(iOS6) KindlePaperwhite
イメージ(img)のalt属性値 検索しない 検索しない
imgのsrcの値に設定したSVGファイル内のテキスト 検索しない 検索しない
スパインに指定したSVGファイル内のテキスト 検索する 検索しない

◎テストデータ
①EPUB3 EPUB3ファイル
(EPUBチェック:EPUBチェック結果

②Kindle Kindleファイル
(Kindleチェック:KindleGenの変換時メッセージ

SVGファイルはフォントを埋め込まないもの(横書き、縦書き)とフォントを埋め込んだもの(横書き、縦書き)を作成しました。

横書きで一部文字の表示位置がずれていたり、縦書きで文字の字形(グリフ)がおかしい箇所がありますが、このあたりはリーダ依存の場合もあります。この調査データはざっと作成したものですので、このあたりは正確になっていません。予めご了承ください。但し、EPUBチェックではエラーはありません。

CAS-UB 4月4日の改訂内容 EPUBに不要な画像が入らないように。など

1.EPUB3/EPUB2の生成で、記事中で使用されていない画像でも、アップロードされているものすべてが生成物に入るようになっていましたが、使用されている画像のみを生成物に入れるように修正しました。

2.検索で、記事タイトルも検索するようにしました。

3.出版物新規作成で、ひな形の複製チェックボックスの既定値をオフに変更しました。

4.Kindleの生成で、EPUB3 用のテーマを指定したmobiファイルを Kindle で表示すると、目次の2頁目以降でリンクが無効になっていたので修正しました。(Kindleのリーダの問題を回避したものです)。

◎ところで、今日、1年ぶりにEPUB3のSVGの表示確認をしましたところ、iBooks3.1で、Spineに直接指定したSVGが表示できるようになっていたことを発見しました。

EPUB3では、spineに直接SVGを指定することができます。これを使うと、全画面をSVG線画で表すことなどができるようになります。

このCAS-UBでこの機能は既に昨年4月に開発がほぼ完了していたのですが、当時は、SVGを直接Spineに登録しても表示できるリーダがなかったため、公開することを見送っていたものです。

iBooksで表示できるようになったことから、もう一度、チェックを行なったうえで機能を公開したいと考えています。少しずつですが、EPUBリーダの表示機能は進歩しているようです。

KindleGen のSVG変換 奇妙な動作にはまる

CAS-UBで作成したEPUBをKindleGen[1]でmobi形式に変換する処理の確認をしていたところ、Kindle Paperwhiteで表示されない画像があることに気がつきました。

何が起きているか、DRMのかかっていないmobiファイルをアンパックするツールMobi_unpack[2]を使って調べてみました。

結果を整理すると、次のようになります。

1.KindleGenでEPUBからmobiに変換すると、出来上がったmobiファイルの中には、mobi7とmobi8(KF8)形式の両方がひとつにパックされています。

画像について次のような処理を行なっています。
2.JEPGはそのまま両方にコピー

3.PNGはGIF形式に変換して、両方にコピー

4.問題はSVGです。もとのEPUBでは、SVGを<img src="SVGファイルへのパス" …/>として外部オブジェクトとして指定しており、SVGファイルの実体はimagesフォルダの中にあります。これをKindleGenで変換すると次のようになります。
(1)mobi7ではSVGがすべて削除されてしまいます。つまり古いKindleではSVGはまったく表示できないということになります。
(2)mobi8の中をみますと、EPUBと同じ方式でそのままコピーされているケースと、<p><svg xml…>….</svg></p>のように埋め込みになってしまうケースの2種類があります。そして、埋め込みにされたSVGがKindle Paperwhiteで表示できません。

5.そのまま複製されるSVGと埋め込み処理されてしまうSVGに、SVGの仕様からみて何かの違いがあるか、ということを調べたのですが、いまのところまったく相違点がわかっていません。

たとえば、次の二つのSVGファイル(ok.svgとng.svg)ですが、ok.svgは表示できますが、ng.svgは表示できません。この二つのSVGファイルは、ok.svg の途中に <!– xxxxx –>を入れて保存したのがng.svgです。コメントを一つ挿入しただけで表示できなくなってしまう、というわけです。

●データ 
a. ok.svg
b. ng.svg
c. EPUB3
d. mobi

KindleGenのバグではないかと思いますが、どうなんでしょうか。

[1] Kindlegen Windows版・バージョン2.7を使用
[2] Movi_unpack