これからは電子書籍でもJavaScriptプログラミングができる

2011年2月22日

これから普及が予想される電子書籍や電子雑誌がインタラクティブになっていくことは間違いありません。映像が埋め込まれたニュース、好きな角度から洋服が見られるファッション雑誌、操作しながら解いていけるパズル、途中で登場するモンスターを倒さないとその先が読めないロールプレイング小説、なんていうのもあるかもしれませんね。

将来の電子書籍はアプリケーションと区別がつかなくなる、と僕は考えています。

先日ワーキングドラフトが公開された次世代電子書籍フォーマット「EPUB 3」では、JavaScriptが仕様の中に組み込まれる予定です。将来の電子書籍でのインタラクティブな実装はJavaScriptによって行われることになります。

電子出版イノベーションのビジネス実践誌 Impress Digital Weekly「OnDeck」(オン・デッキ)

HTML5/SVGで定義されたスクリプティングをサポート

昨年の12月22日にインプレスR&Dが創刊した電子出版をテーマにした電子雑誌「On Deck(オンデッキ)」の1月18日号には、EPUB 3の策定を進めているIDPF(International Digital Publishing Forum、国際電子出版フォーラム)のエグゼクティブディレクター ビル・マッコイ氏のインタビューが載っています。その中でマッコイ氏はEPUB 3でJavaScriptをサポートすると明言しています。

EPUB3ではJavaScriptをサポートし、コードとデータを分離してこの問題を解決します。クイズやパズルなど動的なコンテンツを作れるJavaScriptは非常に強力なツールですが、我々はそれだけでなくコンテンツの構造を維持するためにもJavaScriptを使います。

先週公開されたばかりのEPUB 3のワーキングドラフトには、「2.7 Scripting」の項にこう書いてあります。

EPUB strives to treat content declaratively — as data that can be manipulated, not programs that must be executed — but does support scripting as defined in HTML5 and SVG (refer to Scripted Content Documents [ContentDocs30] for more information).

EPUBはコンテンツを宣言的なものとして取り扱おうとしている、データとして操作可能であり、実行すべきプログラムではない、しかしHTML5とSVGの仕様で定義されているスクリプティングは明確にサポートする。

HTML5とSVGで定義されているスクリプティングとは、実質的にJavaScript(ECMAScript)のこと。ただし、次の文にはこうも書いてあります。

It is important to note, however, that scripting support is optional for Reading Systems and may be disabled for security reasons.

重要なこととして、スクリプティングのサポートはリーダーにとってオプションであり、セキュリティなどの理由でオフにしてもよい。

また、コンテンツ作者はポータビリティを重視すべきでありスクリプティングはユーザー体験の部分で使う程度がよい、ともあります。

EPUB 3と前バージョンEPUB 2との差異を記した「EPUB 3 Changes from EPUB 2.0.1」の「3.3.1 Scripting」には、以下のように書いてあります。

EPUB 3 Reading Systems may optionally support scripting, which was explicitly discouraged in EPUB 2.

EPUB 3リーダーはオプションとしてスクリプティングをサポートしてよい。これはEPUB 2では明確に落とされていたものだ。

つまり必ずしもすべてのEPUB 3対応リーダーでJavaScriptの動作が保証されているわけではないようです。

EPUB 3の仕様で指摘されているとおり、JavaScriptを多く使うコンテンツほど、限られたリーダーのみに対応するものになってしまうことは間違いありません。静的なコンテンツにどこまでスクリプトを使って動的に見せるか。これから登場するだろうさまざまなEPUB 3対応リーダーの実装状況を見つつ、コンテンツ作者側の試行錯誤がしばらくは続きそうです。

あわせて読みたい

JavaScript Web技術 電子書籍




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本