WebとEPUBにおける数式対応とその読み上げ対応 – MathMLを中心に 

Webアクセシビリティ Advent Calendar 2019、7日目の記事、というかメモです。

数式ありのコンテンツについて、WebやEPUBでどのような方法で記述し、そして、アクセシブルなものにするのか、現状の考えられる案をMathMLを中心に書き出してみました。なお、近年の仕様の動向やブラウザの実装に係る動きは、ミツエーリンクスさんのブログWebにおける数式と数式の読み上げを取り巻く環境についてでまとめてくれています。

 なお、私自身のスコープが

数式入りの学術文献を如何にアクセシブルな形でEPUBにするか

にあります。EPUBより実装が進んでいるであろうWeb(Webブラウザ上での対応)も比較の対象として触れますが、EPUB対応を前提としていることをご了承ください。数式入りというと、小中高の教育系コンテンツも考えらますが、このエントリは高等教育向けのコンテンツを対象とします。

1. 数式入りのコンテンツ(特に学術系コンテンツ)をWeb化 / EPUB化する大前提

  • 学術用途に耐えうること。つまり、引用という形で再利用可能であること。
  • 数式を表示できること。
  • スクリーンリーダーで読み上げられること。

2. 数式への対応方法

 WebやEPUBに数式を入れる方法として以下が考えられます。2.1とそれ以外の方法を組み合わせることになるだろうと思われる。

2.1 プレーンなテキストデータとして記述

2.1.1 方法

二項演算子及び関係演算子を用いて一行で表記可能なシンプルな数式はテキストデータとして表記する。

2.1.2 優位性

  • 現行の実装で最もシンプルで汎用性が高い。課題に挙げた事例を除けば、読み上げる可能性が高い。

2.1.3 課題

  • この方式で記述できない数式がある。その数式への対応については、別の対応が必要。その線引きについても、例えば、以下の課題がある。
    • 塁乗などは上付き数字で表記は可能である( 例: 2³ )。しかし、スクリーンリーダーでどのように読み上げるのか(上付き数字も普通の数字と区別なく読んでいるようであれば厳しいか)。
    • 簡単な分数であれば、スラッシュで表記可能である(例: 13 ⇒ 1/3)。しかし、スクリーンリーダーの読み上げて、理解可能か。また、学術文献の表記として、このような置き換えがアリか。

2.2 数式の画像化と代替テキストの提供

2.2.1 方法

数式を画像化して挿入する。画像には数式の読みを代替テキストとして提供する。

2.2.2 優位性

  • 全ての数式に対応ができ、かつ、現在の実装で最も汎用性が高い。
  • 代替テキストに対応した環境では、確実に適切に読み上げる(適切な代替テキストを提供できることが前提となるが)。

2.2.3 課題

  • 1つ1つの数式に適切な代替テキスト(数式の読み)を提供することがハードルが高い。数式の難易度にそれは比例する。学術書に掲載されるような、複雑な数式の読みを代替テキストとして提供することは、かなり難易度が高い。それを作成する者が確保できるのか。
  • 日本語については、一意な読み方法が確立されていない(例 「5分の3引く1」で「 31 5 」と「 351 」の2通りの式が再現できるなど。)。数式の読み情報のみで正確な情報が伝えることができるか。
  • 数式の読み情報のみで、学術用途(引用用途)で再利用するために数式としての復元がどこまで可能かわからない。

2.3 MathML

2.3.1 方法

MathMLを使用して数式を記述する。

2.3.1.1 MathMLについて
  • EPUBの標準的な数式記述方法である。DAISY 3 においてもMathML 2.0に対応した拡張仕様 がある(参考: MathML in DAISY)など、DAISYとも古い付き合い。
  • MathMLは、Presentation MarkupContent Markupの2種類のマークアップがある。
  • 数式の同じ形の部分も式によってその内容(意味)が異なるが、Presentation Markupはその違いは考慮せずに「形」を記述する。Content Markupは「内容(意味)」を記述する。
  • Content Markupは、閲覧環境の対応が進めば利用者に最適な読み上げが期待できる。しかしContent Markupは内容を理解しないと記述ができない。数式への理解が曖昧であれば誤った記述となる可能性がある。
  • LaTexからの変換を想定する場合は、Content Markup への変換は困難であることが予想される。
  • Presentation MarkupとContent Markupでは、前者のほうがブラウザやEPUBの閲覧環境への対応も進んでいることが予想される。

2.3.2 優位性

  • EPUBの標準的な数式記述方法である。実装があるのであれば、この方法がEPUBの仕様としては理想的。
  • MathMLが読み上げるなら、数式を入れる側はMathMLとしての構造化のみを意識して入力することができる(数式の読みはMathMLに対応したスクリーンリーダーに委ねることができる)。
  • 数式として構造化されているため、実装があるのであれば、読み上げ対応に限定されず、構造化された情報を様々な支援技術が活用できることが期待できる。

2.3.3 課題

  • Webブラウザ及びEPUBのネイティブの実装でMathMLの表示、読み上げともに実装している環境が限られている(WebブラウザやEPUBでネイティブに表示、読み上げに対応する環境があるか検証が必要)。
  • 学術用途(引用用途)で再利用に耐えうるか検証が必要。

2.3.4 参考

2.4 MathML+ MathJax

2.4.1 方法

 JavaScriptライブラリであるMathJaxを利用し、MathMLとして数式を記述する。EPUBの場合は、このJavaScriptライブラリをEPUBに同梱する。

2.4.2 優位性

  • 数式表示はJavaScriptによるMathJaxがデファクトスタンドダードになりある(らしい)。JavaScriptに対応したあらゆるブラウザやEPUBの閲覧環境で対応することができる。
  • JavaScriptライブラリのサポートを前提とするが、EPUBの仕様に沿ってMathMLという形で数式を記述することができる。
  • MathMLが読み上げるなら、数式を入れる側はMathMLとしての構造化のみを意識して入力することができる(数式の読みはMathMLに対応したスクリーンリーダーに委ねることができる)。
  • 数式として構造化されているため、実装があるのであれば、読み上げ対応に限定されず、構造化された情報を様々な支援技術が活用できることが期待できる。
  • MathMLそのものはEPUBの仕様でサポートされているため、仮にMathJaxの開発がとまっても、中長期的にはMathMLにネイティブに対応することが期待できる。

2.4.3 課題

  • JavaScriptに対応した環境にMathJaxの使用が限定される(ただし、JavaScriptに対応していないEPUBの閲覧環境は、読み上げに対応していない電子ペーパー端末に限定される?)。
  • MathJaxの、Presentation MarkupとContent Markupへの対応状況は要検証。
  • MathJaxで表示の課題は解消できても、読み上げへの対応はどうかは要検証
  • ネイティブでMathMLに対応している環境(iOS 版のSafariなど)への挙動の影響はどうかは要検証。
  • 学術用途(引用用途)で再利用に耐えうるか検証が必要。

2.4.4 参考

2.5 LaTex

2.5.1 方法

 LaTexを使用して数式を記述する。

2.5.2 優位性

  • 数式の入力・表示についてMathMLよりは広く使用されている。読み上げる環境がMathMLより進んでいる可能性ある。(英語についてはJAWSが対応していると聞いたことが)。
  • LaTexを記述できる人口の方がMathMLより多い?

2.5.3 課題

  • EPUBの仕様では本来サポートされておらず、閲覧環境の実装においても対応しているものはないと思われる。Webブラウザでも同様。
  • 学術用途(引用用途)で再利用に耐えうるか検証が必要。

2.6 LaTex + MathJax

2.6.1 方法

 JavaScriptライブラリであるMathJaxを利用し、LaTexとして数式を記述する。EPUBの場合は、このJavaScriptライブラリをEPUBに同梱する(EPUBの仕様ではサポートしていないが、MathJaxによりLaTexで記述することがブラウザ上でもEPUBの閲覧環境上でも可能になるはず)。

2.6.2 優位性

  • 数式の入力・表示についてMathMLよりは広く使用されている。読み上げる環境がMathMLより進んでいる可能性ある。(英語についてはJAWSが対応していると聞いたことが)。
  • MathJaxの対応もMathMLよりLatexのほうがこなれている?ツールも多い?
  • LaTexを記述できる人口の方がMathMLより多い?

2.6.3 課題

  • EPUBの仕様では本来サポートされていない。MathJaxにより、表示、そして、仮に読み上げが可能であったとしても、イレギュラーな対応になる。MathMLの開発が止まってしまったら、閲覧は担保できなくなる(中長期的に閲覧を担保できない)。
  • JavaScriptに対応した環境にMathJaxの使用が限定される(ただし、JavaScriptに対応していないEPUBの閲覧環境は、読み上げに対応していない電子ペーパー端末に限定される?)。
  • MathJaxで表示の課題は解消できても、読み上げへの対応はどうかは要検証
  • 学術用途(引用用途)で再利用に耐えうるか検証が必要。

3. 対応状況の検証

  画像に付与された代替テキストの読み上げは、ほぼ全ての環境で対応していると言ってよいであろうと思われ、LaTexはEPUBの仕様でサポートされていないため、「2.2 数式の画像化と代替テキストの提供」、「2.5 LaTex」、「2.6 LaTex + MathML」の検証は省略。

以下を検証する必要がある (一部確認できているところは記入)。学術用途(引用用途)で再利用に耐えうるかの検証方法は要検討。
※本当は実際に検証してこの表を埋めるところまで書きたかったのですが、検証対象を絞るところで力尽きてしまいました 汗。

3.1 プレーンなテキストデータとして記述

検証対象(例) PC-Talker NVDA VoiceOver(iOS)
2³ ※上付き数字をどのように読むか に うわつきすうじさん
1/3 ※ 13 のスラッシュによる表記をどのように読むか いち すらっしゅ さん いち すらっしゅ さん
3x = 2x + 6 − 1 ※減算演算子 (-) の表記をどうするか(文字コード的に。正直、ハイフンとマイナス混ざりそう・・)
4 × ( 4 ÷ 2 ) = ※除算演算子(÷)と、括弧の読み上げが要確認か。

3.2 Webブラウザの対応

3.2.1 MathML

検証に用いたサンプル

ブラウザ Presentation Markupの表示 Content Markupの表示 読み上げ 検証スクリーンリーダー 備考
Chrome 不可
Firefox
Edge 不可 不可
Safari(MacOS) 不明(サンプルをローカルに保存するのみ表示可?)
Safari(iOS) 不可 VoiceOver

メモ

  • NVDAとMathPlayerとの組み合わせでWORDに埋め込んだMathMLを読み上げさせることが可能らしい(参考: NVDA 2015.2 の数式対応 – nishimotzの日記)。ただし、少なくとも現行のMathPlayerは、32-bit Office に対応が限定される。Internet Explorer (IE) のプラグインとしても機能するが、IE10以降には対応しておらず、IEのEnterprise Modeでレガシーモードを使う必要がある。MathPlayerの更新も2016年でとまっており、MathPlayerやIEの方針が変わなければ、この組み合わせは利用できなくなると思われる。
  • NVDAには、Access8Mathというプラグインがある。Mozilla Firefox, Microsoft Internet Explorer and Google ChromeでMathMLを読み上げるようになるらしい。
  • PC-TalkerはMathMLの読み上げに対応していないようなので、ここでは検証対象からはずした。PC-Talkerの利用が前提の音声ブラウザNetReaderも外れる。

3.2.2 MathML + MathJax

「3.2.1 MathML」に用いたサンプルのソースに以下を追加。検証対象にNetReaderを追加。


<script type="text/javascript"
   src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

ブラウザ Presentation Markupの表示 Content Markupの表示 読み上げ 検証スクリーンリーダー 備考
Chrome 不可 NVDA
Firefox NVDA
Edge
Safari(MacOS) 不明(サンプルをローカルに保存すると表示できるのだが・・) VoiceOver
Safari(iOS) VoiceOver
NetReader PC-Talker

3.2.3 参考

3.3 EPUBの閲覧環境 (未検証)

検証するなら以下の表を埋める感じであろうか。

3.2.2 MathML

テスト用サンプルEPUB

 なお、DAISYユーザーのEPUB閲覧環境としては、EPUBにも対応したDAISY再生機器のプレクストークPTR3も有力な候補になりえるが、学術用途(引用用途)での再利用が困難である(つまり、コピペが難しい)と思われるため、とりあえず今回の検証対象からは外す(将来的には検証に加えた方がよいとも思うが)。

閲覧環境 Presentation Markupの表示 Content Markupの表示 読み上げ スクリーンリーダー 備考
EPUBReader
Thorium Reader
Apple Books (iOS)
Mybook
Dolphin EasyReader
いーリーダー
EasyReader for iOS and Android
ボイス オブ デイジー 5

3.2.2 MathML + MathJax

閲覧環境 Presentation Markupの表示 Content Markupの表示 読み上げ スクリーンリーダー 備考
EPUBReader
Thorium Reader
Apple Books (iOS)
Mybook
Dolphin EasyReader
いーリーダー
EasyReader for iOS and Android
ボイス オブ デイジー 5

3.3.3 参考

4. ツール・サービス

5. 他機関のプロジェクト

Benetech・DIAGRAM Center

6. 参考文献

高齢者にシンプルで使いやすい機器やサービスを

 アクセシビリティ Advent Calendar 2019 1日目のエントリです。

 私の実家は、ネット環境がない。年賀状を打ち出すためのデスクトップPCが一応あるが、ネットにはつながっていない。スマートフォンも持っていない。

 私が帰省するたびにテザリングでギガを消費することになる。まあ、それはいい。しかし、実家に常時、ネット環境があれば、いろいろできることもある。ネットスーパーも使えるし、日用品も変える。Skypeで私の家とつながることもできるし、簡単な見守り的な機器も使えるだろう。しかし、ネット環境がないので、それができない。

 私の親がネット環境を家に備えない理由として、パソコンなんてつかわんし、つかえないし、使える気がしないという。スマートフォンも未だに使わない(ガラケーよりカメラが優秀なので興味はもっていたけど)。

 たしかに私が無理矢理プロバイダを契約してPCを買っても使えないような気もする。どうしたものか。

 妻がラップトップPCを購入した際にWindows 10のセットアップを少し手伝ったけど、カタカナだらけの用語で設定を求められて、10個以上のチェックボックスが同時に出る画面を見た際には私の親には絶対無理だなと思いました。あと、アカウント(WindowsのアカウントとMSのアカウント)を2回設定させられるものも、「えぇ、なぜパスワード2回設定するん?」と間違いなく混乱をまねいちゃうだろう。

 私の実家の場合は、そういう面倒なことをするのは、私がやるとしてもだ、そういうことをしてくれる人がいない場合、どうしているのだ。セットアップむりだべ。だから、電器屋がサポートサービスなど提供しているのだろう。しかし、そもそもなぜそういうサポートサービスが未だに必要になるのか、なんだかなと思ったり。20年前ならいざしらず。

 タブレットPCならまだハードル低いのかな・・・(というところで、今はうろうろ)。

 さぁ、いろいろ乗り越えてネット環境を構築して、ブラウザを立ち上げるところまで来たとして、ネットスーパーのサイトもアマゾンも情報量が多すぎて使いこなせないような気がする。どうしたものか。あと、何ができるのか、自分がこのサービスを使えるのかがサイトを開いてもすぐに分からない?田舎に住んでいると、自分のすんでいるところは、このサービスを使えない可能性を常々感じているので、そこが気になったりするけど、そういう情報は書いてないかもしれない。一度でも使えば、あぁ、こうやって使えるんだと分かって使えるようにもなるのだろうけど、そこまでのハードルがたかそう。

 キーボード操作もハードルがそこそこありそう(私の親は一応は使えるみたいだが)。 いっそ音声入力をもっと前面にだしてもよいかも。そういえば、Apple Watch、文字入力は、基本的に音声入力ですよね。その割り切り素晴らしい。タブレットやスマートフォンはマイクキーがあって音声入力モードにしやすくなっているけど、デフォでもよい人が結構いるかもしれない。とは言え、歳をとると滑舌が悪くなるので、音声入力もすべての人にとって良いとは限らない。どうしたらいいんでしょうね。

 スマートスピーカー、君には期待している。しかし、セットアップはスマートフォンかタブレットが必要なのかな・・。持っていない人は・・・。

 デジカメ、おまえもだ。私自身は君を深く愛しているが、なぜおまえは未だに進化しないのだ。いや、便利になった。認めよう。しかし、撮った写真はどうするのだ。デジカメで撮った写真はPCに取り込んだりするのだろうけど、PCもっていないうちの親はデジカメの小さな確認画面で写真を見ているのだぞ。それならフィルムカメラでプリントしたほうがずっとましではないか。いや、わかる。デジカメでもプリントすればいいじゃんと。でも、デジカメだとしないだろ。フィルムカメラからデジカメに変わって、写真を撮るところはとても簡単になった。ネットを扱える人には共有もSNSなどで簡単になった。クラウドに置いちゃえと言うのも分かる。もうカメラなんて各デバイスに偏在するんだぞというのもわかる。しかしだ、ネットもPCも使えない人には、見る手段はデジカメの小さな確認画面になっちゃう。フォトフレームがあるのは分かる。でも、あれもつかいづらいよね。カメラメーカーはカメラ市場は縮小の一途と認識しているようだけど、ネットもPCも扱えない、使うカメラはガラケーという高齢者はいまだにコンデジを使うのではないかと思う。こういう人たちにとって、デジカメは、見るという行程においては、フィルムカメラよりよくなっていない。大きな市場がここに眠っているのでは。掘り起こすんだ。

 障害者手帳を所持する視覚障害者の75%は60歳以上という。ICT でできることがどんどん増えていっても、それをそれを扱うスキルの要件が高いとつかいこなせない。最近、これはいろいろなところで議論もされている。サポートする人がもっと必要ではないか等。しかし、こういった機器やサービスがそもそも使いやすければ、必要とされる人的な手当も減らすことができるので、高齢者にも使いやすい機器やサービス、もっと増えてほしい。シンプルさが求められると思いますが、この「シンプル」は、単に操作が簡単ということだけではなく、どういう結果がおこるのか、どの工程にある操作をしているのかが容易に想像できるというという点があると思う。

いずれにしても、ICTスキルがある人とない人でできることが大きな開きが生じている。この状態そろそろなんとかしたい。