Visual Studio デベロッパー センター >
Visual Studio フォーラム
>
Visual Studio International Pack
>
ASP.NET でフリガナ (ruby) を表示できる YomiganaServerLabel コントロール (beta版) の仕様・不具合
ASP.NET でフリガナ (ruby) を表示できる YomiganaServerLabel コントロール (beta版) の仕様・不具合
- Visual Studio International Feature Pack 2.0 Beta に含まれている YomiganaServerLabel コントロールを試してみました。 Windows 7 RC に Visual Web Developer 2008 Express Edition SP1 です。
このコントロールは、 そのコンテンツ ( Text プロパティ ) に与えられる文字列として、 Unicode の Interlinear annotation を受け入れます。 そして、 それを xhtml の ruby 要素として出力してくれます。
【 ASP.NET での記述例 】
<cc1:YomiganaServerLabel ID="YomiganaServerLabel1" runat="server" TextCssClassId="TextID" YomiganaCssClassId="YomiganaID"
>\uFFF9今日\uFFFAきょう\uFFFBは\uFFF9良\uFFFAりょう\uFFFBい\uFFF9天気\uFFFAてんき\uFFFBです</cc1:YomiganaServerLabel>
【 出力される html 】
<span id="YomiganaServerLabel1"><ruby class = "TextID" ><rb> 今日</rb><rt class = "YomiganaID" >きょう</rt></ruby><ruby class = "TextID" ><rb> は</rb><rt></rt></ruby><ruby class = "TextID" ><rb> 良</rb><rt class = "YomiganaID" >りょう</rt></ruby><ruby class = "TextID" ><rb> い</rb><rt></rt></ruby><ruby class = "TextID" ><rb> 天気</rb><rt class = "YomiganaID" >てんき</rt></ruby><ruby class = "TextID" ><rb> です</rb><rt></rt></ruby></span>
この ruby, rt, rt という要素は 2001年に xhtml の一部を構成する規格になっています。 IE はもちろん対応していて、 rb で指定された文字列の上側に、 rt で指定された文字列が小さなフォントで表示されます。 Firefox は本体ではまだ対応していませんが、 アドインを組み込めば同様に表示されます。
※ 私の blog には、 ブラウザの画像を載せてあります。
まず、 この Interlinear annotation に対応したというのは、 初めてじゃないでしょうか。 Unicode ver.3 (1999年) で規定されていながら、 対応した実装を見た記憶がありません。 ( Connect ID=414678 のように、 要望は出されていたりします。 )
WinForm の Label や RichEdit などで実装するのは大変で、 html ならばすでにある ruby 要素を出力するだけだから、 という難易度の差はありますが、 それでも Interlinear annotation に対応した実装が出てきたというのは、 すばらしいことだと思います。
※ Interlinear annotation は、 既存の Unicode 処理システムに流しても問題無いはずです …という建前ですが、 実際にやってみると、 途中で消えてしまったり表示がおかしくなったりといった問題が出てくることでしょう。 また、 フリガナ部分だけ削除するといった新しいフィルタリングの要求も出てくると思います。 これ以外にも、 Unicode には異体字セレクタなど、 同様な問題を潜在的に抱えているコードがありますので、 「Unicode に完全対応したシステム」への試金石ともなりましょう。
前置きが長くなりましたが、 以下、 要望です。
1. rb タグの直後に空白が 1文字入ってしまう。 ( 不具合だと思います。 )
2. ruby 要素にしなくてもよい部分 ( フリガナが無い部分 ) まで、 ruby 要素に変換してしまっています。 データ転送量のことを考えると、 ruby 要素にしないほうがよいのではないかと思います。 ( この仕様は、 CSS を理解しやすくするためでしょうか? )
3. オプションで rp 要素も出せるようにしてほしい。 フリガナの前後に rp で括弧などを付けて出力してあげないと、 ruby 要素に対応していないブラウザでは、 読めたものではなくなりますので。 ( 音声読み上げを考えると、 CSS で視覚的に識別できるというのでは不十分でしょう。 )
biac [ http://bluewatersoft.cocolog-nifty.com/ ]
すべての返信
- biac さんサーバー コントロールもご評価をいただきましてありがとうございます。
1. rb タグの直後に空白が 1文字入ってしまう。 ( 不具合だと思います。 )
はい、不具合です。 修正のために、こちらで登録をいたしました。2. ruby 要素にしなくてもよい部分 ( フリガナが無い部分 ) まで、 ruby 要素に変換してしまっています。 データ転送量のことを考えると、 ruby 要素にしないほうがよいのではないかと思います。 ( この仕様は、 CSS を理解しやすくするためでしょうか? )
こちらも、不具合だと思われます。 こちらも登録いたします。3. オプションで rp 要素も出せるようにしてほしい。 フリガナの前後に rp で括弧などを付けて出力してあげないと、 ruby 要素に対応していないブラウザでは、 読めたものではなくなりますので。 ( 音声読み上げを考えると、 CSS で視覚的に識別できるというのでは不十分でしょう。 )
はい。rp 要素に使われる括弧を属性として持たせようかと考えています。
この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。


