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³ )。しかし、スクリーンリーダーでどのように読み上げるのか(上付き数字も普通の数字と区別なく読んでいるようであれば厳しいか)。
- 簡単な分数であれば、スラッシュで表記可能である(例:⇒ 1/3)。しかし、スクリーンリーダーの読み上げて、理解可能か。また、学術文献の表記として、このような置き換えがアリか。
2.2 数式の画像化と代替テキストの提供
2.2.1 方法
数式を画像化して挿入する。画像には数式の読みを代替テキストとして提供する。
2.2.2 優位性
- 全ての数式に対応ができ、かつ、現在の実装で最も汎用性が高い。
- 代替テキストに対応した環境では、確実に適切に読み上げる(適切な代替テキストを提供できることが前提となるが)。
2.2.3 課題
- 1つ1つの数式に適切な代替テキスト(数式の読み)を提供することがハードルが高い。数式の難易度にそれは比例する。学術書に掲載されるような、複雑な数式の読みを代替テキストとして提供することは、かなり難易度が高い。それを作成する者が確保できるのか。
- 日本語については、一意な読み方法が確立されていない(例 「5分の3引く1」で「」と「」の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 Markup とContent 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 参考
- Math Home / W3C
- Mathematical Markup Language (MathML) Version 3.0 2nd Edition(仕様全文)/ W3C
- MathML 数式組版入門
- MathML / Accessible Publishing Knowledge Base
- pandocを用いてMarkdownからEPUB3+MathMLを作る | My Extra Dimension
- MathMLを使う—Wolfram言語ドキュメント
- EDUPUBで数式をどのように表わすのか? MathMLが飛翔するか、それともSVGなのか? | 電子書籍、電子出版のCAS-UBブログ
- MathMLの未来を考える―(1)現状の整理 | 電子書籍、電子出版のCAS-UBブログ
- 2017年の記事だが、日本語でもっともMathMLについて、記述と表示の対応についてまとまった記事。
- MathML Support in EPUB – Lost in the Ether
- Matt Garrish氏のブログ
- MathML forges on – O’Reilly Radar
- Math formula and accordian from sirisha gubba on 2019-09-22 (public-epub3@w3.org from September 2019)
- EPUB閲覧環境へのMatML対応に関する最近のW3C EPUB 3 Community Group MLのやりとり。
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 参考
- MathJax Documentation — MathJax 2.7 documentation
- Mathjaxを使ったEPUB « TIESのブログ
- 電子教科書関係者は必読、MathJaxを使いEPUB3電子書籍ファイルで数式表示させる方法 | HON.jp News Blog
- MathJax Accessibility Extensions Documentation
- Accessibility at Penn State | MathML and MathJax
2.5 LaTex
2.5.1 方法
LaTexを使用して数式を記述する。
2.5.2 優位性
- 数式の入力・表示についてMathMLよりは広く使用されている。読み上げる環境がMathMLより進んでいる可能性ある。(英語についてはJAWSが対応していると聞いたことが)。
- LaTexを記述できる者であれば、数式として表示されていなくても、Latexの記法で表示されたままでも、理解できる?(数式入りの学術文献を利用する者であれば、LaTexを取り扱えるものは多いと予想される)
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 ※のスラッシュによる表記をどのように読むか | いち すらっしゅ さん | いち すらっしゅ さん | |
3x = 2x + 6 − 1 ※減算演算子 (-) の表記をどうするか(文字コード的に。正直、ハイフンとマイナス混ざりそう・・) | |||
4 × ( 4 ÷ 2 ) = ※除算演算子(÷)と、括弧の読み上げが要確認か。 |
3.2 Webブラウザの対応(検証中)
3.2.1 MathML
検証に用いたサンプル
ブラウザ | 検証したOS | Presentation Markup | Content Markup | 検証スクリーンリーダー | 備考 | ||
---|---|---|---|---|---|---|---|
表示 | 読み上げ | 表示 | 読み上げ | ||||
Chrome | Windows 10 / macOS Mojave | 不可 | – | ||||
Firefox | Windows 10 / macOS Mojave | 可 | |||||
Edge | Windows 10 | 不可 | – | ||||
Safari | macOS Mojave | 可 | |||||
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>
ブラウザ | 検証したOS | Presentation Markup | Content Markup | 検証スクリーンリーダー | 備考 | ||
---|---|---|---|---|---|---|---|
表示 | 読み上げ | 表示 | 読み上げ | ||||
Chrome | Windows 10 / macOS Mojave | 可 | |||||
Firefox | Windows 10 / macOS Mojave | 可 | |||||
Edge | Windows 10 | 可 | |||||
Safari | macOS Mojave | 可 | 可 | VoiceOver | |||
Safari | iOS | 可 | 可 | VoiceOver |
3.2.3 参考
- MathML Support In Browsers · mathjax/MathJax Wiki · GitHub
- Browser Compatibility — MathJax 2.7 documentation
- MathML | Can I use... Support tables for HTML5, CSS3, etc
- web-platform-tests dashboard
3.3 EPUBの閲覧環境 (検証中)
検証するなら以下の表を埋める感じであろうか。
3.3.1 MathML
テスト用サンプルEPUB
なお、DAISYユーザーのEPUB閲覧環境としては、EPUBにも対応したDAISY再生機器のプレクストークPTR3も有力な候補になりえるが、学術用途(引用用途)での再利用が困難である(つまり、コピペが難しい)と思われるため、とりあえず今回の検証対象からは外す(将来的には検証に加えた方がよいとも思うが)。
閲覧環境 | 検証したOS | Presentation Markup | Content Markup | 検証スクリーンリーダー | 備考 | ||
---|---|---|---|---|---|---|---|
表示 | 読み上げ | 表示 | 読み上げ | ||||
EPUBReader+Firefox | Windows 10 / macOS Mojave | 可 | |||||
Thorium Reader | Windows 10 / macOS Mojave | 可 | Win10版では、"MathML"メニューにある"MathJax"にチェックされたときに表示可 | ||||
Adobe Digital Editions 4.5.11 | Windows 10 / macOS Mojave | 可 | |||||
MyBook Ⅴ | Windows 10 | 不可 | – | ||||
Dolphin EasyReader ver.6.03 日本語版 | Windows 10 | 不可 | – | ||||
EasyReader ver.8.02 英語版 | Windows 10 | 可 | 不可 | 日本語版なし | |||
Apple Books | macOS Mojave | 可 | |||||
Murasaki | macOS Mojave | 可 | |||||
Apple Books | iOS | 可 | 不可 | ||||
ボイス オブ デイジー 5 | iOS | 可 | 可 | VoiceOver(ソフト独自の読み上げ機能では数式の読み上げ不可) | |||
EasyReader for iOS and Android | iOS | 可 | 不可 | VoiceOver及びソフト独自の読み上げ機能 | |||
R2 Reader | iOS | 可 | 可 | VoiceOver | |||
Voice Dream Reader | iOS | 不可 | – | VoiceOver及びソフト独自の読み上げ機能 |
3.3.2 MathML + MathJax
閲覧環境 | 検証したOS | Presentation Markup | Content Markup | 検証スクリーンリーダー | 備考 | ||
---|---|---|---|---|---|---|---|
表示 | 読み上げ | 表示 | 読み上げ | ||||
EPUBReader+Firefox | Windows 10 / macOS Mojave | 可 | |||||
Thorium Reader | Windows 10 / macOS Mojave | 可 | |||||
Adobe Digital Editions 4.5.11 | Windows 10 / macOS Mojave | 可 | |||||
MyBook Ⅴ | Windows 10 | 不可 | – | ||||
Dolphin EasyReader ver.6.03 日本語版 | Windows 10 | 不可 | – | ||||
EasyReader ver.8.02 英語版 | Windows 10 | 不可(白紙状態でページが全く表示されない。) | – | 日本語版なし | |||
Apple Books | macOS Mojave | 可 | |||||
Murasaki | macOS Mojave | 可 | |||||
Apple Books | iOS | 可 | |||||
ボイス オブ デイジー 5 | iOS | 不可(白紙状態でページが全く表示されない。)< | – | ||||
EasyReader for iOS and Android | iOS / Android | 可 | |||||
R2 Reader | iOS | ||||||
Voice Dream Reader | iOS | 不可 | – |
3.3.3 参考
- epubtest.org
- Reading_System_Developer_Survey_Summary_Results_v6 from kerscher@montana.com on 2019-11-01 (public-epub3@w3.org from November 2019)
- Math formula and accordian from sirisha gubba on 2019-09-22 (public-epub3@w3.org from September 2019)
- EPUBリーダで、MathMLで記述した数式がだいぶ表示できるようになりました。 | 電子書籍、電子出版のCAS-UBブログ
- EPUB3 Reading systems overview — MathJax 2.7 documentation
4. ツール・サービス
- Mathpix Snip
- MathML Cloud / Beneficent Technology, Inc.
- Accessible Math / Diagram Center
- MathDaisy / Design Science
- InftyReader
- MathToWeb
- Math Tools / W3C
- Math Accessibility – SeeWriteHear
5. 他機関のプロジェクト
Benetech・DIAGRAM Center
- Accessible Math: tools tips and training – DIAGRAM Center
- Making STEM Education Accessible for All | Benetech
- Mathshare Benetech Math Editor
6. 参考文献
- Design Science: Reference
- Math Accessibility – SeeWriteHear
- CiNii 論文 - 視覚障害者学習支援のためのMathML変換 (福祉情報工学)
- CiNii 論文 - 数式の音声化の検討
- CiNii 論文 - DAISY形式の日本語理数系教材が抱える諸問題
- CiNii 論文 - 表および数式の音声化の検討
- CiNii 論文 - 視覚障害者のための数式読み上げシステム
- CiNii 論文 - 日本語による数式読み上げ法の基本構成について
- CiNii 論文 - 日本語数式エディターの視覚障害者用音声インターフェース開発について
- CiNii 論文 - 数式を含む文書の日本語読み上げ用試作システムについて
- CiNii 論文 - Web 教材上の数式表示のバリアフリー化 : MathML の読み上げ対応