EPUBファイルに何も問題がないのにKoboで非対応となるのはAdobeが原因だった

新しい本を電子書籍ファイルフォーマットのEPUBで公開したところ、楽天の電子書籍リーダー・Koboでのみ「破損している」と報告があったため調査した結果、KoboではなくAdobeのソフトウェアに問題があったという経緯とトラブルの詳細について、ライターのアンドレ・クライン氏がまとめています。
Your EPUB Is Fine. Kobo Disagrees. Blame Adobe - André Klein Dot Net
https://andreklein.net/your-epub-is-fine-kobo-disagrees-blame-adobe/

クライン氏はデジタル著作権管理(DRM)フリーのEPUBファイルを直接読者に配布するため、電子書籍フォーマットのファイルが公式使用に準拠しているか検証するオープンソースツール「EPUBCheck」を使用しました。HTML要素や文書が国際電子出版フォーラム(IDPF)の定めたルールから少しでも逸脱している場合にはEPUBCheckを合格しませんが、EPUBCheckに合格すれば、EPUBに対応したリーダーやアプリではその本が問題なく動作すると一般的には考えられています。
しかし、EPUBCheckを合格したはずのクライン氏の書籍が「破損している」というメッセージを読者から受け取ったそうです。最初に古い端末の互換性の問題を疑ったクライン氏は、新しい規格のEPUB3版だけではなく、古い規格のEPUB2版も仕様に完全準拠した状態で提供しました。結果として、EPUB2版でも同じ問題が発生しました。
読者からの聞き取りを進めると、AmazonのKindle、Apple Books、Thorium Readerといった他のプラットフォームでは問題なく動作するものの、Kobo端末ではどの世代のものでも本が開けないことが判明しました。

Koboの各種デバイスや旧型のSony/Nookデバイスには、エンジンとしてAdobeが提供する「RMSDK」が用いられています。RMSDKは2010年頃にEPUB2向けに開発され、EPUB3向けに若干アップデートされたものの、ほとんど更新されていないとクライン氏は指摘しています。そこでクライン氏は、RMSDKを搭載したAdobeの電子書籍リーダーアプリ「Adobe Digital Editions(ADE)」でも同じ本を読み込ませてみたところ、本は読み込まれず、Koboのように「本が破損している」というメッセージも出なかったそうです。
クライン氏は原因を追及するため、それぞれEPUBCheckに合格した12種類の異なるバージョンの本を作成しました。そのほとんどはADEで開けなかったものの、スタイルシートを無効にしたバージョンは読み込ませることに成功しました。
さらに、スタイルシートのどこが問題を引き起こしているのか突き止めるため、スタイルシートの異なる部分を組み合わせた12種類のバリエーションを作成しました。結果として、以下の行が問題であることが判明しました。該当部分をより昔ながらの表記である「max-width: 150px;」に変更したところ、ADEで問題なく開けるようになったとのこと。
.copyright img {
max-width: min(150px, 30vw);
}この問題は、RMSDKのCSSパーサーが「フレックスボックスやグリッドレイアウト、数学関数、カスタムプロパティなどに対応しておらず2013年頃のまま止まっており、認識できないものを見つけるとエラーメッセージを表示せずにクラッシュするを起こす」という仕様になっているため発生しました。EPUBCheckは基本的なCSSのチェックは行いますが、レンダラーに欠陥がある場合に、そのレンダラーに合わせてCSSを検証することはできません。また、Koboには2つのレンダラーが搭載されていますが、Kobo独自のフォーマットであるKEPUBファイルにしか対応していないため、標準的なEPUBファイルには適用されません。
クライン氏は「Koboが書籍レンダリングの基盤として採用したお粗末なRMSDKのおかげで、たった1行の完全に有効なCSSコードが、完全に有効なEPUBファイルをKobo上で『破損ファイル』に変え、書籍全体を削除してしまう事態が発生しました。明確なエラーメッセージも、代替手段も一切ありません。もし本がKoboに対応していることを確認したいのであれば、EPUBCheckに頼るだけでは不十分で、Adobeの時代遅れなアプリに放り込む必要があるのです。理想を言えば、RMSDKはCSSの時代遅れなやり方から脱却するか、少なくとも本そのものが表示されなくなるのではなく、何らかのエラー処理を提供してほしいですが、あまり期待はできません」と語りました。その上で「EPUBは電子書籍のための素晴らしいオープンスタンダードですが、知的財産権を守る人を満足させるという名目のもと、その実装の多くが根本的に欠陥を抱えています。デジタル出版業界は、ユーザーに最高の読書体験を提供することよりも、著作権保護を優先するあまりアクセスを制限することに執着しています」と苦言を呈しています。
また、Hacker Newsでクライン氏のブログが話題になった際に、「Adobeの問題は最新のCSSに対応しなかったことだけではなく、RMSDKは1996年のCSS 1にも準拠していない」と指摘されており、基本的な実装から不足している可能性が議論されています。
・関連記事
Adobe Readerのゼロデイ脆弱性が数ヶ月間悪用されていた - GIGAZINE
「Adobeのサブスクリプション解約手続きは難しすぎて詐欺的」と連邦取引委員会がAdobeを提訴 - GIGAZINE
Adobeが「ユーザーコンテンツをAI学習しない」と明記する形へ利用規約を再度全面見直し - GIGAZINE
なぜAppleは広色域の色空間としてAdobe RGBではなくDCI-P3を採用したのか? - GIGAZINE
・関連コンテンツ
in ハードウェア, ソフトウェア, Posted by log1e_dh
You can read the machine translated English article The reason why Kobo doesn't support ….






