WebKitに縦書きパッチを提供するか、W3Cにテストスイートを提供することでお金が貰えるぞ!
「次世代Webブラウザのテキストレイアウトに関する検討会」*1の「電子書籍関連分科会」が「次世代Webブラウザを利用した縦書きテキストレイアウトに関する表現の標準化のため、課題抽出のための調査支援者」を募集している。
次世代Webブラウザを利用した縦書きテキストレイアウトに関する表現の標準化について、課題抽出のための調査支援者の公募 | NTTソフトウェア
「課題抽出のための調査」という言い方をしているが、具体的にはブラウザでの縦書きの実装を進め、その実装の確認を行うためのテストスイートの開発である。ブラウザとしてはChromeやSafariなどのレンダリングエンジン*2であるオープンソースのWebKitを対象としている。そして、この開発を完了させた人にはきちんと報酬が支払われる。内容によって額は異なるが、10万円か20万円のいずれかだ。
自分で「縦書き不要論」という物騒なタイトルのブログ記事を書いておいて、こんなことを言うのもなんだが、ブラウザで縦書き表示がサポートされること自身は大変好ましい。レイアウト上の自由度が高まるし、実際に縦書きを好むユーザーも存在する。私のブログ記事でもタイトルとは裏腹に、不要とは言っていない。これに関してはまた別途エントリーを書きたいと考えているのだが、それはともかく、WebKitに縦書きのためのパッチを提供し、W3Cにテストスイートを提供する人が募集されているのだ。
WebKitでの実装を期待されているのは、次のパッチだ。
- text-orientation:mixed-rightのUTR #50のサポート。UTRはUnicode Technical Reportの略だが、その#50は「横書きおよび縦書きのためのUnicodeプロパティ(UNICODE PROPERTIES FOR HORIZONTAL AND VERTICAL TEXT LAYOUT)」を定義している。日本語は縦書き時にも文字の向きにいろいろなバリエーションがあるが、それをサポートするための機能だ。複雑な議論があったが、「CSS3とUnicode仕様の縦書きの文字の向きの議論について(CSS組版ブログ)」に詳しい。
縦中横+text-decorationで文字の上部に線が出るバグの修正。このサンプルページをWebKitを使ったブラウザから見れば一目瞭然。*3- 折り返し行末にきた文字をタグで囲むと分離禁止される(WebKit bug #105692およびWebKit bug #17427)。サンプルページ。
- システムフォールバックフォント、あるいはself/sansserifが使用された場合、縦書+uprightが正しく描画されない(WebKit bug #105694)。これもサンプルページを見れば一目瞭然。
- 下線がルビで分離される(WebKit bug #78957)。WebKit bugの中にサンプルページが含まれており、それを見ればすぐわかるが、ルビを振るとテキストが分離されるというバグだ。
- surrogate pairの文字が縦書では出ない(WebKit bug #105611)。EPUB3ビューワーの参照実装であるReadiumのページにサンプルがある。なお、こちらはすでにWebKit上でパッチがレビュー待ちの状態である。
ブラウザとしてWebKitが選ばれているのは、現時点で縦書きサポートがある程度進んでいるオープンソースプロジェクトだからだ。プロプライエタリの実装以外で自由に触れ、かつ実際に多くのビューワーで使われているのはWebKitだ。
期待されているパッチによっては、WebKitのBugzillaにバグを登録するところから進めなければいけないものもある。また、パッチがランドされるまでが期待されているので、単に実装を行うだけでなく、WebKitレビューワーにレビューして承認してもらう必要があり、英語でのコミュニケーションも必要となる。3/15までに完了しなければいけないので、それなりにハードルは高い。だが、グローバルなオープンソースプロジェクトでの開発はほかでは得がたい貴重な経験となるだろう。WebKitは現在注目の的でもあるから、WebKitでの貢献が認められて、どこかからヘッドハンティングされるかもしれない ;-)
一方、W3Cへのテストスイートとして期待されているのは以下のものだ。
- text-orientation(W3C CSS Writing Modes:text-orientation)
- line-break(W3C CSS Text:line-break)* 本件については、承認待ちのテストスイートはある。
- text-underline-position(W3C CSS Text Decoration:text-underline-position)
- text-decoration-line(W3C CSS Text Decoration:text-decoration-line)
- 縦書き時のbaseline alignments(W3C CSS Writing Modes:inline-alignment)
- text-combine-horizontal(W3C CSS Writing Modes:text-combine-horizontal)
W3C CSSテストスイートについての情報は、Official W3C Test Suitesを参照のこと。MLやTest Case Authoring Guidelinesが参考になるであろう。
ちなみに、WebKitへのパッチとW3Cへのテストスイートを全部完了させたらいくら貰えるのかを計算してみたら、160万円になった ;-)
われこそはと思わん方は是非とも応募を!
[追記: 2013/01/09 13:21]
応募
応募に際しては、WebKitやW3Cでその作業を任されている(アサインされている)状態になっていることが必要となる(以下参照)。
応募したい項目(項目については公募内容を参照)について、標準化団体等にプログラム実装やテストスイート作成の表明をし、標準化団体等からアサインされていること。
1/21が締め切りなので、興味がある人は調査をできるだけ早く開始し、担当できると思ったら、すぐにWebKitやW3Cで意思表明をするほうが良いだろう。
必要システム
「WebKitの実装については、Windows7(32bit/64bitのいずれか)のGoogle Chromeの最新版で動作確認」をする必要があるので、WebKitへのパッチ提供を考える人は、WindowsマシンとVisual Studio(もしくは、Visual C++ Express)、Cygwinを用意する必要がある。詳しくは、The WebKit Open Source Project - Installing Developer Toolsを参照。
W3Cへのテストスイートの提供はテキストファイルが生成できれば良いので、特にプラットフォームやツールを気にしなくても良い。
[追記: 2013/01/14 17:36]
その後、必要システムについては変更された。
WebKitの実装の対象プラットフォームは問わない(いずれか1つのプラットフォームでよい)ですが、コミット先の指示があった場合はこの限りではありません。