rtc 要素

4.5.24 rtc 要素

カテゴリー:
なし
この要素を使うことができるコンテキスト:
ruby 要素の子として。
コンテントモデル:
フレージング・コンテント、または、rt 要素。
コンテント属性:
グローバル属性
text/html におけるタグの省略:

rtc 要素の終了タグは、rtc 要素の直後に rb, rtc, rp 要素が続く、または、親要素に他のコンテンツが何もないなら、省略することができます。

指定可能な ARIA role 属性 の値:
あらゆるロールの値
指定可能な ARIA ステートとプロパティ属性:
グローバル aria-* 属性
許可ロールに該当する aria-* 属性
DOM インタフェース:
HTMLElement を使う。

rtc 要素は、ルビ注記のルビテキスト・コンポーネント用にルビテキスト・コンテナをマークアップします。それが ruby 要素の子の場合、それ自身では何も表しません。しかし、それが何を表しているのかを決定する際に、その親の ruby 要素によって使われます。

ruby 要素の子でない rtc 要素は、その子と同じものを表します。

rtc 要素が ruby 要素に対するコンテンツのセグメント化とカテゴリー化の一環で処理されるとき、次のアルゴリズムによって、どうやって rtc 要素が処理されるのかが決まります:

  1. root を、このアルゴリズムが実行されている rtc 要素とします。
  2. index を 0 とします。
  3. annotations を、DOM range の空リストとします。
  4. current automatic annotation nodes を、DOM ノードの空リストとします。
  5. current automatic annotation range start を null とします。
  6. Process an rtc child: indexroot の子ノードの数以上なら、自動注記をコミットする手順を実行し、annotations を返します。そして、これらの手順を中止します。
  7. current child を、rootindex 番目のノードとします。
  8. current childrt 要素なら、これらの副手順を実行します:
    1. 自動注記をコミットする手順を実行します。
    2. startboundary point (root, index) で、endboundary point (root, index + 1) となる新たな DOM range を生成し、それを annotations の最後に追加します。
    3. index をひとつインクリメントし、process an rtc child と書かれた手順に飛びます。
  9. current automatic annotation nodes が空なら、current automatic annotation range startindex の値にセットします。
  10. current childcurrent automatic annotation nodes の最後に追加します。
  11. index をひとつだけインクリメントし、process an rtc child と書かれた手順に飛びます。

上記手順での自動注記をコミットするというのは、そのアルゴリズムのその時点で、次の手順を実行することを意味します:

  1. current automatic annotation nodes が空なら、これらの手順を中止します。
  2. current automatic annotation nodesText ノードでないノード、または、 要素間ホワイトスペースでない Text ノードを含むなら、startboundary point (root, current automatic annotation range start) で、endboundary point (root, index) となる DOM range を新たに生成して、それを annotations の最後に追加します。
  3. current automatic annotation nodes を、DOM ノードの空リストとします。
  4. current automatic annotation range start を null とします。

※ 原文:http://www.w3.org/TR/2014/REC-html5-20141028/text-level-semantics.html#the-rtc-element