規範的な修正を含む場合がある、この文書の正誤表を参照してください。
Copyright © 2018 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and document use rules apply.
この文書は、Timed Text Markup Language (TTML)、 バージョン 2、別名 TTML2 を、その語彙およびその セマンティクスの観点から規定する。
Timed Text Markup Language は、オーサリング システム間の交換を目的として、時限テキストメディアを 表現するコンテンツ型である。時限テキストとは、タイミング情報に 内在的または外在的に関連付けられたテキスト情報である。
これは、字幕およびキャプション機能のために現在使用されている レガシー配信用コンテンツ形式間で、時限テキスト情報を トランスコードまたは交換する目的で使用されることを意図している。
レガシー配信用コンテンツ形式間の交換に使用されることに加えて、
TTML コンテンツは、たとえば [HTML 5.2] 文書内の
<track> 要素、または [SMIL 3.0] 文書内の
<text> もしくは <textstream> メディア要素から
参照する標準コンテンツ形式を提供するなど、配信形式として直接使用される場合がある。
このセクションは、この文書の公開時点における この文書の状態を説明する。他の文書がこの 文書に取って代わる場合がある。現在の W3C 公開物の一覧および この技術報告の最新版は、https://www.w3.org/TR/ にある W3C 技術報告 インデックスで確認できる。
これは、W3C プロセスのために定められた手続きに従い、 W3C Web Video Activity の一部として Timed Text (TT) Working Group によって作成された、 Timed Text Markup Language 2 (TTML2) W3C 勧告である。 この文書の著者は、この文書のヘッダーに一覧されている。
実装 報告は、この仕様が実装可能であることを示している。 TTML1 第3版 [TTML1] からの全変更の累積要約は、 Timed Text Markup Language 2 (TTML2) 変更要約で利用できる。言語構文に影響する変更の 簡略一覧は、U TTML1 からの語彙の変更にある。
この文書に関するコメントは、
GitHub の issue を提出するか、
件名行を [ttml2] で始めて
public-tt@w3.org
(購読,
アーカイブ)
へ電子メールを送信することで歓迎される。
この文書は、W3C 会員、ソフトウェア 開発者、ならびに他の W3C グループおよび関心を持つ関係者によってレビューされ、 W3C 勧告として Director により承認されている。これは安定した 文書であり、参照資料として使用したり、他の文書から引用したりすることができる。 勧告を作成するうえでの W3C の役割は、仕様に注意を向けさせ、 その広範な展開を促進することである。これにより、Web の機能性と相互運用性が向上する。
この文書は、W3C 特許 ポリシーの下で運営されるグループによって作成された。W3C は、グループの 成果物に関連して行われた特許開示の公開 一覧を管理している。そのページには、特許を 開示するための指示も含まれている。ある個人が、 必須 クレームを含むとその個人が信じる特許について実際の知識を有する場合、その個人は W3C 特許ポリシー第 6 節に従って情報を開示しなければならない。
この文書は、2018年2月1日 W3C プロセス文書に準拠する。
別途指定がない限り、このセクションおよびそのサブセクションは非規範的である。
Timed Text Markup Language (TTML) バージョン 2、TTML2 とも呼ばれるものは、 交換および処理を目的として、著者またはオーサリングシステムにより スタイル、レイアウト、およびタイミングのセマンティクスが関連付けられる テキスト情報の特定のサブセットの標準化された表現を提供する。
TTML は、[TTAF1-REQ] によって定められ、 M 要件に要約されている限定された要件のみを満たすよう、 明示的に設計されている。特に、既存のレガシー配信システムとの 交換を行う必要性に役立つ要件のみが満たされる。
レガシー配信用コンテンツ形式間の交換に使用されることに加えて、
TTML コンテンツは、配信形式として直接使用される場合がある。たとえば、
[HTML 5.2] 文書内の <track>
要素、または [SMIL 3.0] 文書内の <text> もしくは
<textstream> メディア要素から参照する標準コンテンツ形式を提供する。
TTML の特定のプロパティは、
R ストリーミング TTML コンテンツで説明されているように、
コンテンツのストリーム可能性をサポートする。
注:
TTML は、HTML または SMIL 文書インスタンスへの直接的な(埋め込み) 統合のために明示的に設計されているわけではないが、そのような統合が排除されるわけではない。
注:
一部の使用コンテキストでは、Timed Text 文書インスタンスで 表現される同じコンテンツの手話表現を描写するために、 アニメーションコンテンツを用いることが適切な場合がある。このユースケースは TTML の機構では明示的に扱われないが、SMIL などの 外部マルチメディア統合技術によって扱われる場合がある。
注:
この仕様の以前の草案では、TTML は DFXP (Distribution Format Exchange Profile) と呼ばれていた。この後者の用語は、 プロファイル名や指定子などの特定のコンテキストで、歴史的理由により保持されている。
TTML の使用は、図 1 – システムモデルに示すシステム モデルに基づく、Timed Text のオーサリング、トランスコーディング、配信および提示の 機構という、より広いコンテキストで機能することを意図している。このモデルにおいて、 Timed Text Markup Language は、異種のオーサリングシステム群の間の 双方向交換形式として機能し、また必要に応じて対象の配信形式へ トランスコードまたはコンパイルされた後、異種の配信形式群への 一方向交換形式として機能する。ここで、特定の配信形式の 1 つは TTML コンテンツ文書である。
2 つのプロセッサのクラスが説明される。オーサリングシステムおよび妥当性検証プロセッサは 変換プロセッサの例であり、トランスコーディングシステムおよびレンダリングプロセッサは 提示プロセッサの例である。TTML プロファイル文書は、 TTML コンテンツ文書またはプロセッサに関連付けることができ、それぞれが 利用可能、禁止、または要求される機能を表明できるようにする。総体として、これにより オーサリングから提示までの連鎖の制約を形式言語で表現できる。
プロセッサは、TTML 中間文書への定義済みマッピングを実装できる。 システムモデルは、そのようなレンダリングプロセッサの 1 つを示しており、さらにそれらの文書を ユーザーエージェントによる表示のために [HTML 5.2] 文書へ 挿入できる HTML および CSS 断片へマッピングする。
TTML 文書インスタンスは、ヘッダーと本文を含む
tt 文書要素から構成される。ヘッダーは文書レベルのメタデータ、
スタイリング定義およびレイアウト定義を指定し、本文は
スタイルおよびレイアウト情報への参照、ならびにインラインのスタイリングおよびタイミング情報が
混在したテキストコンテンツを指定する。
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
<head>
<metadata/>
<styling/>
<layout/>
</head>
<body/>
</tt>
|
文書レベルのメタデータは、文書のタイトル、説明、 および著作権情報を指定できる。さらに、 他の名前空間から取得された任意のメタデータを指定できる。
<metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata"> <ttm:title>Timed Text TTML Example</ttm:title> <ttm:copyright>The Authors (c) 2006</ttm:copyright> </metadata> |
スタイリング情報は、レイアウトおよびコンテンツ情報から参照される スタイル仕様定義の形で、コンテンツ情報とともにインラインで、 またはその両方で指定できる。
例断片 – TTML スタイリングでは、4 つのスタイル仕様集合が 定義され、そのうち 1 つの集合が既定スタイルの集合として機能する。
<styling xmlns:tts="http://www.w3.org/ns/ttml#styling">
<!-- s1 specifies default color, font, and text alignment -->
<style xml:id="s1"
tts:color="white"
tts:fontFamily="proportionalSansSerif"
tts:fontSize="22px"
tts:textAlign="center"
/>
<!-- alternative using yellow text but otherwise the same as style s1 -->
<style xml:id="s2" style="s1" tts:color="yellow"/>
<!-- a style based on s1 but justified to the right -->
<style xml:id="s1Right" style="s1" tts:textAlign="end" />
<!-- a style based on s2 but justified to the left -->
<style xml:id="s2Left" style="s2" tts:textAlign="start" />
</styling>
|
レイアウト情報は、コンテンツが提示されることを意図する 1 つ以上の領域を定義する。
領域定義は、領域内に流し込まれるコンテンツがこれらのスタイルから
継承できるようにするため、1 つ以上のスタイル仕様集合を参照できる。
例断片 – TTML レイアウトでは、領域定義は
スタイル仕様 s1 を参照し、特定のインライン
スタイルによって拡張される。これらを合わせることで、領域内に流し込まれるコンテンツが
その領域のスタイルから継承できるようになる(スタイルがコンテンツ上で
すでに明示的に指定されていない、またはコンテンツ階層を通じて継承されていない場合)。
<layout xmlns:tts="http://www.w3.org/ns/ttml#styling">
<region xml:id="subtitleArea"
style="s1"
tts:extent="560px 62px"
tts:padding="5px 3px"
tts:backgroundColor="black"
tts:displayAlign="after"
/>
</layout>
|
文書インスタンスのコンテンツは
本文で表現され、ブロックおよびインラインのテキスト要素により編成される。
コンテンツ要素の階層的構成は、空間的関係と時間的関係の両方を
決定するうえで主要な役割を果たす。たとえば、
例断片 – TTML 本文では、各段落(p
要素)は、指定された字句順で対象領域へ流し込まれる。さらに、
各段落のアクティブ時間間隔は、適用される時間包含セマンティクスに従って、
その親または兄弟に合わせて時間設定される。この場合、親の分割は(既定で)
並列時間コンテナとして解釈される。
<body region="subtitleArea">
<div>
<p xml:id="subtitle1" begin="0.76s" end="3.45s">
It seems a paradox, does it not,
</p>
<p xml:id="subtitle2" begin="5.0s" end="10.0s">
that the image formed on<br/>
the Retina should be inverted?
</p>
<p xml:id="subtitle3" begin="10.0s" end="16.0s" style="s2">
It is puzzling, why is it<br/>
we do not see things upside-down?
</p>
<p xml:id="subtitle4" begin="17.2s" end="23.0s">
You have never heard the Theory,<br/>
then, that the Brain also is inverted?
</p>
<p xml:id="subtitle5" begin="23.0s" end="27.0s" style="s2">
No indeed! What a beautiful fact!
</p>
<p xml:id="subtitle6a" begin="28.0s" end="34.6s" style="s2Left">
But how is it proved?
</p>
<p xml:id="subtitle6b" begin="28.0s" end="34.6s" style="s1Right">
Thus: what we call
</p>
<p xml:id="subtitle7" begin="34.6s" end="45.0s" style="s1Right">
the vertex of the Brain<br/>
is really its base
</p>
<p xml:id="subtitle8" begin="45.0s" end="52.0s" style="s1Right">
and what we call its base<br/>
is really its vertex,
</p>
<p xml:id="subtitle9a" begin="53.5s" end="58.7s">
it is simply a question of nomenclature.
</p>
<p xml:id="subtitle9b" begin="53.5s" end="58.7s" style="s2">
How truly delightful!
</p>
</div>
</body>
|
最初の字幕 字幕 1 – 時間間隔 [0.76,
3.45) は、
0.76 秒から 3.45 秒までの時間間隔で提示される。
この字幕は、それが提示される領域から、フォントファミリ、フォントサイズ、
前景色、およびテキスト揃えを継承する。段落に領域が明示的に指定されていないため、
領域を指定する最も近い祖先が
対象領域を決定する。また、領域定義で tts:displayAlign="after" が
指定されているため、コンテンツは包含領域の下部(after 端)に
提示されることにも注意すること。
注:
表記 "[X,Y]" は、X から Y までの閉区間を表し、 X と Y を含む。 "[X,Y)" は、X から Y までの右半開区間を表し、 X は含むが Y は含まない。 "(X,Y]" は、X から Y までの左半開区間を表し、 X は含まないが Y は含む。 "(X,Y)" は、X から Y までの開区間を表し、 X も Y も含まない。
注:
この例では、p 要素は意味的要素、すなわち言語上の段落としてではなく、
提示用要素として使用されている。意図した意味を伝えるためにどの TTML 要素を
使用するかを決定するのは著者次第である。たとえば、この例は、
意味的段落の完全性を保持するために、span 要素上で
タイミングを使用するように記述することもできる。
![]() |
2 番目の字幕は既定スタイルを継続するが、著者が指定した改行を挟む
2 行のテキストを含む。段落のインライン進行方向における揃えを指定するための
tts:textAlign="center" の使用効果に注意すること。
![]() |
3 番目の字幕は、既定スタイルの前景色を別の色で上書きする 変種スタイルを用いて継続する。
![]() |
4 番目の字幕は既定スタイルに戻る。
![]() |
5 番目の字幕は、再び既定スタイルの前景色を別の色で 上書きする変種スタイルを用いて継続する。
![]() |
次のアクティブ時間間隔では、2 つの別個の字幕が同時にアクティブになり、 各字幕を表す段落は、既定スタイルの色と段落のテキスト揃えを上書きする 異なるスタイルを用いる。フロー順序は、コンテンツ階層内に現れる要素の 字句順によって決定されることに注意すること。
|
次の字幕は、インライン進行方向で段落を右(end)揃えにするために スタイル上書きを用いて、同様の方法で指定される。
|
8 番目の字幕は、段落の右(end)揃えを維持するために、 前の字幕と同じスタイル上書きを使用する。
![]() |
最後の(9 番目の)アクティブ時間間隔では、2 つの別個の 字幕が再び同時にアクティブになるが、2 番目の段落には 既定の色を上書きするための異なるスタイルが適用される。 フロー順序は、コンテンツ階層内に現れる要素の字句順によって 決定されることに注意すること。
|
上に示した例は、TTML を用いて著述できる主要な情報の種類、 すなわちメタデータ、スタイリング、レイアウト、タイミング、およびコンテンツを示している。 一般的な場合、スタイリングおよびレイアウト情報は 文書インスタンス内で別々に指定される。 コンテンツ情報は、空間的(フロー)情報とタイミング情報の両方の構成を具体化する 階層的な形で表現される。コンテンツはスタイリングおよびレイアウト情報を 直接または間接的に参照し、スタイリングのインライン上書きを指定できる。
| BPD |
ブロック進行寸法 |
| DAR |
表示アスペクト比 |
| DFXP |
配信形式交換プロファイル |
| IPD |
インライン進行寸法 |
| ISD |
中間同期文書 |
| PAR |
ピクセルアスペクト比 |
| SAR |
格納アスペクト比 |
| TT |
時限テキスト |
| TTML |
時限テキストマークアップ言語 |
| TTAF |
時限テキストオーサリング形式 |
| TTWG |
時限テキスト作業部会 |
縮小 XML 情報集合によって表現される、 抽象データ集合のインスタンス。
XML 情報集合 [XML InfoSet] のクラスを定義する制約の集合。
未指定プロファイルを参照。
文書インスタンスには存在しないが、
11.3.1.3 中間同期
文書構築または
11.3.1.4 同期フロー処理
の手順中に、
[construct anonymous
spans] 手続きによって、
対応する
抽象文書インスタンスに合成され挿入される
span 要素。
[XSL-FO 1.1] の Rectangular Areas、§4.2 で定義されるように、何らかの出力媒体上の平面における 有界な矩形領域の視覚コンテンツを表す、アドレス可能な 論理ピクセルの集合。 特に [CSS2] および [HTML 5.2] の コンテキストでは、ボックスとも呼ばれる。
XML 文書の各指定済みまたは既定の属性は、 [XML InfoSet] §2.3 で定義される属性情報項目に対応する。
音声提示コンテキスト内の別の
audio 要素から参照される
共有可能な定義として機能するように、
audio
要素が指定されるコンテキスト。
音声提示コンテキスト内の
audio 要素、または
その文字コンテンツが音声データリソースを
生成するために使用される
span 要素。
提示(レンダリング)される目的で
audio
要素が指定されるコンテキスト。そのような
audio 要素は、
source 要素子の内部で
data 要素を使用して
音声データをインラインで指定してもよく、
音声定義コンテキストで指定された別の
audio 要素を参照してもよく、
その両方を行ってもよい。
符号化済みまたは未符号化の音声サンプルを含む データリソース。
音声サンプルの列。
背景提示アーティファクト、たとえば色または画像が (場合により)クリップされ描画される基準となる 文書座標空間内の矩形。 より具体的には、背景に関連付けられた要素によって生成される領域の 境界矩形、パディング矩形、またはコンテンツ矩形の 3 つの矩形のうち 1 つ。 tts:backgroundClip 属性で指定される スタイルプロパティの算出値が、どの矩形を適用するかを決定する。
背景提示アーティファクト、たとえば色または画像が 位置決めまたはサイズ決定される基準となる 文書座標空間内の矩形。 より具体的には、背景に関連付けられた要素によって生成される領域の 境界矩形、パディング矩形、またはコンテンツ矩形の 3 つの矩形のうち 1 つ。 tts:backgroundOrigin 属性で指定される スタイルプロパティの算出値が、どの矩形を適用するかを決定する。
ttp:profile 要素の use 属性によって参照される
プロファイルであり、参照元プロファイルを設定するための
ベースライン(初期)仕様集合として機能する。
[XSL-FO 1.1] の Block-areas、§4.4 で定義される 領域の基本型であり、その子は、 ブロック領域が行領域でない場合はすべて ブロック領域から構成され、 ブロック領域が行領域である場合はすべて インライン領域から構成される。
ブロック表示とは、特定のコンテキストにおいて コンテンツ要素に適用できる レイアウトセマンティクスの集合であり、子領域がブロック進行方向に 順次合成される。
注:
[CSS2] では、提示処理中に値
block を持つ CSS display プロパティが
コンテンツ要素に適用されると、
ブロック表示が示される。[XSL-FO 1.1] では、
fo:block 要素を合成するときにブロック表示が発生する。
ある整形コンテキストにおいて、ブロック領域の進行が取る方向。 横書きモードのコンテキストでは、ブロック進行方向は通常上から下である。 一方、縦書きモードのコンテキストでは、通常右から左または左から右である。
その内容が
時限テキストコンテンツ文書
インスタンスではなく、
コンテンツプロセッサによって供給される
データリソースであり、
source 要素、または
source 要素もしくは
埋め込みコンテンツ要素の
src 属性によって参照される。
XML 文書に現れる各データ文字は、 [XML InfoSet] §2.6 で定義される文字情報項目に対応する。
子 chunk 要素を使用して、
埋め込みデータリソースの実際のバイトの表現を
直接埋め込む
data 要素。
関連付けられた プロファイルインスタンスの 結合仕様集合コンポーネントの構成要素コンポーネントが、 複数の非 null 指定子を含む プロファイル。
ルートコンテナ領域の幅を
セル列数、すなわち水平軸上のセル数で除算し、
ルートコンテナ領域の高さを
セル行数、すなわち垂直軸上のセル数で除算することにより算出される
セルのサイズ(範囲)。ここで、セル列数および行数は
ttp:cellResolution パラメータ属性によって決定される。
注:
ルートコンテナ 領域の幅および高さは、 H.2 解像度で 指定されるルートコンテナ領域の 空間的範囲の幅および高さに対応する。したがって、算出セルサイズは 論理ピクセルで表現される。
10.4.4.3 算出スタイル集合 処理によって決定される算出スタイル値を含む スタイル集合。
この仕様で定義される、またはこの仕様で使用するために定義される型の要素のうち、
その評価によって要素の定義済みセマンティクスが適用されるか無視されるかを
決定する condition 属性の
指定を許可するもの。そのような属性がない場合、その要素のセマンティクスは
常に適用される。
条件付き要素の条件式が
false と評価される場合、その要素およびその子孫要素は
条件付きで除外されると言われる。
要素が条件付きで除外されない場合、その要素は
条件付きで包含されると言われる。
注:
条件付きで包含されるが、condition
属性の使用を許可しない、または指定しない要素は、
無条件で包含される要素と呼ばれる場合がある。
要素が条件付きで除外される場合、別途指定がない限り、その要素のすべての
セマンティクスは無視される。条件付き除外の詳細なセマンティクスについては
conditionを参照。
注:
特定の要素、たとえば style 要素の場合、
条件付き除外により、その要素のセマンティクスの一部のみが無視され、
すべてが無視されるわけではない。この場合、その挙動は明示的に説明される。
Content Module によって定義される任意の要素型、および Audio Module と Image Module によって定義される要素型のうち、 それぞれ 音声提示コンテキストまたは 画像提示コンテキストで出現するもの。
注:
tt
および head 要素型は、
8.1 コンテンツ要素
語彙で定義されているが、上記定義の範囲には意図的に含められていない。
ただし、表 5-3 – 要素語彙の
Document および
Head モジュールの定義には含まれる。
意味的に重要なコンテンツ、たとえばキャプションのレンダリングを表す ラスター画像を含む 画像リソース。
コンテンツを変換、提示、またはその他の方法で処理する目的で Timed Text Markup Language コンテンツをインポート(受信)できる処理システム。
(1) 関連付けられた
プロファイルインスタンスの
type コンポーネントの値が content であり、
(2) Timed Text Markup Language コンテンツによって
使用してはならない、使用しなければならない、または使用してもよい
機能および拡張の集合であるような
プロファイル。
提示処理を実行するときにコンテンツがレンダリングされる論理的な矩形領域。
コンテキストが曖昧でない場合は単に領域と略される。
各コンテンツ領域は、明示的に指定された、または暗黙の
region 要素によって
定義され、その要素はルートコンテナ領域に対する
コンテンツ領域の範囲、ならびにその他のスタイル上および時間上の特性を定義する。
意味的束縛(関連付け)を目的として
data
要素が指定されるコンテキスト。そのような
data 要素は、
source 要素子の内部で
data 要素を使用して
データをインラインで指定してもよく、
データ定義コンテキストで指定された別の
data 要素を参照してもよく、
その両方を行ってもよい。この(またはいかなる)コンテキストに
data 要素が存在するだけでは、
提示(レンダリング)セマンティクスは暗示されない。
データ束縛コンテキスト内の別の
data 要素から参照される
共有可能な定義として機能するように、
data
要素が指定されるコンテキスト。すなわち、その親が
resources 要素である
data 要素。
Data Module によって定義される任意の要素型。
データ要素を用いて表現または参照される任意のデータリソース。 たとえば、データリソースは、 時限テキストコンテンツ文書 インスタンスにおいて、音声クリップ、フォント、画像、または 任意のアプリケーションデータを埋め込む、または参照するために使用される場合がある。
宣言済みまたは推論済みの プロセッサプロファイルが存在しない場合に、 実効プロセッサプロファイルを算出するために 使用される既定のプロセッサプロファイルであり、 この既定プロセッサプロファイルは construct default processor profile 手続きによって決定される。
明示的に指定されたアウトオブライン
region 要素が存在しない場合、
すなわち layout 要素の子として
region 要素が指定されていない場合に
暗示される既定のアウトオブライン領域。
プロファイル仕様における designator 属性または散文テキストによって、
<profile-designator> に
関連付けられる
プロファイル。
DAR の定義を参照。
文書インスタンスを整形および提示するために使用される ルートコンテナ領域のアスペクト比および解像度を 決定する論理座標空間。詳細については H ルートコンテナ領域セマンティクスを参照。
コンテンツプロセッサの外部にある暗黙のコンテキストまたは環境であり、 その中で文書交換が行われ、帯域外のプロトコルまたは仕様が、 暗黙のプロファイルなどの特定の挙動上の既定値を定義する場合がある。
コンテンツプロセッサの内部にある暗黙のコンテキストまたは環境であり、 その中で文書処理が行われ、帯域外のプロトコルまたは仕様が、 合成文書 syncbaseの確立または作成などの 特定の挙動上の既定値を定義する場合がある。
文書インスタンスにおいて算出済み時刻式が解釈される 基準となる時間座標系。詳細については 7.2.11 ttp:timeBaseを参照。
任意の明示的または暗黙的なプロファイルおよびプロファイル仕様の結合方法を適用した後に、 TTML 文書インスタンスによって明示的または暗黙的に 参照または割り当てられるすべての コンテンツプロファイルの集合から算出される コンテンツプロファイル。詳細については construct effective content profile 手続きを参照。 与えられた文書インスタンスに対して妥当性検証を行う場合、 この妥当性検証は文書の実効コンテンツプロファイルを 使用して実行される。
任意の明示的または暗黙的なプロファイルおよびプロファイル仕様の結合方法を適用した後に、 TTML 文書インスタンスによって明示的または暗黙的に 参照または割り当てられるすべての プロセッサプロファイルの集合から算出される プロセッサプロファイル。詳細については construct effective processor profile 手続きを参照。 コンテンツプロセッサが与えられた 文書インスタンスを処理できるかどうかを判定する場合、 この判定は文書の実効 プロセッサプロファイルを使用して実行される。
construct effective validation profile 手続きによって決定される、 妥当性検証処理中に使用される スキーマ(またはスキーマ集合)を選択するためのプロファイル。
construct effective validation schemas 手続きによって決定される、 妥当性検証 処理中に使用されるスキーマの集合。
注:
この仕様で定義される TTML コンテンツに対するすべての制約を 捕捉するスキーマ言語は存在しないため、 妥当性検証コンテンツプロセッサによって 追加の組み込みのプログラム的(コードベース)スキーマが用いられることが期待される。
XML 文書に現れる各要素は、 [XML InfoSet] §2.2 で定義される要素情報項目に対応する。
Audio Module、 Data Module、 Font Module、または Image Module によって定義される任意の要素型。
時限テキストコンテンツ文書
インスタンスに埋め込まれる
データリソースであり、
data 要素によって表現される。
その
data 要素が
データリソースの実際のバイトを表すか、
外部データリソースを参照するかは問わない。
レンダリング可能なコンテンツを含まず、さらに、 このリソースを一連のコンテンツサンプルへ解決しようとしても サンプルが生成されない データリソース。
包含された機能またはコンポーネントを包囲する、またはその他の形で含む 文書インスタンス。
コンテンツ交換のための一連の必要性に役立つコンテンツのプロファイル。
別の(公開または非公開の)仕様で定義され、 (拡張指定を用いて)ラベル付けされる構文的または意味的な式または能力。
拡張に関係する制約または要件の仕様であり、
通常は
ttp:extension 要素によって表現される。
時限テキストコンテンツ文書
インスタンスの外部にある
データリソースであり、
source 要素、または
source 要素もしくは
埋め込みコンテンツ要素の
src 属性によって参照される。
(1) 外部データリソースを参照する
source 要素または
src 属性、または
(2) 参照される
外部データリソース。
この仕様(またはこの仕様の過去もしくは将来の改訂)で定義され、 (機能指定を用いて)ラベル付けされる構文的または意味的な式または能力。
機能に関係する制約または要件の仕様であり、
通常は
ttp:feature 要素によって表現される。
字幕(またはキャプション)が有効でなくても常に表示されることを意図した 字幕(またはキャプション)。強制字幕(キャプション)は、メディア内に現れる標識などの 外国語または異星語、あるいはテキストの翻訳に関連する字幕(キャプション)を オープンキャプション化、すなわち焼き付けすることを防ぐために使用される。
フォント選択プロセスによって
間接的に参照される共有可能な定義として機能するように、
font
要素が指定されるコンテキスト。
提示 プロセッサが使用する内部プロセスであり、その目的は レイアウトおよび提示処理中に使用するために、著者定義フォントおよびプラットフォームフォントの 集合を選択することである。このプロセスへの入力パラメータには、 フォント関連プロパティの算出値、個々のフォントの能力、 および提示されるテキストコンテンツが含まれる。
文字からグリフへの対応付けデータ、グリフアウトラインまたは画像、 グリフメトリクス、および文字からグリフへの対応付けとレンダリングプロセスで使用される その他のデータなどのフォント情報を含む データリソース。
注:
一部の例外的な場合において、height という用語は 水平軸を指す場合がある。 詳細については 10.2.27 tts:lineHeightを参照。
[XSL-FO 1.1] の Glyph-areas、§4.6.2 で定義される インライン領域の型。 この仕様において、グリフ領域は 1 つ以上のコンテンツ文字および 特定のフォントからの 1 つ以上のグリフに関連付けられ、 そのグリフがグリフ領域を提示するときにレンダリングされる。 間隔グリフ領域とは、少なくとも 1 つの間隔グリフ、すなわち 非ゼロの進み量(幅または高さ)を持つグリフに関連付けられたグリフ領域である。 非間隔グリフ領域とは、間隔グリフ領域ではないグリフ領域、すなわち 完全に非間隔グリフから構成されるグリフ領域である。
使用コンテキストによって暗示される、ある他の領域の子孫領域である
グリフ領域。
たとえば、インライン領域 I の子孫領域である
グリフ領域は、
I のグリフ領域子孫である。
画像提示コンテキスト内の別の
image 要素から参照される
共有可能な定義として機能するように、
image
要素が指定されるコンテキスト。
提示(レンダリング)される目的で
image
要素が指定されるコンテキスト。そのような
image 要素は、
source 要素子の内部で
data 要素を使用して
画像データをインラインで指定してもよく、
画像定義コンテキストで指定された別の
image 要素を参照してもよく、
その両方を行ってもよい。
ラスター画像を含むデータリソース。
construct inferred processor profile 手続きによって決定され、 妥当性検証処理を実行するために使用される 実効プロセッサプロファイルとして 機能する場合がある プロセッサプロファイル。
アニメーションに関連付けられた
コンテンツ要素または
region 要素の直接の子として
インラインで定義される
animate または
set 要素。
インラインアニメーション要素とその親
コンテンツ要素または
region 要素の間には
1 対 1 の関係がある。
[XSL-FO 1.1] の Inline-areas、§4.6 で定義される 領域の型であり、その子は、 たとえばグリフ領域など、すべて インライン領域から構成される。
インラインブロック表示とは、特定のコンテキストにおいて コンテンツ要素に適用できる レイアウトセマンティクスの集合であり、生成されたブロック領域が インラインレイアウトコンテキストで合成されるアトミック領域として扱われる。 すなわち、そのブロック領域は、外部から見た場合にはそれ自体がインライン領域であるかのように扱われるが、 内部から見た場合にはブロック領域として扱われる。
インライン表示とは、特定のコンテキストにおいて コンテンツ要素に適用できる レイアウトセマンティクスの集合であり、子領域がインライン進行方向に 順次合成される。
注:
[CSS2] では、提示処理中に値
inline を持つ CSS display プロパティが
コンテンツ要素に適用されると、
インライン表示が示される。[XSL-FO 1.1] では、
fo:inline 要素を合成するときにインライン表示が発生する。
ある整形コンテキストにおいて、インライン領域の進行が取る方向。 横書きモードのコンテキストでは、インライン進行方向は通常左から右または右から左である。 一方、縦書きモードのコンテキストでは、通常上から下である。
あるコンテンツ要素に対してインライン方式で定義され、
そのコンテンツ要素をその領域へ選択(ターゲット)するための
領域。
インライン領域は、特定の
コンテンツ要素の子である
region 要素によって
明示的に指定される。
インライン region 要素とその親
コンテンツ要素の間には 1 対 1 の関係がある。
インライン領域には、その親要素の時間間隔がアクティブ時間間隔として割り当てられる。
region 属性はインライン領域を参照しない。
使用コンテキストに応じて、
時限テキスト中間文書または
時限テキスト中間文書
インスタンスであり、ルート(文書)要素が isd:isd 要素であり、
ソース
時限テキストコンテンツ文書の
コンテンツ、スタイリング、レイアウト、およびタイミングと交差する、
重複しない時間間隔を表すもの。
使用コンテキストに応じて、
時限テキスト中間文書または
時限テキスト中間文書
インスタンスであり、ルート(文書)要素が isd:sequence 要素であり、
ソース 時限テキストコンテンツ文書の
コンテンツ、スタイリング、レイアウト、およびタイミングを実効的に表す
中間同期
文書インスタンスの列を表すもの。
無限のブロックコンテナ領域に対してコンテンツを整形し、 その結果得られる整形済みブロックコンテナの幅および高さを決定することによって 決定される、ブロックレベルコンテンツ列の範囲、すなわち幅および高さ。
画像自体の内部情報、たとえば画像のピクセル配列の幅および高さから 決定される画像の範囲、すなわち幅および高さ。
無限のインラインコンテナ領域に対してコンテンツを整形し、 その結果得られる整形済みインラインコンテナの幅および高さを決定することによって 決定される、インラインレベルコンテンツ列の範囲、すなわち幅および高さ。
この仕様の範囲外にある 文書処理コンテキストの プロトコルまたはプロセス。
地平面に平行な軸。
[XSL-FO 1.1] の Line-areas、§4.5 で定義される ブロック領域の型であり、その子は 1 つ以上のインライン領域から構成される。
Metadata Module によって定義される任意の要素型。
入れ子化プロファイルの構成要素である
プロファイル、すなわち上位(祖先)
ttp:profile 要素の子孫 ttp:profile 要素の 1 つ。
任意の ttp:profile は、
入れ子プロファイルと
入れ子化プロファイルの両方として機能する場合がある。
1 つ以上の子
ttp:profile 要素を参照することによって定義される
プロファイルであり、プロファイル結合方法が
複数の子 ttp:profile 要素からのプロファイル仕様をどのように結合するかを決定する。
入れ子化プロファイルに関連付けられた
プロファイルインスタンスの
constituents コンポーネントは null ではない。
単純データ埋め込みまたは
チャンク化データ埋め込みによって、
埋め込みデータリソースの実際のバイトを
埋め込む子
data 要素を指定する
source 要素。
関連付けられた プロファイルインスタンスの 結合仕様集合コンポーネントの構成要素コンポーネントが、 1 つ以下の非 null 指定子を含む プロファイル。
意味的に重要なコンテンツを含まない 画像リソース。たとえば、背景デザインを表す ラスター画像であり、提示されなくても意味的に重要なコンテンツの提示に影響しないもの。
埋め込みデータリソースの実際のバイトの
表現を埋め込まない子
data 要素を指定する
source 要素。
1 つ以上の子 ttp:profile 要素を参照せずに定義される
プロファイル、すなわち
子 ttp:profile 要素を含まないことによって定義されるプロファイル。
非入れ子化プロファイルに関連付けられた
プロファイルインスタンスの
constituents コンポーネントは null である。
アニメーションに関連付けられた
コンテンツ要素または
region 要素から
アウトオブラインで定義される
animate または
set 要素。
アウトオブラインアニメーションは、
文書インスタンスのヘッダー
(head 要素)内の
animation 要素の子として現れ、
アニメーション対象の関連要素上の
animate 属性によって参照される
xml:id 属性を指定する。
参照されるアウトオブラインアニメーション要素と、それを参照する
コンテンツ要素および
region 要素の間には
1 対多の関係がある。
領域に関連付けられた(領域へ選択される)
コンテンツ要素から
アウトオブラインで定義される
region 要素。
アウトオブライン領域は、
文書インスタンスのヘッダー
(head 要素)内の
layout 要素の子として現れ、
領域へ選択される関連要素上の
region 属性によって参照される
xml:id 属性を指定する。
参照されるアウトオブライン領域要素と、それを参照する
コンテンツ要素の間には 1 対多の関係がある。
明示的に
アウトオブライン領域が指定されていない場合、
既定のアウトオブライン領域が暗示される。
コンテンツプロファイルの他のすべての可能な決定を 上書きすると決定された コンテンツプロファイル。
プロセッサプロファイルの他のすべての可能な決定を 上書きすると決定された プロセッサプロファイル。
PAR の定義を参照。
提示処理コンテキストを参照。
ルート コンテナ領域および 関連メディアオブジェクト領域が 提示される仮想的な表示装置。
提示コンテキストに関連付けられた座標空間。
(1) 提示可能なコンテンツを含む、または表現する、あるいは (2) コンテンツの提示に影響する
任意の要素。前者の例には、すべての
コンテンツ要素および特定の
埋め込みコンテンツ要素、特に
audio および
image が含まれる。
後者の例には、インライン
animate および
set が含まれる。
メタデータ要素はこの定義から除外されることに十分注意すること。
この仕様で定義される提示セマンティクスを適用することにより、 Timed Text Markup Language コンテンツをレイアウト、整形、およびレンダリング、すなわち提示することを目的とする コンテンツプロセッサ。
コンテンツプロセッサを参照。
(1) 関連付けられた
プロファイルインスタンスの
type コンポーネントの値が processor であり、
(2) コンテンツプロセッサによって実装(サポート)されなければならない、
または実装されてもよい
機能および拡張の集合であるような
プロファイル。
機能および 拡張の集合であり、 インターン(インスタンス化)されると プロファイルインスタンス状態オブジェクトによって 表現される。プロファイルは コンテンツプロファイルまたは プロセッサプロファイルとして型付けされる。
使用コンテキストに応じて、 時限テキストプロファイル文書または 時限テキストプロファイル文書 インスタンス。
内部的に定義されたプロファイルにラベルを付ける、 または参照するために使用される フラグメント識別子。ここで内部とは、 文書インスタンスの内部であることを指す。
[abort if unsupported processor profile] 手続きを実行するプロセスであり、その副作用として、 文書インスタンスの 実効コンテンツプロファイル(必要な場合)および 実効プロセッサプロファイルを決定する。
B 縮小 XML 情報集合で指定される 制約を満たす XML 情報集合 [XML InfoSet]。
ルートコンテナ領域または コンテンツ領域。無限定で使用される場合、 後者を指す。
注:
文書提示に関連付けられるルートコンテナ領域は一意に 1 つだけであるが、 この仕様は、時間の経過にわたって、または任意の時点で使用されるコンテンツ領域の数に 制限を課さない。ただし、一部のコンテンツプロファイルは、 そのような制限を指定する。
文書インスタンスに関連付けられる、またはその他の形で関係する (null の場合もある)メディアオブジェクト。たとえば、 文書インスタンスがキャプションまたは字幕情報を提供し、 その文書インスタンスが関連付けられている 集合的な音声/映像メディアオブジェクト。
null でない視覚的な 関連メディアオブジェクトが提示される 提示処理 コンテキストの領域。
適用される書字モードに従って、インライン進行軸またはブロック進行軸の いずれかにおける長さを表すスカラー値。
コンテンツ領域が配置され、必要に応じてクリップされる 座標系を確立する、一意の論理的矩形領域。 併せて H ルートコンテナ領域 セマンティクスも参照。
注:
ルートコンテナ領域には境界や パディングがない。したがって、その境界、パディング、および コンテンツ矩形は同一範囲である。
何らかの外部アプリケーションまたは提示コンテキストとの関係において、 文書インスタンスの時間的開始および終了によって 定義される時間範囲(間隔)。
子 chunk 要素を使用せずに、
埋め込みデータリソースの実際のバイトの表現を
直接埋め込む
data 要素。
[SMPTE ST 12-1] によって形式およびセマンティクスが定められるタイムコードであり、 放送音声/映像ストリームなどのメディアコンテンツに埋め込まれる、または その他の形で関連付けられる場合がある。
子 source 要素を使用して、
埋め込みデータリソースのコンテンツを
間接的に参照する
data 要素。
10.4.4.2 指定スタイル集合 処理によって決定される指定スタイル値を含む スタイル集合。
コンテンツプロセッサの任意コンポーネントであり、 その機能はテキストコンテンツの音声レンダリングを合成することである。
SAR の定義を参照。
スタイルプロパティ集合で定義される スタイルプロパティ集合。
算出スタイル集合に関連付けられる、 または関連付けられる場合がある要素。
関連メディアオブジェクトまたはその他の処理基準に従って、 文書処理コンテキストによって 合成またはその他の形で確立される文書レベルの syncbase [SMIL 3.0]、§5.7.1。
関連 メディアオブジェクトに埋め込まれた、または関連付けられた smpte タイムコード値から構築される、 または文書処理 コンテキストによってその他の形で決定される 合成文書 syncbase。
構文的または意味的な機能、たとえば要素または要素の提示は、 選択された時間ベースの現在時刻がその機能の アクティブ時間間隔と交差するとき、 時間的にアクティブである。
時間的に アクティブである領域。
回転角度の観点から見た
グリフ領域の向きの特徴付け。
0° は upright の向きを示し、
90°、すなわち時計回り 90 度は sideways の向きを示す。
併せて 10.2.45
tts:textOrientationも参照。
begin 属性の指定を許可する型の任意の要素。
タイミング情報に内在的または外在的に 関連付けられたテキスト情報。
Timed Text Markup Language コンテンツをインポートおよびエクスポートできる コンテンツオーサリングシステム。
TTML コンテンツ文書型の 妥当な抽象文書インスタンスであると 主張または確認された抽象文書。
時限テキストコンテンツ 文書の具象的な実現。 併せて A 具象符号化を参照。
時限テキストマークアップ言語 文書の具象的な実現であり、 その具象形式は参照のコンテキストに固有である。 TTML 文書インスタンスまたは単に 文書インスタンスとも呼ばれる。
TTML 中間文書型の 妥当な抽象文書インスタンスであると 主張または確認された抽象文書。
時限テキスト 中間文書の具象的な実現。 詳細については A 具象符号化を参照。
時限テキストコンテンツ、このコンテンツの中間表現、または このコンテンツもしくはコンテンツプロセッサのプロファイルを表すコンテンツ型。
妥当な抽象文書インスタンスであると 主張または確認された抽象文書。
TTML プロファイル文書型の 妥当な抽象文書インスタンスであると 主張または確認された抽象文書。
時限テキストプロファイル 文書の具象的な実現。 詳細については A 具象符号化を参照。
head 要素の子として現れる ttp:profile 要素によって
定義されるプロファイル。
Timed Text Markup Language コンテンツを、 Timed Text Markup Language または 別の(任意の)コンテンツ形式へ変換、またはその他の方法で書き換えることを目的とする コンテンツプロセッサ。 前者の例は、TTML のプロファイルに適合するよう TTML 機能を除去または書き換える プロセッサである。後者の例は、TTML をまったく異なる時限テキスト形式へ 翻訳するプロセッサである。この仕様は、変換処理の対象プロファイルまたは形式を その他の形で定義しないため、この仕様では追加の変換セマンティクスは定義されない。
プロファイル指定子に関連付けられていない プロファイルであり、そのプロファイルの定義のコンテキストで 暗黙的に参照されるもの。匿名プロファイルとも呼ばれる。
4 文書型で定義されるように 妥当性が評価され、妥当であると判断された 抽象文書インスタンス。
妥当性検証プロセッサによって実行される機能。
コンテンツプロセッサの任意コンポーネントであり、 その機能は、特定の他の種類の処理を実行する前に、 候補文書インスタンスに対して 妥当性検証処理を実行することである。その妥当性検証処理は、 5.3 妥当性検証で定義される [validate document] 手続きを 実行することから構成される。
コンテンツプロセッサとしての主機能を実行する前の 前処理ステップとして 妥当性検証プロセッサコンポーネントを実装する コンテンツプロセッサ。
注:
妥当性検証コンテンツプロセッサは、(1) 文書インスタンスを妥当性検証 (または検証)することのみを機能とし、その場合、出力が妥当性(または非妥当性)を示す 妥当性検証変換プロセッサと見なすことができる。 または (2) 複数の機能を持ち、その最初が文書インスタンスの妥当性検証 (または検証)であり、その後に 変換プロセッサまたは 提示プロセッサとしての主機能を実行する場合がある。
注:
妥当性検証処理が実行される場合、適合する妥当性検証コンテンツプロセッサは、 妥当性検証処理とコンテンツ処理を交互に行うことが許可される。 ただし、後者が所定のコンテンツ単位に対して前者より時間的に先行してはならない。
地平面に垂直な軸。
トークンの列挙集合であり、それぞれが、インラインおよびブロック指向コンテンツの 両方のフローの軸と方向の組み合わせを指定する。 詳細については 10.2.51 tts:writingModeを参照。
この仕様の規範的な文章において、語 may、should、および must は 次のように定義される。
適合文書および/または TTML プロセッサは、説明されたように振る舞うことを 許可されるが、その必要はない。
適合文書および/または TTML プロセッサは、説明されたように振る舞うことを 強く推奨されるが、その必要はない。
適合文書および/または TTML プロセッサは、説明されたように 振る舞うことが要求される。そうでない場合、それらは誤りである。
規範的な仕様文が命令形を取る場合、それは must という用語が適用されるものとして扱われる。 さらに、規範的な文が宣言形を取り、この文が must によって支配される場合、 その文もまた must という用語が適用されるものとして扱われる。
注:
たとえば、「X をエラーとして扱う」および「X をエラーとみなす」という句は、 使用コンテキストにおいて必須要件として読まれる。同様に、仕様文が 「X must apply」「X applies」または「X is mandatory」であり、 「X」がさらに「X is Y and Z」と定義されている場合、 推移閉包により、この最後の宣言句は、使用コンテキストにおいて 「Y is mandatory」および「Z is mandatory」と読まれる。
XML 表現およびその他の関連用語のすべての規範的な構文定義は、 淡い黄橙色の背景色で描かれ、 "XML Representation" または "Syntax Representation" とラベル付けされる。 たとえば次のようになる。
<example count = xsd:integer size = ("large" | "medium" | "small" | "tiny" | "micro") : medium> Content: (all | any*) </example> |
XML 表現において、太字の属性名(上の count など)は、
必須属性情報項目を示し、それ以外は任意である。属性情報項目が
列挙型定義を持つ場合、値は上の size のように
縦棒で区切って示される。既定値がある場合は、コロンの後に示される。
属性情報項目が
[XML Schema Part 2] で定義される組み込み単純型定義を持つ場合、
その定義へのハイパーリンクが与えられる。
この仕様で明示的に定義されていない限り、無修飾属性は許可されない。
注:
N.1 要素の派生を除き、
属性の(場合により名前空間修飾された)名前には、
同名の要素型との曖昧さを解消するために
'@'(COMMERCIAL AT)文字が接頭される。この場合、
'@' 文字は属性のリテラル名の一部であることを意図していない。
たとえば、@ttm:agent は
ttm:agent 属性を指す一方、
ttm:agent は
ttm:agent 要素を指す。
淡い黄橙色の背景色で描かれる情報項目は
非推奨である(たとえば、上に示した size 属性の
tiny 値)。
非推奨の情報項目は TTML 文書インスタンスに現れてもよいが、
現れるべきではなく、現れた場合には
妥当性検証コンテンツプロセッサは警告を報告するべきである。
淡いマゼンタ赤の背景色で描かれる情報項目は廃止済みである
(たとえば、上に示した size 属性の
micro 値)。
廃止済みの情報項目は TTML
文書インスタンスに現れてはならず、現れた場合には
妥当性検証コンテンツプロセッサは
エラーを報告するべきである。
これらの項目指定は、仕様テキスト内でも明示的に示される。
情報項目の許可される内容は、Kleene 演算子
?、*、および + を用いた
文法断片として示される。その中の各要素名は、
それ自身の図示へのハイパーリンクである。
linear white-space (LWSP) という用語は、
SPACE (U+0020)、TAB (U+0009)、CARRIAGE RETURN (U+000D)、または LINE FEED (U+000A) の
空でない列として解釈される。これは [XML 1.0] で定義される
生成規則 [3] S に対応する。
値構文式の仕様では、次の規約が使用される。
リテラル項(引用符内で指定される)は、存在する場合、 指定どおりに正確に現れなければならない (引用符自体は除く)。
連結された(並置された)項は、すべての項が記載された順序で現れなければならないことを意味する。
たとえば a b は、項
a および b が存在し、前者が後者に先行することを意味する。
縦棒 (|) は、2 つ以上の代替のうち、正確に 1 つが
現れなければならないことを区切って示す。
二重縦棒 (||) は、2 つ以上の選択肢のうち 1 つ以上が、
重複せず任意の順序で現れなければならず、
<lwsp> によって区切られることを示す。
開き括弧および閉じ括弧 (()) は、グループ化および演算子優先順位の解決に使用される。
開き角括弧および閉じ角括弧 ([]) は、文字クラスを表現するために使用される。
開き中括弧および閉じ中括弧 ({}) は 2 つの方法で使用される。
どちらが適用されるかは通常コンテキストから十分に判断できる
(判断できない場合は、周囲の説明文で明確にされる)。
次の形式のいずれかを取る繰り返し回数または範囲を表現するため。
{count}
{minimum,maximum}
そのうち 1 つが現れなければならない文字集合を表現するため。
さらに、集合は {char-{specials}} のように
集合の差として指定される場合があり、これはすべての XML 文字から
special 文字の集合を除いたものを表す。
Kleene 演算子 ?、*、および + はそれぞれ、
直前の項の 0 個または 1 個、0 個以上、および 1 個以上を表す。
演算子の優先順位(高いものから低いもの)は次のとおりであり、 すべて左から右への結合性を持つ。
グループ化
連結(並置)
||
|
|| 値構文を満たす式の間に出現することが要求される
線形空白を除き、値構文定義に
<lwsp> 非終端記号が現れることによって
明示的に示されていない限り、空白は許可されない。
反対の記載がない限り、horizontal および vertical という用語は 書字モードに相対的ではなく絶対的な意味で解釈される。また width は horizontal 軸に沿った寸法を指し、 height は vertical 軸に沿った寸法を指す。 すべての例外は本文で明示的に注記される。
この仕様のすべての内容のうち、明示的に 非規範的と印付けされていないものは規範的であるとみなされる。 セクションまたは付録の見出しが "Non-Normative" という表現を含む場合、 そのセクションまたは付録全体が非規範的であるとみなされる。
Note と印付けされたすべての段落は非規範的であるとみなされる。
例コード断片は、淡い青緑色の背景色で描かれ、 "Example Fragment" とラベル付けされる。たとえば次のようになる。
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
<head>
<metadata/>
<styling/>
<layout/>
</head>
<body/>
</tt>
|
注:
ここに描かれる例コード断片は整形式 XML で表現されているが、 完全で妥当な TTML 文書であることを意図していない。 むしろ、意図された例に焦点を当てるため、通常は短縮されている。 特に、断片は通常、TTML 文書適合要件を満たすために 追加の要素および/または属性で拡張される必要がある。
別途指定がない限り、この仕様の語彙定義セクションは、 論理順ではなくアルファベット順に語彙を定義する。
このセクションは、TTML2 文書およびプロセッサに対する 一般的な適合要件を規定する。
時限テキスト文書インスタンスは、 次の基準が満たされる場合、この仕様に 適合する。
文書交換コンテキストで
文書インスタンスを転送する際、交換される
文書インスタンスのコンテンツ型を
Media Type [MIME Media Types] が識別する場合、
指定されるメディア型は
[XML Media
Types] §7 に適合する application/ttml+xml であり、任意の
profile パラメータが現れてもよく、その値は
<profile-designator> 式に適合する。
文書インスタンスは、 B 縮小 XML 情報集合で定義される 縮小 XML 情報集合として表現される、 または表現できる。
文書インスタンスに対応する 縮小 XML 情報集合は、 4 文書型で定義される 抽象文書型の 1 つに関連付けられる、 または関連付けることができる。
文書インスタンスに対応する 縮小 XML 情報集合は、関連付けられた 抽象文書型の 妥当な抽象文書インスタンスである。
縮小 XML 情報集合は、この仕様で定義される すべての追加の必須構文制約および セマンティクス制約を満たす。さらに、この情報集合は [WCAG] で指定される Web コンテンツアクセシビリティガイドラインを 満たすべきである。
このセクションは、TTML2 プロセッサに対する適合要件を、 汎用プロセッサの適合性および 2 種類の特殊化プロセッサ適合性、 変換プロセッサの適合性および 提示プロセッサの適合性の観点から規定する。
注:
このセクションで定義される適合要件は、TTML 文書インスタンスの静的表現に対して動作する プロセッサを対象範囲とする。特に、 TTML 文書インスタンスを変更するプロセッサ、たとえば オーサリングツールや編集ツールなどは、 TTML 文書インスタンスに対する一連の変更の 最終結果が 3.1 文書の適合性で定義される TTML コンテンツの 形式的妥当性を満たす範囲を除き、この仕様によって支配されない。
TTML2 コンテンツプロセッサは、 次の汎用プロセッサ基準が 満たされる場合、この仕様に適合する。
プロセッサは、適合する 文書インスタンスの 縮小 XML 情報集合表現を 概念上インスタンス化するための少なくとも 1 つの機構を提供する。
プロセッサはプロファイル処理を実行する。
注:
プロファイル処理の実行は、 次の項目で説明される [validate document] 手続きを 実行するまでには至らない、一定程度の部分的妥当性検証を意味する。 特に、プロファイル関連語彙の構文的表現、およびこの語彙の使用に適用される 本質的な構文制約またはセマンティクス制約は、実装がこの語彙を使用する前に 名目的に検証することが期待される。 プロファイル 処理が、構文制約またはセマンティクス制約の重大な違反を検出することなく完了した場合、 より完全な妥当性検証は [validate document] 手続きによって実行できる。
プロセッサが 妥当性検証コンテンツ プロセッサである場合、 それは
候補文書インスタンスの 縮小 XML 情報集合表現を、 4 文書 型で定義される 抽象文書型の 1 つに暗黙的または明示的に関連付けるための 少なくとも 1 つの機構を提供し、かつ
[validate document] 手続きを実行する。
注:
この仕様は、妥当性検証処理の実行と、 上の項目で説明された プロファイル処理の実行との間に 厳密な順序を定義しない。特に、これら 2 つの 処理ステップは、文書インスタンスに対して さらなる(変換または提示)処理を実行する前に、両方が完了するように 交互に行われてもよい(または繰り返されてもよい)。
上記にもかかわらず、妥当性検証処理と
プロファイル処理の間には暗黙の順序関係がある。
具体的には、妥当性検証処理を
実行するには、
実効妥当性検証プロファイルの値を
解決する必要があり、その値を解決するには
実効コンテンツプロファイルの値を
解決する必要がある。または、その値が null である場合には、
実効プロセッサプロファイルの値を
解決する必要がある。これら後者 2 つの値は
プロファイル処理中に取得される。
注:
妥当性検証 処理と プロファイル処理を交互に行う例として、 次のシナリオ(示された順序)を考える。
入力文書ソースの整形式性を検証する(妥当性検証 処理)。
入力文書ソースを潜在的に妥当な抽象文書 インスタンスとしてインスタンス化する(一般処理)。
組み込みアプリケーションセマンティクスを使用して妥当性検証状態を初期化する (妥当性検証処理)。
組み込みアプリケーションセマンティクスを使用してプロファイル状態を初期化する (プロファイル 処理)。
妥当性検証関連語彙を検証する(妥当性検証処理)。
妥当な妥当性検証関連語彙を使用して妥当性検証状態を更新する (妥当性検証処理)。
プロファイル関連語彙を検証する(妥当性検証処理)。
妥当なプロファイル関連語彙を使用してプロファイル状態を更新する(プロファイル 処理)。
[abort if unsupported processor profile] 手続きの abort ステップを実行する (プロファイル 処理)。
新しいプロファイル状態に基づき必要に応じて妥当性検証語彙およびプロファイル語彙を 再検証しながら、文書全体を妥当性検証する (妥当性検証処理)。
処理が中止されない場合、変換または提示 処理へ継続する(一般処理)。
プロセッサは、適合する 文書インスタンスの処理を a priori に拒否または中止してはならない。ただし、次の場合を除く。
プロセッサが、 文書 インスタンスに適用されると宣言された TTML プロファイルによって 指定または暗示される要求(必須)機能の一部をサポートしない場合。 または
妥当性検証エラーが、 [validate document] 手続きを実行する際に発生する場合。
プロセッサは、この仕様で定義されるすべての必須処理セマンティクスをサポートする。
注:
必須セマンティクスという句は、適合性キーフレーズ must および must not のすべての明示的使用、ならびにそのようなキーフレーズから 合理的に推論できる任意の宣言文を指す。
注:
機能または 拡張の必須セマンティクスのサポートは、 その機能または 拡張が TTML コンテンツプロセッサによって サポートされる場合にのみ適用される。
プロセッサがこの仕様で定義される任意処理セマンティクスの一部をサポートする場合、 定義されたセマンティクスと整合する方法でそれを行う。
注:
任意セマンティクスという句は、適合性キーフレーズ should、should not、 may、および may not の すべての明示的使用、ならびにそのようなキーフレーズから合理的に推論できる 任意の宣言文を指す。
TTML コンテンツプロセッサは、 次の基準が満たされる場合、適合する TTML2 変換プロセッサである。
プロセッサは 3.2.1 汎用プロセッサの適合性で 指定されるすべての要件を満たす。
プロセッサは G.3 TTML2 変換プロファイルで 指定される TTML 変換プロファイルをサポートする。
プロセッサは G.6 DFXP 変換プロファイルで 指定される DFXP 変換プロファイルをサポートする。
TTML コンテンツプロセッサは、 次の基準が満たされる場合、適合する TTML2 提示プロセッサである。
プロセッサは 3.2.1 汎用プロセッサの適合性で 指定されるすべての要件を満たす。
プロセッサは G.2 TTML2 提示プロファイルで 指定される TTML 提示プロファイルをサポートする。
プロセッサは G.5 DFXP 提示プロファイルで 指定される DFXP 提示プロファイルをサポートする。
プロセッサは 11.3.1.3 中間 同期文書構築および 11.3.1.4 同期フロー 処理を実行する。
注:
2 つの適合する提示プロセッサは、同じ適合文書を処理するときに 同じ提示を生成することを要求されない。 たとえば、異なる提示プロセッサは、異なるフォント、異なるフォント ラスタライザ、異なる改行アルゴリズム、 ならびにこの仕様で規定されていない挙動の異なる実装を使用する場合がある。
TTML 文書インスタンスまたは コンテンツプロセッサの適合性に関する任意の適合主張は、 実装適合性声明 (ICS) を参照しなければならない。
実装適合性声明は、この仕様のすべての必須機能および任意機能のうち、 文書インスタンスまたはコンテンツプロセッサ実装によって満たされるものを 識別しなければならない。特に、その声明は、 5.2 プロファイリングで定義される 利用またはサポートされる TTML 語彙プロファイルを識別しなければならず、 サブセットまたはスーパーセットプロファイルが使用またはサポートされる場合、 そのサブセットまたはスーパーセットプロファイルにおいてどの機能が除外または 含められるかを識別しなければならない。
注:
上で指定された 変換プロセッサの適合性および 提示プロセッサの適合性の定義は、 これらの種類のプロセッサそれぞれに対し、少なくとも 2 つの特定のプロファイル、 すなわち [TTML1] によって定義される型固有プロファイルと、 この仕様によって定義される型固有プロファイルをサポートすることを要求する。
この要件にもかかわらず、変換または提示処理機能を実行し、 汎用プロセッサの適合性要件を 満たす TTML コンテンツプロセッサを構築することは可能であるが、 変換 プロセッサの適合性または 提示プロセッサの適合性で要求される プロファイルのいずれもサポートせず、代わりに この仕様の範囲外で定義されたプロファイルのみをサポートすることもある。その場合、そのプロセッサは 汎用プロセッサ 適合性に適合すると主張でき、さらに TTML 変換プロセッサまたは TTML 提示プロセッサであると 主張できるが、 変換 プロセッサの適合性または 提示プロセッサの適合性への適合を 主張してはならない。
適合主張が行われる文書インスタンスは、 次のいずれかに関連付けられなければならない。
明示的に指定された
ttp:contentProfiles 属性、
または 1 つ以上のトップレベル
コンテンツプロファイルから派生した
非 null の実効コンテンツプロファイル。 または
明示的に指定された
ttp:processorProfiles または
ttp:profile 属性、
あるいは 1 つ以上のトップレベル
プロセッサプロファイルから派生した
非 null の実効プロセッサプロファイル。
このサブセクションは非規範的である。
適合する TTML1 プロセッサは、未知の語彙を無視し、 適合する TTML1 コンテンツ文書インスタンスで 許可されないコンテキストに現れる既知の語彙を無視するなら、 TTML2 コンテンツ文書インスタンスを 処理できる場合がある。 しかし、そのような処理は、コンテンツを破棄したり提示に失敗したり、 適合する TTML2 プロセッサで処理された場合に意図されるものとは異なる形で コンテンツを提示したりする場合がある。
注:
たとえば、TTML1 プロセッサが TTML2 で定義される
tts:ruby 属性を無視する場合、そのプロセッサは
ルビ機能を使用する TTML2 コンテンツをなお提示できる場合があるが、
意図されたようには提示されない。同様に、TTML1 プロセッサが
別の style 要素の子として style 要素に遭遇した場合、
前者の入れ子スタイルは無視される場合がある
(この機能は TTML1 では定義されていなかったため)。
TTML2 は次のように設計されている。
適合する TTML1 コンテンツ文書 インスタンスは、適合する TTML2 コンテンツ 文書インスタンスである。
適合する TTML2 プロセッサは、適合する TTML1 コンテンツ文書インスタンスを、 TTML2 プロセッサによって生成される出力が TTML1 で許容される変動の範囲内に 収まるように処理する。ただし、非推奨機能に遭遇した場合には 警告を発する場合がある。
このセクションは、次の TTML 抽象文書型を定義する。
各抽象文書型は、次の 制約から構成される。
要素型の空でない集合。各要素型は、名前、 (空の場合もある)属性の集合、および内容仕様から構成される。
文書要素として現れてよい要素型の空でない集合。
抽象文書インスタンスは、 妥当性の観点から評価される場合があり、 次の条件を満たす場合、妥当な抽象文書 インスタンスであるとみなされる。すなわち、次の後で
関連付けられた抽象文書型によって 定義される要素型の集合のメンバーでない名前を持つ、すべての要素情報 項目を刈り込んだ後、
残った任意の要素から、その要素のすべての 文字子が XML 空白文字を表し、かつその要素の型が 関連付けられた抽象文書 型で空として定義されている場合に、文字 情報項目子を刈り込み、その後、
展開名の名前空間 URI が 表 5-1 – 名前空間に列挙されていない、または、表 5-1 – 名前空間に列挙されていても、 それらを所有する要素情報項目で使用するために、関連付けられた 抽象文書型によって定義される 属性の集合のメンバーでないような展開名を持つ、すべての属性 情報項目を刈り込んだ後、
文書要素が、関連付けられた抽象文書 型によって許可される文書 要素型の 1 つであり、文書 要素の子孫がそれぞれの要素型の内容 仕様を満たし、すべての必須属性が存在し、各属性の宣言 値が、関連付けられた 抽象文書型によって宣言された型を満たす場合である。
注:
適合するプロセッサは、適合する 文書インスタンスを a priori に拒否できないが、 与えられた文書インスタンスは、 著者またはオーサリングツールによって、より制限的な妥当性定義を満たすよう 制約される場合がある。
注:
次の例に示されるように、抽象
文書インスタンスは、
名前空間名が 表 5-1 – 名前空間に列挙されているが、
ローカル名がこのバージョンの仕様で定義される語彙の一部ではない要素および属性を
含んでいても、
妥当な抽象文書インスタンスであり得る。
具体的には、要素 foo および属性
tts:foo は、それぞれ上記の手順 (1) および (3) によって刈り込まれる。
これは、それらの名前空間名が 表 5-1 – 名前空間に
列挙されているにもかかわらず、それらが関連付けられた
抽象文書型のメンバーではないためである。
<tt xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<foo>Foo</foo>
<div>
<p tts:foo="bar">Bar</p>
</div>
</body>
</tt>
|
TTML コンテンツ文書型は、配信システム間の交換に使用されることを意図した Timed Text Markup Language のプロファイルの 抽象文書 型である。この文書型は、 5 語彙で指定される要素および属性語彙の観点から定義される。
この仕様は、時限テキストコンテンツ文書インスタンスの スーパーセット/サブセットを妥当性検証するために使用できる、2 種類のスキーマを参照する。
TTML コンテンツ文書
インスタンスの(ルート)文書要素は、
8.1.1
ttで定義される
tt 要素でなければならない。
注:
この仕様によって参照されるスキーマは、この仕様で定義されるすべての構文制約を
検証するものではなく、そのため、適合する
TTML コンテンツのスーパーセットを表す。特に、上で
参照されるスキーマの 1 つを用いて妥当性検証を行うと、
妥当性の偽陽性の表示が生じる場合がある。
たとえば、RNC スキーマおよび XSD スキーマのいずれも、
tts:fontFamily 属性が
xsd:string XSD データ型を満たさなければならないと指定している。
しかし、このデータ型は tts:fontFamily 属性とともに使用することが
許可される値のスーパーセットである。
さらに、RNC スキーマは、外部名前空間の要素で
xml:id 属性を使用するときに、妥当性の偽陰性の
表示を生じる場合があり、したがって適合する TTML コンテンツのサブセットを表す。
これは、Relax NG スキーマにおいて xsd:ID 型付き属性を含む
ワイルドカードパターンを表現する際の特定の制限によるものである。
この仕様は、文書インスタンスの
形式的妥当性が、すべての外部名前空間の要素および属性が除去された
抽象文書インスタンスに基づくものとして
定義していることに注意すること。したがって、この偽陰性の例外的な報告は、
文書インスタンスの妥当性の形式的評価には影響しない。
注:
この仕様によって参照されるスキーマは、 4 文書型で指定される刈り込み手順 (1)-(3) が 適用された後に使用することを意図している。
注:
適合する汎用プロセッサは、 時限テキストコンテンツ文書の 取り込みおよび処理をサポートすることが要求される。
TTML 中間文書型は、 時限テキストコンテンツ文書の コンテンツを表すために使用されることを意図した 抽象文書 型であり、 タイミング情報が非階層的(平坦)で時間的に線形な方法で示され、 スタイリング事項などの特定の情報が、後続の処理を簡素化するために 解決または統合される場合がある。 この文書型は、J 中間文書構文および 5 語彙で指定される要素および属性語彙の観点から定義される。
この仕様は、 時限テキスト中間文書 インスタンスを妥当性検証するために使用できる、2 種類のスキーマを参照する。
TTML 中間同期文書インスタンスの(ルート)文書要素は、
J
中間文書構文で定義される
isd:sequence または isd:isd 要素でなければならない。
注:
適合する汎用プロセッサは、 時限テキスト中間文書の 取り込みまたは処理をサポートすることを要求されない。
TTML プロファイル文書型は、TTML の機能または拡張のサポートまたは使用に関する 制約を定義し伝達するために使用されることを意図した 抽象文書 型である。この文書型は、 5 語彙で指定される要素および属性語彙の観点から定義される。
この仕様は、 時限テキストプロファイル文書インスタンスを 妥当性検証するために使用できる、2 種類のスキーマを参照する。
TTML プロファイル文書
インスタンスの(ルート)文書要素は、
6.1.1
ttp:profileで定義される
ttp:profile 要素でなければならない。
注:
適合する汎用プロセッサは、
時限テキストプロファイル文書の
取り込みまたは処理をサポートすることを推奨されるが、
要求されない。ただし、
http://www.w3.org/ns/ttml/feature/#profile 機能をサポートすると主張する
コンテンツプロセッサは、
これ(時限テキストプロファイル文書の
取り込みおよび処理)をサポートすることが要求される。
このセクションは、Timed Text Markup Language (TTML) の 名前空間、プロファイル、および語彙(要素および属性の カタログとして)を次のように定義する。
Timed Text Markup Language (TTML) は、要素および特定の グローバル属性のために、複数の XML Namespaces [XML Namespaces 1.0] を使用する。次の表は、 この名前空間の集合を指定し、この仕様内で使用される既定の接頭辞と、 各名前空間を表す規範的 URI を示す。
| 名前 | 接頭辞 | 値 |
|---|---|---|
| TT | tt: |
http://www.w3.org/ns/ttml |
| TT パラメータ | ttp: |
http://www.w3.org/ns/ttml#parameter |
| TT スタイル | tts: |
http://www.w3.org/ns/ttml#styling |
| TT 音声スタイル | tta: |
http://www.w3.org/ns/ttml#audio |
| TT メタデータ | ttm: |
http://www.w3.org/ns/ttml#metadata |
| TT 中間同期文書 | isd: |
http://www.w3.org/ns/ttml#isd |
| TT プロファイル | なし | http://www.w3.org/ns/ttml/profile/ |
| TT 機能 | なし | http://www.w3.org/ns/ttml/feature/ |
| TT 拡張 | なし | http://www.w3.org/ns/ttml/extension/ |
| TT リソース | なし | http://www.w3.org/ns/ttml/resource/ |
すべての TTML 名前空間は 可変 [NSState] である。これらの名前空間内の未定義のすべての名前は、 W3C による将来の標準化のために予約される。
TT スタイル名前空間 (http://www.w3.org/ns/ttml#styling) および
TT 音声スタイル名前空間 (http://www.w3.org/ns/ttml#audio) は、総称して
TT スタイル名前空間と呼ばれる。
特に、この後者の集合が仕様テキストで参照される場合、
対象となる語彙項目が TT スタイル名前空間または TT
音声スタイル名前空間のいずれかにあることを意味する。
注:
特定の文書インスタンスでは、上に示した既定の 接頭辞を使用することは要求されない。XML Namespaces [XML Namespaces 1.0] の制約を満たし、指定された名前空間 URI に 関連付けられる任意の接頭辞または名前空間束縛を使用できる。
注:
この仕様で要素型への参照が使用され、かつその要素型の名前が 名前空間修飾されていない場合、TT 名前空間が適用される。
この仕様で属性への参照が使用され、かつその属性の名前が 名前空間修飾されていない場合、その属性は、それが使用される 要素型によって暗黙的に修飾される。すなわち、その属性は、いわゆる 要素型ごとの 名前空間区分 [NSOriginal] に属し、そのメンバーは、 それらが現れる要素型の定義に従って解釈される。
上で定義される特定の名前空間については、この仕様によって その名前空間内に XML 語彙が定義されていない(かつこの仕様の 将来のバージョンで定義されることも期待されない)場合、 既定の接頭辞はなしとして指定される。そのような場合、 名前空間 URI の使用目的は、XML 語彙を定義すること以外、 たとえば、プロファイル、機能、拡張を指定すること、および 標準プロファイル定義を逆参照することである。
このセクションは、TTML プロファイリングサブシステムと、この サブシステムに適用される高水準要件を説明する。このセクションの末尾には、 プロファイル仕様の例、およびこれらの仕様がどのように参照され使用されるかの例を含む サブセクションが現れる。
このサブセクションは非規範的である。
あるプロファイルは、Timed Text Markup Language コンテンツ著者によって、 2 つの機能のいずれかのために使用できる。(1) 文書インスタンスが、どの 語彙がどのように使用されるかに関する制約の集合に従うことを宣言するため、 または (2) プロセッサが、コンテンツをどのように 処理するかに関する一定の条件を満たさなければならないことを宣言するためである。 これらの機能のうち前者はコンテンツプロファイルと呼ばれ、後者は プロセッサプロファイルと呼ばれる。
コンテンツプロファイルは、著者がオーサリング時に、 文書 インスタンスに適用することを意図する制約を宣言できるようにするために使用される。 そのような宣言により、下流のプロセッサはコンテンツの妥当性検証または検証を実行でき、 また、著者が指定したコンテンツプロファイルへの準拠を維持するために、 コンテンツの後続の変換または編集を導いたり制限したりできる。さらに、 下流のプロセッサは、コンテンツプロファイル宣言を使用して、そのコンテンツプロファイルが 暗示する機能を処理できるかどうかを早期に判定する場合がある。
コンテンツプロファイルは、(1) ルート tt 要素上の
ttp:contentProfiles
属性、(2) 型が content である 1 つ以上のトップレベル
ttp:profile
要素、または (3) これら 2 つの機構の組み合わせを使用して宣言される。
宣言されない場合、コンテンツプロファイルは暗示されない。
プロセッサプロファイルは、著者がオーサリング時に、 文書 インスタンスを処理するときにどの処理がサポートされなければならないかを 宣言できるようにするために使用される。これにより、プロセッサが 示された処理を実行できない場合には、処理は中止されるべきである。 そのような宣言により、下流のプロセッサは、コンテンツ著者の要件を満たす方法で 処理できないコンテンツの処理を回避できる。
プロセッサプロファイルは、(1) ルート tt 要素上の
ttp:processorProfiles
属性、(2) 型が processor である 1 つ以上の
ttp:profile
要素、または (3) ルート tt 要素上の
ttp:profile 属性を使用して
宣言される。宣言されない場合、プロセッサプロファイルは、宣言された
コンテンツプロファイルまたは
既定プロセッサプロファイルから推論される。
注:
適合する文書
インスタンスに対する要件として、
ttp:profile
要素を使用してプロセッサプロファイルが内部的に宣言されること、または
ttp:profile もしくは
ttp:processorProfiles
属性によって内部的に参照されることは要求されない。より具体的には、
文書
交換コンテキストが、私的な合意、帯域外プロトコル、または外部仕様によって
定義されたプロセッサプロファイルの(送信者と受信者の間での)共通利用を通じて、
適用されるプロセッサプロファイルを決定することが許可される。
注:
著者が、TTML コンテンツの標準の事前定義済みプロセッサプロファイルの
1 つ(または複数)を参照し、そのプロファイルを(スーパーセット化または
サブセット化によって)変更したくない場合には、
ttp:profile または
ttp:processorProfiles
属性が使用されることが意図されている。
これらの属性は、著者が非標準プロファイルの使用を示すためにも使用でき、
その場合、指定される
<profile-designator> は、
外部で定義された
プロファイル定義文書を表す URI を表現する。
しかし、適合する TTML
コンテンツプロセッサが、
そのような外部指定プロファイル定義を逆参照できることは要求されない。
対照的に、著者が変更された事前定義済みプロファイルを使用したい場合、または
事前定義済みプロファイルの 1 つに基づかない非標準プロファイル定義を
文書インスタンス内に含めたい場合には、
ttp:profile 要素が
使用されることが意図されている。
事前定義済みプロファイルは、基礎となるベースラインプロファイルで
指定されていなかった、またはベースラインプロファイルで optional
(任意)として指定されていた機能または拡張を
required(必須)として指定することにより、スーパーセット化される。
事前定義済みプロファイルは、基礎となるベースラインプロファイルで
required(必須)として指定されていた機能または拡張を
optional(任意)として指定することにより、サブセット化される。
ベースラインプロファイルがサブセット化によって変更される場合、その結果得られる 派生プロファイルは減算的プロファイルと呼ばれる。スーパーセット化によって 変更される場合、その結果は加算的プロファイルと呼ばれる。 同時に減算的かつ加算的である派生プロファイルを定義することも可能である。
コンテンツ著者は単一のプロファイルの使用に限定されず、いずれの型の 複数のプロファイル、すなわち複数のコンテンツプロファイルおよび/または 複数のプロセッサプロファイルを参照してもよい。複数のプロファイルが 参照される場合、それぞれの仕様は結合され、文書に適用される単一の 実効コンテンツプロファイルと、文書を処理する際にプロセッサに適用される単一の 実効プロセッサプロファイルを形成する。さらに、著者は外部で定義された プロファイルの参照に限定されず、1 つ以上のプロファイルを文書内にインラインで定義してもよい。
このサブセクションは非規範的である。
TTML 提示プロファイルの、著者定義による 加算的な派生プロファイルの例を、 下の 例断片 – TTML 加算的 プロファイルに示す。
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
<head>
<profile use="ttml2-presentation" xmlns="http://www.w3.org/ns/ttml#parameter">
<features xml:base="http://www.w3.org/ns/ttml/feature/">
<feature value="required">#fontStyle-italic</feature>
</features>
</profile>
</head>
<body/>
</tt>
|
注:
上の例では、ベースラインプロファイルが
TTML2 提示プロファイルであると宣言され、その後、
#fontStyle-italic 機能を(
G.2 TTML2 提示プロファイルで
定義されているような任意ではなく)必須にすることにより、加算的に変更される。
profile 要素上で既定の XMLNS 束縛が TT パラメータ名前空間に
リセットされていることにも注意すること。
プロファイルは、参照元文書の外部で定義されているか、 参照元文書内にインラインで定義されているかに応じて、2 つの方法のいずれかで 参照される。外部で定義される場合、プロファイルは <absolute-profile-designator> または <relative-profile-designator> 式によって参照される。 内部(インライン)で定義される場合、プロファイルは暗黙的に、または <fragment-profile-designator> 式によって参照される。
プロファイル指定子は、<uri> 値構文に従わなければならない。 プロファイル指定子が相対 URI として表現される場合、 TT プロファイル名前空間値を基底 URI として使用して絶対化されなければならない。
TT プロファイル名前空間を接頭辞として持つが、それ以外では 表 5-2 – プロファイルに列挙されていない すべてのプロファイル指定子は、将来の標準化のために予約され、適合する 文書インスタンスに現れてはならない。 この制約にもかかわらず、プロファイル指定子は 表 5-2 – プロファイルに列挙された指定子の集合に 制限されず、TT プロファイル名前空間を接頭辞として使用しない限り、 TTML プロファイル定義文書を 実現可能な形で逆参照する任意の URI であってよい。
Timed Text Markup Language (TTML) は、その語彙および関連セマンティクスの 標準の事前定義済みプロファイルを複数使用する。
次の表は、このプロファイルの集合を指定し、各事前定義済みプロファイルについて、 規範的な名前および指定子、ならびにこれらのプロファイルが G 標準プロファイル、 [TTML1]、または別の TTWG 仕様のどこで 形式的に詳述されているかを示す。
| 名前 | 絶対指定子 |
|---|---|
| DFXP Full | http://www.w3.org/ns/ttml/profile/dfxp-full |
| DFXP Presentation | http://www.w3.org/ns/ttml/profile/dfxp-presentation |
| DFXP Transformation | http://www.w3.org/ns/ttml/profile/dfxp-transformation |
| SDP US | http://www.w3.org/ns/ttml/profile/sdp-us |
| TTML2 Full | http://www.w3.org/ns/ttml/profile/ttml2-full |
| TTML2 Presentation | http://www.w3.org/ns/ttml/profile/ttml2-presentation |
| TTML2 Transformation | http://www.w3.org/ns/ttml/profile/ttml2-transformation |
このセクションは、後続で定義されるアルゴリズム(手続きおよび関数)で使用される 複数の概念的状態オブジェクトを定義する。実装がそのようなオブジェクトを ここで指定される形式で作成することは要求されず、同等の情報を表す任意の便利な 内部表現を使用してよい。
profile
specification は、
ttp:feature または ttp:extension
要素に対応する次の内部状態情報を表す。
type に応じて機能または拡張指定子を表す
<uri> 値
"feature" | "extension"
"optional" | "required" | "prohibited"
combined profile specification set は、 profile specifications の集合に対応する 次の内部状態情報を表し、さらに、これらの仕様が取得(または派生)された 構成プロファイルを記録する。
<absolute-profile-designator> 式の順序付きリスト。 各指定子は構成プロファイル、すなわちこの結合プロファイル仕様集合を 構成する元となるプロファイルを表す。
profile specifications の順序付きリスト。
combined profile specification set であって、 constituents および specifications フィールドが空集合であるもの。
profile
instance は、明示的に指定されるか暗示されるかにかかわらず、
ttp:profile 要素に
対応する次の内部状態情報を表す。
このプロファイルに関連付けられ(かつ一意にラベル付けする) <absolute-profile-designator> 式。
"content" | "processor"
"leastRestrictive" | "mostRestrictive" | "replace"
null または、このプロファイルのベースラインプロファイルとして機能する
プロファイルを表す
<profile-designator>
式。
プロファイルが入れ子化プロファイルである場合、
<fragment-profile-designator>
式の順序付きリスト。ここで各指定子は
構成要素である入れ子プロファイルを表す。
それ以外の場合は null。
プロファイルが非入れ子化プロファイルである場合、
profile specifications の順序付きリスト。
それ以外の場合は
null。
このプロファイルによって指定または参照される仕様を結合した結果を 表す combined profile specification set。
すべての TTML 文書インスタンスは、
(null の場合もある)
実効コンテンツプロファイルに関連付けられ、
コンテンツプロセッサはこれを使用して、
次のいずれか(またはすべて)を実行できる。
実効コンテンツプロファイルは、 次の手続きに従って構築される。
文書処理 コンテキストが、他のすべての決定を上書きする特定の 上書きコンテンツプロファイル PO があると判断する場合、 実効コンテンツプロファイルは PO である。
注:
たとえば、この仕様に準拠する [EBU-TT-D] 文書は、
[EBU-TT-D] コンテンツプロファイルへの準拠を示すために
ebuttm:conformsToStandard 要素を指定する場合がある。
そのような場合、そのプロファイルをサポートする
コンテンツ
プロセッサは、その要素の存在を上書きとして使用し、
実効コンテンツ
プロファイルを決定できる。
そうでなく、ルート tt 要素上に
ttp:contentProfiles 属性が指定されている場合、
実効コンテンツプロファイルは、
指定されたプロファイルの結合プロファイル仕様集合を結合することによって
生成される結合プロファイル仕様集合である。ここで、ルート
tt 要素上の ttp:contentProfileCombination
属性によって指定される(またはその既定値の)
コンテンツプロファイル結合方法が適用される。
そうでなく、1 つ以上のトップレベル
コンテンツプロファイルが定義されている場合、
実効コンテンツプロファイルは、
そのようなすべての
トップレベル コンテンツプロファイルの
結合プロファイル仕様集合を結合することによって生成される
結合プロファイル仕様集合である。ここで、ルート
tt 要素上の ttp:contentProfileCombination
属性によって指定される(またはその既定値の)
コンテンツプロファイル結合方法が適用される。
そうでなければ、実効コンテンツ
プロファイルは null である。
汎用
プロセッサの適合性に適合する目的において、
与えられた文書インスタンスを処理する際、
実効コンテンツプロファイルは、一度
profile
instanceへの非 null 参照に設定されると、
その処理の期間中、一定の
profile
instanceへの一定の参照のままである。同様に、
null 参照に設定された場合、その処理の期間中、
一定の null 参照のままである。
construct effective processor profile 手続きを実行して取得した 実効プロセッサ プロファイルを EPP に設定する。
EPP の結合プロファイル仕様集合内の各プロファイル仕様 S について、次の手順を実行する。
S の value フィールドが
required であり、かつ
コンテンツプロセッサが
S をサポートしない場合、エンドユーザー、またはエンドユーザーもしくは
ユーザーまたはシステム構成設定に追跡可能な何らかの実装固有パラメータによって
上書きされない限り、文書インスタンスの処理を中止する。
すべての TTML 文書インスタンスは、 (非 null の) 実効プロセッサプロファイルに 関連付けられ、これは コンテンツプロセッサが、 コンテンツ著者によって示された最小処理要件を満たすかどうかを 判定するために使用される。
実効プロセッサプロファイルは、 次の手続きに従って構築される。
文書処理 コンテキストが、他のすべての決定を上書きする特定の 上書きプロセッサプロファイル PO があると判断する場合、 実効プロセッサプロファイルは PO である。
そうでなく、ルート tt 要素上に
ttp:processorProfiles 属性が指定されている場合、次のとおり。
ttp:processorProfiles 属性が
all(...) 関数構文を使用して、または
関数構文なし、すなわち指定子のリストのみとして指定されている場合、
実効プロセッサ
プロファイルは、指定されたプロファイルの
結合プロファイル仕様集合を結合することによって生成される
結合プロファイル仕様集合である。ここで、ルート
tt 要素上の ttp:processorProfileCombination
属性によって指定される(またはその既定値の)
コンテンツプロファイル結合方法が適用される。
そうでなく、ttp:processorProfiles 属性が
any(...) 関数構文を使用して指定されている場合、
各指定プロファイルについて、
実効プロセッサ
プロファイルは、
コンテンツプロセッサによって
サポートされる指定プロファイルのリスト内の最初のプロファイルの
結合プロファイル仕様集合である。
そうでなく、1 つ以上のトップレベル
プロセッサプロファイルが定義されている場合、
実効プロセッサプロファイルは、
そのようなすべての
トップレベル プロセッサプロファイルの
結合プロファイル仕様集合を結合することによって生成される
結合プロファイル仕様集合である。ここで、ルート
tt 要素上の ttp:processorProfileCombination
属性によって指定される(またはその既定値の)
プロセッサプロファイル結合方法が適用される。
そうでなく、ルート tt 要素上に
ttp:profile 属性が指定されている場合、
実効プロセッサプロファイルは、
この属性によって指定されるプロファイルの結合プロファイル仕様集合である。
そうでなければ、実効 プロセッサプロファイルは、 construct inferred processor profile 手続きを実行した結果である。
汎用 プロセッサの適合性に適合する目的において、 与えられた文書インスタンスを処理する際、 実効プロセッサプロファイルは、一度 profile instanceへの参照に設定されると、 その処理の期間中、一定の profile instanceへの一定の参照のままである。
実効 コンテンツプロファイルを ECP に設定する。
ECP が null でない場合、次の手順を実行する。
ttp:inferProcessorProfileSource パラメータの
算出値が combine である場合、
推論済みプロセッサ
プロファイルは、
infer processor profile 関数を
ECP の結合プロファイル仕様集合に適用した結果である。
そうでなく、
ttp:inferProcessorProfileSource パラメータの
算出値が first である場合、
推論済みプロセッサ
プロファイルは、最初の推論済みプロセッサプロファイル
IPP であり、これは
infer processor profile 関数を
ECP の結合プロファイル仕様集合の各構成要素に関連付けられた
profile
instance の結合仕様集合コンポーネントに適用することで生成され、
かつ IPP が
コンテンツプロセッサによって
サポートされるものである。
そうでなければ、推論済みプロセッサ プロファイルは、 construct default processor profile 手続きを実行した結果である。
推論済みプロセッサプロファイル IPP を、空の結合プロファイル仕様集合から 構成されるコンテンツプロファイルに初期化する。
結合プロファイル仕様集合 CPSS 内の各プロファイル仕様 S について、次を行う。
ttp:inferPresentationProfileMethod
パラメータの算出値および
表 6-2 –
プロセッサプロファイル推論方法に従って、
コンテンツプロファイル仕様 S をプロセッサプロファイル
仕様 S' に対応付ける。
S' を IPP の結合プロファイル仕様集合に 追加する。
IPP を推論済みプロセッサプロファイルとして返す。
文書交換 コンテキストが プロセッサプロファイルまたは、 プロセッサプロファイルを推論できる コンテンツプロファイルに関連付けられている場合、 既定プロセッサプロファイルは そのプロセッサプロファイルである。
そうでなく、コンテンツプロセッサが
主として
提示プロセッサとして特徴付けられる場合、
既定プロセッサプロファイルは
TTML2 提示プロファイル
(http://www.w3.org/ns/ttml/profile/ttml2-presentation) を
インターンすることによって構築される
profile instanceである。
そうでなく、コンテンツプロセッサが
主として
変換プロセッサとして特徴付けられる場合、
既定プロセッサプロファイルは
TTML2 変換プロファイル
(http://www.w3.org/ns/ttml/profile/ttml2-transformation) を
インターンすることによって構築される
profile instanceである。
注:
TTML の 1 つ以上の異なるバージョンで使用されることを意図する コンテンツプロセッサは、 TTML の提示プロファイルまたは変換プロファイルの将来のバージョンに 基づいて 既定プロセッサプロファイルを 選択してもよい。
このセクションは、TTML 妥当性検証サブシステムと、この サブシステムに適用される高水準要件を説明する。
妥当性検証は、妥当性検証 プロセッサによって実行される任意機能であり、 候補文書インスタンスが 妥当性検証 コンテンツプロセッサによって消費またはその他の方法で処理されるときに 発生する場合がある。そのような処理が行われ、例外条件が発生した場合、 後述するように処理が中止される場合がある。
妥当性検証処理中に処理が中止される場合、 その結果には次が含まれる。
妥当性検証 処理の結果として中止処理が発生した場合、 文書インスタンス内でそれ以降のコンテンツが 処理されない位置は、この仕様では定義されない。特に、実装は最初の 妥当性検証エラーに遭遇した時点で 処理を中止してもよく、任意の数の 妥当性検証エラーに遭遇した後に 処理を中止してもよい。その結果、非適合文書から消費される入力コンテンツの量と、 対応する(変換または提示)出力は実装によって異なる場合がある。
このセクションは、後続で定義されるアルゴリズム(手続きおよび関数)で使用される 複数の概念的状態オブジェクトを定義する。実装がそのようなオブジェクトを ここで指定される形式で作成することは要求されず、同等の情報を表す任意の便利な 内部表現を使用してよい。
validation exception は、 妥当性検証 処理中に発生する例外条件に対応する次の内部状態情報を表す。
型が error である
validation exception は
validation
error と呼ばれ、
型が warning である
validation exception は
validation
warning と呼ばれる。
上位レベルプロトコルが適用されない限り、 (1) この仕様の規定または禁止への違反が検出された場合、 validation error 例外が適用される。かつ (2) この仕様の推奨または非推奨への違反が検出された場合、 validation warning が適用される。
注:
このコンテキストにおける上位レベルプロトコルの例は、 警告をエラーとして扱わせる、またはその逆を行わせる、 文書処理コンテキストの システムまたはエンドユーザー定義の構成オプションである。
文書の実効コンテンツ
プロファイルが null でない場合、
実効妥当性検証
プロファイルは
実効コンテンツプロファイルである。
そうでなければ、実効 妥当性検証プロファイルは 実効プロセッサ プロファイルである。
汎用 プロセッサの適合性に適合する目的において、 与えられた文書インスタンスを処理する際、 実効妥当性検証プロファイルは、一度 profile instanceへの参照に設定されると、 その処理の期間中、一定の profile instanceへの一定の参照のままである。
文書の実効 妥当性検証プロファイルが 1 つ以上のスキーマに関連付けられている場合、 実効妥当性検証 スキーマの集合は、 文書処理 コンテキストの要件に基づく、それら関連スキーマの適切なサブセットである。
そうでなければ、実効 妥当性検証スキーマは、 文書処理 コンテキストによって選択される既定のスキーマ集合である。
注:
何が適切なスキーマ集合を構成するかの決定は、 この仕様では形式的に定義されない。それにもかかわらず、 選択プロセスは、(1) 実装が利用可能でサポートするスキーマの種類、および (2) ヒューリスティックとして、 実効妥当性検証プロファイルによって 決定される必須または任意機能に関連付けられた最大バージョン番号を 使用することが期待される。
上位
レベルプロトコルによって妥当性検証が無効化されている場合、
または
ttp:validation
パラメータの算出値が prohibited である場合、
エンドユーザーまたはアプリケーションがこの禁止を上書きしない限り、
この手続きを終了する。
ttp:validation
パラメータの算出値が optional であり、かつ
文書処理コンテキストが
任意妥当性検証を実行しないと判断する場合、
この手続きを終了する。
そうでなければ、実効 妥当性検証スキーマおよび必要に応じたその他の 妥当性検証ツールを使用して、文書適合性を妥当性検証し、次のようにする。
validation
error 条件が
検出された場合、
ttp:validationAction
パラメータプロパティの算出値に適用されるセマンティクスを実行する。
validation warning 条件が
検出された場合、
ttp:validationAction
パラメータプロパティの算出値に適用されるセマンティクスを実行する。
妥当性検証処理が実行される場合、 次のセマンティクスが適用される。
入力文書が具象 XML 表現の形式、たとえば 付録 A 具象符号化で 定義される具象形式を取る場合、次を検証する。
入力文書の符号化文字が、文書の解決済み文字エンコーディングに従って 整形式であること。かつ、
入力文書が整形式 XML 文書であること。かつ、
入力文書が 実効妥当性検証 スキーマに関して妥当であることを検証する。 かつ、
入力文書が、この仕様によって定義されるが 実効妥当性検証 スキーマによって直接表現されない、その他すべての構文制約および セマンティクス制約に従うことを検証する。
上記の検証手順のいずれかが、規定(must)または禁止(must not)に関する 非適合状態を検出した場合、 validation error 条件が適用される。上記の検証手順のいずれかが、推奨(should)または 非推奨(should not)に関する非適合状態を検出した場合、 validation warning 条件が適用される。
注:
実効妥当性検証スキーマの 決定は実装依存であり、また 実効妥当性検証スキーマが すべての可能な validation errorを検出することは要求されないため、 [validate document] 手続きを実行しても validation exceptionが生成されない場合があり、その場合、 妥当性検証処理の結果は 偽陽性とみなされる場合がある。
例として、コンテンツプロファイルは、
ttp:feature
または ttp:extension
要素の value 属性の
prohibited 値によって、機能の使用を禁止する場合がある。
しかし、
[validate document]
手続きの特定の実装は、
文書インスタンス内のそのような禁止された使用を
検出できず、したがって偽陽性の妥当性検証結果を生成する場合がある。
これらの制限の結果として、 [validate document] 手続きの仕様言語は、潜在的な validation errorまたは validation warningが検出されるか否かを前提としているが、すべての可能な validation errors および validation warningsが検出されることを義務付けない。
偽陽性に関する詳細については、 4.1 TTML コンテンツ 文書型の最初の注も参照。
Timed Text Markup Language (TTML) の語彙は、 次の主要カタログ(語彙の区分)で定義される。
コアカタログは、TTML のベースラインとなるコア語彙、特に TTML コンテンツの語彙を定義する。拡張カタログは、 TTML によって定義されるコア語彙への拡張のためのプレースホルダーとして機能する。
コア語彙カタログは、将来のプロファイルのためのベースライン語彙を提供しつつ、 TTML の必要性を満たすことを意図している。この語彙は、 次のセクションで詳細に指定される個別のカテゴリに分けられる。
文書 インスタンスで使用するために指定されるコア要素語彙は、 表 5-3 – 要素語彙に列挙される。
| モジュール | 要素 |
|---|---|
| アニメーション | animate, animation, set |
| 音声 | audio |
| コンテンツ | body, br, div, p, span |
| データ | chunk, data, resources, source |
| 文書 | tt |
| フォント | font |
| ヘッド | head |
| 画像 | image |
| レイアウト | layout, region |
| メタデータ | metadata |
| メタデータ項目 | ttm:actor, ttm:agent, ttm:copyright, ttm:desc, ttm:item, ttm:name, ttm:title |
| プロファイル | ttp:features, ttp:feature, ttp:extensions, ttp:extension, ttp:profile |
| スタイリング | initial, styling, style |
TTML 要素型の内容モデルを定義する際に使用される要素語彙グループは、 表 5-4 – 要素語彙グループに列挙される。
| グループ | 要素 |
|---|---|
| Animation.class | animate | set |
| Block.class | div | p |
| Data.class | data |
| Embedded.class | audio, image |
| Font.class | font |
| Inline.class |
span |
br |
#PCDATA
|
| Layout.class | region |
| Metadata.class | metadata | ttm:agent | ttm:copyright | ttm:desc | ttm:item | ttm:title |
| Profile.class | ttp:profile |
コア語彙カタログで使用するために指定される属性語彙は、 表 5-5 – 属性語彙に列挙される。
注:
(1) グローバル、すなわち名前空間修飾された属性、または (2) 共有される要素固有、すなわち名前空間修飾されていないが 複数の要素型にまたがって共有される属性として定義される属性のみが、 上の 表 5-5 – 属性 語彙に列挙されている。
注:
TTML によって定義されるすべての語彙は、一貫して いわゆる lowerCamelCase 命名規約を使用する。場合によっては、 その名前が、異なる命名規約を使用していた別の仕様に基づくときに、 名前が変更される結果となる。
このセクションは、コア語彙カタログのプロファイル事項を規定する。 ここでプロファイル事項とは、 時限テキストコンテンツ文書の オーサリングまたは処理に関連する要件または任意性を表す情報として理解される。
次の要素は、すべて TT パラメータ名前空間で定義され、 文書インスタンスまたは コンテンツプロセッサに適用される パラメータ情報を指定する。
注:
このセクションのサブセクションは論理順(最高水準から最低水準の構成へ)で 並べられている。
ttp:profile 要素は、
コンテンツプロファイルまたは
プロセッサプロファイルを指定するために使用される。
プロセッサプロファイルは、
そのような機能および拡張を使用する(または使用する可能性がある)
文書インスタンスを処理するために、
コンテンツプロセッサが
サポートしなければならない、またはサポートしてもよい
必須(mandatory)および任意(voluntary)の機能および拡張の集合を指定する。
コンテンツプロファイルは、
そのプロファイルへの準拠を宣言する
文書インスタンス内に、それぞれ
存在してはならない、存在しなければならない、または存在してもよい、
禁止、必須、および任意の機能および拡張の集合を指定する。
注:
機能と拡張の違いは、それがどこで定義され、 どのようにラベル付けされるかである。 この仕様(またはその将来の改訂)で定義され、 E 機能の機能指定でラベル付けされる場合、 それは機能とみなされる。別の仕様で定義され、 そこで拡張指定によりラベル付けされる場合、それは拡張とみなされる。 一般に、機能は W3C 標準化プロセスによって定義されることが期待され、 拡張は第三者によって定義されることが期待される。
この仕様は、ttp:profile 要素について 2 つの異なる使用コンテキストを定義する。
TTML 文書インスタンス内の
head 要素または ttp:profile 要素の子として。
TTML プロファイル定義文書 インスタンスのルート要素として。
ttp:profile 要素が TTML
文書インスタンス内に現れる場合、
その目的は、(1) 受信側コンテンツプロセッサがその文書を処理するために、
どの機能および拡張をサポートしなければならない、またはサポートしてもよいか、
あるいは (2) どの機能および拡張を
その文書インスタンス内に
含めてはならない、含めなければならない、または含めてもよいか、
もしくはその他の形で使用してよいかについて、著者の意図を表すことである。
ttp:profile 要素が TTML
プロファイル定義文書インスタンスで
使用される場合、TTML
文書インスタンスから参照できる
特定の TTML プロファイルについて、機械可読な仕様を公開するために機能する。
この仕様は、複数の標準プロファイル定義文書を
G 標準プロファイルで定義する。
ttp:profile 要素は、その子として、まず
Metadata.class 要素グループ内の
0 個以上の要素を受け入れ、その後に (1)
0 個以上の ttp:features 要素に続く
0 個以上の ttp:extensions 要素、または (2)
0 個以上の ttp:profile 要素を受け入れる。
ttp:profile 要素が子 ttp:profile 要素を含む場合、
その子は入れ子プロファイルと呼ばれ、
親は入れ子化プロファイルと呼ばれる。
それ以外の場合、それは非入れ子化プロファイルと呼ばれる。
<ttp:profile
combine = ("leastRestrictive" | "mostRestrictive" | "replace") : replace
designator = xsd:string
type = ("processor" | "content") : processor
use = xsd:string
xml:base = <uri>
xml:id = ID
Content: Metadata.class*, ((ttp:features*, ttp:extensions*)|ttp:profile*)
</ttp:profile>
|
type 属性は、プロファイルが
コンテンツプロファイルであるか
プロセッサプロファイルであるかを決定するために使用される。
指定されない場合、そのプロファイルは
プロセッサプロファイルであるとみなされる。
ttp:profile 要素が
ベースラインプロファイルまたは
入れ子プロファイルを参照する場合、
参照されるプロファイルの型は、参照元プロファイルの型と同一でなければならない。
たとえば、プロセッサプロファイルを定義する
ttp:profile 要素は、他の
プロセッサプロファイルのみを参照でき、
コンテンツプロファイルを参照してはならない。
combine 属性は、同じ機能または拡張に複数の仕様が
それぞれ適用される場合に、機能または拡張仕様をどのように結合するかを
指定するために使用される。
combine 属性の値が replace である場合、
字句的に後続する機能または拡張仕様は、字句的に先行する仕様を置換する。
ここで仕様要素は次のように順序付けられる。
use 属性によって参照される
ベースラインプロファイルで定義される仕様。
後順走査順の子孫 ttp:profile 要素によって定義される仕様。
後順走査順の子孫 ttp:feature または
ttp:extension
要素として定義される仕様。
値が leastRestrictive である場合、最も制限の少ない仕様値が適用される。
値が mostRestrictive である場合、最も制限の多い仕様値が適用される。
制限の強さの順序は次のとおり(少ないものから多いものへ)である。
optional、required、prohibited。
combine 属性が指定されない場合、置換セマンティクスが適用される。
指定される場合、designator 属性は
<absolute-profile-designator>
値構文に従わなければならない。
designator 属性は、TTML
文書インスタンスに現れる
ttp:profile 要素上で指定してもよく、指定されない場合、
定義されたプロファイルは未指定プロファイルであるとみなされる。
designator 属性は、TTML
プロファイル定義文書インスタンスに現れる
ttp:profile 要素上で指定するべきであり、
指定されない場合、定義コンテキスト(たとえば外部仕様)は、
付随する定義テキスト内で指定子を指定しなければならない。
指定される場合、use 属性は
<uri> 値構文に従わなければならず、さらに
5.2 プロファイリングに従って
プロファイル指定子を表さなければならない。この場合、
プロファイル指定子は、(1) 6 プロファイルで定義される標準の事前定義済み
プロファイル定義文書、または
(2) 妥当なプロファイル定義文書インスタンスを表す、
実現可能に逆参照可能なリソースを参照しなければならない。いずれの場合も、
参照されるプロファイルは、指定する
ttp:profile 要素の
ベースラインプロファイルとして機能する。
use 属性が指定されない場合、
ttp:profile 要素の
ベースラインプロファイルは、
空(null)プロファイル、すなわち機能または拡張仕様を含まない
未指定プロファイル定義であるとみなされなければならない。
プロファイル P の機能および拡張の結合プロファイル仕様集合
CPSS は、次の順序付き規則に従って決定される。
ここで仕様 S を CPSS へマージすることは、
combine 属性の指定値(または既定値)に従って
結合方法を適用することを伴い、結合仕様集合 CPSS' を
CPSS へマージすることは、
CPSS' の各順序付き仕様を
CPSS へマージすることを伴う。
CPSS を空集合に初期化する。
use 属性が存在する場合、参照される
ベースラインプロファイルの結合仕様集合を
CPSS へマージする。
P の各 ttp:profile 子について、
後順走査を用いて、子プロファイルの結合仕様集合を
CPSS へマージする。
ttp:profile 要素の各 ttp:feature および
ttp:extension 子について、
後順走査を用いて、機能または拡張仕様を
CPSS へマージする。
適合する TTML プロセッサは、 G 標準 プロファイルで定義される標準の事前定義済みプロファイルの 1 つではない プロファイル定義文書を 逆参照できることを要求されない。さらに、 適合する TTML プロセッサは、ネットワークリソースの逆参照を要求しないように、 各標準事前定義済みプロファイルの組み込み静的形式を使用してもよい。
TTML プロセッサが非標準の プロファイル定義文書を逆参照できない場合、 エンドユーザーによる明示的な上書き、またはエンドユーザーもしくは ユーザーまたはシステム構成設定に追跡可能な何らかの実装固有パラメータが 存在しない限り、その文書をそれ以上処理してはならない。 非標準のプロファイル定義 文書を参照できないことにより、TTML プロセッサが 文書インスタンスの処理を中止する場合、 エンドユーザーまたはシステムがそのような通知を無効化している場合、または プロセッサがエンドユーザーの介入を許可または伴わない場合を除き、 何らかのエンドユーザー通知が与えられるべきである。
適合する TTML プロセッサは、 結合プロファイルまたは 入れ子化プロファイルをサポートできることを 要求されない。(1) 結合プロファイルが サポートされず、プロファイルの処理によってそれが 結合プロファイルとみなされることになる場合、または (2) 入れ子化プロファイルが サポートされず、プロファイルの処理によってそれが 入れ子化プロファイルとみなされることになる場合、 エンドユーザーによる明示的な上書き、またはエンドユーザーもしくは ユーザーまたはシステム構成設定に追跡可能な何らかの実装固有パラメータが 存在しない限り、そのプロファイルのそれ以上の処理は 行われてはならない。TTML プロセッサが 結合プロファイルまたは 入れ子化プロファイルのサポート不足により、 文書インスタンスの処理を中止する場合、 エンドユーザーまたはシステムがそのような通知を無効化している場合、または プロセッサがエンドユーザーの介入を許可または伴わない場合を除き、 何らかのエンドユーザー通知が与えられるべきである。
注:
文書インスタンスが 結合プロファイルのサポートを要求しない場合、 次を使用すべきではない。
複数のトップレベルプロファイル。
ttp:profile 要素上の
combine 属性。
ttp:contentProfiles
属性内の複数の指定子。
ttp:processorProfiles
属性内の複数の指定子。
ttp:processorProfileCombination
属性。 または
ttp:inferProcessorProfileSource
属性上の combined 値。
注:
文書インスタンスが 入れ子化プロファイルのサポートを要求しない場合、 入れ子プロファイルを使用すべきではない。
ttp:profile 要素を次の例に示す。
<ttp:profile use="ttml2-presentation">
<ttp:features xml:base="http://www.w3.org/ns/ttml/feature/">
<ttp:feature>#text-outline</ttp:feature>
</ttp:features>
</ttp:profile>
|
注:
上の例では、TTML2 提示プロファイルが
ベースラインプロファイルとして使用される。このベースラインプロファイルはその後、
#text-outline 機能のサポートを要求することにより
スーパーセット化される(したがって加算的派生プロファイルを作成する)。
ttp:features 要素は、機能サポートおよび使用要件に関する
情報をグループ化するために使用されるコンテナ要素である。
ttp:features 要素は、その子として、
Metadata.class 要素グループ内の
0 個以上の要素を受け入れ、その後に
0 個以上の ttp:feature 要素を受け入れる。
<ttp:features xml:base = <uri> : TT Feature Namespace xml:id = ID Content: Metadata.class*, ttp:feature* </ttp:features> |
指定される場合、xml:base
属性は、(1)
<uri> 値構文に従い、(2)
[XML Base] に従う絶対 URI を表現し、
(3)
E.1 機能指定で定義される
機能名前空間を表現しなければならない。指定されない場合、
xml:base 属性の既定値が適用され、それは TT 機能名前空間である。
xml:base 属性は、子 ttp:feature 要素によって
表現される機能指定 URI の省略を可能にするために使用される。
ttp:feature 要素は、特定の機能に対するサポートおよび
使用要件に関する情報を指定するために使用される。
<ttp:feature extends = xsd:string restricts = xsd:string value = ("optional" | "required" | "use" | "prohibited") : see prose below xml:id = ID Content: #PCDATA </ttp:feature> |
ttp:feature 要素の子は、連結したものが
<uri> 値構文に従う、空でない
文字情報項目の列を
表現しなければならない。
指定される場合、extends 属性および/または
restricts 属性は、(1)
<uri> 値構文に従い、かつ
(2)
E.1 機能指定で定義される
機能指定を表現しなければならない。
extends 属性は、定義される機能が、
構文的または(および)セマンティクス的観点のいずれか(または両方)から、
extends 属性によって参照される機能の真のスーパーセットであることを
示すために使用してもよい。
restricts 属性は、定義される機能が、
構文的または(および)セマンティクス的観点のいずれか(または両方)から、
restricts 属性によって参照される機能の真のサブセットであることを
示すために使用してもよい。
extends 属性が指定される場合、restricts 属性を
ttp:feature 要素上に指定してはならない。同様に、
restricts 属性が指定される場合、extends 属性を
指定してはならない。
(1) ttp:feature 要素の内容、(2) extends 属性、
または (3) restricts 属性によって表現される URI が相対 URI である場合、
最も近い祖先 ttp:features 要素の
xml:base 属性によって表現される機能名前空間値と
結合されたとき、それは絶対 URI を表現しなければならない。
いずれの場合(元の絶対 URI または結果として絶対化された URI)も、
ttp:feature 要素によって表現される URI は、さらに
E.1 機能指定で定義される
機能指定の構文に従わなければならず、さらに、
この URI に現れる特定の指定、すなわちフラグメント識別子区切り文字
'#' で始まる機能指定の部分は、この仕様または REC ステータスを達成した
何らかの公開済みバージョンによって定義されていなければならない。
ttp:feature 要素の内容によって、
extends 属性によって、または restricts 属性によって
表現される URI が相対 URI である場合、最も近い祖先
ttp:features 要素上に xml:base 属性を
指定するべきである。
value 属性は、プロファイル型に従って、指定された機能の
サポートまたは使用に関する制約を指定する。
プロファイルがプロセッサプロファイルである場合、 次のセマンティクスが適用される。
value 属性の値が optional である場合、
プロセッサは、文書を処理するためにその機能を実装またはその他の形で
サポートしてもよいが、そうする必要はない。
値が required である場合、次の手順を実行する。
機能がプロセッサによって実装またはその他の形でサポートされている場合、 文書の処理を継続する。
そうでなく、
(1) extends 属性がこの
ttp:feature 要素上に指定され、
(2) extends 属性の値が、
プロセッサによって実装またはその他の形でサポートされている機能を指定し、
(3) ルート tt 要素の
ttp:permitFeatureNarrowing
プロパティの算出値が false でない場合、
文書の処理を継続する。
そうでなく、
(1) restricts 属性がこの
ttp:feature 要素上に指定され、
(2) restricts 属性の値が、
プロセッサによって実装またはその他の形でサポートされている機能を指定し、
(3) ルート tt 要素の
ttp:permitFeatureWidening
プロパティの算出値が false でない場合、
文書の処理を継続する。
そうでなければ、エンドユーザー、またはエンドユーザーもしくは ユーザーまたはシステム構成設定に追跡可能な何らかの実装固有パラメータによって 上書きされない限り、文書の処理を中止する。
value 属性が指定されない場合、機能仕様は
値 required が指定されたものとして解釈されなければならない。
プロファイルがコンテンツプロファイルである場合、 次のセマンティクスが適用される。
value 属性の値が optional である場合、
そのプロファイルへの適合を主張する文書にその機能が現れてもよいが、
現れる必要はない。
value 属性の値が required である場合、
そのプロファイルへの適合を主張する文書にその機能が現れなければならない。
value 属性の値が prohibited である場合、
そのプロファイルへの適合を主張する文書にその機能が現れてはならない。
value 属性が指定されない場合、機能仕様は
値 optional が指定されたものとして解釈されなければならない。
value 属性の値 use は
非推奨である。それが
プロファイル仕様に現れる場合、required が指定されたものとして
解釈されなければならない。
定義済み(すなわち標準化済み)またはその他のよく知られた機能が
コンテンツプロファイル内の ttp:feature 要素によって指定されていない場合、
その機能は value 属性が optional に等しいものとして
指定されたと解釈されなければならない。ただし、プロセッサプロファイルで指定されない場合、
その機能のサポートまたはサポート不在に関する主張は暗示されない。
注:
特に、ある機能がコンテンツプロファイル定義に存在しない場合、
その機能の(文書インスタンスにおける)使用が
許可されない、または禁止されることを意味すると解釈されるべきではない。
ある機能をコンテンツプロファイルによって禁止する意図がある場合、
prohibited 値を使用して指定するべきである。
文書インスタンスが E.1 機能指定で定義される機能を使用し、 かつその文書の意図された使用がその機能の認識および処理を要求する場合、 その文書は、宣言または参照されるプロファイルの 1 つに required 機能仕様を含まなければならない。
ttp:feature 要素を次の例に示す。
<ttp:profile use="http://www.w3.org/ns/ttml/profile/ttml2-presentation">
<ttp:features xml:base="http://www.w3.org/ns/ttml/feature/">
<ttp:feature value="required">#fontStyle-italic</ttp:feature>
<ttp:feature value="required">#textDecoration-under</ttp:feature>
<ttp:feature value="prohibited">#textOutline-blurred</ttp:feature>
</ttp:features>
</ttp:profile>
|
注:
上の例では、TTML 提示プロファイルが
ベースラインプロファイルとして使用される。このベースラインプロファイルはその後、
(1) #fontStyle-italic も #textDecoration-under も
TTML 提示プロファイルでは必須ではないため、ベースラインプロファイルを
スーパーセット化し、かつ
(2) #textOutline-blurred 機能
(TTML 提示プロファイルでは任意)の使用を禁止するために、
3 つの ttp:feature 要素によって変更される。
この例の効果は、斜体フォントスタイルおよびテキスト下線が サポートされなければならず、テキストアウトラインのぼかしは文書で使用されてはならない、 という著者の意図を表すことである。
ttp:extensions 要素は、拡張サポートおよび使用要件に関する
情報をグループ化するために使用されるコンテナ要素である。
ttp:extensions 要素は、その子として、
Metadata.class 要素グループ内の
0 個以上の要素を受け入れ、その後に
0 個以上の ttp:extension 要素を受け入れる。
<ttp:extensions xml:base = <uri> : TT Extension Namespace xml:id = ID Content: Metadata.class*, ttp:extension* </ttp:extensions> |
指定される場合、xml:base
属性は、(1)
<uri> 値構文に従い、(2)
[XML Base] に従う絶対 URI を表現し、
(3)
F.1 拡張指定で定義される
拡張名前空間を表現しなければならない。指定されない場合、
xml:base 属性の既定値が適用され、それは TT 拡張名前空間である。
xml:base 属性は、子 ttp:extension 要素によって
表現される機能指定 URI の省略を可能にするために使用される。
ttp:extension 要素は、特定の拡張に対するサポートおよび
使用要件に関する情報を指定するために使用される。
<ttp:extension extends = xsd:string restricts = xsd:string value = ("optional" | "required" | "use" | "prohibited") : see prose below xml:id = ID Content: #PCDATA </ttp:extension> |
ttp:extension 要素の子は、連結したものが
<uri> 値構文に従う、空でない
文字情報項目の列を
表現しなければならない。
指定される場合、extends 属性および/または
restricts 属性は、(1)
<uri> 値構文に従い、かつ
(2)
E.1 機能指定または
F.1 拡張指定で
それぞれ定義される機能指定または拡張指定を表現しなければならない。
extends 属性は、定義される拡張が、
構文的または(および)セマンティクス的観点のいずれか(または両方)から、
extends 属性によって参照される機能または拡張の真のスーパーセットであることを
示すために使用してもよい。
restricts 属性は、定義される拡張が、
構文的または(および)セマンティクス的観点のいずれか(または両方)から、
restricts 属性によって参照される機能または拡張の真のサブセットであることを
示すために使用してもよい。
extends 属性が指定される場合、restricts 属性を
ttp:extension 要素上に指定してはならない。同様に、
restricts 属性が指定される場合、extends 属性を
指定してはならない。
(1) ttp:extension 要素の内容、(2) extends 属性、
または (3) restricts 属性によって表現される URI が相対 URI である場合、
最も近い祖先 ttp:extensions 要素の
xml:base 属性によって表現される拡張名前空間値と
結合されたとき、それは絶対 URI を表現しなければならない。
いずれの場合(元の絶対 URI または結果として絶対化された URI)も、
ttp:extension 要素によって表現される URI は、さらに
F.1 拡張指定で定義される
拡張指定の構文に従わなければならない。一方、
extends 属性および/または
restricts 属性によって表現される URI は、
E.1 機能
指定または
F.1 拡張指定でそれぞれ定義される
機能指定または拡張指定の構文に従わなければならない。
ttp:extension 要素の内容によって、
extends 属性によって、または restricts 属性によって
表現される URI が相対 URI である場合、最も近い祖先
ttp:extensions 要素上に xml:base 属性を
指定するべきである。
value 属性は、プロファイル型に従って、指定された拡張の
サポートまたは使用に関する制約を指定する。
プロファイルがプロセッサプロファイルである場合、 次のセマンティクスが適用される。
value 属性の値が optional である場合、
プロセッサは、文書を処理するためにその拡張を実装またはその他の形で
サポートしてもよいが、そうする必要はない。
値が required である場合、次の手順を実行する。
拡張がプロセッサによって実装またはその他の形でサポートされている場合、 文書の処理を継続する。
そうでなく、
(1) extends 属性がこの
ttp:extension 要素上に指定され、
(2) extends 属性の値が、
プロセッサによって実装またはその他の形でサポートされている拡張を指定し、
(3) ルート tt 要素の
ttp:permitFeatureNarrowing
プロパティの算出値が false でない場合、
文書の処理を継続する。
そうでなく、
(1) restricts 属性がこの
ttp:extension 要素上に指定され、
(2) restricts 属性の値が、
プロセッサによって実装またはその他の形でサポートされている拡張を指定し、
(3) ルート tt 要素の
ttp:permitFeatureWidening
プロパティの算出値が false でない場合、
文書の処理を継続する。
そうでなければ、エンドユーザー、またはエンドユーザーもしくは ユーザーまたはシステム構成設定に追跡可能な何らかの実装固有パラメータによって 上書きされない限り、文書の処理を中止する。
value 属性が指定されない場合、拡張仕様は
値 required が指定されたものとして解釈されなければならない。
プロファイルがコンテンツプロファイルである場合、 次のセマンティクスが適用される。
value 属性の値が optional である場合、
そのプロファイルへの適合を主張する文書にその拡張が現れてもよいが、
現れる必要はない。
value 属性の値が required である場合、
そのプロファイルへの適合を主張する文書にその拡張が現れなければならない。
value 属性の値が prohibited である場合、
そのプロファイルへの適合を主張する文書にその拡張が現れてはならない。
value 属性が指定されない場合、拡張仕様は
値 optional が指定されたものとして解釈されなければならない。
value 属性の値 use は
非推奨である。それが
プロファイル仕様に現れる場合、required が指定されたものとして
解釈されなければならない。
何らかのよく知られた拡張がコンテンツプロファイル内の
ttp:extension 要素によって指定されていない場合、
その拡張は value 属性が optional に等しいものとして
指定されたと解釈されなければならない。ただし、プロセッサプロファイルで指定されない場合、
その拡張のサポートまたはサポート不在に関する主張は暗示されない。
注:
特に、ある拡張がコンテンツプロファイル定義に存在しない場合、
その拡張の(文書インスタンスにおける)使用が
許可されない、または禁止されることを意味すると解釈されるべきではない。
ある拡張をコンテンツプロファイルによって禁止する意図がある場合、
prohibited 値を使用して指定するべきである。
文書インスタンスが F.1 拡張 指定によって指定可能な拡張を使用し、 かつその文書の意図された使用がその拡張の認識および処理を要求する場合、 その文書は、宣言または参照されるプロファイルの 1 つに required 拡張仕様を含まなければならない。
ttp:extension 要素を次の例に示す。
<ttp:profile use="http://www.w3.org/ns/ttml/profile/ttml2-transformation">
<ttp:extensions xml:base="http://example.org/ttml/extension/">
<ttp:extension value="use">#prefilter-by-language</ttp:extension>
</ttp:extensions>
</ttp:profile>
|
注:
上の例では、TTML 変換プロファイルが ベースラインプロファイルとして使用される。このベースラインプロファイルはその後、 第三者名前空間で定義された私的拡張について、サポートおよび使用が 必須であることを指定することによりスーパーセット化される。
この例の効果は、受信側プロセッサが TTML 変換プロファイルを サポートしなければならず、さらに第三者によって定義された拡張も サポートして有効化しなければならない、という著者の意図を表すことである。
次の属性は TT パラメータ名前空間で定義される。
ttp:contentProfiles 属性は、コンテンツ著者によって、
Timed Text Markup Language (TTML) の 1 つ以上の
コンテンツプロファイルを表すために使用できる。
ここで、包含文書インスタンスは、
指定されたコンテンツプロファイルの集合の
すべてに適合することを主張する。
指定される場合、この属性の値は次の構文に従わなければならない。
ここで各 profile-designator 項目は
<uri> 値構文に従い、さらに
5.2 プロファイリングに従って
プロファイル指定子に対して定義される制約に従う。
ttp:contentProfiles
: designators
| "all(" <lwsp> designators <lwsp> ")"
designators
: designator (<lwsp> designator)*
designator
: <profile-designator>
|
指定子のリストが関数構文 all(...) で囲まれている場合、または
関数構文が使用されない場合、指定されたすべての
コンテンツ
プロファイルへの適合が主張される。
複数の指定子が指定される場合、各指定子の絶対化形式は それぞれ異なっていなければならない。すなわち、 絶対化形式へ変換した後、重複する指定子は許可されない。
ttp:contentProfiles
属性は、tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:contentProfileCombination 属性は、複数の
コンテンツプロファイルを結合する方法を
指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:contentProfileCombination : "leastRestrictive" | "mostRestrictive" | "replace" | "ignore" |
指定されない場合、このパラメータの値は ignore であると
みなされなければならない。
2 つの順序付きプロファイル仕様値 arg1 および arg2 と、 コンテンツプロファイル結合方法が与えられた場合、 表 6-1 – コンテンツプロファイル結合は、 2 つの仕様値を結合した結果を指定する。ここで引数の順序は、 文書インスタンス内の コンテンツプロファイルの字句順に従って決定される。
| arg1 | arg2 | leastRestrictive |
mostRestrictive |
replace |
ignore |
|---|---|---|---|---|---|
| optional | optional | optional | optional | optional | optional |
| optional | required | optional | required | required | optional |
| optional | prohibited | optional | prohibited | prohibited | optional |
| required | optional | optional | required | optional | required |
| required | required | required | required | required | required |
| required | prohibited | required | prohibited | prohibited | required |
| prohibited | optional | optional | prohibited | optional | prohibited |
| prohibited | required | required | prohibited | required | prohibited |
| prohibited | prohibited | prohibited | prohibited | prohibited | prohibited |
ttp:contentProfileCombination 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:inferProcessorProfileMethod 属性は、
コンテンツプロファイル仕様値を対応するプロセッサプロファイル仕様値へ
対応付ける方法を指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:inferProcessorProfileMethod : "loose" | "strict" |
このパラメータの値が loose である場合、
コンテンツプロファイル仕様からプロセッサプロファイル仕様を推論するとき、
緩い(自由な)対応付けが適用される。
このパラメータの値が strict である場合、
コンテンツプロファイル仕様からプロセッサプロファイル仕様を推論するとき、
厳密な(保守的な)対応付けが適用される。
指定されない場合、このパラメータの値は
loose であるとみなされなければならない。
入力コンテンツプロファイル仕様値 input と、 プロセッサプロファイル推論方法が与えられた場合、 表 6-2 – プロセッサプロファイル 推論方法は、入力仕様値を対応付けた結果を指定する。
| input | loose |
strict |
|---|---|---|
| optional | optional | required |
| required | required | required |
| prohibited | optional | optional |
ttp:inferProcessorProfileMethod 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:inferProcessorProfileSource 属性は、
コンテンツプロファイル仕様値を対応するプロセッサプロファイル仕様値へ
対応付けるためのソースを指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:inferProcessorProfileSource : "combined" | "first" |
このパラメータの値が combined である場合、
プロセッサプロファイルを推論するとき、
実効コンテンツプロファイルの
結合プロファイル仕様集合が推論元として使用される。
このパラメータの値が first である場合、
プロセッサプロファイルを推論するとき、
実効コンテンツプロファイルの
結合プロファイル仕様集合の最初の構成プロファイルであって、
その構成プロファイルから推論されるプロセッサプロファイルが
コンテンツプロセッサによってサポートされるものが、
推論元として使用される。詳細については
construct inferred processor
profile 手続きを参照。
指定されない場合、このパラメータの値は
first であるとみなされなければならない。
ttp:inferProcessorProfileSource 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:permitFeatureNarrowing 属性は、機能または拡張に関連する
要件が、その機能または拡張の(構文的またはセマンティクス的に)
より狭い解釈によって満たされてもよいかを指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:permitFeatureNarrowing : xsd:boolean // see [XML Schema Part 2], §3.2.2 |
このパラメータの値が true である場合、
機能または拡張のサポート要件は、その機能または拡張の定義が
extends 属性を指定し、その属性によって参照される
機能または拡張がプロセッサによってサポートされているなら、
満たされてもよい。
このパラメータの値が false である場合、
機能または拡張のサポート要件は、extends 属性によって指定される
より狭く定義された機能または拡張によって満たされることはできない。
指定されない場合、このパラメータの値は
false であるとみなされなければならない。
ttp:permitFeatureNarrowing 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:permitFeatureWidening 属性は、機能または拡張に関連する
要件が、その機能または拡張の(構文的またはセマンティクス的に)
より広い解釈によって満たされてもよいかを指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:permitFeatureWidening : xsd:boolean // see [XML Schema Part 2], §3.2.2 |
このパラメータの値が true である場合、
機能または拡張のサポート要件は、その機能または拡張の定義が
restricts 属性を指定し、その属性によって参照される
機能または拡張がプロセッサによってサポートされているなら、
満たされてもよい。
このパラメータの値が false である場合、
機能または拡張のサポート要件は、restricts 属性によって指定される
より広く定義された機能または拡張によって満たされることはできない。
指定されない場合、このパラメータの値は
false であるとみなされなければならない。
ttp:permitFeatureWidening 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:profile 属性は、
文書インスタンスを処理するときに適用される
Timed Text Markup Language (TTML) の
プロセッサプロファイルを表す。
注:
著者が単一のプロセッサプロファイルではなく、プロセッサプロファイルの集合のうち
1 つ以上が適用されることを指定したい場合、コンテンツ著者は
6.2.8 ttp:processorProfilesで
指定される ttp:processorProfiles を使用することが推奨される。
注:
コンテンツプロファイルのシグナリングに関する情報については、 6.2.1 ttp:contentProfilesを参照。
指定される場合、この属性の値は次の構文に従わなければならない。
ここで designator は
<uri> 値構文に従い、さらに
5.2 プロファイリングに従って
プロファイル指定子を指定しなければならない。
ttp:profile : designator designator : <profile-designator> |
ttp:profile
属性は、tt 要素上に指定された場合にのみ重要であるとみなされる。
文書インスタンス内に
トップレベルの
プロセッサプロファイルが定義される場合、
ttp:profile
属性を tt 要素上に指定すべきではない。
注:
文書を処理するときに(可能な)使用のために 1 つ以上の機構が 1 つ以上のプロファイルを指定する場合に、 実効プロセッサプロファイルが どのように決定されるかに関する情報については、 5.2.4 プロファイルセマンティクスを参照。
ttp:processorProfiles 属性は、コンテンツ著者によって、
Timed Text Markup Language (TTML) の 1 つ以上の
プロセッサプロファイルを表すために使用できる。
ここで、包含文書インスタンスは、
指定されたプロセッサプロファイルの集合の
(1) すべて、または (2) その集合のうちいずれか 1 つの
サポートを要求する。
指定される場合、この属性の値は次の構文に従わなければならない。
ここで各 profile-designator 項目は
<uri> 値構文に従い、さらに
5.2 プロファイリングに従って
プロファイル指定子に対して定義される制約に従う。
指定子のリストが関数構文 all(...) で囲まれている場合、または
関数構文が使用されない場合、指定されたすべての
プロセッサ
プロファイルのサポートが要求される。指定子のリストが
関数構文 any(...) で囲まれている場合、指定された
プロセッサプロファイルの少なくとも 1 つの
サポートが要求される。
複数の指定子が指定される場合、各指定子の絶対化形式は それぞれ異なっていなければならない。すなわち、 絶対化形式へ変換した後、重複する指定子は許可されない。
ttp:processorProfiles
属性は、tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:processorProfileCombination 属性は、複数の
プロセッサプロファイルを結合する方法を
指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:processorProfileCombination : "leastRestrictive" | "mostRestrictive" | "replace" | "ignore" |
指定されない場合、このパラメータの値は ignore であると
みなされなければならない。
2 つの順序付きプロファイル仕様値 arg1 および arg2 と、 プロセッサプロファイル結合方法が与えられた場合、 表 6-3 – プロセッサプロファイル 結合は、2 つの仕様値を結合した結果を指定する。 ここで引数の順序は、 文書インスタンス内の プロセッサプロファイルの字句順に従って 決定される。
| arg1 | arg2 | leastRestrictive |
mostRestrictive |
replace |
ignore |
|---|---|---|---|---|---|
| optional | optional | optional | optional | optional | optional |
| optional | required | optional | required | required | optional |
| required | optional | optional | required | optional | required |
| required | required | required | required | required | required |
ttp:processorProfileCombination 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:validation 属性は、
妥当性検証処理が
妥当性検証コンテンツプロセッサによって
文書インスタンスに対して
実行されてもよいか、または実行されなければならないかを指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:validation : "required" | "optional" | "prohibited" |
このパラメータの値が required である場合、
妥当性検証コンテンツプロセッサは、
提示処理または変換処理など、他の種類の処理を実行する前に、
TTML 文書インスタンスに対して
妥当性検証処理を実行しなければならない。
このパラメータの値が optional である場合、
妥当性検証コンテンツプロセッサは、
提示処理または変換処理など、他の種類の処理を実行する前に、
TTML 文書インスタンスに対して
妥当性検証処理を
実行してもよいが、実行する必要はない。
このパラメータの値が prohibited である場合、
妥当性検証コンテンツプロセッサは、
エンドユーザーまたはアプリケーションがこの禁止を上書きしない限り、
提示処理または変換処理など、他の種類の処理を実行する前に、
TTML 文書インスタンスに対して
妥当性検証処理を
実行してはならない。
妥当性検証処理が TTML
文書インスタンスに対して実行され、
妥当性検証が失敗した場合、
ttp:validationAction プロパティの算出値が、
さらなる処理を実行する前に取るべき動作を決定するために使用される。
指定されない場合、このパラメータの値は
optional であるとみなされなければならない。
ttp:validation 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:validationAction 属性は、
文書インスタンスの妥当性検証が失敗したときに、
妥当性検証コンテンツプロセッサによって
取られるべき動作を指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:validationAction : "abort" | "warn" | "ignore" |
このパラメータの値が abort である場合、
エンドユーザーまたはアプリケーションによって中止処理が上書きされない限り、
妥当性検証コンテンツプロセッサは、
妥当性検証エラー例外が発生したとき、
TTML 文書インスタンスの処理を
中止しなければならない。
このパラメータの値が warn である場合、
妥当性検証コンテンツプロセッサは、
妥当性検証エラーまたは
妥当性検証警告例外が
発生したとき、エンドユーザーに警告し、処理を継続するか中止するかの
選択肢をエンドユーザーに与えるべきである。
このパラメータの値が ignore である場合、
妥当性検証コンテンツプロセッサは、
妥当性検証例外が
発生したとき、中止すべきではなく、エンドユーザーに警告すべきでもない。
指定されない場合、このパラメータの値は次のように決定される。
ttp:validation プロパティの
算出値が required である場合、
その値は abort であるとみなされなければならない。
optional である場合、
その値は warn であるとみなされなければならない。
そうでなく、prohibited である場合、
その値は ignore であるとみなされなければならない。
ttp:validationAction 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
このセクションは、コア語彙カタログのパラメータ事項を規定する。 ここで パラメータとは、(1) 本質的であるか、または (2) コア語彙項目によって表現される他の種類の情報のセマンティクスを 解釈する目的、または TTML コンテンツを外部環境に関連付けるための 文書処理コンテキストを確立する目的で、 重要性が高い情報として理解される。
次の属性は TT パラメータ名前空間で定義される。
ttp:cellResolution 属性は、著者によって、
均一なグリッドの観点から提示セマンティクスを表現する目的で、
ルートコンテナ領域の
領域が分割される水平セル数および垂直セル数を表すために使用できる。
指定される場合、この属性の値は次の構文に従わなければならない。
指定されない場合、列数および行数は、それぞれ 32 および 15 であるとみなされなければならない。指定される場合、列または行は 0 であってはならない。
注:
値 32 および 15 の選択は、これが [CTA-608-E] によって定義される最大の列数および行数であることに基づく。
ttp:cellResolution 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
注:
均一なグリッドの使用は、長さを測定し座標を表現する目的でのみ採用される。 特に、テキストの提示または個々の グリフ領域の配置が このグリッドと調整されることは想定されない。そのような配置は可能であるが、 等幅フォントおよび EM 正方形がセルサイズと正確に一致するフォントサイズの使用を 必要とする。
別途示される場合を除き、セルで表現される <length> が インラインまたはブロック進行寸法に平行な寸法を表す場合、 それぞれ、インラインまたはブロック進行寸法におけるセルの寸法が適用される。
注:
たとえば、パディング(4 辺すべて)が 0.1c と指定され、セル解像度が 20 × 10 であり、ルートコンテナ 領域の範囲が 640 × 480 である場合、上から下、 左から右の書字モードを仮定すると、開始側および終了側のパディングは (640 / 20) * 0.1 ピクセルとなり、 前側および後側のパディングは (480 / 10) * 0.1 ピクセルとなる。
ttp:clockMode 属性は、
7.2.11 ttp:timeBaseで定義される
clock の時間基準で動作する場合に、時刻式を実時間の時刻座標として
解釈する方法を指定するために使用される。
注:
時刻式構文およびセマンティクスの仕様については、 12.3 時刻値式を参照。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:clockMode : "local" | "gps" | "utc" |
7.2.11
ttp:timeBaseで定義される時間基準が
clock と指定される場合、このパラメータは次のように適用される。
パラメータの値が local である場合、時刻式は
ローカル壁時計時刻(および日付)座標として解釈される。
utc の場合、時刻式は UTC 時刻座標
[UTC]として解釈される。
gps の場合、時刻式は GPS 時刻座標
[GPS]として解釈される。
注:
local クロックモードが適用される場合、時刻(および日付)式によって
特定のタイムゾーンは暗示されない。特に、
コンテンツプロセッサは、
処理が行われる場所のローカルタイムゾーンで、ローカル時刻(および日付)式を
解釈することが期待される。
著者が時刻(および日付)式を特定のタイムゾーンに固定することを意図する場合、
時刻(および日付)式を UTC に変換し、utc クロックモードの使用を
指定してもよい。
注:
GPS 時刻と UTC 時刻の主な違いは、GPS 時刻は閏秒に合わせて調整されないのに対し、UTC 時刻は次のように 調整されることである。UTC = TAI (Temp Atomique International) + 1972 年以降に 累積された閏秒。TAI は、フランスのセーヴルにある Bureau International des Poids et Mesures (BIPM) によって維持されている。 GPS システム時刻は、米国海軍天文台の主時計 (MC) に同期調整されており、 TAI に対して近いが未指定の許容範囲内に保たれている。
指定されない場合、このパラメータの値は
utc であるとみなされなければならない。
ttp:clockMode 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:displayAspectRatio 属性は、
H ルートコンテナ領域のセマンティクスで
詳述されるように、ルートコンテナ領域の
表示アスペクト比を指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
指定される場合、分子および分母はどちらも非ゼロでなければならない。 指定されない場合、 ルートコンテナ領域の表示アスペクト比は、 H ルートコンテナ領域のセマンティクスによって決定される。
ttp:displayAspectRatio 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:dropMode 属性は、
7.2.11 ttp:timeBaseで
定義される smpte の時間基準で動作する場合に、
[SMPTE ST 12-1] 時刻座標に対応する
フレームカウントの解釈および使用に関する制約を指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:dropMode : "dropNTSC" | "dropPAL" | "nonDrop" |
7.2.11
ttp:timeBaseで定義される時間基準が
smpte と指定される場合、このパラメータは次のように適用される。
パラメータの値が nonDrop である場合、任意の
時刻式の任意の秒内では、フレームは 0 から
N−1 まで数えられる。ここで N は
ttp:frameRate パラメータによって指定される値であるが、
ttp:frameRateMultiplier パラメータによって指定される値は
無視される。
注:
nonDrop モードで動作する場合、
時刻式の 1 秒は、通常(1x 速度)の順方向再生中における
実時間の 1 秒と等しい場合も等しくない場合もある。
ttp:frameRateMultiplier パラメータが指定され、
1:1 と等しくない場合、時刻式の 1 秒は、実時間で経過した再生の 1 秒よりも
短くなるか長くなる。
このパラメータの値が dropNTSC である場合、
時刻式の任意の秒のうち秒 00 を除く任意の秒内では、
フレームは 0 から N−1 まで数えられる。ここで N は
ttp:frameRate パラメータによって指定される値であるが、
ttp:frameRateMultiplier パラメータによって指定される値は無視される。
時刻式の秒が 00 であり、その時刻式の分が
00、10、20、30、
40、または 50 でない場合、
フレームコード 00 および 01 はその秒の間に
ドロップされる。それ以外の場合、これらのフレームコードはドロップされない。
注:
たとえば、ttp:frameRate が 30 の
dropNTSC モードで動作する場合、次の時刻式の列に示すように、
連続するフレーム間でフレームカウントの不連続が発生する。
01:08:59:28、
01:08:59:29、01:09:00:02、
01:09:00:03。
このパラメータの値が dropPAL である場合、
時刻式の任意の秒のうち秒 00 を除く任意の秒内では、
フレームは 0 から N−1 まで数えられる。ここで N は
ttp:frameRate パラメータによって指定される値であるが、
ttp:frameRateMultiplier パラメータによって指定される値は無視される。
時刻式の秒が 00 であり、その時刻式の分が偶数であるが
00、20、または 40 でない場合、
フレームコード 00 から 03 までが
その秒の間にドロップされる。それ以外の場合、これらのフレームコードはドロップされない。
注:
たとえば、ttp:frameRate が 30 の
dropPAL モードで動作する場合、次の時刻式の列に示すように、
連続するフレーム間でフレームカウントの不連続が発生する。
01:09:59:28、
01:09:59:29、01:10:00:04、
01:10:00:05。
注:
dropPAL モードは、
M/PAL または PAL (M) ドロップフレーム
コードとしても知られ、NTSC フレームレートである約 29.97
フレーム/秒で PAL 変調を使用する。M/PAL システムは主にブラジルで使用される。
指定されない場合、nonDrop が適用されると仮定されなければならない。
ttp:dropMode 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:frameRate 属性は、関連するメディアオブジェクトのフレームレート、
または文書
インスタンスが独立したメディアオブジェクトとして機能することを意図される場合の
その内在的フレームレートを指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:frameRate : <digit>+ // value > 0 |
文書インスタンスに適用されるフレームレートは、 12.3.1 <time-expression>で 定義されるように、フレームで表現される時刻式を 解釈するために使用される。
media 時間基準が適用され、実効フレームレートが
整数である場合、フレームはメディア時間の 1 秒の分割として解釈される。
すなわち、フレームレートが F として指定される場合、
メディア時間の 1 秒は、等しい継続時間を持つ F 個の区間に
分割され、各区間はフレーム f としてラベル付けされる。
ここで f ∈ [0…F−1] である。
注:
media 時間基準に対する時刻式の解釈に関するさらなる詳細については、
I.2 メディア時間基準を参照。
指定されない場合、フレームレートは、アプリケーション定義のフレームレートが 存在すればそれに等しいものとみなされなければならず、 アプリケーション定義のフレームレートが適用されない場合は、 30 フレーム/秒であるとみなされなければならない。指定される場合、 フレームレートは 0 より大きくなければならない。
ttp:frameRate 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:frameRateMultiplier 属性は、
実効フレームレートを計算するために
ttp:frameRate 属性によって指定されるフレームレートに適用される
乗数を指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
所望のフレームレートを 1 秒あたりの整数個のフレームとして 表現できない場合、フレームレート乗数が使用される。
指定されない場合、フレームレート乗数はアプリケーション定義のフレームレート乗数が 存在すればそれに等しいものとみなされなければならず、 アプリケーション定義のフレームレート乗数が適用されない場合は 1 (1:1) とする。 分子および分母はどちらも非ゼロでなければならない。
ttp:frameRateMultiplier 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
注:
30 フレーム/秒の NTSC [SMPTE ST 170] 形式の映像オブジェクトとの同期に使用されるフレームレート乗数は、名目上 1000:1001 である。NTSC 映像の名目フレームレートは、色副搬送波周波数 3,579,545.45…Hz (= 5.0MHz × 63/88) に比率 2/455 を乗じ、 1 フレームあたりの水平線数 525 で除したものとして定義され、 29.970029970029… (= 30 × 1000/1001) フレーム/秒のフレームレートを 生じる。その他のフレームレート乗数は、異なる使用地域および映像形式標準に 適用される。
注:
PAL/M の場合を除き、25 フレーム/秒の PAL 形式の映像オブジェクトとの同期に 使用されるフレームレート乗数は、名目上 1:1 である。
ttp:markerMode 属性は、
7.2.11 ttp:timeBaseで
定義される smpte の時間基準で動作する場合に、
[SMPTE ST 12-1] 時刻座標に対応する
時刻式の解釈および使用に関する制約を指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:markerMode : "continuous" | "discontinuous" |
7.2.11
ttp:timeBaseで定義される時間基準が
smpte と指定される場合、このパラメータは次のように適用される。
パラメータの値が continuous である場合、
[SMPTE ST 12-1] 時刻座標は
線形で、単調増加または単調減少のいずれかであると仮定してよい。
ただし、discontinuous の場合、時刻座標の線形性または単調性に関して
いかなる仮定も行ってはならない。
指定されない場合、このパラメータの値は
discontinuous であるとみなされなければならない。
注:
このパラメータの既定値は当初、
(TTML 1.0 First
Edition において)
continuous として指定されていた。しかし、業界の状況をさらに評価した結果、
この選択は誤りであり、最も一般的な既定値は discontinuous であることが
示された。
ttp:markerMode 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
continuous の値が適用される場合、時刻式は、
ttp:dropMode パラメータによって表現される算出フレームレートおよび
ドロップモードを考慮することにより、実時間座標へ変換されてもよい。
この場合、コンテンツプロセッサは、
12.4 タイミングセマンティクスで
さらに説明されるように、これらの時刻式が解釈される
合成 SMPTE 文書同期基準を
作成し維持しなければならない。
注:
smpte 時間基準および
continuous マーカーモードで動作する場合、
暗黙の時刻座標空間、すなわち
合成 SMPTE 文書
同期基準が存在し、
これは、算出フレームレートおよびドロップモードを考慮しつつ、
単調増加(または単調減少)する
[SMPTE ST 12-1] 時刻座標によって定義される。
すべての時刻式は、この時刻座標空間との関係で、
SMPTE タイムコード同期イベント(マーカー)に
基づいて解釈される。ここで
文書処理コンテキストは、
時刻座標の単調性、およびドロップフレームが存在する場合の再同期に関する
暗黙の制約を伴って、これらのイベントを発行する。
smpte 時間基準で continuous マーカーモードを使用することは、
media 時間基準を使用することとは異なる。
なぜなら、(1) ttp:dropMode パラメータのセマンティクスは
前者には適用されるが後者には適用されず、(2)
[SMPTE ST 12-1] 時刻座標は、
時間的な拡張、時間的な収縮、または時間的な反転を受けたメディアに対しても
単調に適用される場合があるためである。
discontinuous の値が適用される場合、時刻式は
実時間座標へ変換されてはならず、算術演算子(加算、乗算)は
時刻式に対して定義されず、したがって任意の(整形式な)
継続時間の式は無効であるとみなされなければならない。
注:
smpte 時間基準および
discontinuous マーカーモードで動作する場合、
実効的な時刻座標空間は存在しない。むしろ、すべての時刻式はラベル付き
同期イベント(マーカー)として解釈される。ここで
文書処理コンテキストは
これらのイベントを発行し、それらが同じラベルを表す時刻式に対応する場合、
それに応じて時間区間を開始または終了させる。
discontinuous モードで動作することの追加の副作用として、
子の時刻式は、それらの時間コンテナの時刻式と必然的な関係を持たない。
すなわち、時間コンテナおよびこれらのコンテナの子は、
ラベル付き同期(マーカー)イベントの発生に基づいて、
独立して時間的に活性化および非活性化される。
注:
<time-expression> と ラベル付き同期イベント(マーカー)との比較は、実装依存であるとみなされる。 特に、この仕様は、時刻式またはマーカーのための特定の内部形式、 あるいは特定の比較アルゴリズムを実装が使用することを要求しない。 それにもかかわらず、実装は、そのような比較を実行するときに、 時刻式のセマンティクスおよびマーカーラベルに適用される任意の暗黙のセマンティクスを 尊重することが期待される。
注:
このパラメータによって捉えられるマーカー不連続性の概念は、
ttp:dropMode パラメータによって表現されるフレームの数え方とは
論理的に独立している。特に、
ttp:dropMode パラメータが dropNTSC または
dropPAL として指定されていても、フレーム数え上げ方法によって
誘発されるフレームカウントの不連続が存在する場合でさえ、
マーカーモードは continuous として指定されてもよい。
ただし、たとえば 10:00:00:00 および
10:00:01:00 とラベル付けされた 2 つの連続フレームのような、
マーカーラベル付けにおけるその他の非線形性または不連続性が存在する場合を除く。
ttp:pixelAspectRatio 属性は、
H ルートコンテナ領域のセマンティクスで
詳述されるように、ルートコンテナ領域の
ピクセルアスペクト比を指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
指定される場合、分子および分母はどちらも非ゼロでなければならない。 指定されない場合、 ルートコンテナ領域のピクセルアスペクト比は、 H ルートコンテナ領域のセマンティクスによって決定される。
ttp:pixelAspectRatio 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:pixelAspectRatio 属性は、px
(ピクセル)単位を使用する 2 つの
<length> 仕様から構成される
tts:extent 属性も
tt 要素上に
指定されていない限り、指定すべきではない。
それがない場合、ttp:pixelAspectRatio 属性の使用は
非推奨である。
ttp:subFrameRate 属性は、関連するメディアオブジェクトのサブフレームレート、
または文書
インスタンスが独立したメディアオブジェクトとして機能することを意図される場合の
その内在的サブフレームレートを指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:subFrameRate : <digit>+ // value > 0 |
文書インスタンスに適用されるサブフレームレートは、 12.3.1 <time-expression>で 定義されるように、サブフレームで表現される時刻式を 解釈するために使用される。
media 時間基準が適用され、実効フレームレートが
整数である場合、サブフレームはメディア時間のフレームの分割として解釈される。
すなわち、サブフレームレートが S として指定される場合、
メディア時間のフレームは、等しい継続時間を持つ S 個の区間に
分割され、各区間はサブフレーム s としてラベル付けされる。
ここで s ∈ [0…S−1] である。
注:
media 時間基準に対する時刻式の解釈に関するさらなる詳細については、
I.2 メディア時間基準を参照。
指定されない場合、サブフレームレートは、アプリケーション定義の サブフレームレートが存在すればそれに等しいものとみなされなければならず、 アプリケーション定義のサブフレームレートが適用されない場合は 1 であるとみなされなければならない。指定される場合、サブフレームレートは 0 より大きくなければならない。
ttp:subFrameRate 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
注:
サブフレームは、インターレース映像メディアオブジェクトとの同期の文脈では、 フィールドと呼ばれることがある。
ttp:tickRate 属性は、関連するメディアオブジェクトの tick レート、
または文書インスタンスのコンテンツが独立した
メディアオブジェクトとして機能することを意図される場合の内在的 tick レートを
指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:tickRate : <digit>+ // value > 0 |
文書インスタンスに適用される tick レートは、
12.3.1
<time-expression>で定義される t メトリックを
使用して、ticks で表現される時刻式を解釈するために使用される。
media 時間基準が適用される場合、
tick はメディア時間の 1 秒の整数分割として解釈される。
すなわち、tick レートが T として指定される場合、
メディア時間の 1 秒は、等しい継続時間を持つ T 個の区間に
分割され、各区間は tick t としてラベル付けされる。
ここで t ∈ [0…T−1] である。
注:
media 時間基準に対する時刻式の解釈に関するさらなる詳細については、
I.2 メディア時間基準を参照。
指定されない場合、フレームレートが指定されていれば、tick レートは 実効フレームレートにサブフレームレートを乗じたもの (すなわち ticks はサブフレームとして解釈される)であるとみなされなければならない。 または、フレームレートが指定されていない場合、tick レートはメディア時間 1 秒あたり 1 tick であるとみなされなければならない。指定される場合、tick レートは 0 であってはならない。
注:
ticks とフレームまたはサブフレームとの間には、事前定義された関係は存在しない。 ticks は、秒を任意に分割したものであり、秒を分数(かつ潜在的に 不正確)な式として表すのではなく、固定小数点演算の使用を可能にする。
ttp:tickRate 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
ttp:timeBase 属性は、
文書時間座標空間を
指定するために使用される。
指定される場合、この属性の値は次の構文に従わなければならない。
ttp:timeBase : "media" | "smpte" | "clock" |
時間基準が media と指定される場合、
時刻式は、あるメディアオブジェクトのタイムライン上の座標を表す。
そのメディアオブジェクトは、
文書インスタンスのコンテンツと同期される外部メディアオブジェクトであってもよく、
または時限テキストコンテンツが独立したタイムラインを確立することを意図される場合には、
文書インスタンス自体のコンテンツであってもよい。
注:
メディア時間基準を使用する場合、その時間基準が一時停止される、 または正または負にスケーリングされる、すなわちメディア再生レートが 1 ではない場合、関連する Timed Text コンテンツの提示も同様に、 それぞれ一時停止、加速、または減速されることが期待される。 外部メディア時間基準を制御する手段は、この仕様の範囲外である。
時間基準が smpte と指定される場合、
時刻式は、文書インスタンスのコンテンツが
同期される
[SMPTE ST 12-1] 時刻座標を表す。
この場合、7.2.7 ttp:markerModeおよび
7.2.4 ttp:dropModeで
それぞれ定義されるように、ttp:markerMode および
ttp:dropMode パラメータの値が適用される。
注:
時間基準が smpte と指定される場合、
すべての時刻式は、[SMIL 3.0] §5.4.3 で
定義されるものに類似したメディアマーカー値を表す。ただし、
不透明なマーカー名を使用する代わりに、構造化された
[SMPTE ST 12-1] 時刻座標がマーカー名として機能する。
時間基準が clock と指定される場合、時刻式は、
ローカル壁時計時刻、UTC(協定世界時)、または GPS(全地球測位システム)
タイムラインなど、何らかの実時間クロックによって確立される
実世界のタイムライン上の座標を表す。
指定されない場合、既定の時間基準は
media であるとみなされなければならない。
ttp:timeBase 属性は、
tt 要素上に指定された場合にのみ重要であるとみなされる。
media または smpte の
時間基準で動作する場合、
文書インスタンスの通時的提示は、
時間反転、伸張(拡張)、または収縮(圧縮)など、
制御するタイムラインの変換の対象となる場合がある。
しかし、clock 時間基準で動作する場合、そのような変換は許可されず、
通時的提示は、実時間の経過に基づく線形で単調増加するタイムライン上で進行する。
注:
指定された時間基準に従う時刻式の解釈に関するさらなる詳細については、 I 時刻式のセマンティクスを参照。
このセクションは、コア語彙カタログのコンテンツ事項を規定する。
次の要素は、文書インスタンスの 構造および主要なコンテンツ側面を指定する。
注:
このセクションのサブセクションは論理順(最高水準から最低水準の構成へ)で 並べられている。
tt 要素は、文書インスタンスのルート文書要素として機能する。
tt 要素は、その子として 0 個または 1 個の head 要素に続き、
0 個または 1 個の body 要素を受け入れる。
<tt tts:extent = xsd:string xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") : default {any attributes in TT Parameter Namespace} Content: head?, body? </tt> |
ルート時間範囲、すなわち
文書インスタンスがアクティブである時間区間は、
文書に body 要素が存在する場合にはその body 要素の
暗黙の継続時間に等しく、body 要素が存在しない場合にはゼロである
暗黙の継続時間を持つ。
tts:extent 属性が
tt 要素上に指定される場合、それは
10.2.16 tts:extentに従わなければならず、
その場合、それは空間範囲を指定する。
その空間範囲は、コンテンツ領域が配置され提示される
ルートコンテナ領域のものである。
tts:extent 属性が指定されない場合、
空間範囲は、
H ルートコンテナ領域の
セマンティクスで指定される規則によって決定される。
ルートコンテナ領域の原点は、
文書処理コンテキストによって決定される。
注:
他の要件が存在せず、かつ関連 メディアオブジェクトが存在する場合、 文書処理コンテキストは 次のように決定することが推奨される。
ルートコンテナ領域の原点は、 この領域が 関連メディアオブジェクト領域内で 中央揃えされるように確立される。
注:
著者が、ルートコンテナ領域の(格納または画像)
アスペクト比を、その解像度を指定せずにシグナルしたい場合、
ttp:displayAspectRato
パラメータ属性を使用することでこれを達成してもよい。
xml:lang 属性は tt 要素上に指定されなければならない。
属性値が空である場合、文書インスタンス内に
含まれるテキストに適用される既定言語が存在しないことを意味する。
xml:space 属性が tt 要素上に指定されない場合、
それは値 default で指定されたものとして
みなされなければならない。
head 要素は、メタデータ、プロファイル、埋め込みコンテンツリソース、
スタイリング、およびレイアウト情報を含むヘッダー事項をグループ化するために
使用されるコンテナ要素である。
head 要素は、その子として
Metadata.class 要素グループ内の
0 個以上の要素に続き、
Profile.class 要素グループ内の
0 個以上の要素に続き、
0 個または 1 個の resources 要素に続き、
0 個または 1 個の styling 要素に続き、
0 個または 1 個の layout 要素に続き、
0 個または 1 個の animation
要素を受け入れる。
Metadata.class
要素グループ内の子によって指定される任意のメタデータは、
head 要素だけでなく、文書
インスタンス全体にセマンティクス的に適用される。
Parameters.class
要素グループ内の子によって指定される任意のパラメータは、
head 要素だけでなく、文書
インスタンス全体にセマンティクス的に適用される。
resources 子要素は、特定のスタイル構成および
埋め込みコンテンツ要素から参照される
埋め込みコンテンツ構成を指定するために使用される。
styling 子要素は、他のスタイル構成、レイアウト構成、および
コンテンツ要素から参照される
スタイル構成を指定するために使用される。
layout 子要素は、
コンテンツ要素から参照されるレイアウト構成を
指定するために使用される。
animation 子要素は、アニメーション可能な
コンテンツ要素または
Layout 要素を対象とする
アニメーション構成を指定するために使用される。
<head xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: Metadata.class*, Profile.class*, resources?, styling?, layout?, animation? </head> |
時間セマンティクスが head 要素の内容に適用される範囲において、
この要素の暗黙の時間区間は
ルート時間範囲と同一の始点および終点を持つものとして
定義される。
body 要素は、論理区分として表されるテキストコンテンツ単位の列のための
論理コンテナおよび時間的構造化要素として機能する。
body 要素は、その子として
Metadata.class 要素グループ内の
0 個以上の要素に続き、
Animation.class
要素グループ内の 0 個以上の要素に続き、
0 個以上の div 要素を受け入れる。
Metadata.class
要素グループ内の子によって指定される任意のメタデータは、
body 要素およびその子孫全体にセマンティクス的に適用される。
Animation.class
要素グループ内の子によって指定される任意のアニメーション要素は、
body 要素にセマンティクス的に適用される。
<body animate = IDREFS begin = <time-expression> condition = <condition> dur = <time-expression> end = <time-expression> region = IDREF style = IDREFS timeContainer = ("par" | "seq") xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {any attributes in TT Metadata Namespace} {any attributes in TT Style Namespaces} Content: Metadata.class*, Animation.class*, div* </body> |
著者は、begin、dur、および end 属性を使用して、
body 要素に時間区間を指定してもよい。この区間の開始点が
未指定のままである場合、その開始点は
文書時間座標
空間の開始点と
ルート時間範囲の開始点のうち
後の方として解釈される。この区間の終了点が未指定のままである場合、
終了点はルート時間範囲の終了点として
解釈される。
注:
SMIL 提示から参照される文書インスタンスは、 他の SMIL メディアオブジェクトに適用されるものと同じタイミング規則に 従うことが期待される。
相対開始時刻または終了時刻が body 要素上に指定される場合、
これらの時刻は
文書時間座標
空間の開始点を基準に解決される。
ルート時間範囲が
body 要素の算出継続時間より短い場合、
body 要素のアクティブ時間区間は
ルート時間範囲のアクティブ終了点まで
切り詰められる。
著者は、style 属性、インラインスタイル属性、またはそれらの組み合わせの
いずれかによって、スタイルプロパティの集合を
body 要素に関連付けてもよい。
timeContainer 属性が
body 要素上に指定されない場合、それは
並列の時間包含セマンティクスを持つものとして解釈されなければならない。
div 要素は、論理的な下位区分または段落として表される
テキストコンテンツ単位の列のための論理コンテナおよび時間的構造化要素として
機能する。
注:
連続的な(ページ分割されない)視覚提示媒体上でレンダリングされる場合、
div 要素は、
div 要素の子孫
p 要素によって生成される 0 個以上の子ブロック領域を含む、
1 個以上のブロック領域を生成することが期待される。
div 要素によって生成されるブロック領域のいずれかが
子領域を含まない場合、それは提示されることが期待されない。
div 要素は、その子として
Metadata.class 要素グループ内の
0 個以上の要素に続き、
Animation.class
要素グループ内の 0 個以上の要素に続き、
Layout.class 要素グループ内の
0 個または 1 個の要素に続き、
Block.class または
Embedded.class 要素グループ内の
0 個以上の要素を受け入れる。
Metadata.class
要素グループ内の子によって指定される任意のメタデータは、
div 要素およびその子孫全体にセマンティクス的に適用される。
Animation.class
要素グループ内の子によって指定される任意のアニメーション要素は、
div 要素にセマンティクス的に適用される。
<div animate = IDREFS begin = <time-expression> condition = <condition> dur = <time-expression> end = <time-expression> region = IDREF style = IDREFS timeContainer = ("par" | "seq") xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {any attributes in TT Metadata Namespace} {any attributes in TT Style Namespaces} Content: Metadata.class*, Animation.class*, Layout.class?, (Block.class|Embedded.class)* </div> |
著者は、style 属性、インラインスタイル属性、またはそれらの組み合わせの
いずれかによって、スタイルプロパティの集合を div 要素に
関連付けてもよい。
timeContainer 属性が
div 要素上に指定されない場合、それは
並列の時間包含セマンティクスを持つものとして解釈されなければならない。
p 要素は論理段落を表し、
ブロックレベルとインラインレベルのフォーマットセマンティクスの間の遷移として機能する。
p 要素は、その子として
Metadata.class 要素グループ内の
0 個以上の要素に続き、
Animation.class
要素グループ内の 0 個以上の要素に続き、
Layout.class 要素グループ内の
0 個または 1 個の要素に続き、
Inline.class または
Embedded.class 要素グループ内の
0 個以上の要素を受け入れる。
Metadata.class
要素グループ内の子によって指定される任意のメタデータは、
p 要素およびその子孫全体にセマンティクス的に適用される。
Animation.class
要素グループ内の子によって指定される任意のアニメーション要素は、
p 要素にセマンティクス的に適用される。
<p animate = IDREFS begin = <time-expression> condition = <condition> dur = <time-expression> end = <time-expression> region = IDREF style = IDREFS timeContainer = ("par" | "seq") xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {any attributes in TT Metadata Namespace} {any attributes in TT Style Namespaces} Content: Metadata.class*, Animation.class*, Layout.class?, (Inline.class|Embedded.class)* </p> |
著者は、style 属性、インラインスタイル属性、またはそれらの組み合わせの
いずれかによって、スタイルプロパティの集合を
p 要素に関連付けてもよい。
timeContainer 属性が
p 要素上に指定されない場合、それは
並列の時間包含セマンティクスを持つものとして解釈されなければならない。
p 要素の子の列が
文字情報項目のみから構成される場合、
その列は、span 要素に適用されるスタイルプロパティを適用する目的で
匿名 spanであると
みなされなければならない。詳細については
[construct anonymous
spans] 手続きを参照。
注:
TTML の提示セマンティクスは、実質的に
p 要素が改行を構成することを含意する。特に、
それは、最初に生成される行領域の前と最後に生成される行領域の後の両方において、
ブロック積み重ね制約に関連付けられる。さらなる詳細については
11.3.1.4 共時的フロー処理を
参照。
span 要素は、インラインレベルのフォーマットセマンティクスを持つ
テキストコンテンツ単位の列のための論理コンテナおよび時間的構造化要素として
機能する。
視覚媒体上で提示される場合、span 要素は、
それぞれが 1 個以上のグリフ領域を含むインライン領域の列を
生成することを意図されている。
span 要素は、その子として
Metadata.class 要素グループ内の
0 個以上の要素に続き、
Animation.class
要素グループ内の 0 個以上の要素に続き、
Inline.class または
Embedded.class 要素グループ内の
0 個以上の要素を受け入れる。
Metadata.class
要素グループ内の子によって指定される任意のメタデータは、
span 要素およびその子孫全体にセマンティクス的に適用される。
Animation.class
要素グループ内の子によって指定される任意のアニメーション要素は、
span 要素にセマンティクス的に適用される。
<span animate = IDREFS begin = <time-expression> condition = <condition> dur = <time-expression> end = <time-expression> region = IDREF style = IDREFS timeContainer = ("par" | "seq") xlink:arcrole = <uri-list> xlink:href = <uri> xlink:role = <uri-list> xlink:show = ("new" | "replace" | "embed" | "other" | "none") : new xlink:title = xsd:string xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {any attributes in TT Metadata Namespace} {any attributes in TT Style Namespaces} Content: Metadata.class*, Animation.class*, (Inline.class|Embedded.class)* </span> |
著者は、style 属性、インラインスタイル属性、またはそれらの組み合わせの
いずれかによって、スタイルプロパティの集合を
span 要素に関連付けてもよい。
timeContainer 属性が
span 要素上に指定されない場合、それは
並列の時間包含セマンティクスを持つものとして解釈されなければならない。
リンク属性 xlink:* は、指定された場所(href)、
ロール、およびタイトルを使用して、span 要素を関連コンテンツに
リンクするために使用してもよい。リンクのアクティベーションの動作は
xlink:show 属性によって影響を受け、その正確な意味は
文書処理コンテキストによって決定される。
span 要素が xlink:href 属性を指定する場合、
入れ子の span 要素子孫は
xlink:href 属性を指定してはならず、指定した場合、後者は
提示またはアクティベーション処理の目的では無視されなければならない。
span 要素の子の列が
文字情報項目のみから構成される場合、
その列は、span 要素に適用されるスタイルプロパティを適用する目的で
匿名 spanであると
みなされなければならない。詳細については
[construct anonymous
spans] 手続きを参照。
br 要素は明示的な改行を表す。
Metadata.class
要素グループ内の子によって指定される任意のメタデータは、
br 要素およびその子孫全体にセマンティクス的に適用される。
Animation.class 子の使用は非推奨である。
注:
br 要素にはスタイル属性が適用されないため、アニメーションは
br に影響しない。
<br condition = <condition> style = IDREFS xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {any attributes in TT Metadata Namespace} {any attributes in TT Style Namespaces} Content: Metadata.class*, Animation.class* </br> |
視覚媒体上で提示される場合、br 要素の存在は
強制改行として解釈されなければならない。
注:
br 要素の視覚提示は、
テレタイプ装置上で提示されるときの制御文字
CR (U+000D)
に続く制御コード LF (U+000A) と同じ効果を生成することを
意図している。したがって、連続する 2 つの br 要素は、
1 つの br 要素とは異なる効果を生成する。
このセクションは、コア語彙カタログ内の多くの、またはすべての要素型で 使用される次の共通属性を定義する。
さらに、このセクションは、コア語彙カタログ内の特定の要素型で使用される 次のリンク語彙を定義する。
condition 属性は、要素(およびその子孫)を
セマンティクス処理から条件付きで除外するために使用され、
その場合、その要素は条件付き要素と呼ばれる。
注:
要素による condition 属性の使用は、その要素(およびその子孫)の
解析、またはその要素(およびその子孫)の解析済み表現を、包含する
文書インスタンスに関連付けられた
縮小 xml 情報集合へ挿入することの
いずれも妨げない。
condition 属性は、プロファイル事項、すなわち
Profile
Module の要素を除く、コア語彙カタログ内の任意の要素で使用してもよい。
condition 属性の値は、
<condition> 式に従わなければならず、
それは提示処理時(遅延評価)または提示処理時より前(先行評価)に評価される。
ここで先行評価は、評価から得られる値が提示処理中に変化できない、または
変化しないことが知られている場合にのみ発生してもよい。
注:
たとえば、条件式が 条件関数の値に依存する場合、 その条件式の値は提示処理中に変化する場合があり、その場合、先行評価は使用できない。
提示処理の目的において、要素が condition 属性を指定し、
その <condition> 式の値が
false と評価される場合、
その要素およびその子孫要素のセマンティクスは、明示的に例外とされない限り、
無視されなければならない。すなわち、その要素およびその子孫要素は、
それらの子孫要素上に指定された任意の
<condition> 式の評価にかかわらず、
条件付きで除外される。
注:
たとえば、p 要素が
false と評価される condition 属性を指定する場合、
その要素およびその子孫の内容は、提示目的では無視される。
注:
祖先要素の 1 つが条件付きで除外されることにより
条件付きで除外された要素では、
condition 属性の評価は要求されず(かつ関連しない)。
すなわち、祖先が条件付きで
除外されている場合、その要素は自身の condition 属性の評価によって
条件付きで含まれるようになることはできない。
注:
特定の場合、condition 属性によって要素のセマンティクスを
無視(除外)することは、要素のセマンティクスを全体的にではなく部分的に
無視することで構成される。これについては、以下のテキストおよび特定の要素定義を参照。
上位レベルプロトコルが適用されない限り、
<condition> 式の値が
false と評価される場合に、どのセマンティクスを無視するかを
決定する目的で、次の例外が適用される。
時限要素の タイミングセマンティクスは無視されない。
style 要素の
連鎖参照
セマンティクスは無視されない。
注:
上で述べた例外は、 条件付きで除外された要素の子孫にも適用される。
xlink:arcrole 属性は、[XLink
1.1]で定義されるように使用される。
xlink:href 属性は、[XLink 1.1]で定義されるように使用される。
xlink:role 属性は、[XLink 1.1]で定義されるように使用される。
xlink:show 属性は、[XLink 1.1]で定義されるように使用される。
xlink:title 属性は、[XLink 1.1]で定義されるように使用される。
xml:base 属性は、
[XML Base]で定義されるように使用される。
xml:base 属性は、(1)
condition 属性、
(2) Metadata.class 要素グループ内の
子孫要素、または
(3) xml:base 属性を認める子孫要素を認める、
コア語彙カタログ内の任意の要素で使用してもよい。
xml:lang 属性は、
[XML 1.0] §2.12 Language Identificationで
定義されるように使用される。
xml:lang 属性は tt 要素上に指定されなければならず、
パラメータ語彙を除くコア語彙カタログ内の任意の他の要素型の
インスタンスによって指定してもよい。
注:
[XML 1.0] §2.12 で指定されるように、 ある要素との言語の関連付けは、子孫によって上書きされない限り、 その要素のすべての子孫に適用される。言い換えれば、ある要素に 関連付けられた言語は、その要素上に指定されるか、または その要素の最も近い祖先要素から実効的に継承される。
この言語関連付けプロセスは、文書インスタンスの 縮小 xml 情報集合の構造のみに基づき、 中間共時的文書構築を実行する前に発生する。
コンテンツおよびメタデータ要素上の xml:lang の使用を次の例に示す。
<tt ... xml:lang=""> ... <p xml:lang="en">Jean said hello.</p> <p xml:lang="fr">Jean dit bonjour.</p> <p> <image src="#talking-image"> <ttm:item name="altText" xml:lang="en">Talking</ttm:item> <ttm:item name="altText" xml:lang="fr">Parlant</ttm:item> </image> </p> ... </tt> |
注:
この例では、ルート tt 要素は空の言語タグで識別されており、
これは不明または未指定の言語を意味する。この識別は、
(上書きされない限り)子孫要素に実効的に継承される。次に、最初の 2 つの
p(段落)要素は、それぞれ en(英語)および
fr(フランス語)の言語識別子に関連付けられる。最後に、3 番目の
p(段落)要素は前景画像から構成され、
名前付きメタデータ項目の使用によって
2 つの代替テキスト説明に関連付けられる。そしてこれらのテキスト説明は、
さらに en(英語)および fr(フランス語)の
言語識別子に関連付けられる。
xml:space 属性は、
[XML 1.0] §2.10 White Space Handlingで
定義されるように使用される。
xml:space 属性は、パラメータ語彙を除く
コア語彙カタログ内の任意の要素で使用してもよい。
注:
[XML 1.0] §2.10 で指定されるように、 要素に適用されるアプリケーション空白シグナリングは、子孫によって 上書きされない限り、その要素のすべての子孫に適用される。言い換えれば、 ある要素に適用されるアプリケーション空白シグナリングは、その要素上に 指定されるか、またはその要素の最も近い祖先要素から実効的に継承される。
このアプリケーション空白シグナリングプロセスは、 文書インスタンスの 縮小 xml 情報集合の構造のみに基づき、 中間共時的文書構築を実行する前に発生する。
値 default のセマンティクスは、
11.3.1.4 共時的フロー
処理で説明されるように
文書
インスタンスの提示処理を実行するとき、
等価な中間 XSL-FO 文書の影響を受ける要素上に次のプロパティが指定されたかのように
処理が行われなければならないことを意味するように固定される。
suppress-at-line-break="auto"
linefeed-treatment="treat-as-space"
white-space-collapse="true"
white-space-treatment="ignore-if-surrounding-linefeed"
同様に、値 preserve のセマンティクスは、
提示処理を実行するとき、等価な中間 XSL-FO 文書の影響を受ける要素上に
次のプロパティが指定されたかのように処理が行われなければならないことを
意味するように固定される。
suppress-at-line-break="retain"
linefeed-treatment="preserve"
white-space-collapse="false"
white-space-treatment="preserve"
正規化されていない水平タブ 	 (HT) 文字が、
縮小 xml 情報集合の
文字情報項目内に現れる場合、
視覚的に提示されるとき、そのタブ文字は単一の
 (SPACE) 文字であるかのように扱われる。
最終的にこの仕様で説明される以外の手段による視覚提示をもたらすことを
意図する他の種類の処理を実行する場合、上で説明した空白の折り畳みおよび
保持のセマンティクスは尊重されるべきである。他の種類の処理では、
xml:space 属性の扱いはプロセッサ依存であるが、可能であれば
上で説明したセマンティクスを尊重するべきである。
注:
上で引用した 4 つの XSL-FO プロパティのセマンティクスは、 [XSL-FO 1.1] §7.17.3、7.16.7、7.16.12、および 7.16.8 によって それぞれ定義される。
注:
TAB (U+0009) 文字には提示セマンティクスは指定されない。さらに、TAB
(U+0009) 文字はグリフ領域を生成できる。
その結果、p および span 要素内の
#PCDATA コンテンツで TAB (U+0009) 文字を使用することは
推奨されない。
コア語彙は次の式を使用してもよい。
<absolute-profile-designator> 値式は、(1) ローカルに定義されたプロファイルに 関連付けられた絶対指定子を定義するため、または (2) リモートで定義された プロファイルを参照するために使用される。
<absolute-profile-designator> : <absolute-uri> |
注:
現在のコンテキストでは、ローカルに定義されたとは現在の文書で定義されることを意味し、 リモートで定義されたとは別の文書で定義されることを意味する。
<absolute-uri> 値式は、絶対 URI [URI]を指定するために使用される。
<absolute-uri> : <uri> // absolute form only |
<absolute-uri> 値式のコンテキストでは、 <uri> 式の値構文は、 [URI] §4.3 で定義される URI の絶対形式に 従わなければならない。
<arguments> 値は、
<expression> 値の
function-expression 非終端記号とともに使用される部分式である。
<arguments>
: "(" <lwsp>? ")"
| "(" <lwsp>? argument-list <lwsp>? ")"
argument-list
: <expression> (<lwsp>? "," <lwsp>? <expression>)*
|
<bound-parameter> 値は、 コンテンツプロセッサによって値に束縛される 名前付きパラメータの列挙された集合の 1 つである。
<bound-parameter> : "forced" | "mediaAspectRatio" | "mediaLanguage" | "userLanguage" |
forcedコンテンツプロセッサが
強制字幕を有効にして動作しているかどうかを
表す真偽値に評価される。
文書インスタンスで使用される場合、
head 要素の子として
usesForced
名前付きメタデータ項目を指定するべきである。
mediaAspectRatio
関連メディアオブジェクトの アスペクト比に等しい数値に評価される。
mediaLanguage関連メディアオブジェクトの (主要)言語に等しい文字列値に評価される。
userLanguage文書処理コンテキストによって 決定されるユーザーの(主要)言語に等しい文字列値に評価される。
<condition> 値は、 コンテンツ処理中に条件付き要素の セマンティクスを尊重するか無視するかを決定するために使用される 二値に評価される式を指定するために使用される。
<condition> : <expression> |
<condition> 値に現れる function-expression は、
<condition-function> 式の形式を
取らなければならない。
<condition-function> 値は、 <condition> 値式で使用してもよい部分式である。
<condition-function> : <media-function> | <parameter-function> | <supports-function> |
<expression> 値は、 <condition> 値の部分式である。
<expression> : logical-or-expression logical-or-expression : logical-and-expression | logical-or-expression <lwsp>? "||" <lwsp>? logical-and-expression logical-and-expression : equality-expression | logical-and-expression <lwsp>? "&&" <lwsp>? equality-expression equality-expression : relational-expression | equality-expression <lwsp>? "==" <lwsp>? relational-expression | equality-expression <lwsp>? "!=" <lwsp>? relational-expression relational-expression : additive-expression | relational-expression <lwsp>? "<" <lwsp>? additive-expression | relational-expression <lwsp>? ">" <lwsp>? additive-expression | relational-expression <lwsp>? "<=" <lwsp>? additive-expression | relational-expression <lwsp>? ">=" <lwsp>? additive-expression additive-expression : multiplicitive-expression | additive-expression <lwsp>? "+" <lwsp>? multiplicitive-expression | additive-expression <lwsp>? "-" <lwsp>? multiplicitive-expression multiplicitive-expression : unary-expression | multiplicitive-expression <lwsp>? "*" <lwsp>? unary-expression | multiplicitive-expression <lwsp>? "/" <lwsp>? unary-expression | multiplicitive-expression <lwsp>? "%" <lwsp>? unary-expression unary-expression : primary-or-function-expression | "+" <lwsp>? unary-expression | "-" <lwsp>? unary-expression | "!" <lwsp>? unary-expression primary-or-function-expression : primary-expression | function-expression primary-expression : identifier | literal | "(" <lwsp>? expression <lwsp>? ")" function-expression : identifier <arguments> identifier : xsd:NCName literal : boolean-literal | numeric-literal | string-literal boolean-literal : "true" | "false" numeric-literal : decimal-literal decimal-literal : decimal-integer-literal "." decimal-digits? exponent-part? | decimal-integer-literal exponent-part? | "." decimal-digits exponent-part? decimal-integer-literal : "0" | non-zero-digit decimal-digits? decimal-digits : decimal-digit | decimal-digits decimal-digit decimal-digit : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" non-zero-digit : "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" exponent-part : exponent-indicator signed-integer exponent-indicator : "e" | "E" signed-integer : decimal-digits | "+" decimal-digits | "-" decimal-digits string-literal : <quoted-string> |
注:
疑義を避けるため、
identifier トークンと、後続する
function-expression の
<arguments> 式の最初の開き括弧
'(' 文字との間には、線形空白 (LWSP) が許可されないことに注意すること。
<fragment-profile-designator> 値式は、ローカルプロファイルを参照により 指定するために使用される。
<fragment-profile-designator> : <fragment-uri> |
<fragment-uri> 値式は、フラグメント URI [URI]を指定するために使用される。
<fragment-uri> : <uri> // fragment component only |
<fragment-uri> 値式のコンテキストでは、 <uri> 式の値構文は、 [URI] §3 および §3.5 で定義される URI の フラグメントコンポーネントに従わなければならない。すなわち、スキーム、 オーソリティ、パス、およびクエリコンポーネントは空(未指定)であり、 フラグメントコンポーネントのみが非空(指定済み)である。
<media-function> 値は、 関連メディア オブジェクトまたは 文書処理コンテキストに対して メディアクエリを実行するために、 <condition> 値式で使用してもよい 部分式である。
<media-function>
: "media(" <lwsp>? media-query <lwsp>? ")"
media-query
: <quoted-string>
|
<media-function> 値式の media-query 引数は、
[Media
Queries] §3 で定義される media_query_list の構文に
従わなければならない。
<media-function> 値式は、指定されたメディアクエリが
true と評価される場合は true に評価され、
そうでなければ、その値式は false に評価される。
<media-function> 式のセマンティクスがサポートされない場合、
その式は false に評価されなければならない。
<profile-designator> 値式は、プロファイルを定義する目的または 定義済みプロファイルを参照する目的で、プロファイルを指定するために使用される。
<profile-designator> : <absolute-profile-designator> | <relative-profile-designator> | <fragment-profile-designator> |
<parameter-function> 値は、 文書処理コンテキストの 名前付きパラメータを取得するために、 <condition> 値式で使用してもよい 部分式である。
<parameter-function>
: "parameter(" <lwsp>? parameter-name <lwsp>? ")"
parameter-name
: <quoted-string>
|
引用解除されたとき、<parameter-function> 値式の
parameter-name 引数は
xsd:NCName に
従わなければならず、それはさらに
<bound-parameter> によって
列挙される値の 1 つでなければならない。
<parameter-function> 値式は、 指定されたパラメータ名に関連付けられた(束縛された)値に評価される。
<quoted-string> 値式は、二重引用符または単一引用符で囲まれた文字列を 指定するために使用される。
<quoted-string> : double-quoted-string | single-quoted-string double-quoted-string : '"' ([^"\\] | escape)* '"' single-quoted-string : "'" ([^'\\] | escape)* "'" escape : '\\' char |
注:
疑義を避けるため、引用文字列式では線形空白 (LWSP) が許可されるが、 時限テキスト文書インスタンスから 縮小 xml 情報集合を構築するときに、 XML 属性値正規化の対象となることに注意すること。
<relative-profile-designator> 値式は、相対プロファイル指定子を絶対化するための 基底 URI として機能する TT プロファイル名前空間に関して、 標準化されたプロファイルを参照するために使用される。
<relative-profile-designator> : <relative-uri> |
注:
たとえば、相対プロファイル指定子が
ttml2-presentation として表現される場合、絶対化されたプロファイル指定子は
http://www.w3.org/ns/ttml/profile/ttml2-presentation
となる。
<relative-uri> 値式は、相対 URI [URI]を指定するために使用される。
<relative-uri> : <uri> // no scheme component present |
<relative-uri> 値式のコンテキストでは、 <uri> 式の値構文は、 [URI] §3 で定義される URI の相対形式に 従わなければならない。すなわち、スキームおよびオーソリティコンポーネントは 空(未指定)であるが、パス、および任意でクエリおよびフラグメントコンポーネントが 指定される。
<supports-function> 値は、指定された 機能または拡張が サポートされるかどうかを表す真偽値を取得するために、 <condition> 値式で使用してもよい 部分式である。
<supports-function>
: "supports(" <lwsp>? feature-or-extension-designator <lwsp>? ")"
feature-or-extension-designator
: <quoted-string>
|
<supports-function> 値式の feature-or-extension-designator 引数は、
E.1 機能指定および
F.1 拡張指定でそれぞれ定義される
機能指定または拡張指定を表現しなければならない。ここで、指定の
feature-namespace または extension-namespace コンポーネントは
任意であり、指定されない場合、それぞれ TT Feature Namespace または
TT Extension Namespace に等しいものとみなされる。
<supports-function> 値式は、指定された機能または拡張指定子が
コンテンツ
プロセッサによって(セマンティクス的に)サポートされる場合、
true に評価される。
<uri> 値式は、URI [URI]を指定するために使用される。
<uri> : xsd:anyURI |
xsd:anyURI データ型の値構文は、
[XML Schema Part 2] §3.2.17 で指定される定義に
従わなければならない。
このセクションは、コア語彙カタログの埋め込みコンテンツ事項を規定する。 ここで、このコンテキストにおける コンテンツとは任意のコンテンツ型(形式)のデータとして理解され、 埋め込みとは、このデータの埋め込み(インライン化)または外部データへの参照の 埋め込みを指す。
次の要素は、埋め込みコンテンツを指定するために使用してもよい。
9.1.3 data 要素は、 埋め込みデータリソースのための 汎用コンテナ要素として機能し、そのリソースは chunk に断片化される場合もされない場合もある。 その場合、データ断片は 9.1.2 chunk 要素を使用して表される。 9.1.1 audio、 9.1.4 font、および 9.1.5 image 要素は、 特定の種類の埋め込みコンテンツを参照するために使用される特殊化された要素である。 9.1.6 resources 要素は、 後続の要素による参照のために埋め込みコンテンツの定義をグループ化するために使用される。 9.1.7 source 要素は、 埋め込みコンテンツのソースを表すために使用してもよい。
audio 要素は、音声リソースを定義または参照するために使用される。
audio 要素は 2 つのコンテキストに現れてもよい。(1) resources 要素の子として、
および
(2) Block.class 要素グループ内の要素の子として、
すなわち
div または
p 要素の子として、または
span 要素の子としてである。
前者は
音声定義コンテキストと呼ばれ、後者は
音声提示コンテキストと呼ばれる。
audio 要素が音声
定義コンテキストに現れる場合、それは
包含文書インスタンス内の
他の audio 要素から参照されてもよい
音声リソースの共有可能な定義として機能する。
注:
音声リソースの共有可能な定義は、
音声
提示コンテキスト内の audio 要素から参照されるために、
xml:id 属性を指定する。
audio 要素が
音声提示コンテキストに現れる場合、
それは提示(レンダリング)セマンティクス、すなわち再生されることを意図していることを含意する
音声リソースの非共有可能な定義として機能する。
注:
音声リソースの非共有可能な定義は、
xml:id 属性を指定してもよく
指定しなくてもよいが、この識別子は他の audio 要素から参照されない。
または参照されたとしても、その参照は無視される。
audio 要素は、その子として、
Metadata.class 要素グループ内の
0 個以上の要素に続き、
Animation.class 要素グループ内の
0 個以上の要素に続き、0 個以上の
source 要素を受け入れる。
注:
audio 要素のテキストノード子孫は、
[construct anonymous spans] 手続きを
実行する目的では、有意なテキストノードではない。
<audio animate = IDREFS begin = <time-expression> clipBegin = <time-expression> clipEnd = <time-expression> condition = <condition> dur = <time-expression> end = <time-expression> src = <audio> style = IDREFS timeContainer = ("par" | "seq") type = xsd:string xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {any attributes in TT Style Namespaces} {any attributes in TT Metadata Namespace} Content: Metadata.class*, Animation.class*, source* </audio> |
audio 要素は、(1)
組み込みデータリソースを参照すること、
(2) 外部データリソースを参照すること、または
(3) 埋め込みデータリソースを
定義または参照することによって、音声リソースを
指定する。ここで データリソースは音声コンテンツを含む。
audio 要素が
src 属性を指定する場合、
子 source 要素を
指定してはならない。逆に、audio 要素が
src 属性を指定しない場合、
1 個以上の子
source 要素を指定しなければならない。
audio 要素が
src 属性を指定し、その値が
包含文書インスタンスの断片を
参照しない場合、type 属性を
指定するべきであり、その場合、
type 属性の値は
参照されるリソースのメディア(コンテンツ)型に対応しなければならない。
そうでない場合、type 属性は指定してはならない。
指定される場合、clipBegin 属性の値は
12.3.1 <time-expression>の
offset-time 形式に従わなければならず、その場合、この式の値は
参照される音声コンテンツの開始に相対的な通常再生時刻オフセットを表し、
音声提示が開始する点を指定する。
この指定値が参照される音声コンテンツの内在的継続時間より大きい場合、
clipBegin の解決済み値は内在的継続時間であるとみなされる。
clipBegin 属性が指定されない場合、値 0 が適用される。
同様に、指定される場合、clipEnd 属性の値は
12.3.1 <time-expression>の
offset-time 形式に従わなければならず、その場合、この式の値は
参照される音声コンテンツの開始に相対的な通常再生時刻オフセットを表し、
提示が停止する点を指定する。
この指定値が参照される音声コンテンツの内在的継続時間より大きい場合、
clipEnd の解決済み値は内在的継続時間であるとみなされる。
clipEnd 属性が指定されない場合、音声コンテンツの内在的継続時間に等しい値が
適用される。
audio 要素の使用を次の例に示す。
... <audio src="http://example.com/audio/description.mp3" type="audio/mp3"/> ... |
chunk 要素は、データの個別の chunk(断片)を表すために使用される。
chunk 要素は、
data 要素の子として現れてもよい。
<chunk condition = <condition> encoding = ("base16" | "base32" | "base32hex" | "base64" | "base64url") : base64 length = xsd:nonNegativeInteger xml:base = <uri> xml:id = ID Content: #PCDATA </chunk> |
encoding 属性が
指定される場合、それは chunk 要素によって表されるバイト列の
実際の符号化を表さなければならない。
encoding 属性が
指定されない場合、符号化は base64 であるとみなされなければならない。
length 属性が指定される場合、それは
chunk 要素によって表されるバイト列内の復号済みバイト数を
表さなければならない。復号時に、指定された length 値が復号済みバイト数と
一致しない場合、その chunk およびそのコンテナ data 要素は
長さゼロのバイト列を返さなければならない。
length 属性が指定されない場合、その chunk は実際の復号済みバイト数に等しい
長さを持つものとみなされる。
chunk 化されたデータの使用を次の例に示す。
...
<data type="text/plain; charset=us-ascii" length="44">
<chunk length="19">
VGhlIHF1aWNrIGJyb3duIGZveA==
</chunk>
<chunk length="25">
IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLg==
</chunk>
</data>
...
|
data 要素は、任意のデータのための汎用コンテナまたは参照として機能する。
data 要素は 3 つのコンテキストに現れてもよい。
(1) resources 要素の子として、
これはデータ定義コンテキストと呼ばれる。
(2) metadata 要素の子として、
これはメタデータ用データ束縛コンテキストと
呼ばれる。または
(3) source 要素の子として、
これはソース用データ束縛コンテキストと
呼ばれる。そしてこれら後者 2 つのコンテキストは総称して
データ束縛コンテキストと呼ばれる。
data 要素が
データ定義コンテキストに現れる場合、
それは、(1) 別の data 要素、
(2) 埋め込みコンテンツ要素、または
(3) source 要素の
src 属性から参照されてもよい
データリソースの共有可能な定義として機能する。
この場合、data 要素のコンテキスト化されたアクティブ時間区間は、
親の resources 要素の
アクティブ時間区間と、その参照元要素のアクティブ時間区間との共通部分である。
注:
データリソースの共有可能な定義は、
データ束縛コンテキストで使用される
フラグメント識別子によって参照されるために、
xml:id 属性を指定する。
data 要素が
データ束縛コンテキストに現れる場合、
それは束縛セマンティクス、すなわち参照の直接のコンテキストに束縛される
(関連付けられる)ことを意図していることを含意する、データリソースの
非共有可能な定義として機能する。この場合、data 要素の
アクティブ時間区間は、最も近い祖先
時限要素のアクティブ時間区間と同じである。
注:
データリソースの非共有可能な定義は、
xml:id 属性を指定してもよく
指定しなくてもよいが、この識別子は他の
データ束縛コンテキストでは参照されない。
または参照されたとしても、束縛セマンティクスを持たない。
data 要素は、次の 3 つの内容モデルのいずれかを受け入れる。
(1) 1 個以上のテキストノード(すなわち #PCDATA)、
(2) Metadata.class 要素グループ内の
0 個以上の要素に続く 1 個以上の
chunk 要素、または
(3) Metadata.class 要素グループ内の
0 個以上の要素に続く 1 個以上の
source 要素である。
ここで、第 1 のものは単純データ埋め込み、
第 2 のものはchunk 化データ埋め込み、
第 3 のものはソース付きデータ埋め込みと呼ばれる。
単純データ埋め込みが使用される場合、
データリソースは #PCDATA 内容を復号することによって取得される。
chunk 化データ埋め込みが使用される場合、
データリソースは、各子
chunk 要素を復号して得られる
バイト列を連結することによって取得される。
ソース付きデータ埋め込みが使用される場合、
データリソースは、最初に解決可能な子
source 要素から取得される。
さらに、子 source 要素は
data 要素を含んではならないが、
データ定義コンテキスト内の
data 要素を参照してもよい。
<data condition = <condition> encoding = ("base16" | "base32" | "base32hex" | "base64" | "base64url") : see prose below format = <data-format> length = xsd:nonNegativeInteger src = <data> type = xsd:string : see prose below xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: #PCDATA | (Metadata.class*, chunk+) | (Metadata.class*, source+) </data> |
単純データ埋め込みが使用される場合、すなわち data 要素の内容が
1 個以上のテキストノードである場合、
encoding 属性を
指定してもよく、指定されない場合は base64 であると
みなされなければならない。
chunk 化またはソース付きデータ埋め込みが使用される場合、すなわち
data 要素の内容が子
chunk または
source 要素を含む場合、
encoding 属性を
指定してはならず、指定された場合、コンテンツ処理の目的では無視されなければならない。
length 属性が指定される場合、それは
data 要素によって表されるバイト列内の復号済みバイト数を
表さなければならない。復号時に、指定された length 値が復号済みバイト数と
一致しない場合、長さゼロのバイト列が返されなければならない。
length 属性が指定されない場合、データリソースは実際の復号済みバイト数に
等しい長さを持つものとみなされる。
ソース付きデータ埋め込みを使用する場合、length 属性を指定してはならない。
注:
length 属性の意図は、復号済みデータに対して単純な完全性検査を
実行する手段を提供することである。この検査は転送中のデータ完全性を保証しないことに
注意。すなわち、length を変更せずにデータが変更される可能性がある。
単純または chunk 化データ埋め込みが使用される場合、
type 属性を指定しなければならず、
データリソースのメディア(コンテンツ)型に対応しなければならない。
これらの場合、定義された型が存在しない場合は、
型 application/octet-stream を使用するべきである。
ソース付きデータ埋め込みの場合、解決された
source 要素のメディア(コンテンツ)型が
型として使用される。
type 属性が指定または解決されない、
または application/octet-stream などの汎用型として指定され、
参照されるデータリソースについて、
Media Type [MIME Media Types] パラメータで表現できない
追加形式情報が既知である場合、
format 属性を
コンテンツプロセッサへのヒントとして指定してもよい。
単純データ埋め込みの使用を次の例に示す。
<head>
<resources>
<data xml:id="sharedImageData" type="image/png" length="119">
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=
</data>
<image xml:id="sharedImage">
<source src="#sharedImageData"/>
</image>
</resources>
</head>
...
<body xmlns:tts="http://www.w3.org/ns/ttml#styling">
<div tts:backgroundImage="#sharedImage"/>
<div tts:backgroundImage="#sharedImage"/>
</body>
|
<div>
<metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
<ttm:desc>caption with metadata containing tunneled data</ttm:desc>
<data encoding="base64">
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=
</data>
</metadata>
<p>Caption with Tunneled Data</p>
</div>
|
<div>
<image>
<source>
<data type="image/png" length="119">
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=
</data>
</source>
</image>
</div>
|
font 要素は、フォント
リソースを定義または参照するために使用される。
font 要素は
resources 要素の子として
現れてもよく、これは
フォント定義コンテキストと呼ばれる。
font 要素は、その子として、
Metadata.class 要素グループ内の
0 個以上の要素に続き、0 個以上の
source 要素を受け入れる。
<font condition = <condition> family = xsd:string range = <unicode-range> style = ("normal" | "italic" | "oblique") : see prose below src = <font> type = xsd:string weight = ("normal" | "bold") : see prose below xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: Metadata.class*, source* </font> |
font 要素は、(1)
組み込みデータリソースを参照すること、
(2) 外部データリソースを参照すること、または
(3) 埋め込みデータリソースを
定義または参照することによって、フォントリソースを
定義する。ここで データリソースはフォントコンテンツを含む。
font 要素が
src 属性を指定する場合、
子 source 要素を
指定してはならない。逆に、font 要素が
src 属性を指定しない場合、
1 個以上の子
source 要素を指定しなければならない。
font 要素が
src 属性を指定し、その値が
包含文書インスタンスの断片を
参照しない場合、type 属性を
指定するべきであり、その場合、
type 属性の値は
参照されるリソースのメディア(コンテンツ)型に対応しなければならない。
そうでない場合、type 属性は指定してはならない。
family、range、style、または
weight 属性のいずれかが指定される場合、それらは実際の
フォントリソースのファミリ名、サポートされる文字範囲、
スタイル、およびウェイトを上書きする。特に、指定された属性値が
フォントリソース内に符号化されたこれらのフォント特性の
値と異なる場合、フォントリソース内に符号化された
フォント特性の代わりに、指定された属性値が使用されるべきである。
family、range、style、または
weight 属性のいずれかが指定されない場合、それらの値は
フォントリソース内に符号化された同名のフォント特性の
値と等しいものとみなされなければならない。
注:
著者は、可能な限りサブセットフォントを使用することが推奨される。 サブセットフォントとは、参照されないグリフおよび参照されないグリフメトリックを 除去した、構文的に妥当な フォントリソースである。一般に、サブセットフォントは、 その文書の実際の文字内容に基づいて生成された可能性があるため、 特定の文書に結び付けられる。
フォントリソースを逆参照(ダウンロード)する目的で、 コンテンツプロセッサは、 必要な(変換または提示)処理を実行するためにフォントリソースの内容が必要になる時点まで、 ダウンロード処理を延期してもよい。
font 要素の使用を次の例に示す。
...
<head>
<resources>
<data xml:id="lastResortFont" type="application/font-woff">
... base64 encoded data ...
</data>
<font family="MyFont" range="u+20-7f,u+90-9f">
<source src="http://example.com/fonts/myfont.otf" type="font/otf"/>
<source src="#lastResortFont"/>
</font>
</resources>
</head>
...
<p tts:fontFamily="MyFont">use my font or last resort font</p>
...
|
image 要素は、画像リソースを定義または参照するために使用される。
image 要素は 2 つのコンテキストに現れてもよい。(1)
resources 要素の子として、
および
(2) Block.class 要素グループ内の要素の子として、
すなわち
div または
p 要素の子として、または
span 要素の子としてである。
前者は
画像定義コンテキストと呼ばれ、後者は
画像提示コンテキストと呼ばれる。
image 要素が画像
定義コンテキストに現れる場合、それは、別の image 要素、
または包含文書インスタンス内の
tts:backgroundImage
スタイル属性によって参照されてもよい
画像リソースの共有可能な定義として機能する。
注:
画像リソースの共有可能な定義は、
画像提示コンテキスト内の
image 要素、または
tts:backgroundImage
スタイル属性によって参照されるために、
xml:id 属性を指定する。
image 要素が
画像提示コンテキストに現れる場合、
それは提示(レンダリング)セマンティクスを含意する
画像リソースの非共有可能な定義として機能する。
注:
画像リソースの非共有可能な定義は、
xml:id 属性を指定してもよく
指定しなくてもよいが、この識別子は他の image 要素から参照されない。
または参照されたとしても、その参照は無視される。
image 要素が
div 要素の子として現れる場合、
その提示は、画像がレンダリングされるブロック領域を生成する。すなわち、
image 要素の前後にブロック境界が含意される。これに対し、
image 要素が
p または
span 要素の子として現れる場合、
その提示は、画像がレンダリングされるインライン領域を生成する。すなわち、
image 要素の前後にブロック境界は含意されない。
注:
[CSS2] では、これらのセマンティクスは、
image 要素がそれぞれ block または
inline の値を持つ display スタイルプロパティに
関連付けられることに対応する。
tts:backgroundImage
スタイル属性によって参照される
画像リソースの提示は、コンテンツレイアウトに
影響してはならない。
image 要素は、その子として、
Metadata.class 要素グループ内の
0 個以上の要素に続き、
Animation.class 要素グループ内の
0 個以上の要素に続き、
0 個以上の source 要素を受け入れる。
注:
image 要素のテキストノード子孫は、
[construct anonymous spans] 手続きを
実行する目的では、有意なテキストノードではない。
<image animate = IDREFS begin = <time-expression> condition = <condition> dur = <time-expression> end = <time-expression> region = IDREF src = <image> style = IDREFS timeContainer = ("par" | "seq") type = xsd:string xlink:arcrole = <uri-list> xlink:href = <uri> xlink:role = <uri-list> xlink:show = ("new" | "replace" | "embed" | "other" | "none") : new xlink:title = xsd:string xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {any attributes in TT Style Namespaces} {any attributes in TT Metadata Namespace} Content: Metadata.class*, Animation.class*, source* </image> |
image 要素は、(1)
組み込みデータリソースを参照すること、
(2) 外部データリソースを参照すること、または
(3) 埋め込みデータリソースを
定義または参照することによって、画像リソースを
定義する。ここで データリソースは画像コンテンツを含む。
image 要素が
src 属性を指定する場合、
子 source 要素を
指定してはならない。逆に、image 要素が
src 属性を指定しない場合、
1 個以上の子
source 要素を指定しなければならない。
image 要素が
src 属性を指定し、その値が
包含文書インスタンスの断片を
参照しない場合、type 属性を
指定するべきであり、その場合、
type 属性の値は
参照されるリソースのメディア(コンテンツ)型に対応しなければならない。
そうでない場合、type 属性は指定してはならない。
image 要素は、内在的な幅または高さ情報が利用できない場合、または
上書きすることを意図する場合に画像の提示幅または高さを指定するために、
tts:extent
スタイル属性を指定してもよい。この属性が
画像提示コンテキスト内の
image 要素と、前者が参照する
画像定義コンテキスト内の
image 要素の両方に指定される場合、
前者に指定された属性が後者に指定されたものより優先される。
tts:extent スタイル属性が適用される画像の
提示は、指定された範囲の幅および高さを得るために、
(場合によってはアナモルフィックな)拡大縮小操作の対象となる。
リンク属性 xlink:* は、指定された場所(href)、
ロール、およびタイトルを使用して、image 要素を関連コンテンツに
リンクするために使用してもよい。リンクのアクティベーションの動作は
xlink:show 属性によって影響を受け、その正確な意味は
文書処理コンテキストによって決定される。
image が
画像定義コンテキストに現れる場合、次の追加制約が
適用される。
属性
animate、
begin、
dur、
end、
region、および
timeContainerは
指定してはならず、現れた場合、提示処理の目的では無視されなければならない。
Animation.class 要素グループの
要素は子要素として現れてはならず、現れた場合、提示処理の目的では
無視されなければならない。
image 要素の使用を次の例に示す。
<div> <p>This division has a content image that appears as a block area after this paragraph.</p> <image src="http://example.com/images/caption.png" type="image/png"/> <div> ... <div tts:backgroundImage="http://example.com/images/background.png"> <p>This division has a background image that appears under this paragraph.</p> <div> ... |
<head>
<resources>
<data xml:id="caption" type="image/png" length="119">
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=
</data>
</resources>
</head>
<body>
<div>
<p>
<image>
<source src="#caption"/>
</image>
<p>
...
<p>
<image>
<source src="#caption"/>
</image>
<p>
</div>
</body>
|
<div>
<image>
<source src="http://example.com/images/caption.png" type="image/png"/>
<source>
<data type="image/png" length="119">
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=
</data>
</source>
</image>
</div>
|
注:
image 要素は、
[SMPTE ST 2052-1]で導入された
#image 拡張の機能を取り込み、拡張する。特に、
コンテンツ画像を参照する
smpte:backgroundImage 属性は、
その src 属性が
smpte:backgroundImage 属性の値と等しい image 要素へ
対応付けることができる。
resources 要素は、この埋め込みコンテンツに適用されるメタデータを含む
埋め込みコンテンツの定義をグループ化するために使用されるコンテナ要素である。
resources 要素は、その子として
Metadata.class 要素グループ内の
0 個以上の要素に続き、
Data.class、
Embedded.class、または
Font.class 要素グループ内の
0 個以上の要素を受け入れる。
<resources xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: Metadata.class*, (Data.class|Embedded.class|Font.class)* </resources> |
時間セマンティクスが resources 要素の内容に適用される範囲において、
この要素の暗黙の時間区間は
ルート時間範囲と同一の始点および終点を持つものとして
定義される。
source 要素は、
埋め込みコンテンツリソースのソースを
指定するために使用される。
source 要素は、その子として
Metadata.class 要素グループ内の
0 個以上の要素に続き、0 個または 1 個の
data 要素を受け入れる。
source 要素が
src 属性を指定する場合、
子 data 要素を
指定してはならない。その場合、
src 属性が外部リソースを
参照するなら、それは外部ソースと呼ばれ、
src 属性が
包含文書インスタンス内の
埋め込みリソースを参照するなら、
非入れ子埋め込みソースと呼ばれる。
source 要素が
src 属性を指定しない場合、
子 data 要素を
指定しなければならず、その場合、それは
入れ子埋め込みソースと呼ばれる。
source 要素は、祖先 source 要素を持ってはならない。
<source condition = <condition> format = <data-format> src = <data> type = xsd:string xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: Metadata.class*, data? </source> |
format 属性が指定される場合、
それは埋め込みコンテンツの形式(すなわち形式構文)に関する追加のヒント情報を
提供する。そのような情報は、標準メディア(コンテンツ)型ラベルが定義されていない場合、
または情報を Media Type パラメータ
[MIME Media Types]で表現できない場合に有用であることがある。
source 要素の使用コンテキストに応じて、この属性の値にはさらに
制約が課される場合がある。
src 属性が指定され、
その値が包含
文書インスタンスの断片を参照する場合、
その断片によって識別される、すなわちその値がフラグメント識別子と一致する
xml:id 属性を持つ
resources 要素の子
data 要素が存在しなければならない。
src 属性が指定され、
その値が
包含文書インスタンスの断片を参照しない場合、
type 属性を指定するべきであり、
その場合、それは参照されるリソースのメディア(コンテンツ)型に対応しなければならない。
src 属性が指定され、
その値が
包含文書インスタンスの断片を参照する場合、
type 属性を指定してはならない。
むしろ、埋め込みリソースのコンテンツ型は、参照または埋め込みされた
data 要素上の
type 属性の値によって決定される。
source 要素の使用を次の例に示す。
... <image> <source src="http://example.com/images/caption.png" type="image/png"/> </image> ... |
... <data xml:id="caption" type="image/png" length="119"> iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII= </data> ... <image> <source src="#caption"/> </image> ... |
...
<image>
<source>
<data type="image/png" length="119">
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=
</data>
</source>
</image>
...
|
このセクションは、特定の埋め込みコンテンツ要素語彙とともに使用するための 次の属性を定義する。
encoding 属性は、データの符号化形式を指定するために使用される。
encoding 属性は、次の要素型のインスタンスによって指定してもよい。
指定される場合、encoding 属性の値は
[Data Encodings]で定義される次の値のいずれかを
取らなければならない。
base16
base32
base32hex
base64
base64url
指定されない場合、base64 セマンティクスが適用される。
format 属性は、
type 属性によって提供される
メディア(コンテンツ)型情報を超えて、埋め込みコンテンツリソースの
メディア(コンテンツ)形式に関するヒントを指定するために使用される。
注:
format 属性は、登録済みのメディア(コンテンツ)型が存在しない場合、
たとえばメディア(コンテンツ)型が利用できない場合、または
application/octet-stream などの汎用型が使用される場合に有用である。
format 属性は、次の要素型のインスタンスによって指定してもよい。
format 属性の値は、
<data-format> 式に
従わなければならない。
使用コンテキストに応じて、追加の制約が適用される場合がある。
src 属性は、データリソースの場所、またはその場所に対応付けられる
識別子を指定するために使用される。
src 属性は、次の要素型のインスタンスによって指定してもよい。
指定される場合、src 属性の値は
<uri> 値構文の値構文に従わなければならない。
使用コンテキストに応じて、追加の制約が適用される場合がある。
type 属性は、データリソースのメディア(コンテンツ)型を指定するために
使用され、データを特徴付ける追加パラメータを表してもよい。
type 属性は、次の要素型のインスタンスによって指定してもよい。
指定される場合、type 属性の値は、
[MIME] §5.1 で定義される
Content-Type MIME ヘッダーの値構文に従わなければならない。
指定されない場合、メディア(コンテンツ)型は不明または意図的に未指定である。
type 属性が指定されたデータリソースを復号するとき、
コンテンツ処理は、それが正しいかどうかにかかわらず、指定された型を尊重しなければならない。
すなわち、type 属性がデータリソースの型を誤指定している場合でも、
コンテンツ処理はコンテンツスニッフィングを実行してその型を上書きしようとしてはならない。
埋め込みコンテンツ要素および特定のスタイルプロパティ値は、次の式を使用する。
<audio> 値式は、参照によって 音声リソースを指定するために使用される。
<audio> : <uri> |
<audio> 値式が裸の
フラグメント識別子の形式を取る場合、
そのフラグメント識別子は、
包含文書インスタンス内の
resources 要素の子である
audio 要素を
参照しなければならない。
<audio> 値式が
http://www.w3.org/ns/ttml/resource/#empty の値を取る場合、
参照される音声リソースは
空データリソースである。
<audio> 値式が
http://www.w3.org/ns/ttml/resource/#speech の値を取る場合、
音声合成プロセッサがサポートされ
有効化されているなら、
参照される音声リソースは
音声データリソースである。
そうでなければ(音声合成プロセッサが
サポートされない、またはサポートされているが無効化されている場合)、
参照される音声リソースは
空データリソースである。
<data> 値式は、参照によってデータリソースを指定するために使用される。
<data> : <uri> |
<data> 値式が
フラグメント識別子の形式を取る場合、
そのフラグメント識別子は、
包含文書インスタンス内の
resources 要素の子である
data 要素を
参照しなければならない。
<data-format> 式は、データリソースの形式を指定するために使用される。 追加形式情報は、登録済みのメディア(コンテンツ)型を欠くデータリソースの場合に 有用である。
<data-format> : xsd:NCName | <uri> |
format 式が <uri> 値の形式を取る場合、 それは絶対 URI を表さなければならない。
注:
この仕様は、データコンテンツとともに使用する format トークンの集合を標準化しない。
著者は、一般に使用されているトークンを使用すること、またはそれがない場合は、
私用トークンを形成するために接頭辞 "x-" を追加することが推奨される。
<font> 式は、参照によって フォントリソースを指定するために使用される。
<font> : <uri> |
<font> 式が
フラグメント識別子の形式を取る場合、
そのフラグメント識別子は、
包含文書インスタンス内の
resources 要素の子である
font 要素を
参照しなければならない。
<image> 式は、参照によって 画像リソースを指定するために使用される。
<image> : <uri> |
<image> 式が
フラグメント識別子の形式を取る場合、
そのフラグメント識別子は、
包含文書インスタンス内の
resources 要素の子である
image 要素を
参照しなければならない。
<unicode-range> 式は、単一のコードポイントまたはコードポイント範囲を列挙することにより、 Unicode コードポイントの集合を指定するために使用される。
<unicode-range> : range (<lwsp>? "," <lwsp>? range)* range : codepoint | codepoint "-" codepoint codepoint : ("U"|"u") "+" hexdigit-or-wildcard{1,6} hexdigit-or-wildcard : <hex-digit> | "?" |
このセクションは、コア語彙カタログのスタイリング事項を規定する。 ここで スタイリングとは、コンテンツに適用され、そのコンテンツの提示に関する 著者の意図を表す、分離可能な情報の層として理解される。
スタイリング属性は、提示に関する著者の意図を 自己完結した文書内に含めることを可能にするため、TTML に含まれている。 このセクションは、標準処理モデルの観点から スタイル提示のセマンティクスを説明する。TTML プロセッサは、 文書インスタンスを特定の方法で提示することを 要求されない。 しかし、このモデルと整合する外部から観察可能な結果を提供する TTML 提示プロセッサによる このモデルの実装は、文書の著者が意図した体験に近く似たユーザー体験につながる 可能性が高い。
注:
TTML スタイル提示のセマンティクスは、 [XSL-FO 1.1]で定義されるレイアウトおよびフォーマットモデルの 観点から説明される。このセクションの属性の効果は、 このモデルと互換であることを意図している。ただし、提示エージェントは、 文書の著者意図を満たすために任意の技術を使用してもよい。たとえば、 [CSS2] プロセッサを使用して、 このモデルと共通する機能を実装してもよい。
この仕様では、
<?xml-stylesheet ... ?> 処理命令の規範的な使用は
定義されない。
このセクションで定義されるスタイリング属性は、 TT スタイル名前空間内の属性の使用を許可する任意の要素型によって指定してもよい。 ただし、これらの属性は、各属性の定義によって示される要素型に対してのみ スタイルプロパティとして適用される。 さらに、 要素型定義によって明示的に許可されない限り、 TT スタイル名前空間内の属性は、 その要素に適用されるか、または継承可能なスタイルプロパティを表す場合を除き、 その要素上に指定すべきではない。 その要素に適用されず、かつ継承可能なスタイルプロパティを表さない場合、 非妥当性検証処理の目的では無視されなければならない。 妥当性検証 処理の場合、 そのような使用は警告として報告されるべきである。
スタイルプロパティの適用可能性を判断する目的で、スタイルプロパティが
span 要素に適用されるように
定義されている場合、それは
匿名 span 要素にも適用される。
次の要素は、 文書インスタンスの構造および主要なスタイリング側面を 指定する。
initial 要素は、1 個以上のスタイルプロパティの初期値を変更するため、
すなわち仕様で定義された初期値とは異なる値の使用を指定するために使用される。
initial 要素は、その子として 0 個以上の metadata
要素を受け入れる。
<initial condition = <condition> xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {any attributes in TT Style Namespaces} Content: Metadata.class* </initial> |
複数の initial 要素が同じスタイルプロパティに対して初期値を指定する場合、
最後に指定された値(前順走査順)が適用される。
initial 要素は次の例で示される。ここでは、
tts:color プロパティの初期値が yellow であると
定義されている。
...
<head>
<styling>
<initial tts:color="yellow"/>
<styling>
<head>
...
|
style 要素は、
10.4.4.2 指定スタイル集合
処理に従って、
指定スタイル集合として表現されるスタイル指定の集合を定義するために使用される。
style 要素は、その子として 0 個以上の metadata
要素を受け入れる。
<style condition = <condition> style = IDREFS xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {any attributes in TT Style Namespaces} Content: Metadata.class* </style> |
style 要素が
region 要素の子孫として現れる場合、その style 要素は、
10.4.1.2 参照スタイリングおよび
10.4.1.3 連鎖参照
スタイリングで定義される参照スタイルを算出する目的では
無視されなければならない。
注:
すなわち、要素が参照スタイリングを使用して
style 要素を参照する場合、参照される style
要素は styling 要素の子孫として現れなければならず、
他のいかなるコンテキストにも現れてはならない。
注:
condition 属性が
style 要素に適用され、その条件が false と評価される場合、
その入れ子スタイルおよびインラインスタイルは無視される。ただし、
参照スタイリングまたは連鎖参照スタイリングによって含まれることになるスタイルは
無視されない。
さらなる詳細については、
10.4.4.2 指定スタイル集合
処理を参照。
styling 要素は、スタイリング事項に適用されるメタデータを含む
スタイリング事項をグループ化するために使用されるコンテナ要素である。
styling 要素は、その子として
Metadata.class 要素グループ内の
0 個以上の要素に続き、
0 個以上の initial 要素に続き、
0 個以上の style 要素を受け入れる。
<styling xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: Metadata.class*, initial*, style* </styling> |
時間セマンティクスが styling 要素の内容に適用される範囲において、
この要素の暗黙の時間区間は
ルート時間範囲と同一の始点および終点を持つものとして
定義される。
このセクションは、特定のアニメーション要素、 コンテンツ要素、特定のレイアウト要素、および スタイル定義要素とともに使用される 10.2.1 style 属性を定義する。
さらに、このセクションは、インラインスタイル指定をサポートする スタイル定義要素、特定のレイアウト要素、および コンテンツ要素とともに使用するため、 TT スタイル名前空間内の次の属性を規定する。
上記の視覚スタイリング属性に加えて、このセクションは、インラインスタイル指定を サポートするスタイル定義要素および コンテンツ要素とともに使用するため、 TT 音声スタイル名前空間内の次の音声スタイリング属性を規定する。
このセクションで定義される各スタイル属性(および対応するプロパティ)は、 スタイルプロパティ定義表を使用する。 これは、スタイルの次の側面の 1 つ以上を指定する。値構文、初期値、 スタイルがセマンティクス上適用される要素、スタイルが継承されるかどうか、パーセント値が どのように解釈されるか(該当する場合)、 スタイルがアニメーション可能かどうか(およびどのように可能か)、ならびにセマンティックな基礎(派生)である。
アニメーション可能なスタイルについて、用語 discrete は、
set 要素、またはその
<calculation-mode> に
discrete 値を持つ
animate 要素のいずれかの使用を指す。
用語 continuous は、その
<calculation-mode> に
linear、paced、または spline
値を持つ animate 要素の使用を指す。
用語 none は、そのスタイルがアニメーション可能でないことを示す。
注:
この仕様は、[XSL-FO 1.1] によって定義される 同名のプロパティに基づくスタイル属性について、 lowerCamelCased ローカル名を使用する。 この慣例は、そのようなプロパティのトークン値にも同様に拡張される。
注:
継承可能なスタイルプロパティは、そのプロパティが当該要素型に適用されるかどうかに
かかわらず、
region 要素または
コンテンツ要素型上の指定属性として表してもよい。
この機能により、そのプロパティが適用されない祖先要素上で
継承可能なスタイルプロパティを表現することが許可される。
注:
スタイル属性の指定方法に関するこの仕様(および参照するスキーマ)の一般構文、 特に継承をサポートする目的のため、 著者は、コンテンツ妥当性の観点からはなお適合したままで、 その要素にもその子孫のいずれにも適用されない非継承可能なスタイル属性を 誤って要素上に指定してしまう可能性がある。コンテンツ著者は、 そのような使用を検出して警告する TTML コンテンツ検証ツールの使用を望む場合がある。
style 属性は、参照スタイル関連付けによって、
それぞれがスタイル(プロパティ)集合を定義する 1 個以上の style 要素を
参照するために使用される。
style 属性は、次の要素型のインスタンスによって指定してもよい。
指定される場合、style 属性の値は、
[XML Schema Part 2] §3.3.10 で定義される
IDREFS データ型に従わなければならず、さらに各 IDREF は
styling 要素を祖先として持つ style 要素を
参照しなければならない。
同じ IDREF、ID1 が
style 属性の値に複数回現れる場合、
介在する IDREF、ID2 が存在すべきであり、ここで
ID2 は ID1 と等しくない。
注:
この制約は、冗長な参照スタイリングの使用を抑制しつつ、 たとえば IDREFS リスト内で介在する別個のスタイルが参照される場合に、 以前に参照されたスタイルを上書きする可能性のために同じスタイルを複数回 参照することをなお許可することを意図している。
注:
style 属性の使用を許可する特定の要素型定義、ならびに
10.4.1.2 参照スタイリング
および 10.4.1.3 連鎖
参照スタイリングを参照して、
そのセマンティクスに関するさらなる情報を得ること。
tts:backgroundClip 属性は、
背景が描画される
背景描画矩形を決定する
スタイルプロパティを指定するために使用される。
| 値: |
"border" |
"content" |
"padding"
|
| 初期値: | border |
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | backgroundClip の導出 |
tts:backgroundClip スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="306px 114px"/> <style tts:backgroundColor="red"/> <style tts:backgroundOrigin="padding"/> <style tts:padding="27px 72px"/> <style tts:backgroundRepeat="noRepeat"/> <style tts:backgroundImage="#blue102px57px"/> <style tts:backgroundClip="content"/> </region> |
![]() |
tts:backgroundColor 属性は、region または region に流し込まれた
コンテンツによって生成される領域の背景色を定義するスタイルプロパティを
指定するために使用される。
| 値: | <color> |
| 初期値: | transparent |
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete; continuous |
| セマンティック基礎: | backgroundColor の導出 |
tts:backgroundColor スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="306px 114px"/> <style tts:backgroundColor="red"/> <style tts:color="white"/> <style tts:displayAlign="after"/> <style tts:padding="3px 30px"/> </region> ... <p region="r1" tts:backgroundColor="purple" tts:textAlign="center"> Twinkle, twinkle, little bat!<br/> How <span tts:backgroundColor="green">I wonder</span> where you're at! </p> |
|
tts:backgroundExtent 属性は、背景画像の内在的な範囲(サイズ)とは
独立に、背景画像の範囲(サイズ)を指定するために使用してもよい。
| 値: | <extent> |
| 初期値: | auto |
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 適用可能な背景位置決め 矩形の幅および高さに相対的 |
| アニメーション可能: | discrete |
| セマンティック基礎: | backgroundExtent の導出 |
この属性の値が auto である場合、このスタイルプロパティの算出値は、
関連付けられた背景画像の内在的な範囲(サイズ)と同じであるとみなされなければならない。
この属性の値が contain である場合、このスタイルプロパティの算出値は、
[compute containment
scaling] 手続きを実行することによって決定される。
ここで、対象矩形 TR は画像の内在的な幅および高さに初期化され、
参照矩形 RR は
背景位置決め矩形に設定され、
結果として得られる対象矩形 TR の出力値が算出値である。
この属性の値が cover である場合、このスタイルプロパティの算出値は、
[compute cover
scaling] 手続きを実行することによって決定される。
ここで、対象矩形 TR は画像の内在的な幅および高さに初期化され、
参照矩形 RR は
背景位置決め矩形に設定され、
結果として得られる対象矩形 TR の出力値が算出値である。
この属性の値が 2 つの <measure> 指定から構成される場合、 第 1 の指定はこのプロパティの算出値の幅であり、第 2 の指定は 高さである。この場合、両方の <measure> 指定は 非負の長さに解決しなければならない(または解決可能でなければならない)。
このスタイルプロパティの算出値が画像の内在的な範囲(サイズ)と異なる場合、 画像ラスターは、算出された範囲値に一致するように各次元で独立に拡大縮小される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された背景範囲とサポートされる背景範囲との間のユークリッド距離が 最小化される値を意味する。算出値から等距離にある複数の最も近いサポート値が 存在する場合、[0,0] から最も遠い値、すなわち最大の範囲を持つ値が使用される。
最も近いサポート値を解決するこの規則は、 より小さい最も近いサポート距離ではなく、より大きい最も近いサポート距離を使用する。
tts:backgroundExtent スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="306px 114px"/> <style tts:backgroundColor="red"/> <style tts:backgroundRepeat="noRepeat"/> <style tts:backgroundImage="#blue102px57px"/> <style tts:backgroundExtent="cover"/> </region> |
|
tts:backgroundImage 属性は、region または region に流し込まれた
コンテンツによって生成される領域の背景画像としてレンダリングされる背景
非コンテンツ画像を指定する
スタイルプロパティを指定するために使用される。
tts:backgroundImage 属性は、キャプションのラスター画像レンダリングなど、
実際のコンテンツを表すために使用される
コンテンツ画像を参照すべきではない。
むしろ、tts:backgroundImage の使用は、コンテンツが他の手段で
表される要素の背景をスタイリングすることに限定されるべきである。
ラスター画像を使用してコンテンツを表す必要がある場合、それはブロックまたは
インラインコンテキスト内の
image 要素によって
表されるべきである。
| 値: |
"none" | <image>
|
| 初期値: | none |
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | backgroundImage の導出 |
このスタイルプロパティとともに使用される
<image> 式は、外部
画像リソースを直接参照してもよい。
ただし、著者はそうすることを控え、代わりに、
resources 要素の子
imageだけを参照するように
使用を制約すべきである。
注:
image 要素によって
画像を間接的に参照すると、画像を
埋め込みデータリソースとして指定し、
そのコンテンツ型など、画像に関する追加情報を指定することが可能になる。
さらに、
image 要素内で複数の
source 子を使用することを
活用することで、解像度固有の画像およびフォールバック
画像リソースを指定することが可能になる。
背景画像に関連付けられた要素によって生成される領域のコンテンツ矩形の範囲は、 背景画像の解決済み範囲によって影響されない。
注:
[SMPTE ST 2052-1] およびその依存プロファイルなど、
TTML1 の一部のプロファイルは、背景画像が、関連付けられた要素によって生成される
領域のコンテンツ矩形の範囲に影響すると規定している。これらのプロファイルと TTML2 の間で
変換する場合、そのような背景画像は
image 要素に
対応付けるべきであり、
tts:backgroundImage
属性に対応付けるべきではない。
tts:backgroundImage スタイルを次の例に示す。
<head>
<resources>
<image xml:id="blue102px57px">
<source>
<data type="image/png" length="119">
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=
</data>
</source>
</image>
</resources>
</head>
...
<region xml:id="r1">
<style tts:extent="306px 114px"/>
<style tts:backgroundColor="red"/>
<style tts:backgroundClip="padding"/>
<style tts:backgroundRepeat="noRepeat"/>
<style tts:backgroundImage="#blue102px57px"/>
<style tts:padding="27px 72px"/>
</region>
|
|
tts:backgroundOrigin 属性は、背景が位置決めされる
背景位置決め
矩形を決定するスタイルプロパティを指定するために使用される。
| 値: |
"border" |
"content" |
"padding"
|
| 初期値: | padding |
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | backgroundOrigin の導出 |
tts:backgroundOrigin スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="306px 114px"/> <style tts:backgroundColor="red"/> <style tts:backgroundRepeat="noRepeat"/> <style tts:backgroundImage="#blue102px57px"/> <style tts:backgroundOrigin="content"/> </region> |
|
tts:backgroundPosition 属性は、背景画像が region または region に
流し込まれたコンテンツによって生成される領域内で位置決めされるかどうか、
およびどのように位置決めされるかを定義するスタイルプロパティを指定するために使用される。
| 値: | <position> |
| 初期値: | 0% 0% |
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 本文参照 |
| アニメーション可能: | discrete |
| セマンティック基礎: | backgroundPosition の導出 |
水平位置オフセットのパーセント値成分は、 背景位置決め矩形の幅から 背景画像の幅を引いたものに相対的である。 垂直位置オフセットのパーセント値成分は、 背景位置決め矩形の高さから 背景画像の高さを引いたものに相対的である。
tts:backgroundPosition スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="306px 114px"/> <style tts:backgroundColor="red"/> <style tts:backgroundRepeat="noRepeat"/> <style tts:backgroundImage="#blue102px57px"/> <style tts:backgroundPosition="center"/> </region> |
![]() |
tts:backgroundRepeat 属性は、背景画像が region または region に
流し込まれたコンテンツによって生成される領域内で繰り返される(タイル化される)かどうか、
およびどのように繰り返されるかを定義するスタイルプロパティを指定するために使用される。
| 値: |
"repeat" |
"repeatX" |
"repeatY" |
"noRepeat"
|
| 初期値: | repeat |
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | backgroundRepeat の導出 |
tts:backgroundRepeat スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="306px 114px"/> <style tts:backgroundColor="red"/> <style tts:backgroundImage="#blue102px57px"/> <style tts:backgroundRepeat="repeatX"/> </region> |
|
tts:border 属性は、region または region に流し込まれた
コンテンツによって生成される領域の境界を定義するスタイルプロパティを
指定するために使用される。
注:
region に適用される場合、border は region の範囲に対する内側への挿入として 適用される。すなわち、region 領域のコンテンツ矩形は、region に適用された border の存在によって縮小される。
| 値: | <border> |
| 初期値: | none |
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete; continuous(color のみ) |
| セマンティック基礎: | border の導出 |
tts:border プロパティの値に border thickness が指定されていない場合、
border thickness は medium の厚さが指定されたかのように
解釈されなければならない。
この属性に関連付けられた border thickness の算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された border thickness とサポートされる border thickness との間の 一次元ユークリッド距離が辺ごとに最小化される値を意味する。 与えられた辺について算出値から等距離にある複数の最も近いサポート値が 存在する場合、0 から最も近い値、すなわち最小の border thickness が使用される。
tts:border プロパティの値に border style が指定されていない場合、
border style は none のスタイルが指定されたかのように
解釈されなければならない。
この属性に関連付けられた border style の算出値がサポートされない場合、
提示プロセッサは値
solid を使用しなければならない。
tts:border プロパティの値に border color が指定されていない場合、
border color は、その要素の tts:color スタイルプロパティの
算出値に等しい色が指定されたかのように解釈されなければならない。
tts:border プロパティの値に border radii が指定されていない場合、
border radii は 0 の radii が指定されたかのように
解釈されなければならない。
この属性に関連付けられた border radii の算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された border radii とサポートされる border radii が最小化される値を意味する。
tts:border スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="306px 114px"/> <style tts:border="2px solid red"/> <style tts:color="white"/> <style tts:displayAlign="center"/> <style tts:padding="3px 30px"/> </region> ... <p region="r1" tts:border="4px solid green" tts:textAlign="center"> Twinkle, twinkle, little bat!<br/> How <span tts:border="8px solid blue">I wonder</span> where you're at! </p> |
|
丸めを伴う tts:border スタイルを次の例に示す。
<style xml:id="roundedBorder" tts:border="2px solid lime 10px" tts:backgroundColor="black"/>
...
<div tts:color="white" tts:textAlign="center">
<p style="roundedBorder">Border rounding on a <br/>p element.</p>
<p>
<span style="roundedBorder">Border rounding on span</span>
<br/>
<span style="roundedBorder">A shorter span</span>
</p>
</div>
|
|
tts:bpd 属性は、region に流し込まれたコンテンツによって生成される
領域のブロック進行次元、またはより簡潔には bpd を
指定するために使用される。
注:
用語 ブロック進行次元は、書字モード相対の方法で解釈される。 そのため、bpd は常にブロック進行方向の距離に対応する。 したがって、横書きモードでは bpd は垂直距離を表し、 縦書きモードでは bpd は水平距離を表す。 ここで、水平および垂直は常に絶対的な意味で解釈される。
| 値: | <measure> |
| 初期値: | auto |
| 適用対象: |
body,
div,
p,
span
|
| 継承: | いいえ |
| パーセント値: | 本文参照 |
| アニメーション可能: | discrete |
| セマンティック基礎: | bpd の導出 |
<measure> が <length> 値として表される場合、 それは非負でなければならない。
tts:bpd 属性が
span 要素上に指定され、
その要素に適用される tts:display プロパティの算出値が
inlineBlock でない場合、
tts:bpd のセマンティクスは、適用可能な背景色または画像の
ブロック進行次元を算出するときにのみ適用される。
ただし、生成される領域のコンテンツ矩形の寸法は変更されない。
この属性の <length> 式で パーセント値が使用される場合、 それは生成領域の包含領域(最も近い祖先領域)の、適用可能な 絶対次元に関して解決される。
注:
この属性とともに使用される <length> 式は、 特定の書字モード相対の次元に関連付けられ、その後、適用可能な書字モードに従って 絶対次元に解決される。 その絶対次元が垂直(水平)である場合、 パーセント値は、参照領域(最も近い祖先領域)の同じ垂直(水平) 絶対次元に関して解決される。
tts:bpd スタイルを次の例に示す。
<p tts:fontSize="24px" tts:lineHeight="48px" tts:bpd="96px"> the woods are <span tts:display="inlineBlock" tts:bpd="36px">getting green</span> ... </p> |
tts:color 属性は、region に流し込まれたコンテンツによって生成される
領域に関連付けられたマークの前景色を定義するスタイルプロパティを
指定するために使用される。
| 値: | <color> |
| 初期値: | 本文参照 |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete; continuous |
| セマンティック基礎: | color の導出 |
tts:color プロパティの初期値は、実装依存であるとみなされる。
エンドユーザーの選好情報がない場合、適合する
提示プロセッサは、
ルートコンテナ領域の背景色に対して
高いコントラストを持つ初期値を使用するべきである。
tts:color スタイルを次の例に示す。
<region xml:id="r1"> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="after"/> <style tts:textAlign="center"/> </region> ... <p region="r1"> In spring, when woods are <span tts:color="green">getting green</span>,<br/> I'll try and tell you what I mean. </p> |
|
tts:direction 属性は、使用コンテキストに応じて、
(1) 双方向段落レベル、または (2) 双方向埋め込みまたは上書きの方向性を
決定するスタイルプロパティを指定するために使用される。
これについては [UAX9] を参照。
| 値: |
"ltr" |
"rtl"
|
| 初期値: |
ltr
|
| 適用対象: |
p,
span
|
| 継承: | はい。ただし特別な セマンティクスを参照 |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | direction の導出 |
p 要素に適用される場合、このプロパティの算出値は、
[UAX9] §4.3 Higher Level Protocol
HL1 で規定される
段落レベルを明示的に確立する。
span 要素(または 匿名
span)に適用される場合、このプロパティの算出値は、
tts:unicodeBidi スタイルプロパティの算出値と組み合わせて、
[UAX9] §4.3 Higher Level Protocol
HL3 で規定される双方向埋め込みまたは上書きの
方向性を決定する。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
ltr を使用しなければならない。
tts:direction スタイルを次の例に示す。
<p>
The title of the book is
"<span tts:unicodeBidi="embed" tts:direction="rtl">نشاط التدويل، W3C</span>"
</p>
|
|
スタイル解決処理(10.4.4 スタイル解決
処理を参照)を実行する場合、
region 要素
R 上の tts:direction の算出値の解決は、
次の順序付き規則に従って決定され、最初に適用可能な規則が適用される。
tts:direction 属性が R 上に指定されている場合、
tts:direction の算出値は指定値である。
tts:writingMode 属性が R 上に指定されている場合、
tts:direction の算出値は、
R 上の tts:writingMode の算出値によって
決定される
インライン進行方向である。
そうでなければ、tts:direction の算出値は初期値である。
注:
上記のように決定される
region 要素上の
tts:direction の算出値は、事実上、
region スタイル継承
セマンティクスの対象となる要素によって継承される
tts:direction の値になる。
region 要素ではない
その他の要素 E の場合、
tts:writingMode 属性の有無は、
E 上の tts:direction の算出値の解決に
影響しない。
tts:disparity 属性は、立体視(ステレオスコピック奥行き)を
シミュレートするために適用される両眼視差を指定するために使用される。
ゼロの disparity は表示平面に対応し、負の値は表示平面の前方の奥行きに対応し、
正の値は表示平面の後方の奥行きに対応する。
disparity と知覚される奥行きとの関係の詳細については
[SMITH] を参照。
| 値: | <length> |
| 初期値: | 0px |
| 適用対象: |
region。
div および
p については
特別な使用を参照
|
| 継承: | いいえ |
| パーセント値: | ルートコンテナ 領域の幅に相対的 |
| アニメーション可能: | discrete; continuous |
| セマンティック基礎: | disparity の導出 |
ステレオスコピック画像ペアの右(左)画像上に region をレンダリングする場合、
region の中心は、tts:disparity の算出値の ½(-½)に等しい値だけ
水平軸に沿ってオフセットされる。ここで、正のオフセットは右方向であり、
負のオフセットは左方向である。
ステレオスコピック画像ペア上にレンダリングしない限り、tts:disparity 属性は
提示処理の目的では無視される。
著者は、region が可視である全時間にわたって、region の知覚奥行きが シーン内の任意の物体の前方に位置することを確実にすべきである。 シーン内の物体が region の前方にあると知覚される場合、ステレオスコピック効果は 破綻する。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された disparity とサポートされる disparity との間のユークリッド距離が 最小化される値を意味する。算出値から等距離にある複数の最も近いサポート値が 存在する場合、0 から最も近い値が使用される。
注:
一般に、ステレオスコピックコンテンツの提示はサブピクセル (アンチエイリアシング)レンダリング技術の使用に依存する。そのため、 disparity 調整後の位置を整数値に量子化する実装は、望ましくない副作用を 生じる可能性がある。これは、たとえば著者が被写体とそれに関連付けられたテキストとの 間で一定距離を維持しようとしている場合など、disparity の滑らかなアニメーションが 適用されるときに特に問題となる。
tts:disparity スタイルを次の例断片およびレンディションに示す。
典型的なテレビシナリオでは、disparity は画面幅の -1% から 2% の範囲であることに注意。
この例は 5% の disparity を使用しており、説明の明確さのために disparity の効果を
誇張している。
<region xml:id="r1">
<style tts:extent="80% 10%"/>
<style tts:origin="10% 10%"/>
<style tts:disparity="5%"/>
...
</region>
...
<p region="r1">
Stereoscopic
</p>
|
![]() |
tts:disparity が
div または
p 上に例外的に指定される場合、
11.1.2.1
インラインアニメーションの特別な
セマンティクスが適用される。
tts:display 属性は、要素が region 内でのレイアウトおよび合成の
候補であるかどうかを定義するスタイルプロパティを指定するために使用される。
| 値: |
"auto" |
"none" |
"inlineBlock"
|
| 初期値: |
auto
|
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | display の導出 |
この属性の値が auto である場合、
影響を受ける要素は region レイアウトおよび提示の候補である。
しかし、値が none である場合、
影響を受ける要素およびその子孫は、region レイアウトおよび提示の対象外であると
みなされなければならない。
この属性の値が inlineBlock であり、この属性が
span 要素に適用される場合、
インラインブロック表示セマンティクスが適用され、
その要素は region レイアウトおよび提示の候補である。さらに、
inlineBlock 値が
span 要素ではない任意の要素に
適用される場合、それはエラーとみなされる。
tts:display スタイルを次の例に示す。
<region xml:id="r1">
<style tts:extent="369px 119px"
tts:backgroundColor="black"
tts:color="white"
tts:displayAlign="before"
tts:textAlign="start"/>
</region>
...
<div region="r1">
<p dur="5s">
[[[
<span tts:display="none">
<set begin="1s" dur="1s" tts:display="auto"/>
Beautiful soup,
</span>
<span tts:display="none">
<set begin="2s" dur="1s" tts:display="auto"/>
so rich and green,
</span>
<span tts:display="none">
<set begin="3s" dur="1s" tts:display="auto"/>
waiting in a hot tureen!
</span>
]]]
</p>
</div>
|
|
|
|
|
|
tts:displayAlign 属性は、ブロック進行方向におけるブロック領域の
配置を定義するスタイルプロパティを指定するために使用される。
| 値: |
"before" |
"center" |
"after" |
"justify"
|
| 初期値: |
before
|
| 適用対象: |
body,
div,
p,
region
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | displayAlign の導出 |
この属性の値が justify である場合、
ブロック進行次元における
(未使用の)利用可能空間は、この属性が適用される要素によって生成される
ブロック領域のブロック領域子の間で均等に分配される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
before を使用しなければならない。
tts:displayAlign スタイルを次の例に示す。
<region xml:id="r1">
<style tts:extent="128px 66px" tts:origin="0px 0px"
tts:backgroundColor="black" tts:color="white"/>
<style tts:displayAlign="before"/>
<style tts:textAlign="start"/>
</region>
<region xml:id="r2">
<style tts:extent="192px 66px" tts:origin="128px 66px"/>
tts:backgroundColor="green" tts:color="white"/>
<style tts:displayAlign="after"/>
<style tts:textAlign="start"/>
</region>
<region xml:id="r3">
<style tts:extent="128px 66px"/> style tts:origin="0px 132px"
tts:backgroundColor="black" tts:color="white"/>
<style tts:displayAlign="before"/>
<style tts:textAlign="start"/>
</region>
<region xml:id="r4">
<style tts:extent="192px 66px" tts:origin="128px 198px"/>
tts:backgroundColor="green" tts:color="white"/>
<style tts:displayAlign="after"/>
<style tts:textAlign="start"/>
</region>
...
<div>
<p region="r1">I sent a message to the fish:</p>
<p region="r2">I told them<br/> "This is what I wish."</p>
<p region="r3">The little fishes of the sea,</p>
<p region="r4">They sent an<br/> answer back to me.</p>
</div>
|
![]() |
tts:extent 属性は、次の目的のために使用してもよい。
注:
border または padding のいずれか(または両方)が region に適用される場合、 region の範囲はその border および padding を含む。すなわち、border と padding は どちらも内側への挿入として適用されるため、region の範囲の内部にある。
| 値: | <extent> |
| 初期値: | auto |
| 適用対象: |
tt,
region,
image。
div および
p については
特別な使用を参照
|
| 継承: | いいえ |
| パーセント値: | ルート コンテナ領域の幅および高さに相対的 |
| アニメーション可能: | discrete |
| セマンティック基礎: | extent の導出 |
tts:extent 属性が
tt 要素上に指定される場合、
指定値は次のいずれかに制限される。
(1) auto キーワード、
(2) contain キーワード、または
(3) 2 つの <length> 指定であり、
これらの指定はピクセル単位を使用する非パーセントの確定長として表される。
その他すべての構文的に合法な値は、このコンテキストでは使用してはならず、
使用された場合、妥当性検証処理の目的では
エラーとみなされなければならず、提示処理の目的では無視されなければならない。
その場合、初期値(auto)が適用される。
tts:extent 属性が
region 要素上に指定される場合、
その算出値は、関連付けられた
コンテンツ領域の
幅および高さを決定する。
tts:extent 属性が
image 要素上に指定される場合、
その算出値は、画像の
幅および高さを決定する。
tts:extent 属性が
div または
p 要素上に指定される場合、
10.2.16.1 Extent の特別な使用で
規定されるセマンティクスが適用される。
この属性の値が auto である場合、関連付けられたプロパティの算出値は
次のように決定される。
プロパティが
tt 要素に適用される場合、
auto は値 contain が指定されたかのように
解釈される。
プロパティが
region 要素に直接または間接的に
適用される場合、auto は値
"100% 100%" が指定されたかのように解釈される。
プロパティが
image 要素に適用される場合、
auto は、たとえば
"200px 100px" のように、2 つのピクセルベースの
<length> 成分を使用して、
画像の内在的な範囲に等しい値が指定されたかのように解釈される。
注:
この属性は、単一キーワード "auto" からなる値と、
2 つのキーワード "auto auto" からなる別の値を許可する。
これら 2 つの異なる値は別個の意味を持ち、等価ではない。
特に、単一キーワード値 "auto" は直前で説明したセマンティクスを
持つ。一方、2 キーワード値
"auto auto" は 2 つの
<measure> 式から構成され、それぞれは
10.3.24 <measure>で定義される
<measure> キーワード autoを使用する。
この属性の値が contain である場合、関連付けられたプロパティの算出値は
次のように決定される。
プロパティが
tt 要素に適用される場合、
contain は
H ルートコンテナ領域セマンティクスで
規定されるように解釈される。
プロパティが
region 要素に適用される場合、
算出値は
[compute containment
scaling] 手続きを実行することによって決定される。
ここで、対象矩形 TR は region のコンテンツの
内在的ブロックコンテンツ範囲に
初期化され、参照矩形 RR は
ルートコンテナ領域の範囲に設定され、
結果として得られる対象矩形 TR の出力値が算出値である。
プロパティが
image 要素に適用される場合、
算出値は
[compute containment
scaling] 手続きを実行することによって決定される。
ここで、対象矩形 TR は画像の
内在的画像範囲に初期化され、
参照矩形 RR は、現在のフォーマットコンテキストがブロックフォーマット
コンテキストかインラインフォーマットコンテキストかに応じて、それぞれ包含ブロック領域
または行領域内の利用可能コンテンツ空間に設定され、
結果として得られる対象矩形 TR の出力値が算出値である。
この属性の値が cover である場合、関連付けられたプロパティの算出値は
次のように決定される。
プロパティが
region 要素に適用される場合、
算出値は
[compute cover
scaling] 手続きを実行することによって決定される。
ここで、対象矩形 TR は region のコンテンツの
内在的ブロックコンテンツ範囲に
初期化され、参照矩形 RR は
ルートコンテナ領域の範囲に設定され、
結果として得られる対象矩形 TR の出力値が算出値である。
プロパティが
image 要素に適用される場合、
算出値は
[compute cover
scaling] 手続きを実行することによって決定される。
ここで、対象矩形 TR は画像の
内在的画像範囲に初期化され、
参照矩形 RR は、現在のフォーマットコンテキストがブロックフォーマット
コンテキストかインラインフォーマットコンテキストかに応じて、それぞれ包含ブロック領域
または行領域内の利用可能コンテンツ空間に設定され、
結果として得られる対象矩形 TR の出力値が算出値である。
この属性の値が 2 つの <measure> 指定から構成される場合、 それらは幅および 高さとして解釈されなければならない。 ここで、第 1 の指定が幅であり、 第 2 の指定が高さである。 この場合、両方の <measure> 指定は非負の長さに 解決しなければならない(または解決可能でなければならない)。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された範囲とサポートされる範囲との間のユークリッド距離が 最小化される値を意味する。算出値から等距離にある複数の最も近いサポート値が 存在する場合、[0,0] から最も遠い値、すなわち最大の範囲を持つ値が使用される。
最も近いサポート値を解決するこの規則は、 より小さい最も近いサポート距離ではなく、より大きい最も近いサポート距離を使用する。 この扱いの違いの根拠は、より大きな範囲を使用することで、影響を受けるコンテンツが region オーバーフローを引き起こすことなく region 領域内に収まることが保証される一方、 より小さな範囲を使用すると region オーバーフローが発生しやすくなるためである。
tts:extent スタイルを次の例に示す。
<region xml:id="r1">
<style tts:extent="330px 122px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="after"/>
<style tts:textAlign="center"/>
</region>
...
<p region="r1">
'Tis the voice of the Lobster:<br/>
I heard him declare,<br/>
"You have baked me too brown,<br/>
I must sugar my hair."
</p>
|
![]() |
tts:extent が
div または
p 上に例外的に指定される場合、
11.1.2.1
インラインアニメーションの特別な
セマンティクスが適用される。
tts:fontFamily 属性は、region に流し込まれたコンテンツによって
生成されるグリフ
領域について、グリフが選択されるフォントファミリーを定義する
スタイルプロパティを指定するために使用される。
| 値: | <font-families> |
| 初期値: | default |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | fontFamily の導出 |
注:
初期値 default は汎用フォントファミリー名であり、
下記の 10.3.19
<generic-family-name> でさらに説明される。
span に適用されることに加えて、
p 要素上のこのプロパティの算出値は、
10.2.27 tts:lineHeight で規定されるように、
tts:lineHeight 属性に関連付けられた
スタイルプロパティの normal 値を解決するために使用される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは、算出されたフォントファミリーを
類似の組版特性を持つサポート済みフォントファミリーに対応付けることを試みなければならず、
そのような対応付けがない場合は値 default を使用しなければならない。
tts:fontFamily スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="474px 146px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="center"/> <style tts:textAlign="start"/> <style tts:fontFamily="proportionalSansSerif"/> </region> ... <div region="r1"> <p> "The time has come," the Walrus said,<br/> "to talk of many things: </p> <p tts:textAlign="end" tts:fontFamily="monospaceSerif"> Of shoes, and ships, and sealing wax,<br/> Of cabbages and kings, </p> <p> And why the sea is boiling hot,<br/> and whether pigs have wings." </p> </div> |
![]() |
tts:fontKerning 属性は、
グリフ
領域を位置決めするときにフォントカーニングが適用されるかどうかを決定する
スタイルプロパティを指定するために使用される。
| 値: |
"none" |
"normal"
|
| 初期値: | normal |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | fontKerning の導出 |
この属性の値が normal である場合、カーニングデータが利用可能であれば
カーニングが適用されるべきである。
この属性の値が none である場合、カーニングデータが利用可能かどうかに
かかわらずカーニングは適用されるべきではない。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
normal を使用しなければならない。
tts:fontKerning スタイルを次の
例に示す。
<p>
WAVE<br/>
<span tts:fontKerning="none">WAVE</span>
</p>
|
![]() |
tts:fontSelectionStrategy 属性は、提示処理中に可能なフォントのリストから
フォントを選択するときに適用される戦略を決定するスタイルプロパティを
指定するために使用される。
| 値: |
"auto" |
"character"
|
| 初期値: | auto |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | fontSelectionStrategy の導出 |
このプロパティの提示セマンティクスは、[XSL-FO 1.1] §7.9.3 で定義されるものであり、 選択基準の集合は次のプロパティを含むように拡張される。
フォント選択基準を満たすフォントリソースから選択する場合、
font 要素によって参照される
フォントリソースは、アプリケーションまたはシステムによって供給される
フォントリソースよりも優先される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
auto を使用しなければならない。
tts:fontSelectionStrategy スタイルを次の
例に示す。
<p tts:fontFamily="font1,font2">
<span tts:fontSelectionStrategy="character">⃝</span>
</p>
|
注:
上記の例では、font1 フォントファミリーに関連付けられた
フォントリソースは、単一文字  を対応付けるグリフを含むが、
コンテキスト文字列全体 ⃝ または単一文字
⃝ のいずれを対応付けるグリフも含まないと考える。
さらに、
font2 フォントファミリーに関連付けられたフォントリソースは、
完全なコンテキスト文字列に対する対応付け、および単一文字
⃝ に対する対応付けを含むと考える。
著者が font2 による完全なコンテキスト文字列への対応付けを
受け入れてよい場合、値
auto が使用される(明示的に、または初期値の既定化によって)。
しかし、著者が  を
font1 により対応付け、⃝ を
font2 により対応付けたい場合、値 character が
指定される。この例では、著者は後者の挙動を望むため、値
character を指定している。
tts:fontShear 属性は、
グリフ領域にせん断変換が適用されるかどうか、
およびどのように適用されるかを決定するスタイルプロパティを指定するために使用される。
| 値: | <percentage> |
| 初期値: | 0% |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 本文参照 |
| アニメーション可能: | discrete |
| セマンティック基礎: | fontShear の導出 |
この属性が適用される各グリフ領域について、 10.4.5.3 せん断計算で 規定されるように、グリフ領域に 2D せん断変換を適用する。
tts:fontShear スタイルを次の例に示す。
<p region="horizontal"> <span tts:fontShear="16.78842%">三日坊主</span><br/> <span tts:fontShear="50%">三日坊主</span><br/> <span tts:fontShear="64.333%">三日坊主</span> </p> <p region="vertical"> <span tts:fontShear="16.78842%">三日坊主</span><br/> <span tts:fontShear="50%">三日坊主</span><br/> <span tts:fontShear="64.333%">三日坊主</span> </p> |
![]() |
<p region="horizontal"> <span tts:fontShear="-16.78842%">三日坊主</span><br/> <span tts:fontShear="-50%">三日坊主</span><br/> <span tts:fontShear="-64.333%">三日坊主</span> </p> <p region="vertical"> <span tts:fontShear="-16.78842%">三日坊主</span><br/> <span tts:fontShear="-50%">三日坊主</span><br/> <span tts:fontShear="-64.333%">三日坊主</span> </p> |
![]() |
tts:fontSize 属性は、region に流し込まれたコンテンツによって
生成されるグリフ
領域について、選択されるグリフのフォントサイズを定義する
スタイルプロパティを指定するために使用される。
| 値: | <font-size> |
| 初期値: | 1c |
| 適用対象: |
span
|
| 継承: | はい。ただし 10.2.21.1 フォントサイズの特別なセマンティクス を除く |
| パーセント値: | region 要素でない場合、
最も近い祖先スタイル付き
要素の算出フォントサイズに相対的。そうでなければ
算出セルサイズに相対的
|
| アニメーション可能: | discrete |
| セマンティック基礎: | fontSize の導出 |
単一の <length> 値が指定される場合、この長さは グリフの EM 正方形の水平サイズおよび垂直サイズを等しく決定する。 2 つの <length> 値が指定される場合、第 1 の値は 水平サイズを決定し、第 2 の値は垂直サイズを決定する。
水平サイズおよび垂直サイズが独立して表される場合、 <length> 値の単位は同じでなければならない。
注:
グリフの EM 正方形は、慣例上、そのグリフを含むフォントの EM 正方形として定義される。 すなわち、グリフは、そのフォントの EM 正方形とは別個の EM 正方形を持たない。
この属性に現れる相対
<length> 値、すなわちパーセント(%)、
セル(c)、または EM(em)単位で表される値は、
幅成分と高さ成分の 2 つの成分から構成される参照 2 次元サイズ値に関連して解決される。
相対単位がパーセントである場合、参照値は、最も近いスタイル付き祖先要素の
フォントサイズの算出値、または
算出セルサイズのいずれかである。
相対単位がセル(c)である場合、参照値は
算出セルサイズである。
相対単位が EM(em)である場合、参照値はパーセント単位が
使用されたかのように決定され、ここで 1em は 100% に等しい。
単一の相対 <length> 値が指定される場合、 この <length> は参照値の高さ成分に関して 解決される。 2 つの相対 <length> 値が指定される場合、 第 1 の <length> は参照値の幅成分に関して 解決され、第 2 の <length> は参照値の高さ 成分に関して解決される。
注:
アナモルフィックフォントスケーリング、すなわち独立した(かつ別個の)水平サイズおよび 垂直サイズにスケールされたフォントは、著者が狭いまたは広いフォントフェイスを 合成したい場合や、著者が非正方形セル単位に基づくフォントサイズを使用したい場合など、 多くのコンテキストで使用されることが期待される。
注:
提示プロセッサは、フォントリソース内で 定義される EM 正方形の高さが算出フォントサイズの高さに一致するように、 そのフォントに適したアルゴリズムを使用してグリフをスケールすることが期待される。 アナモルフィックフォントスケーリングが使用される場合、すなわち算出フォントサイズの幅が 算出フォントサイズの高さと異なる場合、提示プロセッサはさらに、幅と高さの比率によって EM 正方形をアナモルフィックにスケールし、ひいては提示されるグリフも同じ比率で スケールされることを確実にすることが期待される。
フォントサイズを表すために使用される <length> 値は非負でなければならない。
この属性の値が <length> 成分上に
c 単位を指定する場合、
それは 10.3.22
<length> によって定義されるセル長さ単位の
高さ(のみ)または幅と高さ(の両方)の観点から解決される。すなわち、
算出セルサイズの観点から解決される。
注:
たとえば、段落(p)要素 P を考える。
算出セルサイズが (24px,36px) であり、
tts:fontSize="1c" が P 上に指定される場合、
tts:fontSize の算出値は (36px,36px) に解決される一方、
tts:fontSize="1c 1c" が P 上に指定される場合、
その算出値は (24px,36px) に解決される。
この属性の値が <length> 成分上に
em 単位を指定する場合、
それは同等のパーセント値が指定されたかのように扱われ、ここで 1em は
100% に等しい。
注:
たとえば、段落(p)要素 P の子である
span 要素 S を考える。
P 上の tts:fontSize の算出値が (18px,24px) であり、
tts:fontSize="1em" が S 上に指定される場合、
これは 100% を指定することと等価であり、
(24px,24px) に解決される。しかし、tts:fontSize="1em 1em" が
S 上に指定される場合、
これは 100% 100% を指定することと等価であり、(18px,24px) に解決される。
span に適用されることに加えて、
p 要素上のこのプロパティの算出値は、
10.2.27 tts:lineHeight で規定されるように、
tts:lineHeight 属性に関連付けられた
スタイルプロパティの normal 値を解決するために使用される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出されたフォントサイズとサポートされるフォントサイズとの間のユークリッド距離が 最小化される値を意味する。算出値から等距離にある複数の最も近いサポート値が 存在する場合、0(単一長さ指定)または [0,0](2 つの長さ指定)から 最も遠い値、すなわち最大のフォントサイズが使用される。
tts:fontSize スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="299px 97px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="center"/> <style tts:textAlign="center"/> <style tts:fontFamily="proportionalSansSerif"/> <style tts:fontSize="18px"/> </region> ... <p region="r1"> Then fill up the glasses<br/> with treacle and ink,<br/> Or anything else<br/> that is <span tts:fontSize="24px">pleasant</span> to drink. </p> |
![]() |
この属性に関連付けられたプロパティの算出値は 2 タプルから構成され、 その項目はそれぞれフォントサイズの幅成分および高さ成分の算出値を表す。
span 要素に適用され、
その tts:ruby の算出値が
textContainer または text のいずれかである場合、
tts:fontSize の算出値を解決するとき、
次の特別な継承規則が適用される。
ルビテキストコンテナは、それが
明示的であるか
暗黙的であるかにかかわらず、
その親から tts:fontSize を
継承しない。
代わりに、それが明示的ルビ
テキストコンテナであり、
tts:fontSize 属性を指定しない場合、
またはそれが
暗黙的ルビテキストコンテナである場合、
最も近い祖先ルビコンテナ上の
tts:fontSize の算出値の 50% に
等しい値が適用される。そうでなければ、指定値が適用される。
span 要素のうち、
tts:ruby の算出値が
text であるものが
tts:fontSize 属性を指定しない場合、
それは親の
ルビテキストコンテナから
tts:fontSize の算出値を継承する。
それが明示的であるか
暗黙的な
ルビテキストコンテナであるかは問わない。
tts:fontStyle 属性は、region に流し込まれたコンテンツによって
生成されるグリフ領域について選択されるグリフに
適用するフォントスタイルを定義するスタイルプロパティを指定するために使用される。
ここで、フォントスタイル値から特定のフォントフェイスまたはスタイルの
パラメータ化への対応付けは、この仕様によって決定されない。
| 値: |
"normal" |
"italic" |
"oblique"
|
| 初期値: | normal |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | fontStyle の導出 |
値 oblique の使用は、
インライン進行方向における(角度未指定の)せん断変換を表す。
span に適用されることに加えて、
p 要素上のこのプロパティの算出値は、
10.2.27 tts:lineHeight で規定されるように、
tts:lineHeight 属性に関連付けられた
スタイルプロパティの normal 値を解決するために使用される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
normal を使用しなければならない。
tts:fontStyle スタイルを次の例に示す。
<region xml:id="r1">
<style tts:extent="331px 84px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="after"/>
<style tts:textAlign="center"/>
<style tts:fontFamily="proportionalSansSerif"/>
</region>
...
<p region="r1">
In autumn, when the leaves are brown,<br/>
Take pen and ink, and <span tts:fontStyle="italic">write it down.</span>
</p>
|
![]() |
tts:fontVariant 属性は、組版上のグリフ変種の選択を
有効にするために使用される。
| 値: | <font-variant> |
| 初期値: | normal |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | fontVariant の導出 |
span に適用されることに加えて、
p 要素上のこのプロパティの算出値は、
10.2.27 tts:lineHeight で規定されるように、
tts:lineHeight 属性に関連付けられた
スタイルプロパティの normal 値を解決するために使用される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
normal を使用しなければならない。
tts:fontVariant スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="376px 95px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="center"/> <style tts:textAlign="center"/> <style tts:fontFamily="proportionalSansSerif"/> </region> ... <p region="r1"> jumping <span tts:fontVariant="super">up</span> and <span tts:fontVariant="sub">down</span> in an agony of terror. </p> |
![]() |
tts:fontWeight 属性は、region に流し込まれたコンテンツによって
生成されるグリフ領域について選択されるグリフに
適用するフォントウェイトを定義するスタイルプロパティを指定するために使用される。
ここで、フォントウェイト値から特定のフォントフェイスまたはウェイトの
パラメータ化への対応付けは、この仕様によって決定されない。
| 値: |
"normal" |
"bold"
|
| 初期値: | normal |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | fontWeight の導出 |
span に適用されることに加えて、
p 要素上のこのプロパティの算出値は、
10.2.27 tts:lineHeight で規定されるように、
tts:lineHeight 属性に関連付けられた
スタイルプロパティの normal 値を解決するために使用される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
normal を使用しなければならない。
tts:fontWeight スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="376px 95px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:displayAlign="center"/> <style tts:textAlign="center"/> <style tts:fontFamily="proportionalSansSerif"/> </region> ... <p region="r1"> They told me you had been to her,<br/> <span tts:fontWeight="bold">and mentioned me to him:</span><br/> She gave me a good character<br/> <span tts:fontWeight="bold">but said I could not swim.</span> </p> |
![]() |
tts:ipd 属性は、region に流し込まれたコンテンツによって
生成される領域のインライン進行次元、またはより簡潔には ipd を
指定するために使用される。
注:
用語 インライン進行次元は、書字モード相対の方法で解釈される。 そのため、ipd は常にインライン進行方向の距離に対応する。 したがって、横書きモードでは ipd は水平距離を表し、 縦書きモードでは ipd は垂直距離を表す。 ここで、水平および垂直は常に絶対的な意味で解釈される。
| 値: | <measure> |
| 初期値: | auto |
| 適用対象: |
body,
div,
p,
span
|
| 継承: | いいえ |
| パーセント値: | 本文参照 |
| アニメーション可能: | discrete |
| セマンティック基礎: | ipd の導出 |
<measure> が <length> 値として表される場合、 それは非負でなければならない。
tts:ipd 属性が
span 要素上に指定され、
その要素に適用される tts:display プロパティの算出値が
inlineBlock でない場合、
tts:ipd のセマンティクスは、適用可能な背景色または画像の
インライン進行次元を算出するときにのみ適用される。
ただし、生成される領域のコンテンツ矩形の寸法は変更されない。
この属性の <length> 式で パーセント値が使用される場合、 それは生成領域の包含領域(最も近い祖先領域)の、適用可能な 絶対 次元に関して解決される。
注:
この属性とともに使用される <length> 式は、 特定の書字モード相対の次元に関連付けられ、その後、適用可能な書字モードに従って 絶対次元に解決される。 その絶対次元が水平(垂直)である場合、 パーセント値は、参照領域(最も近い祖先領域)の同じ水平(垂直) 絶対次元に関して解決される。
tts:ipd スタイルを次の例に示す。
<p tts:fontSize="24px" tts:lineHeight="48px" tts:ipd="300px"> the woods are <span tts:display="inlineBlock" tts:ipd="150px">getting green</span> ... </p> |
tts:letterSpacing 属性は、
グリフ領域間の名目距離を増加または減少させる
スタイルプロパティを指定するために使用される。
文字間隔は行領域の先頭または末尾では効果を持たず、ゼロ送り幅グリフには 適用してはならない。さらに、文字間隔は、たとえば筆記体スクリプトで使用されるものや 筆記体フォントで使用されるものなど、通常接続されるグリフを 分離させてはならない。
文字間隔は、カーニングおよび両端揃えとは独立に適用される。使用中のフォント、 提示されるスクリプト、および提示プロセッサの能力に応じて、文字間隔に加えて カーニングおよび両端揃えのいずれか、または両方が適用されてもよい。
| 値: |
"normal" |
<length>
|
| 初期値: | normal |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | letterSpacing の導出 |
値 normal は、ゼロ(0)の
<length> 値を指定することに対応する。
すなわち、隣接するグリフ間隔を拡大も圧縮もしない。
<length> 値が正のスカラーとして表される場合、 隣接するグリフ間の空間は、そのスカラー値に等しい追加量だけ拡大される。 負のスカラーとして表される場合、 隣接するグリフ間の空間は、そのスカラー値に等しい追加量だけ圧縮され、 結果としてグリフ領域が重なる可能性があり、 有効送り幅がゼロ(0)となる最大量まで圧縮される。
この属性に関連付けられた文字間隔の算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された文字間隔とサポートされる文字間隔との間の一次元ユークリッド距離が 最小化される値を意味する。与えられた辺について算出値から等距離にある 複数の最も近いサポート値が存在する場合、0 から最も近い値が使用される。
tts:letterSpacing スタイルを次の
例に示す。
<p>
WAVE<br/>
<span tts:letterSpacing="20px">WAVE</span>
</p>
|
![]() |
tts:lineHeight 属性は、region に流し込まれたコンテンツによって生成される
行領域間のベースライン間隔を定義するスタイルプロパティを指定するために使用される。
注:
例外的に、トークン lineHeight に含まれる用語 height または
句 line height は、関連する行領域の
ブロック進行次元に対応する軸を指す。これは横書きモードでは
垂直軸であるが、縦書きモードでは水平軸である。
注:
line height に関連する追加情報については、 11.3.2.2 行積み重ねを参照。
| 値: |
"normal" |
<length>
|
| 初期値: | normal |
| 適用対象: |
p
|
| 継承: | はい。ただし特別な セマンティクスを参照 |
| パーセント値: | この要素のフォントサイズに相対的 |
| アニメーション可能: | discrete |
| セマンティック基礎: | lineHeight の導出 |
注:
p 要素に明示的に適用されることに加えて、
p 要素の
span 要素および
匿名 span
子孫によって継承されるこのスタイルプロパティの値は、それらが生成する
インライン領域の half leading を
算出するために使用される。これについては [XSL-FO
1.1] §4.5 および [CSS2] §10.8.1 を参照。
この属性の値が normal である場合、このスタイルプロパティの
使用値は次のように決定される。
P を、このスタイルプロパティが適用される
p 要素とする。
FF を、P の
tts:fontFamily
スタイルプロパティの算出値とする。
FS を、P の
tts:fontSize スタイルプロパティの
算出値とする。
F0 を、FF 内の各フォントファミリーを利用可能なフォントの集合に
順次対応付けるときに得られる最初のフォントとする。
ここで、この利用可能なフォントの集合は、P の
tts:fontStyle、
tts:fontWeight、および
tts:fontVariant
スタイルプロパティの算出値を満たすために必要に応じて制約される。
F0 が高度 A、深さ D、および行ギャップ G を指定するフォントメトリクスに関連付けられている場合、 LH を scaled(A)、scaled(D)、および scaled(G) の合計に設定する。 ここで scaled(X) は、フォントサイズ FS に従ってスケールされたフォントメトリック X を表す。
注:
ここで参照される高度、深さ、および行ギャップのパラメータは、
OpenType [OFF] フォント(または他のフォント形式における同等物)の
OS/2 テーブルの
sTypoAscender、
-sTypoDescender、すなわち
sTypoDescender の -1 倍、および
sTypoLineGap フィールドに対応することを意図している。
さらに一般に、式 scaled(A) および scaled(D) は、関連するプロパティ
text-altitude および text-depth とともに値
use-font-metrics が使用される場合に、[XSL-FO 1.1] が
採用する text-altitude および text-depth
領域特性にそれぞれ対応することを意図している。
そうでなければ、LH は実装依存であるとみなされる。ただし、 実装固有の要件がない場合、 LH は FS の 125% に設定することが推奨される。
このスタイルプロパティの使用値を LH に設定する。
注:
コンテンツ著者が、たとえば利用可能なフォント集合の違いに起因する
normal の異なる解釈の可能性を避けたい場合は、
行高の値を明示的に指定するために
<length> 値式を使用することが推奨される。
上記のアルゴリズムが [XSL-FO 1.1] および [CSS2] と互換であることが、この仕様の意図である。
<length> として指定される場合、その長さは 非負でなければならない。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された行高とサポートされる行高との間のユークリッド距離が 最小化される値を意味する。算出値から等距離にある複数の最も近いサポート値が 存在する場合、0 から最も遠い値、すなわち最大の行高が使用される。
tts:lineHeight スタイルを次の例に示す。
<region xml:id="r1">
<style tts:extent="255px 190px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="center"/>
<style tts:textAlign="start"/>
<style tts:fontFamily="proportionalSansSerif"/>
<style tts:fontSize="16px"/>
<style tts:lineHeight="32px"/>
</region>
...
<p region="r1">
He thought he saw an elephant,<br/>
That practised on a fife:<br/>
He looked again, and found it was<br/>
A letter from his wife.<br/>
"At length I realise," he said,<br/>
"The bitterness of Life.
"</p>
|
![]() |
この属性の指定値が normal である場合、算出値はその指定値である。
したがって、継承セマンティクスを適用するとき、値 normal が継承値である。
ただし、この算出値を段落レイアウトの実行に使用する場合、上記で説明したように
使用値を得るためにさらに処理される。
tts:lineShear 属性は、
p 要素によって生成される各
行領域にせん断変換が適用されるかどうか、
およびどのように適用されるかを決定するスタイルプロパティを指定するために使用される。
| 値: | <percentage> |
| 初期値: | 0% |
| 適用対象: |
p
|
| 継承: | はい |
| パーセント値: | 本文参照 |
| アニメーション可能: | discrete |
| セマンティック基礎: | lineShear の導出 |
この属性が適用される各行領域について、 10.4.5.3 せん断計算で 規定されるように、行領域に 2D せん断変換を適用する。
tts:lineShear スタイルを次の例に示す。
<region xml:id="right" tts:writingMode="tbrl" tts:displayAlign="center" .../> <region xml:id="left" tts:writingMode="tbrl" tts:displayAlign="center" .../> ... <div> <p region="right" tts:lineShear="0%"> 山の<span tts:ruby="container"><span tts:ruby="base">遭難</span><span tts:ruby="text">そうなん</span></span><br/> <span tts:ruby="container"><span tts:ruby="base">最多</span><span tts:ruby="text">さいた</span></span><span tts:ruby="container"><span tts:ruby="base">年</span><span tts:ruby="text">ねん</span></span> </p> <p region="left" tts:lineShear="16.67%"> 山の<span tts:ruby="container"><span tts:ruby="base">遭難</span><span tts:ruby="text">そうなん</span></span><br/> <span tts:ruby="container"><span tts:ruby="base">最多</span><span tts:ruby="text">さいた</span></span><span tts:ruby="container"><span tts:ruby="base">年</span><span tts:ruby="text">ねん</span></span> </p> </div> |
![]() |
注:
上記の例では、黄色の線は、特定の提示プロセッサによって
レイアウト問題のデバッグを支援するために作成された装飾である。
そのような線は、この仕様で定義される規範的な TTML 提示の一部ではない。
ここで、装飾は (1) region 要素によって
生成される外側のブロック
領域の境界、
(2) p 要素によって生成される外側の
ブロック領域の
行領域子の境界、および
(3) 暗黙のルビテキストコンテナによって
生成される行領域の
インライン領域子の境界を示している。
この例は、せん断(スキュー)変換が影響を受ける各行領域全体にどのように
適用されるかを示している。ただし、
line shear が行に適用される場合、その行に割り当てることができる利用可能距離、
すなわちせん断変換前の最大インライン進行次元長は、
B*sin(θ) だけ縮小される。ここで
B は行領域のブロック進行次元であり、
θ はせん断角である。これは、行を段落の外側ブロック領域の
コンテンツ矩形内に収めるためである。
tts:luminanceGain 属性は、region の提示が
[SRGB] 色空間によって提供されるものより大きなダイナミックレンジを必要とし、
かつその提示が絶対輝度値を必要とする場合に、region の絶対輝度を指定するために使用される。
注:
[SRGB] 色空間は、80 cd∙m-2 の 絶対参照白色点輝度を規定する。 その結果、[SRGB] 空間で指定された色は、 [ITU BT.2100-1] で規定される知覚量子化器電気光学 伝達関数(PQ EOTF)を使用するコンテンツなど、著しく大きなピーク輝度での表示を 意図した高ダイナミックレンジ(HDR)コンテンツと、信頼性をもって合成できない。 具体的には、
| 値: |
<non-negative-number>
|
| 初期値: | 1.0 |
| 適用対象: |
region
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete; continuous |
| セマンティック基礎: | luminanceGain の導出 |
tts:luminanceGain 属性に関連付けられた算出値は、関連付けられた
region 内で、
[SRGB] 色値から絶対輝度値への変換を必要とするすべての
ピクセルに適用される。絶対輝度ピクセル値を生成する要件は、
文書
処理コンテキストから導出される。
注:
たとえば [PQ PNG] に適合する画像など、 その処理が絶対輝度ピクセル値を生成する画像が、テキストまたは [SRGB] ピクセル値を生成する画像も含む region に配置され、 絶対輝度出力が必要とされる場合、 [SRGB] ピクセル値のみが変換される。
tts:luminanceGain を適用する場合、region のピクセルの成分の
線形光出力値
(Cr, Cg, Cb) は、
80 ∙ tts:luminanceGain ∙ (r, g, b) として定義される。
ここで (r, g, b) はそのピクセルの正規化線形
[SRGB] 成分である。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
tts:luminanceGain スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="60% 20%"/> <style tts:origin="10% 70%"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:luminanceGain="3.8"/> </region> <region xml:id="r2"> <style tts:extent="60% 20%"/> <style tts:origin="10% 10%"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:luminanceGain="1.0"/> </region> ... <p region="r1"> The absolute luminance of the text in region one "r1" should be 3.8 times brighter than the absolute luminance of the text in region two "r2". </p> <p region="r2"> Other text with the identity luminance adjustment (1.0). </p> |
輝度調整計算の例を以下に示す。
tts:luminanceGain="1.5" が与えられた場合、
色 rgb(218,165,32) を持つレンダリング済みピクセルの成分の
絶対線形光出力は (82.37, 42.21, 0.82) ≈ 80 ∙ 1.5 ∙((218/255)2.4,
(165/255)2.4, (32/255)2.4) である。
ここで指数 2.4 は [SRGB] EOTF によって適用されるガンマ補正である。
|
注:
tts:luminanceGain を使用して
[SRGB] ピクセルを HDR ピクセル上に合成する詳細な例は、
付録 Q.1 知覚量子化器に示されている。
注:
10.3.9 <color> で規定されるように、 レンダリングされた文書インスタンスの region を ターゲット媒体上に合成する処理は、通常、線形光で表されたピクセル成分ではなく、 ターゲット媒体の逆 EOTF を使用して符号化されたピクセル成分を使用して行われる。 その結果、半透明 region の使用は、ターゲット媒体で使用される逆 EOTF に応じて、 特にレンダリングされた文書インスタンスの ピクセルとターゲット媒体との間に大きな輝度差がある場合に、 知覚的に異なる結果を生じる可能性がある。 したがって、著者は半透明要素を伴う視覚結果を考慮することが推奨される。
tts:opacity 属性は、region または region に流し込まれた
コンテンツによって生成される領域に関連付けられたマークの不透明度
(または逆に透明度)を定義するスタイルプロパティを指定するために使用される。
視覚媒体上に提示される場合、region の不透明度は、その region にターゲットされた コンテンツによって生成されるすべてのマークに対して、線形スケールで一様に適用される。 これは、そのコンテンツによって生成される領域に、任意の コンテンツ要素固有の不透明度を適用した後に行われる。
| 値: | <alpha> |
| 初期値: |
1.0
|
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete; continuous |
| セマンティック基礎: | opacity の導出 |
tts:opacity スタイルを次の例に示す。
<p> <span tts:opacity="1.00">And </span> <span tts:opacity="0.75">then </span> <span tts:opacity="0.50">there </span> <span tts:opacity="0.25">were </span> <span tts:opacity="0.00">none.</span> </p> |
|
tts:origin 属性は、
ルート
コンテナ領域の原点に対する region 領域の原点の
x および y 座標を指定するために使用される。
tts:origin 属性と
tts:position 属性の両方が
要素上に指定され、かつ tts:position が
サポートされるプロパティである場合、
tts:origin 属性は提示処理の目的では無視されなければならない。
| 値: | <origin> |
| 初期値: | auto |
| 適用対象: |
region。
div および
p については
特別な使用を参照
|
| 継承: | いいえ |
| パーセント値: | ルート コンテナ領域の幅および高さに相対的 |
| アニメーション可能: | discrete |
| セマンティック基礎: | origin の導出 |
この属性の値が 2 つの <length> 指定から構成される場合、 それらは x および y 座標として解釈されなければならない。 ここで第 1 の指定が x 座標であり、第 2 の指定が y 座標である。
この属性の値が auto である場合、スタイルプロパティの算出値は
ルートコンテナ領域の原点と同じであると
みなされなければならない。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された原点とサポートされる原点との間のユークリッド距離が 最小化される値を意味する。算出値から等距離にある複数の最も近いサポート値が 存在する場合、[0,0] から最も近い値、すなわち座標空間原点に最も近い値が 使用される。
tts:origin スタイルを次の例に示す。
<region xml:id="r1">
<style tts:origin="40px 40px"/>
<style tts:extent="308px 92px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="center"/>
<style tts:textAlign="center"/>
</region>
...
<p region="r1">
"To dine!" she shrieked in dragon-wrath.<br/>
"To swallow wines all foam and froth!<br/>
To simper at a table-cloth!"
</p>
|
![]() |
tts:origin が
div または
p 上に例外的に指定される場合、
11.1.2.1
インラインアニメーションの特別な
セマンティクスが適用される。
tts:overflow 属性は、region の子孫領域がその範囲をオーバーフローする場合に、
region 領域がクリップされるかどうかを定義するスタイルプロパティを
指定するために使用される。
| 値: |
"visible" |
"hidden"
|
| 初期値: | hidden |
| 適用対象: |
region
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | overflow の導出 |
この属性の値が visible である場合、コンテンツは影響を受ける region の
外側でクリップされるべきではない。
値が hidden である場合、コンテンツは影響を受ける region の
外側でクリップされるべきである。
注:
region のコンテンツ矩形に関連付けられたコンテンツによって生成されるマークは、
そのコンテンツ矩形の外側にレンダリングされる可能性があり、その結果 region の
padding 矩形および border 矩形と交差するが、
tts:overflow 属性の影響は受けない。そのようなマークは、
region の範囲の外側に延びる場合にのみ region オーバーフローの候補となる。
この region の範囲は region の border 矩形と一致しており、border 矩形は
region の padding 矩形を含み、padding 矩形は region のコンテンツ矩形を含む。
注:
コンテンツ著者によって手動改行要素 br が使用されない限り、
ある region の段落は、その region の tts:overflow および
tts:wrapOption
スタイルプロパティの算出値がそれぞれ visible および
noWrap である場合、その region 内に 1 つを超える行領域を生成しない。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
hidden を使用しなければならない。
tts:overflow スタイルを次の例に示す。
<?xml version="1.0"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
xml:lang="en" tts:extent="320px 240px">
<head>
<styling>
<style xml:id="s1" tts:backgroundColor="black" tts:padding="6px"/>
<style xml:id="s2" tts:color="red" tts:backgroundColor="white"
tts:wrapOption="noWrap" tts:fontFamily="proportionalSansSerif"
tts:fontSize="10px"/>
</styling>
<layout>
<region xml:id="r1" style="s1" tts:extent="100px 40px" tts:origin="20px 20px"
tts:overflow="visible"/>
<region xml:id="r2" style="s1" tts:extent="100px 40px" tts:origin="20px 180px"
tts:overflow="hidden"/>
</layout>
</head>
<body>
<div>
<p region="r1" style="s2">
"But wait a bit," the Oysters cried,<br/>
"Before we have our chat;
</p>
<p region="r2" style="s2">
For some of us are out of breath,<br/>
And all of us are fat!"
</p>
</div>
</body>
</tt>
|
![]() |
注:
上記の例では、自動行折り返し(改行)を防ぐために、
tts:noWrap が noWrap に設定されている。
これが指定されていない場合、オーバーフローはインライン進行方向ではなく
ブロック進行方向に発生することになる。
tts:padding 属性は、region または region に流し込まれた
コンテンツによって生成される領域の 1 つ以上の辺に padding(または inset)
空間を指定するために使用される。
注:
Padding は region 領域に対する内側への挿入として適用される。すなわち、 region 領域のコンテンツ矩形は、region に適用された padding の存在によって 縮小される。
| 値: | <padding> |
| 初期値: | 0px |
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | いいえ |
| パーセント値: | 本文参照 |
| アニメーション可能: | discrete |
| セマンティック基礎: | padding の導出 |
この属性の値が 1 つの <length> 指定から構成される場合、 その長さは影響を受ける領域のすべての辺に適用される。値が 2 つの <length> 指定から構成される場合、 第 1 の指定は before 辺および after 辺に適用され、第 2 の指定は start 辺および end 辺に適用される。 3 つの <length> 指定が与えられる場合、 第 1 の指定は before 辺に、第 2 の指定は start 辺および end 辺に、第 3 の指定は after 辺に適用される。 4 つの <length> 指定が与えられる場合、 それらはそれぞれ before、end、after、および start 辺に適用される。
注:
パーセント値は、それが適用される region の寸法に相対的である。たとえば、
tts:writingMode が "lrtb" に等しいラテン文字テキストの場合のように、
before 辺および after 辺が region の上辺および下辺に対応する場合、
それら 2 つの辺のいずれかに適用されるパーセント値は region の高さに相対的である。
逆に、tts:writingMode が "tbrl" に等しい日本語テキストの場合のように、
before 辺および after 辺が region の右辺および左辺に対応する場合、
それら 2 つの辺のいずれかに適用されるパーセント値は region の幅に相対的である。
padding を表すために使用される <length> 値は 非負でなければならない。
padding が span 要素に適用され、
その要素からのコンテンツが複数の行領域に分割される場合、
指定された padding は各改行境界で適用されなければならない。対照的に、
単一の行領域内で、その要素によって複数のインライン領域が生成される場合、
指定された padding は、包含ブロックレベル要素のインライン進行順序において、
行領域内の最初および/または最後に生成されたインライン領域に適用されなければならない。
注:
span 要素上の padding の挙動は、
[CSS Fragmentation] §5.4 で定義されるように、
改行時には値 clone、非終端、すなわち最初でも最後でもない
インライン領域境界では値 slice を持つ CSS
box-decoration-break プロパティの使用に対応する。
この属性の <length> 成分で パーセント値が使用される場合、それは次のように解決される。
region 要素に適用される場合、
パーセント値は region の解決済み範囲の適用可能な
絶対次元に相対的である。
ただし、その次元が region のコンテンツのサイズに依存する場合、
パーセント値は適用可能な初期値の対応する成分に解決される。
他のすべての要素に適用される場合、パーセント値は最も近い祖先領域の対応する 絶対次元に相対的である。 ただし、その次元がその領域のコンテンツのサイズに依存する場合、 パーセント値は適用可能な初期値の対応する成分に解決される。
注:
この属性とともに使用される各 <length> 成分は、 特定の書字モード相対の辺に関連付けられ、その後、適用可能な書字モードに従って 絶対次元に解決される。 その絶対次元が水平(垂直)である場合、 パーセント値は参照領域(ルートコンテナ領域または最も近い祖先領域)の同じ水平(垂直) 絶対次元に関して解決される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された padding とサポートされる padding との間の一次元ユークリッド距離が 辺ごとに最小化される値を意味する。与えられた辺について算出値から等距離にある 複数の最も近いサポート値が存在する場合、0 から最も近い値、すなわち最小の padding が使用される。
tts:padding スタイルを次の例に示す。
<region xml:id="r1">
<style tts:extent="446px 104px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="after"/>
<style tts:textAlign="center"/>
<style tts:padding="10px 40px"/>
</region>
...
<p region="r1" tts:backgroundColor="red">
Just the place for a Snark! I have said it twice:<br/>
That alone should encourage the crew.<br/>
Just the place for a Snark! I have said it thrice:<br/>
What I tell you three times is true.
</p>
|
padding が適用される領域をレンダリングする場合、その領域に適用される背景色は、 その領域の padded 部分にレンダリングされる。
|
注:
上記の例は、padding が region 領域に対する内側への挿入としてどのように
適用されるかを示している。特に、
10px の padding が before(top)辺および after(bottom)辺に適用され、
40px の padding が start(left)辺および end(right)辺に適用される。
これらを region 領域の範囲から差し引くと、region のコンテンツ矩形は
幅 366px、高さ 84px になる。
region の黒い背景色は region の padding 矩形に現れ、
段落の赤い背景色は region のコンテンツ矩形に現れる。
<region xml:id="r1">
<style tts:extent="446px 72px"/>
<style tts:displayAlign="center"/>
<style tts:textAlign="center"/>
<style tts:backgroundColor="green"/>
</region>
...
<p region="r1">
<span tts:backgroundColor="black" tts:color="white" tts:padding="0c 0.5c">
The crew was complete: it included a Boots--<br/>
A maker of Bonnets and Hoods--
</span>
</p>
|
padding が適用される span をレンダリングする場合、padding は生成された各行領域に 独立に適用される。
|
tts:position 属性は、位置決め矩形に対する region 領域の位置を
指定する代替方法として使用される。
tts:position 属性と
tts:origin 属性の両方が
要素上に指定され、かつ tts:position がサポートされるプロパティである場合、
tts:origin 属性は提示処理の目的では無視されなければならない。
| 値: | <position> |
| 初期値: | top left |
| 適用対象: |
region。
div および
p については
特別な使用を参照
|
| 継承: | いいえ |
| パーセント値: | 本文参照 |
| アニメーション可能: | discrete; continuous |
| セマンティック基礎: | position の導出 |
水平位置オフセットのパーセント値成分は、位置決め矩形の幅から関連付けられた region の幅を引いたものに相対的である。 垂直位置オフセットのパーセント値成分は、位置決め矩形の高さから関連付けられた region の高さを引いたものに相対的である。
次の画像は、位置値 "75% 50%" を示している。破線の矩形は位置決め矩形を表し、 実線の矩形は位置決めされる region を表す。この場合、region は、 その幅の 75% の位置にある垂直線が位置決め矩形の幅の 75% の位置にある垂直線と一致し、 その高さの 50% の位置にある水平線が位置決め領域の幅の 50% の位置にある 垂直線と一致するように位置決めされる。
|
region 要素上に指定される場合、
位置決め矩形はルートコンテナ領域のコンテンツ矩形に対応する。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された位置とサポートされる位置との間のユークリッド距離が最小化される値を意味する。 算出値から等距離にある複数の最も近いサポート値が存在する場合、 [0,0] から最も近い値、すなわち座標空間位置に最も近い値が使用される。
tts:position スタイルを次の例に示す。この例では、
region が水平方向では中央揃えされ、垂直方向では位置決め矩形の下端から 10% 上に
下端オフセットを持つように位置決めされる。
ここで、このオフセットは、位置決め矩形の高さと region の高さとの差の 10% に等しい。
<tt tts:extent="640px 480px">
...
<region xml:id="r1">
<style tts:position="center bottom 10%"/>
<style tts:extent="308px 92px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="center"/>
<style tts:textAlign="center"/>
</region>
...
<p region="r1">
"To dine!" she shrieked in dragon-wrath.<br/>
"To swallow wines all foam and froth!<br/>
To simper at a table-cloth!"
</p>
|
![]() |
tts:position が
div または
p 上に例外的に指定される場合、
11.1.2.1
インラインアニメーションの特別な
セマンティクスが適用される。
tts:ruby 属性は、ルビ
スタイリングの適用を指定するために使用される。
| 値: |
"none" |
"container" |
"base" |
"baseContainer" |
"text" |
"textContainer" |
"delimiter"
|
| 初期値: | none |
| 適用対象: |
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | none |
| セマンティック基礎: | ruby の導出 |
この属性の値が none である場合、ルビセマンティクスは適用されない。
そうでなければ、
表 10-1 – ルビセマンティクス対応付けで
列挙されるルビセマンティクスが適用される。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
none を使用しなければならない。
| カテゴリ | tts:ruby | Annotation [Ruby] | CSS display [CSS Ruby] |
|---|---|---|---|
| ルビコンテナ | container |
ruby |
ruby |
| ルビベースコンテンツ | base |
rb |
ruby-base |
| ルビテキストコンテンツ | text |
rt |
ruby-text |
| ルビベースコンテナ | baseContainer |
rbc |
ruby-base-container |
| ルビテキストコンテナ | textContainer |
rtc |
ruby-text-container |
| ルビフォールバック区切り子 | delimiter |
rp |
none | inline |
提示処理の目的で、 文書処理コンテキストは提示のモード、 すなわち通常またはフォールバックを決定する。 ルビテキスト注釈の通常提示処理を実行する場合、区切り子コンテンツは いかなるインライン領域も生成してはならない。 ルビのフォールバック提示を実行する場合、区切り子および非区切り子のルビ (base および text)コンテンツは通常のインライン領域を生成しなければならない。 提示プロセッサがルビ提示をサポートしない場合、フォールバックルビ提示を 実行しなければならない。
tts:ruby を使用する場合、次の入れ子制約が
ルビコンテナに適用される。
すなわち、
span 要素の
tts:ruby の算出値が container である場合、次が適用される。
そのすべての祖先要素の tts:ruby の算出値は
none である。
その各子要素の tts:ruby の算出値は
none ではない。
その最初の子要素の tts:ruby の算出値は
baseContainer
または base である。
その各テキストノード子は <lwsp> のみを含む。
tts:ruby を使用する場合、次の入れ子制約が
ルビベースコンテナに適用される。
すなわち、
span 要素の
tts:ruby の算出値が baseContainer である場合、次が適用される。
その親要素の tts:ruby の算出値は
container である。
その各子要素の tts:ruby の算出値は
none ではない。
その最初の子要素の tts:ruby の算出値は
base である。
その先行兄弟は null(すなわち先行兄弟なし)である。
その各テキストノード子は <lwsp> のみを含む。
tts:ruby を使用する場合、次の入れ子制約が
ルビテキストコンテナに適用される。
すなわち、
span 要素の
tts:ruby の算出値が textContainer である場合、次が適用される。
その親要素の tts:ruby の算出値は
container である。
その各子要素の tts:ruby の算出値は
none ではない。
その最初の子要素の tts:ruby の算出値は
text または delimiter のいずれかである。
その先行兄弟の tts:ruby の算出値は
baseContainer または
textContainer である。
その兄弟のうち tts:ruby の算出値が
textContainer であるものは 1 つ以下である。
その各テキストノード子は <lwsp> のみを含む。
tts:ruby を使用する場合、次の入れ子制約が
ルビベースコンテンツに適用される。
すなわち、
span 要素の
tts:ruby の算出値が base である場合、次が適用される。
その親要素の tts:ruby の算出値は
container または
baseContainer のいずれかである。
その先行兄弟は null(すなわち先行兄弟なし)であるか、
その先行兄弟の tts:ruby の算出値が base である。
その親要素の tts:ruby の算出値が
container である場合、
兄弟のうち tts:ruby の算出値が base であるものは存在しない。
その子孫要素のうち tts:ruby の算出値が
none でないものは存在しない。
その子孫要素のいずれも br
要素ではない。
その各テキストノード子孫は U+2028 (LINE SEPARATOR) または U+2029 (PARAGRAPH SEPARATOR) を含まない。
tts:ruby を使用する場合、次の入れ子制約が
ルビテキストコンテンツに適用される。
すなわち、
span 要素の
tts:ruby の算出値が text である場合、次が適用される。
その親要素の tts:ruby の算出値は
container または
textContainer のいずれかである。
その先行兄弟は null(すなわち先行兄弟なし)であるか、
その先行兄弟の tts:ruby の算出値が base、
text、または delimiter である。
その親要素の tts:ruby の算出値が
container である場合、
兄弟のうち tts:ruby の算出値が text であるものは存在しない。
その子孫要素のうち tts:ruby の算出値が
none でないものは存在しない。
その子孫要素のいずれも br
要素ではない。
その各テキストノード子孫は U+2028 (LINE SEPARATOR) または U+2029 (PARAGRAPH SEPARATOR) を含まない。
tts:ruby を使用する場合、次の入れ子制約が
ルビフォールバック区切り子に適用される。
すなわち、
span 要素の
tts:ruby の算出値が delimiter である場合、次が適用される。
その親要素の tts:ruby の算出値は
container または textContainer のいずれかである。
その先行兄弟は null(すなわち先行兄弟なし)であるか、
その先行兄弟の tts:ruby の算出値が base または
text である。
兄弟のうち tts:ruby の算出値が
delimiter であるものはちょうど 1 つである。
tts:ruby の算出値が delimiter である場合、
その子孫要素のうち tts:ruby の算出値が
none でないものは存在しない。
その子孫要素のいずれも br
要素ではない。
その各テキストノード子孫は U+2028 (LINE SEPARATOR) または U+2029 (PARAGRAPH SEPARATOR) を含まない。
妥当性検証コンテンツプロセッサは、
上記の制約のいずれかに対する違反をエラーとして扱わなければならない。
提示処理の目的では、これらの制約のいずれかに対する違反は、
ルビテキスト注釈のフォールバック(インライン)提示をもたらすべきであり、
何らかの制約に違反するコンテンツについて、そのコンテンツが
br 要素、または U+2028 (LINE SEPARATOR) もしくは
U+2029 (PARAGRAPH SEPARATOR) 文字である場合、
それは U+0020 (SPACE) 文字に対応付けられるべきであり、あるいは、その他のコンテンツである場合、
無視される(提示されない)べきである。
注:
上記に列挙した制約は、次の入れ子モデルを指定するものとして解釈されることを 意図している。
container
: base text
| base delimiter text delimiter
| baseContainer textContainer textContainer?
baseContainer
: base+
textContainer
: text+
| delimiter text+ delimiter
base | text | delimiter
: (#PCDATA | { span - tts:ruby })*
このモデルは、[Ruby] §2.1 で定義される
ruby 要素の最大コンテンツモデルに対応する。
ただし、rtc が区切り子(rp)の任意使用を許可するように
実質的に拡張される点は例外である。
ruby : rb rt | rb rp rt rp | rbc rtc rtc? rbc : rb+ rtc : rt+ | rp rt+ rp // extension to [Ruby]
さらに、このモデルは、 ルビコンテナの入れ子がサポートされないという 制約(上記の入れ子制約を参照)に関して、[Ruby] §2.6 と整合する。
注:
[HTML 5.2] で許可されるほど多くのマークアップ最小化の機会を サポートしないものの、ここで定義されるルビ注釈の定式化は次の省略表現を許可する。
base text =
baseContainer
base
textContainer
text
base delimiter text delimiter =
baseContainer
base
textContainer
delimiter text delimiter
base の内容が B であり、
text の内容が T である場合、式 base text は
[HTML 5.2] では次のようにさまざまに表現できる。
<ruby>B<rt>T</ruby> <ruby>B<rt>T</rt></ruby> <ruby><rb>B<rt>T</ruby> <ruby><rb>B</rb><rt>T</ruby> <ruby><rb>B</rb><rt>T</rt></ruby> <ruby>B<rtc><rt>T</ruby> <ruby>B<rtc><rt>T</rtc></ruby> <ruby>B<rtc><rt>T</rt></ruby> <ruby>B<rtc><rt>T</rt></rtc></ruby> <ruby><rb>B<rtc><rt>T</ruby> <ruby><rb>B<rtc><rt>T</rtc></ruby> <ruby><rb>B</rb><rtc><rt>T</ruby> <ruby><rb>B</rb><rtc><rt>T</rtc></ruby> <ruby><rb>B</rb><rtc><rt>T</rt></ruby> <ruby><rb>B</rb><rtc><rt>T</rt></rtc></ruby>
一方、TTML2 では、次の代替表現が可能である。
<span tts:ruby="container"> <span tts:ruby="base">B</span> <span tts:ruby="text">T</span> </span>
またはそれと等価な次の表現である。
<span tts:ruby="container">
<span tts:ruby="baseContainer">
<span tts:ruby="base">B</span>
</span>
<span tts:ruby="textContainer">
<span tts:ruby="text">T</span>
</span>
</span>
注:
TTML の構文は、同じ ルビコンテナ内で、 ルビベースコンテナ内に複数の ルビベースコンテンツを使用し、 ルビテキストコンテナ内に複数の ルビテキストコンテンツを使用することを許可する。 このバージョンの TTML は、同じ ルビコンテナ内の ルビテキストコンテンツの数が ルビベースコンテンツの数と等しくない場合の、 ルビベースコンテンツと ルビテキストコンテンツとの対応付けを未定義のままとする。
注:
ルビテキストコンテナまたは ルビテキストコンテンツに対して 提示処理を実行することによってインライン領域が 生成される場合、そのインライン領域は、関連付けられた ルビベースコンテンツを含む 行領域を親とする(その子孫になる)。
単純なルビ注釈を指定するための tts:ruby の使用を次の例に示す。
<span tts:ruby="container" tts:rubyAlign="spaceAround"> <span tts:ruby="base">利用許諾</span> <span tts:ruby="text">ライセンス</span> </span> |
|
両側ルビ注釈を指定するための tts:ruby の使用を
次の例に示す。
<span> <span tts:ruby="container" tts:rubyAlign="spaceAround"> <span tts:ruby="baseContainer"> <span tts:ruby="base">東南</span> </span> <span tts:ruby="textContainer" tts:rubyPosition="before"> <span tts:ruby="text">とうなん</span> </span> <span tts:ruby="textContainer" tts:rubyPosition="after"> <span tts:ruby="text">たつみ</span> </span> </span> <span>の方角</span> </span> |
|
注:
bopomofo 文字で使用されるような、ルビ注釈の文字間位置決めモードは、 市場要件がないため、このバージョンの TTML ではサポートされない。
tts:ruby 属性は、注釈がラテン文字を使用する場合にも使用できる。
たとえば、[CLREQ] で説明され、次の例に示される pinyin の場合である。
<p> <span tts:ruby="container" tts:rubyAlign="center"> <span tts:ruby="base">周杰伦</span><span tts:ruby="text">Jay Chou</span> </span> |
![]() |
実装固有の要件がない場合、 ルビテキストコンテンツと ルビベースコンテンツとの間の配置に関する制約のうち、 行領域のオーバーフローを引き起こす可能性があるものは、 ルビテキストコンテンツを 行領域の start 辺または end 辺から離すように移動することで解決されるべきである。
注:
さらなる情報については、[JLREQ] §3.3.8 Adjustments of Ruby with Length Longer than that of the Base Characters および [CSS Ruby] §5 Edge Effects を参照。
実装固有の要件がない場合、 ルビテキストコンテンツは、ベーステキストが [JLREQ] Appendix A Character Classes で定義される 次の文字クラスのいずれかに属する場合にのみ、 ルビベースコンテンツからはみ出すことが 許可されるべきである。
hiragana
ideographic
punctuationMarks
注:
さらなる情報については、[JLREQ] §3.3.8 Adjustments of Ruby with Length Longer than that of the Base Characters を参照。
提示処理を実行する場合、 孤立ルビ コンテンツ、 すなわち、それぞれ ルビベースコンテナまたは ルビテキストコンテナなしで指定された ルビベースコンテンツまたは ルビテキストコンテンツは、 必要に応じて匿名の ルビベースコンテナおよび(または)匿名の ルビテキストコンテナの存在を暗示するように処理される。 暗黙的ルビベース コンテナおよび(または) 暗黙的ルビテキストコンテナは、 孤立ルビ コンテンツによって生成されるインライン領域を含むインラインブロック領域に、 暗黙的または集合的なスタイリングセマンティクスを生成して適用するために必要である。
span 要素が明示的に指定され、
その
tts:ruby の算出値が
baseContainer である場合、それは
明示的ルビベース
コンテナと呼ばれる。
同様に、span
要素が明示的に指定され、その
tts:ruby の算出値が
textContainer である場合、それは
明示的ルビテキスト
コンテナと呼ばれる。
tts:rubyAlign 属性は、
ルビテキスト
コンテナ注釈によって生成されるインライン領域内におけるルビテキストの位置を
指定するために使用される。
| 値: |
"start" |
"center" |
"end" |
"spaceAround" |
"spaceBetween" |
"withBase"
|
| 初期値: | center |
| 適用対象: |
span のうち、
tts:ruby の算出値が
container であるもののみ
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | rubyAlign の導出 |
この属性が
span 要素のうち
tts:ruby の算出値が
container であるものに指定される場合、
関連付けられたスタイルプロパティのルビ配置セマンティクスは、
コンテナを構成する
ルビコンテナおよびルビコンテンツによって生成される
インライン領域に集合的に適用される。
注:
ルビ配置をルビ コンテナ全体に適用することの帰結として、 コンテナおよびその構成要素に適用されるルビ配置は一様(不変)になる。
IR および IB をそれぞれ、 (1) ルビテキストコンテナまたは ルビテキスト注釈、および (2) 関連付けられた ルビ ベースコンテナまたはルビベースによって生成されるインライン領域とする。 さらに、NR および NB をそれぞれ、 これらのインライン領域の グリフ領域子孫の数とする。
この属性の値が start である場合、
IR の最初の
グリフ領域子孫の start 辺は、
そのインライン領域の start 辺に揃えられる。
値が center である場合、余剰空白は、それぞれ最初および最後の
ルビ注釈グリフ領域の前後に等しく分配される。
この属性の値が end である場合、
IR の最初の
グリフ領域子孫の end 辺は、
そのインライン領域の end 辺に揃えられる。
値が spaceBetween である場合、余剰空白は各ルビ注釈
グリフ領域の間で等しく分配される。
値が spaceAround である場合、余剰空白は各ルビ注釈
グリフ領域子孫の前後に等しく分配される。
この属性の値が withBase である場合、
NR と
NB が等しければ、
IR の ith
グリフ領域子孫は、
IB の ith
グリフ領域子孫と
(水平または垂直に)中央揃えされる。
そうでなければ(ルビとベースの
グリフ領域の数が等しくない場合)、
center のセマンティクスが適用される。
注:
上記のセマンティクスのコンテキストで グリフ領域 子孫を解釈する目的では、間隔を持つ グリフ領域子孫のみが考慮される。 すなわち、結合記号などの間隔を持たない グリフ領域 子孫は、ルビ配置に影響を与えない。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
center を使用しなければならない。
注:
この仕様では、時限テキストアプリケーションにおけるルビ注釈は狭いものと
仮定される。なぜなら、提示空間および利用可能時間はしばしば制約されるからである。
その結果、このバージョンの TTML は、ルビ注釈がそのベーステキストより広い場合に
間隔がどのように分配されるかを著者が制御できるようにはしていない。
これは、行の start 辺または end 辺における広いルビ注釈にとって問題になる可能性がある。
問題を避けるため、著者は適切な tts:rubyAlign 値を使用すること、
および/または広いルビ注釈を含むイベントを複数行、さらには複数イベントに
分割することが推奨される。
tts:rubyAlign スタイルを次の例に示す。
<p> <span tts:ruby="container" tts:rubyAlign="start"> <span tts:ruby="base">自業自得</span><span tts:ruby="text">一二三</span> </span> <span tts:ruby="container" tts:rubyAlign="spaceAround"> <span tts:ruby="base">自業自得</span><span tts:ruby="text">一二三</span> </span> <br/> <span tts:ruby="container" tts:rubyAlign="end"> <span tts:ruby="base">自業自得</span><span tts:ruby="text">一二三</span> </span> <span tts:ruby="container" tts:rubyAlign="spaceBetween"> <span tts:ruby="base">自業自得</span><span tts:ruby="text">一二三</span> </span> </p> |
![]() |
tts:rubyPosition 属性は、関連付けられたルビベースに対する
ブロック進行次元におけるルビテキストの位置を指定するために使用される。
| 値: |
<annotation-position>
|
| 初期値: | outside |
| 適用対象: |
span のうち、
tts:ruby の算出値が
textContainer または text であるもののみ
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | rubyPosition の導出 |
この属性に関連付けられたスタイルプロパティは、 ルビテキスト コンテナおよびルビテキスト注釈から生成されるインライン領域の、 関連付けられたベーステキストコンテナおよびベーステキストに対する相対位置を決定する。 ここで、<annotation-position> の 方向セマンティクスが適用される。
この属性が、
span 要素のうち
tts:ruby の算出値が
textContainer であるものに指定される場合、
関連付けられたスタイルプロパティのルビ位置セマンティクスは、
明示的ルビテキストコンテナおよび
その構成要素である
ルビテキストコンテンツによって生成される
インライン領域に集合的に適用される。
この属性が、
span 要素のうち
tts:ruby の算出値が
text であるものに指定される場合、
関連付けられたスタイルプロパティのルビ位置セマンティクスは、その
暗黙的ルビテキストコンテナおよび
それ自身の
ルビテキストコンテンツによって生成される
インライン領域に集合的に適用される。
この属性は、
span 要素のうち
tts:ruby の算出値が
text であるものに指定してはならない。ただし、その
span 要素の親が、
span 要素のうち
tts:ruby の算出値が textContainer であるものの場合である。
指定された場合(前者の
ルビテキストコンテンツ上に指定された場合)、
それはエラーとみなされ、提示処理の目的では無視されなければならない。
ルビテキストコンテナまたは
ルビテキスト注釈の絶対位置は、影響を受けるコンテンツが配置される region の
tts:writingMode スタイルプロパティの算出値に従って決定される。
特に、
表 10-2 – 書字モード別の絶対ルビ位置
セマンティクス対応付けで列挙される対応付けが、
[CSS Ruby] §4.1 によってさらに定義されるように適用される。
2 つの ルビテキストコンテナが同じ ルビベースコンテナに適用される場合、 この属性に関連付けられたプロパティの 使用値が、 両方のルビテキストコンテナを ルビベースコンテナの同じ相対側に配置する結果になるなら、 それはエラーとみなされる。この場合、このプロパティの提示セマンティクスは この仕様では定義されない。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
before を使用しなければならない。
| tts:rubyPosition | lrtb |
rltb |
tbrl |
tblr |
|---|---|---|---|---|
before |
over |
over |
right |
left |
after |
under |
under |
left |
right |
注:
モンゴル文字を縦書き左から右の行で用いる場合、ルビ位置に割り当てられる初期値は、
すべての非最終行で before に解決される outside ではなく、
after であることが望ましい場合がある。
この場合、著者は文書の styling 要素に
<initial tts:rubyPosition="after"/> 要素を含めることで、
この属性の既定の初期値を再定義してもよい。
tts:rubyPosition スタイルを次の例に示す。この例は、
ルビ位置の解決が書字モードにどのように依存するかを示している。
例では [JLREQ] で定義される
mono ruby を使用していることに注意。
<region xml:id="left" tts:writingMode="tblr"/> <region xml:id="middle" tts:writingMode="lrtb"/> <region xml:id="right" tts:writingMode="tbrl"/> ... <p region="left"> <span tts:ruby="container" tts:rubyPosition="before"> <span tts:ruby="base">一</span> <span tts:ruby="text">一</span> </span> <span tts:ruby="container" tts:rubyPosition="before"> <span tts:ruby="base">二</span> <span tts:ruby="text">二</span> </span>三四<br/>五六 <span tts:ruby="container" tts:rubyPosition="after"> <span tts:ruby="base">七</span> <span tts:ruby="text">七</span> </span> <span tts:ruby="container" tts:rubyPosition="after"> <span tts:ruby="base">八</span> <span tts:ruby="text">八</span> </span> </p> <p region="middle"> <span tts:ruby="container" tts:rubyPosition="before"> <span tts:ruby="base">一</span> <span tts:ruby="text">一</span> </span> <span tts:ruby="container" tts:rubyPosition="before"> <span tts:ruby="base">二</span> <span tts:ruby="text">二</span> </span>三四<br/>五六 <span tts:ruby="container" tts:rubyPosition="after"> <span tts:ruby="base">七</span> <span tts:ruby="text">七</span> </span> <span tts:ruby="container" tts:rubyPosition="after"> <span tts:ruby="base">八</span> <span tts:ruby="text">八</span> </span> </p> <p region="right"> <span tts:ruby="container" tts:rubyPosition="before"> <span tts:ruby="base">一</span> <span tts:ruby="text">一</span> </span> <span tts:ruby="container" tts:rubyPosition="before"> <span tts:ruby="base">二</span> <span tts:ruby="text">二</span> </span>三四<br/>五六 <span tts:ruby="container" tts:rubyPosition="after"> <span tts:ruby="base">七</span> <span tts:ruby="text">七</span> </span> <span tts:ruby="container" tts:rubyPosition="after"> <span tts:ruby="base">八</span> <span tts:ruby="text">八</span> </span> </p> |
![]() |
注:
上記の例では、整形を助けるために span 要素内およびその周囲に
空白が導入されている。示された例レンディションを生成するには、
その余分な空白がレンダリング出力に現れないように削除する必要がある。
tts:rubyReserve 属性は、影響を受ける行領域に追加の空間を
適用し、行領域の境界内に配置される
ルビテキストコンテナによって生成される
インライン領域を包含するために、ブロック進行次元に十分な余地を予約するために使用される。
注:
著者は、ルビテキスト注釈の有無にかかわらず、ブロック領域内の連続する
行領域のベースラインが固定された配置を保つことを確実にするために、
tts:rubyReserve 属性を使用してもよい。
| 値: | <ruby-reserve> |
| 初期値: | none |
| 適用対象: |
p
|
| 継承: | はい |
| パーセント値: | この要素のフォントサイズに相対的 |
| アニメーション可能: | discrete |
| セマンティック基礎: | rubyReserve の導出 |
この属性の値が none である場合、ルビ空間予約は適用されない。
そうでなければ、この属性の値は、位置成分の後に任意の長さ成分が続くものを指定する。
位置成分が before である場合、影響を受ける行領域の before leading は、
長さ成分の
使用値によって決定される量だけ増加する。
位置成分が after である場合、影響を受ける行領域の after leading は、
長さ成分の
使用値によって決定される量だけ増加する。
位置成分が both である場合、before 位置と
after 位置の両方のセマンティクスが、
影響を受ける各行領域に適用される。
位置成分が outside である場合、現在のブロック領域が
ちょうど 1 つの行領域を含むなら、both 位置が適用される。
そうでなければ、before 位置のセマンティクスが現在のブロック領域の
最初の行領域に適用され、after 位置のセマンティクスが現在のブロック領域の
その他すべての行領域に適用される。
長さ成分は、影響を受ける行領域の before leading および after leading が
増加される量を間接的に決定するために使用される。
長さ成分の算出値は、
p 要素内に実際に存在すると仮定した
仮想的なルビテキストコンテンツの
tts:fontSize 属性に関連付けられた
スタイルプロパティの算出値を表すものとみなされる。
長さ成分が指定されない場合、それは、
p 要素内に実際に存在すると仮定した
仮想的なルビテキストコンテナまたは
ルビテキストコンテンツによって継承されることになる、
tts:fontSize 属性に関連付けられた
スタイルプロパティの値に等しいものとみなされなければならない。
ここで、この継承値を算出する目的では
10.2.21.1 Font
Size の特別なセマンティクスが適用される。
<length> 成分が指定される場合、それは 非負でなければならない。
tts:rubyReserve が
p 要素上に指定され、
その要素がルビテキストコンテンツを含む場合、
予約された leading は上記のように行領域に適用され、その後、実際の
ルビテキストコンテンツの存在に対応するため、
必要に応じてこれらの leading に追加の調整が行われる。
tts:rubyReserve |
Ruby なし | Ruby あり |
|---|---|---|
none |
|
|
before |
|
|
after |
|
|
both |
|
|
outside |
|
|
tts:shear 属性は、影響を受ける要素によって生成される最外側の
ブロック領域にせん断変換が適用されるかどうか、
およびどのように適用されるかを決定するスタイルプロパティを指定するために使用される。
| 値: | <percentage> |
| 初期値: | 0% |
| 適用対象: |
p
|
| 継承: | はい |
| パーセント値: | 本文参照 |
| アニメーション可能: | discrete |
| セマンティック基礎: | shear の導出 |
この属性が適用される各ブロック領域について、 10.4.5.3 せん断計算で規定されるように、 ブロック領域に 2D せん断変換を適用する。
tts:shear スタイルを次の例に示す。
<region xml:id="right" tts:writingMode="tbrl" tts:displayAlign="center" .../> <region xml:id="left" tts:writingMode="tbrl" tts:displayAlign="center" .../> ... <div> <p region="right" tts:shear="0%"> 山の<br/> 最多<span tts:textCombine="all">1998</span>年 </p> <p region="left" tts:shear="16.67%"> 山の<br/> 最多<span tts:textCombine="all">1998</span>年 </p> </div> |
![]() |
注:
上記の例では、黄色の線は、特定の提示プロセッサによって
レイアウト問題のデバッグを支援するために作成された装飾である。
そのような線は、この仕様で定義される規範的な TTML 提示の一部ではない。
ここで、装飾は (1) region 要素によって
生成される外側のブロック
領域の境界、および
(2) p 要素によって生成される外側の
ブロック領域の
行領域子の境界を示している。
この例は、せん断(スキュー)変換が
p 要素によって生成される、影響を受ける外側の
ブロック領域にどのように適用されるかを示している。
ただし、せん断が外側のブロック領域に適用される場合、
そのブロック領域に割り当てることができる利用可能距離、
すなわちせん断変換前の最大インライン進行次元長は
B*sin(θ) だけ縮小される。
ここで B は外側の
ブロック領域のブロック進行次元であり、θ は
せん断角である。これは、ブロック領域を段落の直接の祖先ブロック領域の
コンテンツ矩形内に収めるためである。
tts:showBackground 属性は、region の背景がいつ提示されることを
意図するかについての制約を指定するために使用される。
注:
region の背景には、その region に適用される場合、 (1) 背景色または (2) 背景画像のいずれか(または両方)によって生成されるマークが含まれる。
| 値: |
"always" |
"whenActive"
|
| 初期値: | always |
| 適用対象: |
region
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | showBackground の導出 |
region が時間的にアクティブでない場合、 その背景はレンダリングされない。しかし、時間的にアクティブである場合は、
この属性の値が whenActive である場合、その region の背景は、
コンテンツがその region に選択され、かつそのコンテンツも
時間的にアクティブである場合にのみレンダリングされる。
そうでなく、この属性の値が always である場合、その region の背景は、
コンテンツがその region に選択されているかどうかにかかわらずレンダリングされる。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
always を使用しなければならない。
tts:showBackground スタイルを次の例に示す。
<region xml:id="r1"> <style tts:origin="0px 0px"/> <style tts:extent="265px 100px"/> <style tts:backgroundColor="black"/> <style tts:showBackground="always"/> <style tts:color="white"/> <style tts:displayAlign="before"/> <style tts:textAlign="start"/> </region> <region xml:id="r2"> <style tts:origin="205px 60px"/> <style tts:extent="290px 100px"/> <style tts:backgroundColor="red"/> <style tts:color="white"/> <style tts:displayAlign="before"/> <style tts:textAlign="end"/> <style tts:showBackground="whenActive"/> </region> |
tts:textAlign 属性は、インライン領域が包含ブロック領域内で
インライン進行方向にどのように配置されるかを定義するスタイルプロパティを
指定するために使用される。
| 値: |
"left" |
"center" |
"right" |
"start" |
"end" |
"justify"
|
| 初期値: | start |
| 適用対象: |
p
|
| 継承: | 本文参照 |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | textAlign の導出 |
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
start を使用しなければならない。
tts:textAlign スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="355px 43px"/> <style tts:origin="0px 0px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:textAlign="start"/> </region> <region xml:id="r2"> <style tts:extent="355px 43px"/> <style tts:origin="0px 47px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:textAlign="end"/> </region> ... <p region="r1"> Beware the Jabberwock, my son!<br/> The jaws that bite, the claws that catch! </p> <p region="r2"> Beware the Jubjub bird, and shun<br/> The frumious Bandersnatch! </p> |
![]() |
注:
p 要素によって生成される最後のブロック領域の
最後の行領域のテキスト配置は、[XSL-FO 1.1] §7.16.10 に従い、
値 relative を持つ text-align-last プロパティの
セマンティクスに従う。
縦書きモードが適用される場合、tts:textCombine 属性は、
複数の文字を水平方向に結合して、その
グリフ領域が周囲の縦書きテキストの 1 行の幅に
収まるようにするかどうか、およびどのように結合するかを決定する
スタイルプロパティを指定するために使用される。
横書きモードが適用される場合、このプロパティは提示処理の目的では無視される。
結合処理は、周囲の縦書きテキストの em 正方形内に視覚的に結合するという目標を 達成するために、1 つ以上の技法を使用してもよい。 たとえば、半角変種形を選択してもよく、リガチャを選択してもよく、 より小さいフォントサイズを適用してもよい。最低限、このスタイルプロパティを サポートする実装は、利用可能であれば半角変種形を選択できなければならない。 これらの技法のいずれも、包含行領域のブロック進行次元に沿った目標寸法を達成できない場合、 有効な行積み重ね方針によって許可されるなら、包含行領域のこの寸法を増加してもよい。
| 値: | <text-combine> |
| 初期値: | none |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | textCombine の導出 |
この属性の指定値が none である場合、結合処理は適用されない。
この属性の指定値が all である場合、影響を受けるすべての文字が
結合されるべきである。
結合は、影響を受けるすべての文字が横書きモードが適用されるものとして
処理された後に適用される。特に、双方向処理、リガチャ、グリフ置換、または
Unicode 結合文字の結合が使用される場合、それらは
tts:textCombine 属性によって指定される結合処理の前に適用される。
結合は、要素境界、双方向境界、または 非グリフ領域境界を越えてはならない。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
none を使用しなければならない。
tts:textCombine スタイルを次の例に示す。
<p region="tbrlLeft">あい <span tts:textCombine="none">AB34</span>三四 </p> <p region="tbrlCenter">あい <span tts:textCombine="all">AB34</span>三四 </p> |
![]() |
注:
上記の例では、tts:textCombine の値 all について、
提示プロセッサは影響を受ける文字の半角変種を選択したが、
読みやすさの問題を避けるため、また TTML によって許可されるため、
結果として得られる幅は周囲の縦書きテキストの em 正方形より大きくなっている。
tts:textDecoration 属性は、region に流し込まれたコンテンツによって生成される
グリフ領域またはその他のインライン
領域に適用するテキスト装飾効果を定義するスタイルプロパティを指定するために使用される。
| 値: | <text-decoration> |
| 初期値: | none |
| 適用対象: | span |
| 継承: | はい。ただし特別な セマンティクスを参照 |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | textDecoration の導出 |
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
none を使用しなければならない。
注:
このプロパティの値を定義する際に上で使用される構文は、
[CSS2] §1.4.2.1 で定義される値成分構文に基づいている。
本質的には、|| で区切られた 1 つ以上の値が、
"noUnderline overline lineThrough" のように、任意の順序でプロパティ値に
現れてもよい。
tts:textDecoration スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="385px 82px"/> <style tts:origin="0px 0px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:padding="5px 2px"/> <style tts:textDecoration="underline"/> </region> ... <p region="r1"> The sea was wet<span tts:textDecoration="noUnderline"> as </span>wet <span tts:textDecoration="noUnderline"> could be,<br/> The sand was dry as dry.<br/> <span tts:textDecoration="lineThrough">There weren't any</span> You <span tts:textDecoration="lineThrough">couldn't</span> could not see a cloud<br/> Because no cloud was in the sky. </span> </p> |
![]() |
この属性に関連付けられたプロパティの算出値は 3 タプルで構成され、 各項目は、それぞれ下線、取り消し線、または上線の装飾を影響を受けるテキストに 適用するかどうかを表す。 さらに、継承セマンティクスを適用するとき、これらの各項目は他の項目とは 別々に継承されるものとみなされる。
注:
たとえば、div(division)要素に適用される
tts:textDecoration の算出値がタプル
(noUnderline, lineThrough, overline) であり、その
div の子である p(paragraph)要素が
tts:textDecoration="noLineThrough" を指定する場合、
p 要素に適用される集約算出値は
(noUnderline, noLineThrough, overline) となり、その値は
p 要素の子によって継承される。
tts:textEmphasis 属性は、region に流し込まれたコンテンツによって生成される
グリフ領域またはその他のインライン
領域に適用するテキスト強調効果を定義するスタイルプロパティを指定するために使用される。
| 値: | <text-emphasis> |
| 初期値: | none |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete; continuous(color のみ) |
| セマンティック基礎: | textEmphasis の導出 |
強調スタイルが指定されていない場合、
強調スタイルは auto のスタイルが指定されたかのように
解釈されなければならない。
強調色が指定されていない場合、
強調色は current の色が指定されたかのように解釈されなければならない。
強調位置が指定されていない場合、
強調位置は outside の位置が指定されたかのように解釈されなければならない。
注:
モンゴル文字を縦書き左から右の行で用いる場合、強調位置に割り当てられる初期値は、
すべての非最終行で before に解決される outside ではなく、
after であることが望ましい場合がある。
この場合、著者は文書の styling 要素に
<initial tts:textEmphasis="none transparent after"/> 要素を含めることで、
この属性の既定の初期値を再定義してもよい。
tts:textEmphasis スタイルを次の例に示す。
<p> <span tts:textEmphasis="filled circle before">花</span> <span tts:textEmphasis="filled dot before">よ</span> <span tts:textEmphasis="filled sesame before">り</span> <span tts:textEmphasis="open circle before">だ</span> <span tts:textEmphasis="open dot before">ん</span> <span tts:textEmphasis="open sesame before">ご</span> <br/> <span tts:textEmphasis="filled circle after">花</span> <span tts:textEmphasis="filled dot after">よ</span> <span tts:textEmphasis="filled sesame after">り</span> <span tts:textEmphasis="open circle after">だ</span> <span tts:textEmphasis="open dot after">ん</span> <span tts:textEmphasis="open sesame after">ご</span> </p> |
![]() |
tts:textOrientation 属性は、縦書きモードが適用される region に
流し込まれたコンテンツによって生成される
グリフ領域に適用するテキスト方向を定義する
スタイルプロパティを指定するために使用される。
| 値: |
"mixed" |
"sideways" |
"upright"
|
| 初期値: | mixed |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | textOrientation の導出 |
このスタイルプロパティの提示セマンティクスは、縦書きモードが適用される場合にのみ 適用される。したがって、横書きモードが適用される場合、このスタイルプロパティは 効果を持たない。
以下では、コンテンツ文字に関連付けられた
グリフ領域を、縦書きモードにおいて回転されるか
回転されないかという観点で説明する。この判定は、[UTR50] によって
決定される各コンテンツ文字の Vertical_Orientation に従って行われる。
この属性の値が mixed である場合、回転される
グリフ領域は sideways に組まれ、
回転されないグリフ領域は upright に組まれる。
ここで sideways は時計回りに 90° 回転されることを意味し、
upright は回転されないことを意味する。
注:
[UTR50] によれば、 グリフ領域の視覚的回転は、 回転済みグリフ領域の置換、または グリフ領域のアウトライン(またはラスター画像)に対する アフィン回転変換の実行のいずれかによって発生する可能性がある。 これらのうちどれが適用されるかの判定は、提示処理中に使用される特定のフォントに依存する。
この属性の値が sideways である場合、すべての
グリフ領域は時計回りに 90° 回転される。
この属性の値が upright である場合、すべての文字は
U の縦方向を持つものとみなされる。この場合、いかなる
グリフ領域も回転されない。
この場合、回転済みグリフ領域の(可能な)置換および
アフィン回転変換の適用は無効化され、レンダリングされる
グリフ領域は非回転形となる。
さらに、双方向処理の目的では、この値は影響を受けるすべての文字を
強い左から右として扱わせる。すなわち、
tts:direction の ltr および
tts:unicodeBidi の override が適用されたかのように扱わせる。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
mixed を使用しなければならない。
tts:textOrientation スタイルを次の
例に示す。
<region xml:id="vertical" tts:writingMode="tblr"/> ... <p region="vertical"> <span tts:textOrientation="mixed">A</span> <span tts:textOrientation="upright">B</span> </p> |
|
tts:textOutline 属性は、region に流し込まれたコンテンツによって
生成されるグリフ領域について選択されるグリフに適用する
テキストアウトライン効果を定義するスタイルプロパティを指定するために使用される。
| 値: | <text-outline> |
| 初期値: | none |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | この要素のフォントサイズに相対的 |
| アニメーション可能: | discrete; continuous(color のみ) |
| セマンティック基礎: | textOutline の導出 |
この属性の値は、任意の <color> 項の後に
1 つまたは 2 つの <length> 項が続くものから構成される。
color 項が存在する場合、それはアウトライン色を示す。
color 項が存在しない場合、tts:color の算出値が適用される。
第 1 の length 項はアウトラインの太さを示し、第 2 の長さ項が存在する場合は
ぼかし半径を示す。
アウトラインの太さまたはぼかし半径に相対 <length> 値が指定される場合、 それは参照されるフォントサイズまたは 算出セルサイズの高さ成分に関して解決される。
太さおよびぼかし半径を表すために使用される <length> 値は非負でなければならない。
ぼかし半径が指定されない場合、すなわち 1 つの
<length> 項のみが存在する場合、
0px の算出値が適用される。
注:
セルで表される <length> が
tts:textOutline 値で使用される場合、
セルの高さが適用される。
たとえば、テキストアウトラインの太さが 0.1c として指定され、セル解像度が
20 × 10 であり、ルートコンテナ
領域の範囲が 640 × 480 である場合、
ラスタライズ効果を考慮しなければ、アウトラインの太さは名目上
480 / 10 * 0.1 ピクセル、すなわち 4.8px になる。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
none を使用しなければならない。
tts:textOutline スタイルを次の
例に示す。
<region xml:id="r1">
<style tts:backgroundColor="transparent"/>
<style tts:color="yellow"/>
<style tts:textOutline="black 2px 0px"/>
<style tts:fontFamily="proportionalSansSerif"/>
<style tts:fontSize="24px"/>
</region>
...
<p>
How doth the little crocodile<br/>
Improve its shining tail,<br/>
And pour the waters of the Nile<br/>
On every golden scale!<br/>
How cheerfully he seems to grin,<br/>
How neatly spreads his claws,<br/>
And welcomes little fishes in,<br/>
With gently smiling jaws!
</p>
|
![]() |
tts:textShadow 属性は、region に流し込まれたコンテンツによって
生成されるグリフ領域について選択されるグリフに適用する、
1 つ以上のテキスト影装飾を定義するスタイルプロパティを指定するために使用される。
複数のテキスト影が適用される場合、それらは、適用先の グリフ領域を描画する直前に、指定された順序で描画される。
| 値: | <text-shadow> |
| 初期値: | none |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | この要素のフォントサイズに相対的 |
| アニメーション可能: | discrete; continuous(color のみ) |
| セマンティック基礎: | textShadow の導出 |
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
none を使用しなければならない。
<style xml:id="s1"
tts:backgroundColor="black"
tts:color="white"
tts:lineHeight="125%"
tts:textAlign="center"/>
...
<p style="s1">
<span tts:padding="1%">
I serve it with greens in those
<span tts:textShadow="10% -20% 5% lime">shadowy scenes,</span><br/>
And I use it for striking a light:</span>
</p>
|
|
tts:unicodeBidi 属性は、Unicode 双方向アルゴリズムに従って、
明示的な方向性埋め込み、上書き、または分離を定義するスタイルプロパティを
指定するために使用される。
| 値: |
"normal" |
"embed" |
"bidiOverride" |
"isolate"
|
| 初期値: |
normal
|
| 適用対象: |
p,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | unicodeBidi の導出 |
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
normal を使用しなければならない。
tts:unicodeBidi スタイルを次の例に示す。
<region xml:id="r1">
<style tts:extent="265px 84px"/>
<style tts:padding="5px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="after"/>
<style tts:textAlign="center"/>
</region>
...
<p region="r1">
Little birds are playing<br/>
Bagpipes on the shore,<br/>
<span tts:unicodeBidi="bidiOverride" tts:direction="rtl">where the tourists snore.</span>
</p>
|
|
tts:visibility 属性は、生成された領域が視覚提示媒体上に
レンダリングされるときに可視であるかどうかを定義するスタイルプロパティを
指定するために使用される。
| 値: |
"visible" |
"hidden"
|
| 初期値: |
visible
|
| 適用対象: |
body,
div,
image,
p,
region,
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | visibility の導出 |
tts:visibility スタイルはコンテンツのレイアウトまたは
合成には影響せず、単に合成済みコンテンツが可視であるかどうかを決定する。
この属性に関連付けられたプロパティの算出値が visible である場合、
この要素によって生成される領域は、視覚媒体上に提示されるときに可視にレンダリングされる。
算出値が hidden である場合、それらは可視にレンダリングされず、
すなわち隠される。ただし前述にかかわらず、隠された要素の子孫要素は、
その子孫上でこのプロパティの算出値が visible である場合、可視に
レンダリングされる。
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
visible を使用しなければならない。
tts:visibility スタイルを次の例に示す。
<region xml:id="r1"> <style tts:extent="398px 121px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style/> </region> ... <p region="r1" dur="4s"> <span tts:visibility="hidden"> <set begin="1s" tts:visibility="visible"/> Curiouser </span> <span tts:visibility="hidden"> <set begin="2s" tts:visibility="visible"/> and </span> <span tts:visibility="hidden"> <set begin="3s" tts:visibility="visible"/> curiouser! </span> </p> |
|
|
|
|
tts:wrapOption 属性は、影響を受ける要素のコンテキスト内で
自動行折り返し(改行)が適用されるかどうかを定義するスタイルプロパティを
指定するために使用される。
| 値: |
"wrap" |
"noWrap"
|
| 初期値: | wrap |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | wrapOption の導出 |
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
wrap を使用しなければならない。
tts:wrapOption スタイルを次の例に示す。
<region xml:id="r1">
<style tts:extent="192px 117px"/>
<style tts:backgroundColor="black"/>
<style tts:color="white"/>
<style tts:displayAlign="after"/>
<style tts:overflow="hidden"/>
<style tts:wrapOption="noWrap"/>
</region>
...
<p>
I'll tell thee everything I can:<br/>
There's little to relate.<br/>
I saw an aged aged man,<br/>
A-sitting on a gate.
</p>
|
![]() |
tts:writingMode 属性は、region 領域内でブロック領域および
インライン領域を積み重ねる目的で使用される、ブロック進行方向および
インライン進行方向を定義するスタイルプロパティを指定するために使用される。
| 値: |
"lrtb" |
"rltb" |
"tbrl" |
"tblr" |
"lr" |
"rl" |
"tb"
|
| 初期値: | lrtb |
| 適用対象: |
region
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | writingMode の導出 |
この属性に関連付けられたプロパティの算出値がサポートされない場合、
提示プロセッサは値
lrtb を使用しなければならない。
注:
インライン進行方向が左から右または右から左である書字モードは 横書きモードと呼ばれ、インライン進行方向が上から下である 書字モードは 縦書きモードと呼ばれる。
tts:writingMode スタイルを次の例に示す。
<tt ... xml:lang="en"> ... <region xml:id="top" tts:origin="10% 10%" tts:extent="55% 10%" tts:writingMode="rltb"/> <region xml:id="right" tts:origin="70% 10%" tts:extent="10% 80%" tts:writingMode="tbrl"/> ... <p region="top"><span xml:lang="ar">نشاط التدويل،</span> W3C</p> <p region="right">hello <span xml:lang="ja">みなさん、<br/>こんにちは</span></p> ... </tt> |
![]() |
注:
この例では、テキストコンテンツの自然言語が複数の
xml:lang 属性を使用して識別されている。
tts:writingMode 属性を示すために技術的に必要ではないが、
複数の自然言語のコンテンツを含むマークアップでは、明示的な言語識別の使用が推奨される。
tts:zIndex 属性は、region 領域が重なる場合に、
それらの前後方向の順序を定義するスタイルプロパティを指定するために使用される。
| 値: |
"auto" |
<integer>
|
| 初期値: | auto |
| 適用対象: |
region
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete |
| セマンティック基礎: | zIndex の導出 |
2 つの領域が同じ Z-index 値に関連付けられている場合、それらの領域が 空間的に重なるなら、字句的に後続する要素によって生成される領域は、 字句的に先行する要素によって生成される領域の上にレンダリングされなければならない。 ここで、字句順序は文書インスタンスの 後順走査として定義される。
値 auto のセマンティクスは、
[XSL-FO 1.1] §7.30.18 で定義されるものであり、
tt 要素はルート積み重ねコンテキストを確立するとみなされる。
この属性に関連付けられたプロパティの算出値がサポートされない場合、 提示プロセッサは、最も近い サポート値を使用しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された z-index とサポートされる z-index との間のユークリッド距離が 最小化される値を意味する。算出値から等距離にある複数の最も近いサポート値が 存在する場合、0 から最も近い値、すなわち現在の積み重ねコンテキストの 基底スタックレベルに最も近い値が使用される。
tts:zIndex スタイルを次の例に示す。
<region xml:id="r1"> <style tts:origin="0px 0px"/> <style tts:extent="400px 100px"/> <style tts:padding="5px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:zIndex="0"/> </region> <region xml:id="r2"> <style tts:origin="100px 60px"/> <style tts:extent="400px 100px"/> <style tts:padding="5px"/> <style tts:backgroundColor="red"/> <style tts:color="white"/> <style tts:textAlign="end"/> <style tts:zIndex="1"/> </region> <region xml:id="r3"> <style tts:origin="0px 120px"/> <style tts:extent="400px 100px"/> <style tts:padding="5px"/> <style tts:backgroundColor="black"/> <style tts:color="white"/> <style tts:zIndex="2"/> </region> <region xml:id="r4"> <style tts:origin="100px 180px"/> <style tts:extent="400px 100px"/> <style tts:padding="5px"/> <style tts:backgroundColor="red"/> <style tts:color="white"/> <style tts:textAlign="end"/> <style tts:zIndex="3"/> </region> ... <p region="r1"> I passed by his garden, and marked, with one eye,<br/> How the Owl and the Panther were sharing a pie. </p> <p region="r2"> The Panther took pie-crust, and gravy, and meat,<br/> While the Owl had the dish as its share of the treat. </p> <p region="r3"> When the pie was all finished, the Owl, as a boon,<br/> Was kindly permitted to pocket the spoon: </p> <p region="r4"> While the Panther received knife and fork<br/> with a growl,<br/> And concluded the banquet by... </p> |
![]() |
tta:gain 属性は、この属性が指定された要素のアクティブ継続時間中に、
適用可能な音声コンテンツに適用される gain 乗数を決定する
音声スタイルプロパティを指定するために使用される。
| 値: |
<number>
|
| 初期値: | 1 |
| 適用対象: |
audio,
body,
div,
p,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete; continuous |
この属性の指定値が区間 [-1,1] に含まれない場合、
この属性に関連付けられたプロパティの算出値はこの有界区間にクランプされる。
この属性に関連付けられたプロパティの算出値が負である場合、gain は 算出値の絶対値に設定され、位相反転が適用される。
gain が 0 の場合、アクティブな音声コンテンツは完全にミュートされる。
gain が 1 の場合、アクティブな音声コンテンツの振幅は変更されない。
それ以外の場合、gain は 0 より大きく 1 より小さく、この場合、
結合されたアクティブ音声コンテンツに相対減衰が適用される。ここでこの減衰は
区間 [0,1] にわたって線形である。
tta:gain スタイルを次の例に示す。
<div> <audio src="#track1" tta:gain="0.5"/> <p tta:gain="0.3"> <audio src="#track2" tta:gain="0.8"/> </p> </div> |
注:
この例では、2 つの音声ソース track1 および track2 が
アクティブである。
div 要素は、その子 p への出力として 1 つの
アクティブ音声トラックを提供し、この子 p は 2 つ目の
アクティブ音声トラックを結合して、その子への出力を形成する。
さらに、各ソース音声および p の出力に別個の gain が指定されており、
最終出力は 0.3[0.5(track1) + 0.8(track2)] となる。
注:
この属性によって表されるスタイルプロパティのセマンティクスは、
[WEBAUDIO] §2.7 で定義されるものに基づく。
ここで、このプロパティが指定された要素は音声グラフ内に
GainNode を生成し、その gain
属性は同じ算出値を持つ。また、
音声生成要素ではない
コンテンツ要素について、その入力は、
この要素の親要素の音声出力と、すべての子音声生成要素の結合された(線形加算された)
音声出力との和である。それ以外の場合、すなわち音声生成要素については、
入力はその要素が生成した音声である。
tta:pan 属性は、この属性が指定された要素のアクティブ継続時間中に、
適用可能な音声コンテンツに適用される立体音響の pan ベクトルを
決定する音声スタイルプロパティを指定するために使用される。
| 値: |
<number>
|
| 初期値: | 0 |
| 適用対象: |
audio,
body,
div,
p,
span
|
| 継承: | いいえ |
| パーセント値: | 該当なし |
| アニメーション可能: | discrete; continuous |
この属性の指定値が区間 [-1,1] に含まれない場合、
この属性に関連付けられたプロパティの算出値はこの有界区間にクランプされる。
この属性に関連付けられたプロパティの算出値が負である場合、pan 方向は中央より左である。
pan 値が 0 の場合、アクティブな音声コンテンツの立体方向性は変更されない。
それ以外の場合、pan 値は正であり、この場合 pan 方向は中央より右である。
ここで、値 -1 は完全な左を示し、値
1 は完全な右を示す。
tta:pan スタイルを次の例に示す。
<div> <audio src="#track1" tta:pan="0.5"/> <p tta:pan="0.3"> <audio src="#track2" tta:pan="0.8"/> </p> </div> |
注:
この例では、2 つの音声ソース track1 および track2 が
アクティブである。
div 要素は、その子 p への出力として 1 つの
アクティブ音声トラックを提供し、この子 p は 2 つ目の
アクティブ音声トラックを結合して、その子への出力を形成する。
さらに、各ソース音声および p の出力に別個の pan が指定されており、
最終出力 pan は 0.3[0.5(track1) + 0.8(track2)] となる。
注:
この属性によって表されるスタイルプロパティのセマンティクスは、
[WEBAUDIO] §2.21 で定義されるものに基づく。
ここで、このプロパティが指定された要素は音声グラフ内に
StereoPannerNode を生成し、その
pan
属性は同じ算出値を持つ。また、
音声生成要素ではない
コンテンツ要素について、その入力は、
この要素の親要素の音声出力と、すべての子音声生成要素の結合された(線形加算された)
音声出力との和である。それ以外の場合、すなわち音声生成要素については、
入力はその要素が生成した音声である。
tta:pitch 属性は、影響を受けるコンテンツに対して音声合成が
有効化される場合に、発話ピッチを決定する音声スタイルプロパティを指定するために使用される
| 値: |
<pitch>
|
| 初期値: | 0% |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 入力音声ピッチに相対的 |
| アニメーション可能: | none |
tta:pitch スタイルを次の例に示す。
<p>Apply relative pitch adjustment to <span tta:pitch="+10hz">this</span> word.</p>
|
注:
この属性によって表されるスタイルプロパティのセマンティクスは、
[SSML 1.0] §3.2.4 で定義されるものから導出される。
ここで、算出値に等しい pitch 属性を持つ
prosody
要素と等価なものが、発話される文字コンテンツに適用される。
tta:speak 属性は、影響を受けるコンテンツに対して音声合成を
有効化するかどうか、および有効化する場合にどの発話速度を適用するかを
決定する音声スタイルプロパティを指定するために使用される。
| 値: |
"none" |
"normal" |
"fast" |
"slow"
|
| 初期値: | none |
| 適用対象: |
span
|
| 継承: | はい |
| パーセント値: | 該当なし |
| アニメーション可能: | none |
この属性の値が none である場合、影響を受けるコンテンツに対する
音声合成は無効化される。そうでなければ、
この属性の値が normal、fast、または slow である場合、
音声合成はそれぞれ通常、高速、または低速の発話速度で有効化される。
tta:speak スタイルを次の例に示す。
<p>Speak <span tta:speak="normal">this</span> word.</p>
|
注:
この属性によって表されるスタイルプロパティのセマンティクスは、
[SSML 1.0] §3.2.4 で定義されるものから導出される。
ここで、算出値に等しい rate 属性を持つ
prosody
要素と等価なものが、発話される文字コンテンツに適用される。
スタイルプロパティ値には、次の式の使用が含まれる。
<alpha> 式は不透明度値を表すために使用され、 0 は完全に透明であることを、1 は完全に不透明であることを意味する。
<alpha> : float |
上記の構文表現において、構文要素
float は、[XML Schema Part 2] §3.2.4.1 によって
定義される字句表現に従わなければならない。
表される値が 0.0 未満である場合、それは 0.0 に等しいものとして
解釈されなければならない。同様に、表される値が 1.0 より大きい場合、
それは 1.0 として解釈されなければならない。NaN 値は 0.0 として解釈されなければならない。
<alpha> の指定値は NaN、0 未満、または 1 より大きい値で
あるべきではない。
提示プロセッサが特定の 有効な不透明度値をサポートしない場合、それを最も近いサポート値に等しいものとして 解釈しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、 算出された不透明度とサポートされる不透明度との間のユークリッド距離が 最小化される値を意味する。算出値から等距離にある複数の最も近いサポート値が 存在する場合、0 から最も遠い値、すなわち最大の不透明度が使用される。
<annotation-color> 式は、ルビや強調マークなどのテキスト注釈マークの色を 表すために使用される。
<annotation-color> : "current" | <color> |
実装が注釈色値を認識しない、または他と区別しない場合、それは
current のスタイルが指定されたかのように解釈されなければならない。
したがって、テキスト注釈マークをサポートする実装は、少なくとも
current 値をサポートしなければならない。
<annotation-position> 式は、ルビや強調マークなどのテキスト注釈マークの位置を 表すために使用される。
<annotation-position> : "before" | "after" | "outside" |
before影響を受けるグリフ領域の before 辺の方向。
横書きモードが適用される場合、これはグリフ領域の
上方向である。縦書きモードが適用される場合、これは
tts:writingMode が
それぞれ tbrl または tblr に解決されるかに従って、
グリフ領域の右または左の方向である。
after影響を受けるグリフ領域の after 辺の方向。
横書きモードが適用される場合、これはグリフ領域の
下方向である。縦書きモードが適用される場合、これは
tts:writingMode が
それぞれ tbrl または tblr に解決されるかに従って、
グリフ領域の左または右の方向である。
outside注釈付きテキストを含む p 要素によって
生成される (1) 唯一の行領域、または (2) 最後のブロック領域の最初の行領域については
before と等価であり、それ以外の場合は after と等価である。
実装が注釈位置値を認識しない、または他と区別しない場合、それは
before の位置が指定されたかのように解釈されなければならない。
したがって、テキスト注釈マークをサポートする実装は、少なくとも
before 値をサポートしなければならない。
<border> 式は、1 つ以上の border style 成分式を表すために使用される。
<border> : <border-thickness> || <border-style> || <border-color> || <border-radii> |
border style 成分の少なくとも 1 つが存在しなければならない。たとえば、値
none を持つ <border-style>
成分である。成分の順序は重要ではない。
<border-color> 式は、1 つ以上の border の色を表すために使用される。
<border-color> : <color> |
<border-radii> 式は、1 つ以上の border の半径を表すために使用される。
2 つの <length> 式が指定される場合、第 1 の長さは、 (コンテンツの場合は)インライン進行次元、または(region の場合は)水平方向に対する 4 分の 1 楕円の半径に対応し、第 2 の長さが存在する場合、それは (コンテンツの場合は)ブロック進行次元、または(region の場合は)垂直方向に対する 4 分の 1 楕円の半径に対応する。長さが 1 つだけ存在する場合は、同じ値を持つ 2 つの長さが指定されたかのように解釈される。
<border-style> 式は、1 つ以上の border のスタイルを表すために使用される。
<border-style> : "none" | "dotted" | "dashed" | "solid" | "double" |
dotted、dashed、および double の解釈は
実装依存であるとみなされる。
実装がこれらの border style 値のいずれかを認識しない、または他と区別しない場合、
それは solid のスタイルが指定されたかのように解釈されなければならない。
したがって、border をサポートする実装は、少なくとも solid 値を
サポートしなければならない。
<border-thickness> 式は、1 つ以上の border の太さを表すために使用される。
<border-thickness> : "thin" | "medium" | "thick" | <length> |
thin、medium、および thick の解釈は
実装依存であるとみなされる。ただし、解決された長さは次の制約に従わなければならない。
thickness(thin) < thickness(medium); thickness(medium) < thickness(thick)。
border thickness が <length> として表される場合、 それはパーセント値の形式を取ってはならない。すなわち、スカラー値の形式を 取らなければならない。
<color> 式は、名前付き色、正確な RGB 色トリプル、または正確な RGBA 色タプルを 指定するために使用される。ここで alpha 成分が表される場合、 100% 不透明度では最大値(255)であり、0% 不透明度では最小値(0)であり、 適用可能な色空間は [SRGB] によって定義される。
<color>
: "#" rrggbb
| "#" rrggbbaa
| "rgb(" r-value "," g-value "," b-value ")"
| "rgba(" r-value "," g-value "," b-value "," a-value ")"
| <named-color>
rrggbb
: <hex-digit>{6}
rrggbbaa
: <hex-digit>{8}
r-value | g-value | b-value | a-value
: <lwsp>? component-value <lwsp>?
component-value
: <non-negative-integer> // valid range: [0,255]
|
RGB 成分値を表す場合、これらの値は alpha で事前乗算されていないものとみなされる。
不透明でも透明でもない alpha または opacity 値が適用されるような提示処理を 実行する目的では、合成関数のセマンティクスは、合成関数の入力と出力の両方について [SRGB] 色空間を使用することに関して定義される。
注:
合成について述べたセマンティクスに [SRGB] を使用することは、 実際のプロセッサが内部または外部の目的で他の色空間を使用することを 妨げる意図ではない。たとえば、提示プロセッサは、 最終的に、ここで使用される SRGB 値をテレビ装置でのレンディションのために YUV 色空間へ変換してもよい。
提示プロセッサが特定の 有効な色または alpha 値をサポートしない場合、それを最も近いサポート値に等しいものとして 解釈しなければならない。
注:
このコンテキストで、句 最も近いサポート値とは、
RGB 色空間における算出された色および alpha と、サポートされる色および alpha との間の
ユークリッド距離が最小化される値を意味する。算出値から等距離にある複数の
最も近いサポート値が存在する場合、不透明な黒
rgba(0,0,0,255) から最も近い値、すなわち不透明な黒に最も近い値が使用される。
<digit> は、整数およびその他の種類の数値またはトークンを表すために使用される。
<digit> : "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" |
<emphasis-color> 式は、テキスト強調マークの色を表すために使用される。
<emphasis-color> : <annotation-color> |
<emphasis-position> 式は、テキスト強調マークの位置を表すために使用される。
<emphasis-position> : <annotation-position> |
<emphasis-style> 式は、テキスト強調マークのスタイルを表すために使用される。
<emphasis-style> : "none" | "auto" | ( "filled" | "open" ) || ( "circle" | "dot" | "sesame" ) | <quoted-string> |
テキスト強調スタイル値のセマンティクスは次のように定義される。
noneテキスト強調マークなし。
auto縦書きモードが適用される場合は filled sesame と等価であり、
それ以外の場合は filled circle と等価である。
filled強調マークは強調色で塗りつぶされる。
open強調マークは塗りつぶされない。すなわち、その輪郭は強調色でストロークされるが、 塗りつぶされない。
circle強調マークは円である。filled の場合は U+25CF '●' と等価であり、open の場合は U+25CB '○' と等価である。
dot強調マークは点である。filled の場合は U+2022 '•' と等価であり、open の場合は U+25E6 '◦' と等価である。
sesame強調マークは sesame である。filled の場合は U+FE45 '﹅' と等価であり、open の場合は U+FE46 '﹆' と等価である。
強調マークは文字列の最初の書記素クラスタであり、文字列の残りは無視される。
filled または open のみが指定される場合、それぞれ
filled circle および open circle と等価である。
circle、dot、または sesame のみが指定される場合、
それぞれ filled circle、filled dot、および
filled sesame と等価である。
実装が強調スタイル値を認識しない、または他と区別しない場合、それは
auto のスタイルが指定されたかのように解釈されなければならない。
したがって、テキスト強調マークをサポートする実装は、少なくとも
auto 値をサポートしなければならない。
<family-name> 式は、フォントファミリー名を指定する。
<family-name>
: unquoted-string
| <quoted-string>
unquoted-string
: identifier (<lwsp> identifier)*
identifier
: [-]? identifier-start identifier-following*
identifier-start
: [_a-zA-Z]
| non-ascii-or-c1
| escape
identifier-following
: [_a-zA-Z0-9-]
| non-ascii-or-c1
| escape
non-ascii-or-c1
: [^\0-\237]
escape
: "\\"
|
上で指定された構文規則に従うことに加えて、次のセマンティック規則が適用される。
<family-name> 式のセマンティック値は、該当するものに従って、
その unquoted-string または quoted-string
非終端のセマンティック値である。
unquoted-string 非終端のセマンティック値は
<quoted, content>
の組であり、ここで quoted は boolean false であり、
content は、各 identifier
非終端の値を字句順に追加した結果である。各 identifier の値は、それが最初の
identifier でない場合、単一の SPACE (U+0020) 文字で先行される。
quoted-string 非終端のセマンティック値は
<quoted, content>
の組であり、ここで quoted は boolean true であり、
content は引用符で囲まれた文字列の引用解除済み内容、すなわち区切り引用符の
間にある文字列である。
escape 非終端のセマンティック値は、エスケープされた
char の値である。
-- HYPHEN-MINUS (U+002D) 文字 2 つで始まる
identifier を含む unquoted-string の形式を取る
<family-name> は無効であるとみなされなければならない。
<generic-family-name> と(大文字小文字を区別する比較で)一致する
単一の identifier を含む unquoted-string の形式を取る
<family-name> は、その <generic-family-name> として解釈されなければならない。
内容(引用解除済み値)が <generic-family-name> と
(大文字小文字を区別する比較で)一致する quoted-string の形式を取る
<family-name> は、その <generic-family-name> として解釈されてはならず、
非汎用フォントファミリーの実際の名前として解釈されなければならない。
構文要素 char は、
[XML 1.0] §2.2 で定義される Char 生成規則に従って
解釈される。
注:
[CSS2] §4.1.1 で定義される {unicode} エスケープ機構は
この構文ではサポートされない。むしろ、著者は (1) 文書エンコーディングを使用して
文字を直接エンコードするか、(2) [XML 1.0] §4.1 に従って
XML 文字参照を使用することが期待される。通常の構文解釈なしで
構文上重要な文字を使用する必要がある場合、それは上で指定されたバックスラッシュ
(reverse solidus)escape 非終端を使用してエスケープしてもよい。
バックスラッシュ(reverse solidus)escape 非終端を使用する場合、
上記の構文はどの文字をエスケープしてよいかについて制限を置かない。たとえば、
\\[\n\r\f0-9a-f] が許可される。これら後者のエスケープのいずれかが
<family-name> 式に現れる場合、標準の XSL-FO または CSS パーサで使用するには
{unicode} エスケープへ変換する必要がある。特に、バックスラッシュに続く
改行は CSS では無視されるが、上記の構文では無視されない。このような無視されない
エスケープ改行は、CSS で表現するために、\a のような等価な
{unicode} エスケープを使用して表される必要がある。
<font-families> 式は、空でないフォントファミリーのリストを指定する。
<font-families> : font-family (<lwsp>? "," <lwsp>? font-family)* font-family : <family-name> | <generic-family-name> |
<font-variant> 式は、文字からグリフへの対応付け処理に影響する 1 つ以上のキーワードを 指定し、特に、提示処理を実行する際に(適用可能なフォントで利用可能であれば) 変種グリフを選択するかどうか、およびどの種類の変種グリフを選択するかを指定する。
<font-variant>
: "normal"
| ("super" | "sub") || ("full" | "half") || "ruby"
|
値 normal が適用される場合、上位レベルプロトコルが適用されない限り、
subscript、superscript、full、half、または ruby のグリフ変種はいずれも選択されない。
キーワード super が適用される場合、superscript グリフ変種が選択される
(利用可能な場合)。たとえば OpenType フォントでレンダリングする場合、
OpenType sups 機能が有効化される。キーワード sub が適用される場合、
subscript グリフ変種が選択される(利用可能な場合)。
たとえば OpenType フォントでレンダリングする場合、OpenType subs 機能が
有効化される。
キーワード full が適用される場合、全角グリフ変種が選択される
(利用可能な場合)。たとえば OpenType フォントでレンダリングする場合、
OpenType fwid 機能が有効化される。キーワード half が適用される場合、
半角グリフ変種が選択される(利用可能な場合)。
たとえば OpenType フォントでレンダリングする場合、OpenType hwid 機能が
有効化される。
キーワード ruby が適用される場合、ruby グリフ変種が選択される
(利用可能な場合)。たとえば OpenType フォントでレンダリングする場合、
OpenType ruby 機能が有効化される。
注:
OpenType フォントの定義については、[OFF] を参照。
複数の変種が適用される場合、適用可能な変種の最大数を満たすグリフが選択される。
たとえば、super と half の両方の変種が指定されている場合、
superscript と half width の両方の変種として同時に指定されるグリフが選択される
(利用可能な場合)。要求された変種の部分集合のみを満たすことができ、
選択される変種グリフに差異をもたらす可能な部分集合が複数ある場合、
どの部分集合が適用されるかは実装依存、すなわち
文書処理コンテキストによって決定されると
みなされる。
<generic-family-name> 式は、フォントファミリーのクラスを示す一般的な トークンを使用してフォントファミリーを指定する。
汎用ファミリー名から具体的なフォントインスタンスへの解決は、コンテンツ作成および コンテンツ解釈の両方の場合において実装依存であるとみなされる。
<generic-family-name> : "default" | "monospace" | "sansSerif" | "serif" | "monospaceSansSerif" | "monospaceSerif" | "proportionalSansSerif" | "proportionalSerif" |
汎用(フォント)ファミリー名と実際のフォントとの対応付けは、この仕様では 決定されない。ただし、提示を実行する際には、可能であれば monospace と proportional、 serif と sans-serif の区別が維持されるべきである。
monospace の汎用(フォント)ファミリー名が指定される場合、
それは monospaceSansSerif または monospaceSerif の
いずれかと等価であると解釈されてもよい。汎用ファミリー名
sansSerif および serif は、それぞれ
proportionalSansSerif および proportionalSerif と等価であると
解釈される。
汎用ファミリー名 default が指定される(または初期値によって暗示される)場合、
その組版特性は実装依存であるとみなされる。ただし、この既定フォントファミリーは
等幅 sans-serif フォントに対応付けられることが推奨される。
<hex-digit> は、16 進演算を用いる整数およびその他の種類の数値またはトークンを 表すために使用される。
構文解析の目的では、小文字と大文字を区別してはならない。
<hex-digit> : <digit> | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F" |
<integer> 式は、任意の符号付き整数値を表すために使用される。
<integer> : ( "+" | "-" )? <non-negative-integer> |
<length> 式は、デカルト空間内の点の座標成分、またはデカルト空間内の 2 点間の 距離を表すために使用される。
<length> : scalar | <percentage> scalar : <number> units units : "px" | "em" | "c" // abbreviation of "cell" | "rw" | "rh" |
スカラー長さ値の units 成分を省略することはエラーである。
単位 px(pixel)は、
H.3 座標空間で
定義されるように、論理ピクセルの
文書座標空間に対応する。
ただし、px(pixel)単位は、px(pixel)単位を使用する
2 つの <length> 指定からなる
tts:extent 属性が
tt 要素上に指定されていない限り、
<length> 式で使用すべきではない。
それがない場合、px(pixel)単位の使用は
非推奨である
サイズが単一の長さまたは等しい 2 つの長さとして表されるフォントに相対して指定される場合、
単位 em は [XSL-FO 1.1] §5.9.13 で
定義されるものと同一であるとみなされる。ただし、サイズが等しくない 2 つの長さとして
表されるフォントに相対して指定される場合、1 em は、
インライン進行方向の長さを指定するために使用されるときはアナモルフィックに
スケールされたフォントのインライン進行次元に等しく、ブロック進行方向の長さを
指定するために使用されるときはスケールされたフォントのブロック進行次元に等しい。
別段の指定がない限り、em 単位は、その em 単位が解決される
コンテキストの要素に適用される tts:fontSize 属性に関連付けられた
プロパティの算出値に関連して解決される。
単位 c(cell)のセマンティクスは、パラメータ
7.2.1
ttp:cellResolution によって定義される。
ルートコンテナ相対
単位 rw および rh は、それぞれ
ルートコンテナ領域の幅および高さの
1 パーセント(1%)として定義される。
たとえば、長さ 25rw は
ルートコンテナ領域の幅の 25% として解釈される。
<measure> 値は、使用コンテキストによってどの次元が適用されるかが決まる、 絶対次元または 相対次元として距離を表す。
2 つの絶対次元、height または width のいずれかが適用される場合、 関連付けられた相対次元、bpd または ipd は、適用可能な 書字モードおよび テキスト方向に従って決定され、 その関連付けられた相対次元が、以下で説明する指定値の解釈を支配する。
そうでなければ、2 つの相対次元、 bpd または ipd のいずれかが適用され、 その場合、その相対次元が、以下で定義する指定値の解釈を支配する。
<measure> : "auto" | "fitContent" | "maxContent" | "minContent" | <length> |
これらの値のセマンティクスは次のように定義される。
autoipd については、
画像に適用される場合はインライン進行方向における内在的サイズであり、
それ以外の場合は 100% の値が指定されたなら得られる数値である。
bpd については、
画像に適用される場合はブロック進行方向における内在的サイズであり、
それ以外の場合は 100% の値が指定されたなら得られる数値である。
fitContent(1) minContent の値、および (2) maxContent と
auto の値の最小値、の最大値に等しい数値。
maxContentipd については、たとえ親の ipd をオーバーフローすることを 意味するとしても、行がハード、すなわち強制改行点でのみ改行されるように、 要素のすべてのコンテンツを囲む最大の数値である。
bpd については、行がすべての可能な改行位置、すなわちハード(強制)および ソフト(任意)改行点の両方で改行されるように、要素のすべてのコンテンツを囲む 最大の数値である。
minContentipd については、行がすべての可能な改行位置、すなわちハード(強制)および ソフト(任意)改行点の両方で改行されるように、要素のすべてのコンテンツを囲む 最小の数値である。
bpd については、たとえ親の ipd をオーバーフローすることを 意味するとしても、行がハード、すなわち強制改行点でのみ改行されるように、 要素のすべてのコンテンツを囲む最小の数値である。
<length>スカラーまたはパーセントとして表される非負の数値。
<named-color> は、便利な名前を持つ RGBA 色を表すために使用され、 適用可能な色空間は [SRGB] によって定義される。
構文解析の目的では、小文字と大文字を区別してはならない。
<named-color> : "transparent" // #00000000 | "black" // #000000ff | "silver" // #c0c0c0ff | "gray" // #808080ff | "white" // #ffffffff | "maroon" // #800000ff | "red" // #ff0000ff | "purple" // #800080ff | "fuchsia" // #ff00ffff | "magenta" // #ff00ffff (= fuchsia) | "green" // #008000ff | "lime" // #00ff00ff | "olive" // #808000ff | "yellow" // #ffff00ff | "navy" // #000080ff | "blue" // #0000ffff | "teal" // #008080ff | "aqua" // #00ffffff | "cyan" // #00ffffff (= aqua) |
注:
transparent を除き、上で指定された名前付き色の集合は、
[SVG 1.1] §4.2 によって指定される名前付き色集合の
真部分集合を構成する。
<non-negative-integer> 式は、任意の非負の整数値を表すために使用される。
<non-negative-integer> : <digit>+ |
<non-negative-number> 式は、任意の非負の整数または実数値を表すために使用される。
<non-negative-number> : <non-negative-integer> | non-negative-real non-negative-real : <digit>* "." <digit>+ |
<number> 式は、任意の、任意で符号付きの整数または実数値を表すために使用される。
<number> : sign? <non-negative-number> sign : "+" | "-" |
<percentage> 式は、任意の符号付き整数または実数値のパーセントを表すために使用される。
<percentage> : <number> "%" |
<pitch> 値は、合成音声に適用される絶対または相対ピッチ周波数調整を表す。
<pitch> : <percentage> | <number> pitch-units? pitch-units : "hz" | "st" |
<percentage> として指定される場合、出力ピッチ
(周波数)は
input pitch (frequency) * (1.0 + (percentage/100)) である。
<number> として指定され、
sign が指定される場合、出力ピッチは、その sign が正(負)であるかに従って、
入力ピッチを正(負)に調整したものである。ただし、sign が指定されない場合、
入力ピッチは指定値に設定される。すなわち、入力ピッチに相対的ではない。
units 成分が存在する場合、それは Hertz(hz)または
semi-tones(st)、すなわち標準全音階上の半音を指定する。
units 成分が指定されない場合、Hertz が暗示される。
<position> 式は、参照領域に対する領域または画像の原点を間接的に決定するために 使用される。
<position> : offset-position-h // single component value | edge-keyword-v // single component value | offset-position-h <lwsp> offset-position-v // two component value | position-keyword-v <lwsp> position-keyword-h // two component value | position-keyword-h <lwsp> edge-offset-v // three component value | position-keyword-v <lwsp> edge-offset-h // three component value | edge-offset-h <lwsp> position-keyword-v // three component value | edge-offset-v <lwsp> position-keyword-h // three component value | edge-offset-h <lwsp> edge-offset-v // four component value | edge-offset-v <lwsp> edge-offset-h // four component value offset-position-h : position-keyword-h | <length> offset-position-v : position-keyword-v | <length> edge-offset-h : edge-keyword-h <lwsp> <length> edge-offset-v : edge-keyword-v <lwsp> <length> position-keyword-h : "center" | edge-keyword-h position-keyword-v : "center" | edge-keyword-v edge-keyword-h : "left" | "right" edge-keyword-v : "top" | "bottom" |
<position> 式は、上記の構文によって正式に定義されるように、次の 1 つから 4 つの成分値で構成されてもよい。
水平オフセット位置または垂直辺キーワードのいずれか
水平位置オフセットに続く垂直位置オフセット、または 垂直位置キーワードに続く水平位置キーワード
水平辺オフセットと垂直位置キーワード、または水平位置キーワードと垂直辺オフセットを 任意の順序で
水平辺オフセットと垂直辺オフセットを任意の順序で
すべての <position> 式は、次の等価表により、
left <length> top <length>
形式の 4 成分等価形に変換できる。
| 値 | 等価形 |
|---|---|
center |
center center |
left |
left center |
right |
right center |
top |
center top |
bottom |
center bottom |
<length> |
<length> center |
| 値 | 等価形 |
|---|---|
bottom center |
left 50% top 100% |
bottom left |
left 0% top 100% |
bottom right |
left 100% top 100% |
center center |
left 50% top 50% |
center top |
left 50% top 0% |
center bottom |
left 50% top 100% |
center left |
left 0% top 50% |
center right |
left 100% top 50% |
center <length> |
left 50% top <length> |
left center |
left 0% top 50% |
left top |
left 0% top 0% |
left bottom |
left 0% top 100% |
left <length> |
left 0% top <length> |
right center |
left 100% top 50% |
right top |
left 100% top 0% |
right bottom |
left 100% top 100% |
right <length> |
left 100% top <length> |
top center |
left 50% top 0% |
top left |
left 0% top 0% |
top right |
left 100% top 0% |
<length> center |
left <length> top 50% |
<length> top |
left <length> top 0% |
<length> bottom |
left <length> top 100% |
<length-1> <length-2>
|
left <length-1> top <length-2>
|
注:
2 成分式が 2 つの <length> 値から構成される場合、 あいまいな解釈を避けるため、上記の表の最後の行で示されるように、 第 1 の値は水平長として、第 2 の値は垂直長として解釈される。
| 値 | 等価形 |
|---|---|
bottom left <length> |
left <length> top 100% |
bottom right <length> |
right <length> top 100% |
bottom <length> center |
left 50% bottom <length> |
bottom <length> left |
left 0% bottom <length> |
bottom <length> right |
left 100% bottom <length> |
center bottom <length> |
left 50% bottom <length> |
center left <length> |
left <length> top 50% |
center right <length> |
right <length> top 50% |
center top <length> |
left 50% top <length> |
left bottom <length> |
left 0% bottom <length> |
left top <length> |
left 0% top <length> |
left <length> bottom |
left <length> top 100% |
left <length> center |
left <length> top 50% |
left <length> top |
left <length> top 0% |
right bottom <length> |
left 100% bottom <length> |
right top <length> |
left 100% top <length> |
right <length> bottom |
right <length> top 100% |
right <length> center |
right <length> top 50% |
right <length> top |
right <length> top 0% |
top left <length> |
left <length> top 0% |
top right <length> |
right <length> top 0% |
top <length> center |
left 50% top <length> |
top <length> left |
left 100% top <length> |
top <length> right |
left 100% top <length> |
| 値 | 等価形 |
|---|---|
bottom <length-v> left <length-h>
|
left <length-h> top (100% - <length-v>)
|
bottom <length-v> right <length-h>
|
left (100% - <length-h>) top (100% - <length-v>)
|
left <length-h> bottom <length-v>
|
left <length-h> top (100% - <length-v>)
|
right <length-h> bottom <length-v>
|
left (100% - <length-h>) top (100% - <length-v>)
|
right <length-h> top <length-v>
|
left (100% - <length-h>) top <length-v>
|
top <length-v> left <length-h>
|
left <length-h> top <length-v>
|
top <length-v> right <length-h>
|
left (100% - <length-h>) top <length-v>
|
<length> 成分がパーセントとして表される場合、 そのパーセントは何らかの参照次元に関連して解釈される。参照次元は使用コンテキストによって 定義される。
<position> 式の <length> 成分は
正または負であってもよい。正の長さは参照辺からの inset として解釈され、
負の長さは参照辺からの outset として解釈される。たとえば、left 辺からの
inset は、その辺の右側(ゼロでない場合)に位置し、left 辺からの
outset は、その辺の左側(ゼロでない場合)に位置する。
対照的に、right 辺からの inset は、その辺の左側(ゼロでない場合)に位置し、
right 辺からの outset は、その辺の右側(ゼロでない場合)に位置する。
top および bottom 辺についても同様の配置が成り立つ。
4 成分等価変換を実行する場合、式
(100% - <length-h>)
は、100% と <length-h>
式のパーセント等価値との差として解釈される。同様に、式
(100% - <length-v>)
は、100% と <length-v> 式のパーセント等価値との差として
解釈される。どちらの場合も、結果として得られる差は負のパーセントであってもよい。
<ruby-reserve> 式は、 ルビテキストコンテンツの配置のために 空間を予約するために使用される。
<ruby-reserve>
: "none"
| ("both" | <annotation-position>) (<lwsp> <length>)?
|
<shadow> 値は、生成された領域に適用される影装飾を表す。 生成された領域がグリフ領域である場合、それはグリフの輪郭に 適用される(グリフ領域の境界ボックスには適用されない)。 生成された領域がグリフ領域でない場合、 それは領域の border 矩形に適用される。
shadow 値式は、2 つから 3 つの <length> 項、および任意の <color> 項から構成され、項同士は線形空白(LWSP)によって 区切られる。
第 1 の <length> 項は、関連付けられた領域の 水平軸次元に沿ったオフセットを表す。 正は右辺方向、負は左辺方向を表す。 第 2 の <length> 項は、関連付けられた領域の 垂直軸次元に沿ったオフセットを表す。 正は下辺方向、負は上辺方向を表す。 第 3 の <length> 項が存在する場合、それはぼかし半径を表し、 非負でなければならない。
ぼかし半径が指定されない場合、すなわち 2 つの
<length> 項のみが存在する場合、
0px の算出値が適用される。
<color> 項が存在しない場合、
tts:color プロパティの算出値が適用される。
<text-combine> 式は、縦書きテキストにおける文字結合効果の挙動を決定するために 使用される。
<text-combine> : "none" | "all" |
<text-decoration> 式は、テキスト装飾効果の挙動を決定するために使用される。
<text-decoration>
: "none"
| (("underline" | "noUnderline") || ("lineThrough" | "noLineThrough") || ("overline" | "noOverline"))
|
<text-emphasis> 式は、テキスト強調効果の挙動を決定するために使用される。
<text-emphasis> : <emphasis-style> || <emphasis-color> || <emphasis-position> |
この節では、スタイル解決のセマンティクスを、 次の標準処理モデルの観点から定義する。
このモデルによって生成される結果と外部から観察可能な結果が 一致する限り、このモデルの任意の実装が許可される。
注:
ここで採用されるスタイル解決のセマンティクスは、 [XSL-FO 1.1] §5 に基づいている。
スタイル関連付けは、各コンテンツ要素および レイアウト要素の指定スタイル集合を決定するために使用される 10.4.4 スタイル解決処理のサブプロセスである。
スタイル事項は、コンテンツ事項および レイアウト事項に、いくつかの方法で関連付けられてもよい。
上記に加えて、スタイル事項は次を使用してレイアウト事項に関連付けてもよい。
スタイルプロパティは、影響を受ける要素上で TT Style 名前空間の属性を直接指定することによって、 インライン方式で表してもよい。この方式で表される場合、 スタイル情報の関連付けはインラインスタイリングと呼ばれる。
インラインスタイリングによって関連付けられるスタイルプロパティには、 他のすべての形式のスタイル関連付けより高い優先順位が与えられる。
<p tts:color="white">White 1 <span tts:color="yellow">Yellow</span> White 2</p> |
注:
上記の例では、匿名 spanとして解釈される
2 つのテキストノード "White 1 " および
" White 2" は、color スタイルプロパティには
関連付けられていない。むしろ、それらは下記の
10.4.2.1 コンテンツスタイル
継承で説明されるように、親 p 要素から
color スタイルを継承する。
スタイルプロパティは、アウトオブライン方式で表され、
style 属性を使用して影響を受ける要素によって参照されてもよい。
この方式で表される場合、スタイル情報の関連付けは参照スタイリングと
呼ばれる。
style 属性が複数の参照を指定する場合、それらの参照は指定された順序で
評価され、あるスタイルプロパティが複数の参照パスに沿って指定されている場合には、
その順序が値の解決に適用される。
参照スタイリングの使用は、
styling 要素の子孫である style 要素への参照に
制限される。layout 要素の子孫である
style 要素を参照することはエラーとみなされる。
注:
参照スタイリングの使用は、参照の局所性を犠牲にする一方で、 スタイル指定の再利用を促進する。
注:
コンテンツ要素は、インラインスタイリングと 参照スタイリングの混合によってスタイルプロパティに関連付けられてもよく、 その場合、上記の 10.4.1.1 インラインスタイリングで 説明されるように、インラインスタイリングが優先される。
<style xml:id="s1" tts:color="white"/> <style xml:id="s2" tts:color="yellow"/> ... <p style="s1">White 1 <span style="s2">Yellow</span> White 2</p> |
注:
上記の例では、匿名 spanとして解釈される
2 つのテキストノード "White 1 " および
" White 2" は、color スタイルプロパティには
関連付けられていない。むしろ、それらは下記の
10.4.2.1 コンテンツスタイル
継承で説明されるように、親 p 要素から
color スタイルを継承する。
スタイルプロパティはアウトオブライン方式で表してもよく、 それ自身が他のアウトオブラインのスタイルプロパティを参照してもよい。 これにより、影響を受ける要素から始まる参照の連鎖が作成される。 この方式で表される場合、スタイル情報の関連付けは 連鎖参照スタイリングと呼ばれる。
連鎖スタイル参照の並びにおけるループは、エラーとみなされなければならない。
参照スタイリングの使用は、
styling 要素の子孫である style 要素への参照に
制限される。layout 要素の子孫である
style 要素を参照することはエラーとみなされる。
注:
連鎖参照スタイリングの使用は、スタイル指定を一般的な集合と 特定の集合にグループ化することを促進し、それによってスタイル指定の再利用を さらに支援する。
注:
コンテンツ要素は、インライン、 参照スタイリング、および連鎖参照スタイリングの混合によって スタイルプロパティに関連付けられてもよく、その場合、 10.4.1.1 インラインスタイリングで説明されるように、 インラインスタイリングが優先される。
<style xml:id="s1" tts:color="white" tts:fontFamily="monospaceSerif"/> <style xml:id="s2" style="s1" tts:color="yellow"/> ... <p style="s1">White Monospace</p> <p style="s2">Yellow Monospace</p> |
注:
上記の例では、第 2 段落のテキストは黄色である。これは
tts:color='yellow' が、スタイル s2 が
スタイル s1 への参照によって取得する
tts:color='white' を実質的に上書きする(上にマージされる)
ためである。
スタイルプロパティは、影響を受ける要素の 1 つ以上の
style 要素子を直接指定することによって、
入れ子方式で表してもよい。この方式で表される場合、
スタイル情報の関連付けは入れ子スタイリングと呼ばれる。
入れ子スタイリングによって関連付けられるスタイルプロパティには、 インラインスタイリングより低いが参照スタイリングより高い優先順位が与えられる。
<region xml:id="r1"> <style tts:extent="128px 66px"/> <style tts:origin="0px 0px"/> <style tts:displayAlign="center"/> </region> |
注:
このバージョンの TTML では、入れ子スタイリングは
region 要素にのみ適用される。
スタイル継承は、各コンテンツ要素および レイアウト要素の指定スタイル集合を決定するために使用される 10.4.4 スタイル解決処理のサブプロセスである。
スタイルはさらに、次を使用してコンテンツ事項へ伝播される。
継承スタイルを決定する目的では、 文書インスタンスの中間同期文書形式の 要素階層を使用しなければならない。ここで、このような中間形式は 11.3.1.3 中間同期文書の構築によって定義される。
注:
中間同期文書形式は、region 継承処理を容易にするために、 元の形式ではなく利用される。
スタイルプロパティがコンテンツ 要素(または 匿名 span)に関連付けられておらず、 そのスタイルプロパティが継承可能として指定されている場合、 スタイルプロパティは、中間同期文書内の祖先コンテンツ 要素から継承される。
スタイルプロパティが継承を必要とすると決定される場合、 継承値は、適用可能な中間同期文書内でそのプロパティを定義する 要素の最も近い祖先要素の算出スタイル集合における、 同名のスタイルプロパティの値でなければならない。
<p tts:fontFamily="monospaceSansSerif">
<span tts:color="yellow">Yellow Monospace</span>
</p>
|
注:
上記の例では、文字項目
Yellow Monospace を囲む span 要素は
tts:fontFamily スタイルプロパティを指定しておらず、
このプロパティは継承可能である。したがって、
tts:fontFamily スタイルの値は、
祖先 p 要素の算出スタイル集合から継承され、
span 要素の指定スタイル集合に追加される。
スタイルプロパティは、次の場合に region 要素から継承される。
そのスタイルプロパティ P が region R の 算出スタイル集合に含まれており、かつ
その要素 E が region R に流し込まれる (その内部で提示される)場合。
<region xml:id="r1"> <style tts:color="yellow"/> <style tts:fontFamily="monospaceSerif"/> </region> ... <p region="r1">Yellow Monospace</p> |
注:
上記の例では、文字項目
Yellow Monospace を囲む匿名 spanは、
p 要素が流し込まれる(提示される)region
要素上で指定された tts:color および
tts:fontFamily スタイルを実質的に継承する。
スタイル解決、レイアウト、および提示処理の間、 スタイルプロパティ値の 3 つのカテゴリが 次のように区別される。
要素または匿名 spanに 関連付けられた、または継承されたスタイルプロパティの値は、 指定値と呼ばれる。 与えられた要素のすべての指定スタイルプロパティの集合は、その要素の 指定スタイル集合と 呼ばれる。
名前付き色、相対単位(例: cell)、またはパーセントなどの 相対値式を使用してスタイルプロパティが指定される場合、 それらは RGB トリプル、ピクセルなどの絶対単位へさらに解決される必要がある。
スタイル解決処理中、指定スタイル値は絶対的な観点で 再解釈(または再計算)され、その後 算出値として記録されてもよい。 与えられた要素のすべての算出スタイルプロパティの集合は、 その要素の算出スタイル集合と 呼ばれる。
スタイル値が明示的または暗黙的に継承される場合、 継承されるのは祖先要素からのそのスタイルの算出値である。 これは、パーセントなどの特定の相対単位の解決では、関連する(解決用の) 式が利用できない離れた(リモート)参照コンテキストではなく、 直接の(ローカルな)参照コンテキストで式を評価する必要があるためである。
スタイル継承の後、特定のプロパティのセマンティクスによってその解決が 必要とされる場合、または解決を実行するために必要な情報がレイアウトまたは 提示処理の発生時まで利用可能でない場合、算出値はレイアウト時または 提示時にさらに解決を必要とすることがある。このような値は 使用値と呼ばれ、 下で説明される最終的な実値と 同じ値である必要はない。
注:
使用値の決定には常に 算出値の継承が先行する。すなわち、使用値の計算は名目上、 10.4.4.4 スタイル解決 処理が完了した後に実行される。
注:
[CSS2] §6.1.3 も参照。
実際の提示処理中には、いくつかの値式を具体的な物理値へ対応付ける 追加の変換が発生する。たとえば、算出スタイル値の色は表示処理中に さらに最も近い色への近似およびガンマ補正の対象となる。 さらに、算出スタイル値でピクセルを使用する長さ値式は、 物理(デバイス)ピクセルではなく論理ピクセルを表すものとみなされる。 その結果、これらの論理ピクセルは、 提示中に物理(デバイス)ピクセルへさらに変換または対応付けられる対象となる。
論理値からデバイス値への対応付け処理によって得られる最終値は、 実値と呼ばれる。 与えられた要素のすべての実スタイルプロパティの集合は、 その要素の実スタイル集合と呼ばれる。
注:
提示処理の過程で、複数の実値集合が生成されてもよい。 たとえば、TTML 提示プロセッサ装置が RGBA 成分映像信号を出力し、それがさらに NTSC または PAL テレビによって 変換されて最終画像を生成する場合がある。この場合、色と寸法の両方が 提示前にさらに変更される可能性がある。
注:
一般に、TTML 提示プロセッサは 実スタイル集合値にアクセスできない。その結果、以下でスタイル解決処理を 形式的に説明する際に、実値へのさらなる使用または参照は行われない。
スタイル解決の処理は、コンテンツ要素およびレイアウト要素に適用される すべてのスタイルプロパティの算出値を解決(決定)するための手続き (およびその結果)としてここに定義される。
ここで説明される処理は、 11.3.1 Region レイアウトおよび提示の 不可欠なサブプロセスを形成する。
以下で指定されるスタイル解決処理モデルを解釈する目的では、 次の概念的定義が適用される。
スタイルプロパティ P は、
タプル [name, value] から構成されるとみなされる。
ここでプロパティの name はタプル
[namespace value,
unqualified name] であり、プロパティの value は
タプル [category, type, value expression] である。
[ ["http://www.w3.org/ns/ttml#styling", "color"], ["specified", color, "red"] ] |
スタイル(プロパティ)集合は、スタイルプロパティの順序なしコレクションから 構成される。ここで、その集合内の 2 つのスタイルプロパティが 同一の name を持つことはない。「同一の name」とは、name タプルの namespace value および name タプルの unqualified name が等しいことを意味する。
指定スタイル(プロパティ)集合において、各スタイルプロパティの category は "specified" である。要素 E の指定スタイル(プロパティ)集合は SSS(E) と呼ばれる。
{
[
["http://www.w3.org/ns/ttml#styling", "backgroundColor"],
["specified", color, 0x00FF00 ]
],
[
["http://www.w3.org/ns/ttml#styling", "color"],
["specified", color, "red" ]
],
[
["http://www.w3.org/ns/ttml#styling", "fontSize"],
["specified", length, "1c" ]
],
[
["http://www.w3.org/ns/ttml#styling", "lineHeight"],
["specified", length, "117%" ]
]
}
|
算出スタイル(プロパティ)集合において、各スタイルプロパティの category は "specified" または "computed" のいずれかである。要素 E の算出スタイル(プロパティ)集合は CSS(E) と呼ばれる。
{
[
["http://www.w3.org/ns/ttml#styling", "backgroundColor"],
["specified", color, 0x00FF00 ]
],
[
["http://www.w3.org/ns/ttml#styling", "color"],
["computed", color, 0xFF0000 ]
],
[
["http://www.w3.org/ns/ttml#styling", "fontSize"],
["computed", length, "24px" ]
],
[
["http://www.w3.org/ns/ttml#styling", "lineHeight"],
["computed", length, "28px" ]
]
}
|
スタイルプロパティ Pnew は、 スタイル(プロパティ)集合 SS に次のようにマージされる。 Pnew の name が Pold の name と同一であるスタイルプロパティ Pold がすでに SS に存在する場合、 SS 内の Pold を Pnew で置き換える。そうでなければ、 Pnew を SS に追加する。
スタイル(プロパティ)集合 SSnew は、 既存のスタイル(プロパティ)集合 SSold に 次のようにマージされる。SSnew 内の各スタイルプロパティ Pnew について、 Pnew を SSold にマージする。
要素または 匿名 span E の 指定スタイル集合 SSS、すなわち SSS(E) は、次の順序付き規則に従って決定される。
[初期化] E の 指定スタイル集合 SSS を空集合に初期化する。
[参照および連鎖参照
スタイリング] E 上に指定された
style 属性によって参照される各 style 要素
SREF について、かつ style 属性で
指定された順序で、SREF が
styling 要素の子孫である場合、
SREF の指定スタイル集合
SSS(SREF) を
E の指定スタイル集合
SSS(E) にマージする。
[入れ子スタイリング]
E が条件付きで
除外されていない場合、
E の条件付きで含まれる各入れ子
条件付きで含まれる
style 要素子 SNEST について、
かつ子要素の指定順序で、
SNEST の指定スタイル集合
SSS(SNEST) を
E の指定スタイル集合 SSS(E) にマージする。
[インラインスタイリング] E が条件付きで 除外されていない場合、 E の指定スタイリング属性として表される各スタイルプロパティ P について、 P を E の指定スタイル集合 SSS(E) にマージする。
[アニメーションスタイリング] E の要素型がインライン アニメーション要素でない場合、 要素 E の条件付きで含まれる各 インラインアニメーション要素子 A について、A の指定スタイル集合 SSS(A) を E の指定スタイル集合 SSS(E) にマージする。
[暗黙的継承および初期値フォールバック]
E の要素型がアニメーション要素型 animate または
set でなく、スタイリング要素型 style でもない場合、
上記の 10.2 スタイリング属性
語彙で定義されるスタイルプロパティ集合内の各スタイルプロパティ
P について、次の順序付きサブステップを実行する。
P が E の指定スタイル集合 SSS(E) に存在する場合、次のスタイルプロパティへ進む。
P が継承可能であり、E が
region 要素でない場合、
次を実行する。
P′ を、 P の定義を含む E の最も近い祖先要素 NEAREST-ANCESTOR(E) の算出スタイル集合 CSS(NEAREST-ANCESTOR(E)) において P の値を検索した結果に設定する。
(1) P が継承可能であり E が
region 要素である場合、
または (2) P が継承可能でなく P が
E に適用される場合、次を実行する。
P′ をプロパティ P の初期値に設定する。 ここで、プロパティの初期値は次のように決定される。
initial
要素が P の初期値を定義する場合、その値を使用する。
そうでなければ、上記の 10.2 スタイリング 属性語彙で見つかる P の プロパティ定義によって指定される初期値を使用する。
P′ の値が未定義でない場合、 P′ を E の指定スタイル集合 SSS(E) にマージする。
要素または 匿名 span E の 算出スタイル集合 CSS、すなわち CSS(E) は、次の順序付き規則に従って決定される。
[指定スタイルの解決] 10.4.4.2 指定スタイル集合 処理に従って、 E の指定スタイル集合 SSS、すなわち SSS(E) を決定(取得)する。
[初期化] CSS(E) を SSS(E) の(深い)コピーに初期化する。
[フィルタ]
E が animate、set、または
style 要素である場合、さらなる解決なしに
結果の算出スタイル集合として CSS(E) を返す。
そうでなければ、次の規則へ進む。
[相対値解決] CSS(E) 内の 各スタイルプロパティ P のうち、 P の値型が相対であるものについて、次の順序付き サブステップを実行する。
可能であれば、P の相対値を等価な非相対(算出)値で置き換える。
P の category を "computed" に設定する。
注:
上記のフィルタ規則の結果として、
animate、set、または style 要素の
算出スタイル集合は指定値のみを含み、この場合、相対値式は相対のままである。
そのため、相対値式(参照スタイル関連付けによって割り当てられることがある)の
解決は、常に提示コンテキストを持つレイアウト要素または
コンテンツ要素のコンテキストで行われ、
animate、set、または参照可能な
style 要素の非提示の宣言コンテキストでは行われない。
最上位のスタイル解決処理は次のように定義される。 中間同期文書 DOCinter の各要素および 匿名 span E の preorder traversal を使用して、次の順序付きサブステップを実行する。
この節では、この仕様の他の箇所で参照される雑多なスタイル関連手続きを定義する。
target rectangle TR と reference rectangle RR の単位が同じでない場合、 エラー条件を発生させる。
target rectangle TR の幅 Wt がゼロである場合、 Wt を 1 に設定する。 同様に、target rectangle TR の高さ Ht が ゼロである場合、Ht を 1 に設定する。
SARr を reference rectangle RR の storage aspect ratio とする。
SARt を target rectangle TR の storage aspect ratio とする。
スケーリング係数 SF を次のように決定する。
SARr が SARt 以下である場合、SF は Wr / Wt である。 ここで Wr および Wt は、それぞれ reference rectangle および target rectangle の幅である。
そうでなければ、SARr は SARt より大きく、この場合 SF は Hr / Ht である。 ここで Hr および Ht は、それぞれ reference rectangle および target rectangle の高さである。
SF が 1.0 に等しくない場合、 Wt を SF * Wt に、 Ht を SF * Ht に 設定する。すなわち、target rectangle TR を スケール係数 SF によってその場でスケーリングする。
注:
上記のアルゴリズムを実装する目的では、storage aspect ratio および スケーリング係数は、少なくとも 7 桁の有効十進数字を提供する形式で 表現されるものとする。
target rectangle TR と reference rectangle RR の単位が同じでない場合、 エラー条件を発生させる。
target rectangle TR の幅 Wt がゼロである場合、 Wt を 1 に設定する。 同様に、target rectangle TR の高さ Ht が ゼロである場合、Ht を 1 に設定する。
SFW を WR /WT とする。ここで WR および WT は、 それぞれ reference rectangle RR および target rectangle TR の幅である。
SFH を HR /HT とする。ここで HR および HT は、 それぞれ reference rectangle RR および target rectangle TR の高さである。
SFW および SFH が 1 より大きい場合、SF を SFW と SFH の小さい方とする。 そうでなければ、SF を SFW と SFH の大きい方とする。
SF が 1.0 に等しくない場合、 Wt を SF * Wt に、 Ht を SF * Ht に 設定する。すなわち、target rectangle TR を スケール係数 SF によってその場でスケーリングする。
注:
上記のアルゴリズムを実装する目的では、スケーリング係数は、 少なくとも 7 桁の有効十進数字を提供する形式で表現されるものとする。
shear 値が 0% である場合、せん断変換は適用されない。
値が 100% である場合、インライン進行方向に関連付けられた軸において
90 度の 2D せん断変換が適用される。値が -100% である場合、
-90 度のせん断変換が適用される。指定されたパーセントの絶対値が
100% より大きい場合、適切な符号を持つ 100% が指定されたかのように
解釈されなければならない。
インライン進行方向が X 軸に対応する場合、2D せん断変換は 次の行列で記述される。
| 1 a 0 | | 0 1 0 | | 0 0 1 |
ここで a はせん断角の正接に等しい。
インライン進行方向が Y 軸に対応する場合、2D せん断変換は 次の行列で記述される。
| 1 0 0 | | a 1 0 | | 0 0 1 |
この節では、コア語彙カタログのレイアウト事項を指定する。 ここでレイアウトは、コンテンツに適用され、 そのコンテンツの提示に関する著者の意図を示す、分離可能な情報層として 理解されるものとする。
注:
レイアウト事項とスタイル事項の 2 つの層は、互いに独立して 分離可能であるとみなされる。レイアウト事項は、 コンテンツが提示されることを意図する 1 つ以上の空間または領域を指定し、 スタイル事項は、そのレイアウト内で提示がどのように行われるかを指定する。
ある場合には、コンテンツ著者は、スタイル事項をレイアウト事項または コンテンツ事項の中に直接埋め込む(インライン化する)ことを選択してもよい。 そのような場合には、代替手段、すなわち参照スタイリングの使用が存在し、 この場合、スタイル事項は埋め込まれない(インライン化されない)。
次の要素は、文書インスタンスの 構造および主要なレイアウト側面を指定する。
layout 要素は、レイアウト事項に適用されるメタデータを含む、
アウトオブラインのレイアウト事項をグループ化するために使用されるコンテナ要素である。
layout 要素は、その子として、
Metadata.class 要素グループの
0 個以上の要素に続いて、
0 個以上の region 要素を受け入れる。
<layout xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: Metadata.class*, region* </layout> |
時間セマンティクスが layout 要素のコンテンツに適用される範囲で、
この要素の暗黙の時間間隔は、ルート時間範囲と
同一の範囲を持つように定義される。
region 要素は、提示の目的でコンテンツを流し込む
矩形の空間または領域を定義するために使用される。
region 要素は、(1)
layout 要素の子、または (2)
Block.class 要素グループ内の要素の子として現れてもよい。
前者の場合、その region はアウトオブライン regionと呼ばれ、後者の場合、
インライン regionと呼ばれる。
さらに、
10.4.2.2 Region スタイル継承に従い、
region 要素は、その中に流し込まれるコンテンツによって継承される
継承可能なスタイルプロパティを指定するために使用されてもよい。
region 要素は、その子として、
Metadata.class 要素グループの
0 個以上の要素に続いて、
Animation.class 要素グループの
0 個以上の要素に続いて、
0 個以上の style 要素を受け入れる。
Metadata.class
要素グループ内の子によって指定される任意のメタデータは、
region 要素およびその子孫全体に意味的に適用される。
Animation.class
要素グループ内の子によって指定される任意のアニメーション要素は、
region 要素に意味的に適用される。
任意の style 子要素は、包含する region
要素にのみ適用されるローカルなスタイル定義とみなされなければならない。
すなわち、参照スタイリングの解決には適用されない(ただし region
スタイル継承には適用される)。
<region animate = IDREFS begin = <time-expression> condition = <condition> dur = <time-expression> end = <time-expression> style = IDREFS timeContainer = ("par" | "seq") ttm:role = xsd:string xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {TT Style 名前空間内の任意の属性} Content: Metadata.class*, Animation.class*, style* </region> |
アウトオブライン region 要素は、
xml:id 属性を指定しなければならない。
アウトオブライン region 要素は、
timing 属性 begin、end、dur の
1 つ以上を指定してもよい。インライン region 要素は
timing 属性を指定してはならず、指定された場合には提示処理の目的では無視されなければならない。
begin および(または)end 属性がアウトオブライン
region 要素上に指定される場合、それらは、その region がアクティブ化の
対象となり、かつその region のアニメーション子要素がそれに関して timing される
時間間隔の開始点および(または)終了点を指定する。
指定される場合、これらの begin および end 点は、明示的であるか暗黙的であるかに
かかわらず、時間間隔に関連付けられた最も近い祖先要素の時間間隔に相対的である。
時間間隔に関連付けられたアウトオブライン region 要素の最も近い祖先要素は、
layout 要素である。
dur 属性がアウトオブライン region 要素上に指定される場合、
それは region の単純継続時間を指定する。
インライン region
要素のアクティブ時間間隔は、その親コンテンツ要素の
アクティブ時間間隔である。
提示処理のセマンティクスを決定する目的では、時間的に非アクティブな region は、視覚媒体上で提示されるときに可視マークを生成してはならない。
注:
アウトオブライン region 要素は、
2 つの目的で時間間隔に関連付けられてもよい。(1) region およびそのコンテンツの
提示を時間的に制限するため、ならびに (2) region スタイルのアニメーションを
実施できる時間的コンテキストを提供するためである。
たとえば、著者は、その他の点では空であるが、ある時点から開始し region の
継続時間にわたって提示される可視の背景色を持つ、アウトオブライン region
要素を
指定したい場合がある。region の単純継続時間は、その region を対象とするコンテンツの
提示効果のスコープとしても機能する。また、著者は、アニメーション効果によって
ルートコンテナ領域内で region を移動したり、
region の背景色を変更したりしたい場合もある。これらのいずれの場合にも、
region のアクティブ時間間隔を想定する必要がある。
アウトオブライン regionとは対照的に、 インライン regionは、その親 コンテンツ要素の時間的コンテキストに 明確に束縛されるため、独立した timing の指定を必要としない(または認めない)。
region 要素上に timeContainer 属性が指定されていない場合、
それは並列時間包含セマンティクスを持つものとして解釈されなければならない。
tts:origin 属性と
tts:position 属性の両方が
region 要素上に存在する場合、
tts:origin は提示処理の目的では
無視されなければならない。
tts:origin 属性も
tts:position 属性も存在しない場合、
提示処理の目的では
tts:position 属性の初期値の
セマンティクスが適用される。
ttm:role 属性が
region 要素上に指定される場合、それは
構文表現 –
ttm:roleで定義される値構文に従わなければならず、
この属性によって識別されるロールは、その region を対象とする
(関連付けられる)任意のコンテンツのセマンティックロールとは独立して、
region のセマンティックロールを表す。
div または
p 要素 E 上に指定される場合、
次のスタイル属性は、以下でさらに指定されるように、
E に関連付けられた region R に例外的に適用される。
そのような場合、これらの各スタイル属性の適用は、
set アニメーション要素
A の形式を取る匿名の
インラインアニメーションと等価であるとみなされる。
ここで、アニメーションは E のアクティブ時間間隔と等価な
アクティブ時間間隔にわたって R に適用される。
また、複数のアニメーション要素
(Ai, ..., Aj) がすでに
R に適用されている場合、A はこれら既存のアニメーションの
最後、すなわち Aj の直後に適用される。
注:
同じスタイル属性の複数の匿名インライン
アニメーションが何らかの region R に適用される場合、
対応する set
アニメーション要素 Aj, ..., Ak は、
これらのアニメーションを生成した要素
Ej, ..., Ek の
preorder traversal 順に従って R に追加される。
また、与えられた要素の特定のスタイル属性に複数のアニメーションを適用する セマンティクスは、 10.4.4.2 指定スタイル集合 処理のステップ (5)、[アニメーションスタイリング] によって 管理されることにも注意。
これらの特別なセマンティクスは、
tts:extent スタイル属性を使用する次のモデル例によって描かれる。
ただし、このモデルは上に列挙したすべてのスタイル属性に一般に適用される。
<region xml:id="r1" tts:extent="80% 10%" .../> ... <p region="r1" begin="10s" end="12s" tts:extent="70% 20%">change extent</p> |
上記の入力断片例では、tts:extent 属性が段落(p)要素上に
指定されており、一般性を失うことなく、時間間隔 [10s,12s) に
割り当てられている。この属性はその後、次の出力断片において
set 要素の形式の匿名アニメーションを合成するために使用される。
その際、属性は等価な timing 属性とともに set 要素にコピーされる。
元の tts:extent はその後、段落(p)から削除される。
<region xml:id="r1" tts:extent="80% 10%" ...> <set begin="10s" end="12s" tts:extent="70% 20%"</set> </region> ... <p region="r1" begin="10s" end="12s">change extent</p> |
結果として得られる出力断片は、region の元の extent は保持されるが、 子アニメーションが指定された時間間隔中にこの extent を上書きし、 望まれるように region の extent を(一時的に)変更する効果を生成することを示している。
この節では、コンテンツ要素で使用される 11.2.1 region 属性を定義する。
region 属性は、コンテンツ
要素が流し込まれることを意図する空間または領域を定義する
region 要素を参照するために使用される。
指定される場合、region 属性の値は、
[XML Schema Part 2] §3.3.9 で定義される
IDREF データ型に従わなければならず、さらに、この IDREF は
祖先として layout 要素を持つ region 要素を参照しなければならない。
region 属性は、次の要素型のインスタンスによって指定されてもよい。
注:
region 内のコンテンツフローに関するさらなる情報については、下記の 11.3.1 Region レイアウトおよび提示を参照。
この節では、region レイアウトおよび提示のセマンティクスを、 次の標準処理モデルの観点から定義する。
外部から観察可能な結果がこのモデルによって生成される結果と 一致する限り、任意の実装が許可される。
文書インスタンスが アウトオブライン regionを指定しない場合、 次の特性を持つ既定 regionが暗示される。
既定 region の識別子は、匿名のアウトオブライン regionであるとみなされる。
既定 region の範囲は、ルートコンテナ領域の範囲と同じである。
既定 region の時間間隔は、 ルート時間範囲によって定義される 間隔と同じである。
さらに、
アウトオブライン regionが指定されていない場合、
region 属性は
文書インスタンス内のいかなる
コンテンツ要素上にも指定されてはならない。
与えられた文書インスタンスについて
既定 region が暗示される場合、
body 要素は
暗黙的に既定 region を対象とする(関連付けられる)。
既定 region を暗示する場合、文書インスタンスは、
次の例に示すように、head 要素内に
region 要素およびその親
layout 要素が指定され、
それに対応する region 属性が
body 要素上に指定されたかのように
扱われるものとする。
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
<head>
<layout>
<region xml:id="anonymous"/>
</layout>
</head>
<body region="anonymous"/>
</tt>
|
注:
上記の例では、既定の region 要素および region
属性が暗示される。さらに、暗示される region 要素のために、
layout コンテナ要素も暗示される。
インライン regionは、region 指定と その region を参照するコンテンツとの構文上の距離を最小化する方法で regionを指定するための構文機構である。 セマンティクス上、各インライン regionは、 そのインライン regionが指定(または暗示)される コンテキストのコンテンツ要素によってのみ 暗黙的に参照される一意の アウトオブライン regionを指定することと等価である。
インライン regionは、
Block.class 要素グループ内の
コンテンツ要素の子として
region 要素を指定することにより
宣言される。これは
インライン region 指定と
呼ばれる。
インライン region は、 [process inline regions] 手続きに従って処理される。この手続きは、インライン region に対応する アウトオブライン region を生成する。さらに、この手続きは、インライン region に関連付けられた コンテンツ要素を、対応する生成された アウトオブライン region に束縛する。
注:
コンテンツ要素は、(与えられた
中間同期文書内で)
属性指定または子 region 要素のいずれかによって、
ただ 1 つのregionにのみ関連付けることができる。
したがって、コンテンツ要素が
region 属性を指定する場合、
任意のインライン region 指定は
無視される。
Block.class 要素グループ内の 各コンテンツ要素 B について、 次の順序付きステップを実行する。
B の [attributes] 情報項目プロパティが
region 属性を
含む場合、この手続きを終了する。
B の [children] 情報項目プロパティが
region 要素
R を含まない場合、この手続きを終了する。
空の region 要素
R' を作成し、次のように初期化する。
R' の [children] 情報項目プロパティを、
R の [children] 情報項目プロパティの
deep copy に設定する。
R' の [attributes] 情報項目プロパティを、
R の [attributes] 情報項目プロパティの
deep copy に設定する。
R' の [attributes] 情報項目プロパティが
xml:id 属性を含まない場合、
TTML 文書インスタンスのスコープ内で
一意である生成値 ID を持つ暗黙の
xml:id 属性を追加する。
そうでなければ、ID を R' の
xml:id 属性の値とする。
存在する場合、
R' の [attributes] 情報項目プロパティから
次の属性を削除する。
begin,
dur, and
end;
R' の
[attributes] 情報項目プロパティに
begin および end 属性を次のように追加する。
TTML 文書インスタンスが
head 要素を
持たない場合、空の
head 要素を
tt 要素の
最初の子として挿入する。
head
要素が
layout 子要素を
持たない場合、空の
layout 要素を、
存在する場合は
styling 要素の直後、
かつ存在する場合は
animation
要素の直前に挿入する。どちらも存在しない場合は、
head
要素の最後の子として挿入する。
値 ID を持つ
region 属性を、
B の [attributes] 情報項目プロパティに追加する。
R を B の [children] 情報項目プロパティから
削除する。
インライン region 指定の使用と、 結果として生成されるアウトオブライン region を、次の例に示す。
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
<head/>
<body>
<div begin="5s" dur="10s">
<region tts:extent="540px 100px" tts:origin="50px 339px"/>
<p>Some Content</p>
<div/>
<body/>
</tt>
|
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
<head>
<layout>
<region xml:id="region3451" begin="5s" end="15s"
tts:extent="540px 100px" tts:origin="50px 339px"/>
</layout>
</head>
<body>
<div begin="5s" dur="10s" region="region3451">
<p>Some Content</p>
<div/>
<body/>
</tt>
|
注:
上記の一対の例では、生成されたアウトオブライン region 上の timing 属性が、
インライン region 要素の親である
div 要素の元の
dur 属性ではなく end 属性を使用していることに注意。
この dur から end への変換は、生成された
アウトオブライン region のアクティブ時間間隔をルート時間範囲内で指定するために、
上記の手続きによって要求される。
注:
この例で生成される region ID region3451 は実装依存であり、
唯一の要件は、それが
xml:id 属性の妥当な値であり、
文書インスタンスのスコープ内で一意であることを含むことである。
提示処理を実行する目的で、(1) [resolve timing] 手続きを呼び出し、その後、(2) [construct immediate document] 手続きを呼び出す。
任意で、手続き [construct anonymous spans] を呼び出す。 そうでなく、この時点で呼び出さない場合、その手続きが呼び出されていれば 暗黙の継続時間が解決されていた各テキストノードについて、 暗黙の継続時間を解決する。
現在の文書インスタンスの
アクティブ時間継続時間を、時間座標の順序列
{T0, T1, T2, ...} に分割する。
ここで、各時間座標 Ti において、
何らかの要素が時間的にアクティブまたは非アクティブになる。
[resolve timing]
手続きから得られる
各時間間隔について、ここで各間隔は時間座標の連続する組
(Ti,Ti+1)、すなわち
(T0,T1),
(T1,T2), … から構成されるものとして、
現在の文書インスタンスを
元のソース形式 DOCsource から
中間同期文書形式 DOCinter へ、
次の順序付きステップに従って対応付ける。
手続き [process inline regions] を呼び出す。
各時間的にアクティブな region R について、
DOCsource のうち
body 要素を根とするサブツリーを複製する。
このサブツリーを postorder traversal で評価し、次の条件のいずれかが真である場合、 要素を prune する。
それらが提示関連 要素ではない場合、または
それらが時間的に非アクティブである場合、または
[associate region] 手続きに従って、 region R に関連付けられていない場合。
prune されたサブツリーが空でない場合、それを R 要素の子に付け替える。
最後に、上記のステップを完了した後、中間文書から元の
body
要素を prune し、その後、もはや意味的に関連しないすべての
region、begin、end、および
dur 属性を prune する。
注:
この節で、要素を参照して用いられる用語 prune は、 その要素がその親の子から削除されることを意味し、 その結果、prune された要素の子孫はもはやその要素の親の子孫ではなくなることを 含意する。属性を参照して prune が用いられる場合、 それはその属性が関連付けられた(所有する)要素ノードから削除されることを意味する。
注:
適合する提示プロセッサは、上記の手続きの後処理ステップとして 早期スタイル解決を実行してもよい。これについての詳細は [flow transformation] 手続きの ステップ (2) を参照。
コンテンツ要素は、次の順序付き規則に従って region に関連付けられる。ここで、最初に満たされた規則が使用され、 残りの規則はスキップされる。
要素が region 属性を指定し、
その region が条件付きで
除外されていない場合、
その要素はその属性によって参照される region に関連付けられる。
その要素の何らかの祖先が
region 属性を指定し、
その region が条件付きで
除外されていない場合、
その要素は、この属性を指定する最も近い祖先によって参照される region に
関連付けられる。
その要素が、
region 属性を指定する
子孫要素を含み、
その region が条件付きで
除外されていない場合、
その要素は、その属性によって参照される region に関連付けられる。
(任意の
region 要素が存在しないため)
既定 region が暗示された場合、その要素は既定 region に関連付けられる。
その要素はいかなる region にも関連付けられない。
上記の処理を実行した結果は、 N 個の中間同期 文書インスタンスの列、 DOCinter0 … DOCinterN−1 となる。
注:
実装が、隣接する 2 つの同期文書インスタンス DOCinterN DOCinterN−1 の間に有意な類似性を検出できる場合、 実装は、これら 2 つのインスタンスの提示間の遷移を可能な限り滑らかにするための 処理を適用できる。たとえば、 [CTA-608-E] §C.3 および [CC-DECODER-REQ] で説明されるような処理である。
時間的(同期)スライスおよびそれに続く、region によって選択された コンテンツ階層の再対応付けを実行した後、結果として得られる中間同期文書は フロー変換ステップの対象となる。このステップは、 [XSL-FO 1.1]によって定義される XSL FO 文書インスタンスとして 表される根付きフローオブジェクトツリーを生成し、XSL FO に対応物を持たない TTML 固有のスタイルプロパティによって意味的に拡張される。
注:
この節における XSL FO の使用は概念的なものに限られ、 TTML の規範的な提示セマンティクスを定義する目的でのみ用いられる。 このアルゴリズムの実際の実装は、XSL-FO 表現を作成または処理する必要はない。 特に、Cascading Style Sheets (CSS) などの代替提示モデルを使用して、 これらのセマンティクスを実装することが可能である。
注:
与えられた文書インスタンス内に、 [XSL-FO 1.1] に対応物が存在しない TTML スタイルプロパティまたは スタイルプロパティ値が存在する可能性があるため、 実装者は、この仕様が参照しているのは [XSL-FO 1.1] のレイアウトモデルであり、 適合する [XSL-FO 1.1] 整形プロセッサを使用する要件ではない ことに注意すべきである。なぜなら、そのようなプロセッサはこの仕様で定義される 完全な提示セマンティクスを満たすのに必ずしも十分ではなく、TTML の提示セマンティクスを 実装するために不要な多数の機能を含むことになるからである。
提示処理を実行する目的では、 11.3.1.3 中間同期文書 構築によって生成される各中間同期文書 DOCinteri について、 (1) 次の [flow transformation] 手続きを呼び出して XSL FO 文書インスタンス Fi を取得し、その後 (2) 処理が視覚媒体上の提示を必要とする場合、 [XSL-FO 1.1] およびこの仕様によって規定されるものと 整合する、関連するすべての整形およびレンダリングセマンティクスを Fi に適用する。
まだ呼び出されていない場合、手続き [construct anonymous spans] を実行する。
注:
適合する提示プロセッサは、このステップをより早い処理段階で 実行してもよく、その場合、このステップはここで繰り返されない。 11.3.1.3 中間 同期文書構築で定義される中間同期文書構築より前に 匿名 span構築が行われる場合、 中間同期文書は匿名 spanを含むことに注意。
10.4.4.4 スタイル 解決処理に従ってスタイルを解決する。
注:
適合する提示プロセッサは、 [construct intermediate document] 手続きを実行する際の後処理ステップとして、このステップを実行してもよい。 その場合、 11.3.1.3 中間 同期文書構築によって生成される各中間同期文書は 算出スタイル集合を含むことになり、 したがって、このステップはここで繰り返されない。
tt 要素を fo:root 要素に対応付ける。
これは、最初に fo:layout-master-set 要素を含むものとして
構成され、この要素は妥当な
fo:simple-page-master を含み、さらにそれが
fo:region-body 子を含む。ここで、
tt 要素上に表された
ルートコンテナ領域の範囲は、
fo:simple-page-master
要素上の page-width および
page-height 属性に対応付けられる。
layout 要素を fo:page-sequence 要素と
子 fo:flow 要素に対応付ける。これらは、上で生成された
simple page master によって定義される page master および page region を
参照する。
注:
F を [XSL-FO 1.1] 整形プロセッサで
整形することによって生成される XSL FO 領域ツリーにおいて、
fo:page-sequence 要素によって、唯一生成された
fo:simple-page-master 要素への参照により生成される
page-viewport-area は、上記の
2 定義で定義される
ルートコンテナ領域に対応する。
各空でない region 要素を、
値 absolute を持つ absolute-position 属性を備えた
fo:block-container
要素に対応付ける。この要素は、region の origin および extent
(padding を含む)と等価な矩形を表す
top、left、
bottom、および right 属性を持ち、
値 line-height を持つ line-stacking-strategy
属性を持つ。
注:
region の extent は、fo:block-container によって生成される
ブロック領域の allocation rectangle に対応する。
注:
region 要素を fo:block-container に
対応付ける場合、region がそれを包含するブロックの外側へ広がる場合には、
top、left、bottom、および
right XSL-FO プロパティの 1 つ以上の値として、
負のオフセットを使用する必要があることがある。
ブロックレベルコンテキスト内の (1) body、
div、および p 要素、または (2)
image 要素、すなわち
Block.class 要素グループ内の要素の
image 子について、その要素が値
none を持つ tts:display スタイルプロパティに
関連付けられていない場合、次を実行する。
その要素が image 要素でない場合、その要素を
個別の fo:block 要素に対応付け、
各元 TTML コンテンツ要素に関連付けられた
算出スタイル集合を使用して fo:block のスタイルプロパティを
設定する。
そうでなければ(その要素が image 要素である場合)、
その要素を、単一の fo:external-graphic 子要素を含む
個別の fo:block 要素に対応付ける。
各元 TTML コンテンツ要素に関連付けられた
算出スタイル集合を使用して fo:block および
fo:external-graphic のスタイルプロパティを設定し、
関連する画像リソースへの
適切な参照を使用して fo:external-graphic 要素の
src プロパティを設定する。
前のステップで生成された結果の fo:block 整形オブジェクトのうち、
body 要素に対応するものについて、次の順序付きサブステップを
呼び出す。
この fo:block の display-align スタイルプロパティが
値 center または after を持つ場合、
この fo:block の最初の子として、
次の属性を持つ空の fo:block を合成して挿入する。
space-after.optimum、space-after.maximum、
および space-after.conditionality。ここで前者
2 つの属性の値は、包含する fo:block-container 要素の
高さまたは幅のうち、ブロック進行次元として指定される方であり、
最後の属性の値は retain である。
この fo:block の display-align スタイルプロパティが
値 center または before を持つ場合、
この fo:block の最後の子として、
次の属性を持つ空の fo:block を合成して挿入する。
space-after.optimum、space-after.maximum、
および space-after.conditionality。ここで前者
2 つの属性の値は、包含する fo:block-container 要素の
高さまたは幅のうち、ブロック進行次元として指定される方であり、
最後の属性の値は retain である。
注:
body 要素に対応する fo:block の
ブロック進行次元に追加の折り畳み可能な空間を挿入する目的は、
この fo:block の before 辺および after 辺が、
包含する region に対応する
fo:block-container の before 辺および after 辺と
一致することを確実にしつつ、同時にブロック進行次元における
配置を満たす必要を考慮することである。たとえば、これにより、
body 要素に関連付けられた背景色が
transparent でない場合、包含 region 全体を塗りつぶすことが
保証される。
インラインレベルコンテキスト内の (1) span 要素および
匿名 span、または (2)
image 要素、すなわち p または span
要素の image 子について、その要素または
匿名 spanが値
none を持つ tts:display スタイルプロパティに
関連付けられていない場合、次を実行する。
オブジェクトが匿名
spanである場合、
匿名 spanの文字項目列を
個別の fo:inline 要素に対応付け、
匿名 spanに関連付けられた
算出スタイル集合を使用して fo:inline のスタイルプロパティを
設定する。
オブジェクトが span 要素である場合、その要素を
個別の fo:inline 要素に対応付け、
span に関連付けられた算出スタイル集合を使用して
fo:inline のスタイルプロパティを設定する。
そうでなければ(オブジェクトが image 要素である場合)、
その要素を、単一の fo:external-graphic 子要素を含む
個別の fo:inline 要素に対応付ける。
image 要素に関連付けられた算出スタイル集合を使用して
fo:inline および fo:external-graphic の
スタイルプロパティを設定し、関連する
画像リソースへの適切な参照を使用して
fo:external-graphic 要素の src プロパティを
設定する。
値 none を持つ tts:display スタイルプロパティに
関連付けられていない各 br 要素について、
次のプロパティを持つ個別の fo:character 要素に
その要素を対応付ける。
character="
"
suppress-at-line-break="retain"
何らかの算出スタイル集合内の TTML スタイルプロパティ属性のうち [XSL-FO 1.1] に対応物を持たないものについて、 その属性を、そのスタイルプロパティが適用される入力 TTML コンテンツ要素によって生成される 関連する整形オブジェクトへ直接対応付ける。
任意で、結果として得られる各整形オブジェクト要素上に、
その要素をその整形オブジェクト要素の生成元となった入力要素に関連付ける
一意の id 属性を合成する。
上で説明した処理ステップの例を、 例 – サンプルソース文書から始めて 以下に詳述する。
<tt tts:extent="640px 480px" xml:lang="en"
xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling">
<head>
<layout>
<region xml:id="r1">
<style tts:origin="10px 100px"/>
<style tts:extent="620px 96px"/>
<style tts:fontSize="40px"/>
<style tts:fontWeight="bold"/>
<style tts:backgroundColor="black"/>
<style tts:color="red"/>
<style tts:textAlign="center"/>
<style tts:displayAlign="center"/>
</region>
<region xml:id="r2">
<style tts:origin="10px 300px"/>
<style tts:extent="620px 96px"/>
<style tts:fontSize="40px"/>
<style tts:fontWeight="bold"/>
<style tts:backgroundColor="black"/>
<style tts:color="yellow"/>
<style tts:textAlign="center"/>
<style tts:displayAlign="center"/>
</region>
</layout>
</head>
<body xml:id="b1">
<div xml:id="d1" begin="0s" dur="2s">
<p xml:id="p1" region="r1">Text 1</p>
<p xml:id="p2" region="r2">Text 2</p>
</div>
<div xml:id="d2" begin="1s" dur="2s">
<p xml:id="p3" region="r2">Text 3</p>
<p xml:id="p4" region="r1">Text 4</p>
</div>
</body>
</tt>
|
上記の文書では、コンテンツ階層は 2 つの division から構成され、 それぞれが 2 つの段落を含む。このコンテンツは、位置および前景色を除いて 同一にスタイル付けされた、重ならない 2 つの region のうち 1 つを対象とする (関連付けられる)。後者の前景色は、region に子として付け替えられた (この場合は匿名の)span によって継承され、適用される。
次の最初の中間文書は、時間間隔 [0,1) における同期状態を示す。
この時間中、division d1 のみが時間的にアクティブであり、
段落 p1 および p2(ならびにそれらの祖先)は
それぞれ region r1 および r2 に関連付けられている。
注:
以下に示す中間文書は、妥当な 文書インスタンスではなく、 教示目的で使用される可能な内部処理状態の表現である。
<tt tts:extent="640px 480px" xml:lang="en"
xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling">
<head>
<layout>
<region xml:id="r1">
<style tts:origin="10px 100px"/>
<style tts:extent="620px 96px"/>
<style tts:fontSize="40px"/>
<style tts:fontWeight="bold"/>
<style tts:backgroundColor="black"/>
<style tts:color="red"/>
<style tts:textAlign="center"/>
<style tts:displayAlign="center"/>
<body xml:id="b1-1">
<div xml:id="d1-1">
<p xml:id="p1">Text 1</p>
</div>
</body>
</region>
<region xml:id="r2">
<style tts:origin="10px 300px"/>
<style tts:extent="620px 96px"/>
<style tts:fontSize="40px"/>
<style tts:fontWeight="bold"/>
<style tts:backgroundColor="black"/>
<style tts:color="yellow"/>
<style tts:textAlign="center"/>
<style tts:displayAlign="center"/>
<body xml:id="b1-2">
<div xml:id="d1-2">
<p xml:id="p2">Text 2</p>
</div>
</body>
</region>
</layout>
</head>
</tt>
|
TTML と整合するレンダリングをもたらし、かつ最初の中間文書に対して フロー処理を実行することによって生成され得る XSL FO 文書インスタンスを 以下に示す。
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="m1"
page-width="640px" page-height="480px">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="m1">
<fo:flow flow-name="xsl-region-body">
<!-- region (r1) -->
<fo:block-container id="r1" absolute-position="absolute"
left="10px" top="100px" width="620px" height="96px"
background-color="black" display-align="center">
<!-- body (b1) -->
<fo:block id="b1-1">
<!-- body's space (before) filler -->
<fo:block
space-after.optimum="96px"
space-after.maximum="96px"
space-after.conditionality="retain"/>
<!-- div (d1) -->
<fo:block id="d1-1">
<!-- p (p1) -->
<fo:block id="p1" text-align="center">
<fo:inline font-size="40px" font-weight="bold"
color="red">Text 1</fo:inline>
</fo:block>
</fo:block>
<!-- body's space (after) filler -->
<fo:block
space-after.optimum="96px"
space-after.maximum="96px"
space-after.conditionality="retain"/>
</fo:block>
</fo:block-container>
<!-- region (r2) -->
<fo:block-container id="r2" absolute-position="absolute"
left="10px" top="300px" width="620px" height="96px"
background-color="black" display-align="center">
<!-- body (b1) -->
<fo:block id="b1-2">
<!-- body's space (before) filler -->
<fo:block
space-after.optimum="96px"
space-after.maximum="96px"
space-after.conditionality="retain"/>
<!-- div (d1) -->
<fo:block id="d1-2">
<!-- p (p2) -->
<fo:block id="p2" text-align="center">
<fo:inline font-size="40px" font-weight="bold"
color="yellow">Text 2</fo:inline>
</fo:block>
</fo:block>
<!-- body's space (after) filler -->
<fo:block
space-after.optimum="96px"
space-after.maximum="96px"
space-after.conditionality="retain"/>
</fo:block>
</fo:block-container>
</fo:flow>
</fo:page-sequence>
</fo:root>
|
次の 2 番目の中間文書は、時間間隔 [1,2) における同期状態を示す。
この時間中、division d1 と d2 の両方が時間的に
アクティブであり、段落 p1 および
p4(ならびにそれらの祖先)は region r1 に関連付けられ、
段落 p2 および p3(ならびにそれらの祖先)は
region r2 に関連付けられている。
<tt tts:extent="640px 480px" xml:lang="en"
xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling">
<head>
<layout>
<region xml:id="r1">
<style tts:origin="10px 100px"/>
<style tts:extent="620px 96px"/>
<style tts:fontSize="40px"/>
<style tts:fontWeight="bold"/>
<style tts:backgroundColor="black"/>
<style tts:color="red"/>
<style tts:textAlign="center"/>
<style tts:displayAlign="center"/>
<body xml:id="b1-1">
<div xml:id="d1-1">
<p xml:id="p1">Text 1</p>
</div>
<div xml:id="d2-1">
<p xml:id="p4">Text 4</p>
</div>
</body>
</region>
<region xml:id="r2">
<style tts:origin="10px 300px"/>
<style tts:extent="620px 96px"/>
<style tts:fontSize="40px"/>
<style tts:fontWeight="bold"/>
<style tts:backgroundColor="black"/>
<style tts:color="yellow"/>
<style tts:textAlign="center"/>
<style tts:displayAlign="center"/>
<body xml:id="b1-2">
<div xml:id="d1-2">
<p xml:id="p2">Text 2</p>
</div>
<div xml:id="d2-2">
<p xml:id="p3">Text 3</p>
</div>
</body>
</region>
</layout>
</head>
</tt>
|
次の 3 番目の中間文書は、時間間隔 [2,3) における同期状態を示す。
この時間中、division d2 のみが時間的にアクティブであり、
段落 p4 および p3(ならびにそれらの祖先)は
それぞれ region r1 および r2 に関連付けられている。
<tt tts:extent="640px 480px" xml:lang="en"
xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling">
<head>
<layout>
<region xml:id="r1">
<style tts:origin="10px 100px"/>
<style tts:extent="620px 96px"/>
<style tts:fontSize="40px"/>
<style tts:fontWeight="bold"/>
<style tts:backgroundColor="black"/>
<style tts:color="red"/>
<style tts:textAlign="center"/>
<style tts:displayAlign="center"/>
<body xml:id="b1-1">
<div xml:id="d2-1">
<p xml:id="p4">Text 4</p>
</div>
</body>
</region>
<region xml:id="r2">
<style tts:origin="10px 300px"/>
<style tts:extent="620px 96px"/>
<style tts:fontSize="40px"/>
<style tts:fontWeight="bold"/>
<style tts:backgroundColor="black"/>
<style tts:color="yellow"/>
<style tts:textAlign="center"/>
<style tts:displayAlign="center"/>
<body xml:id="b1-2">
<div xml:id="d2-2">
<p xml:id="p3">Text 3</p>
</div>
</body>
</region>
</layout>
</head>
</tt>
|
段落の表現である p 要素が
提示プロセッサによって処理されるとき、
そのコンテンツは改行によって分割され、
各セグメントは一意の行領域に割り当てられる。
この点において、この仕様は [XSL-FO 1.1] によって定義される
整形モデル、とりわけ §4.5、§4.6、および §4.7 に基づくモデルを採用する。
文書インスタンスに適用されるプロファイルが #lineBreak-uax14 機能のサポートまたは使用を 要求する場合、 Line Breaking Algorithm [UAX14] によって定義される推奨事項は、 文書インスタンスのコンテンツに対して 行レイアウトを実行するときに適用される。
この小節は非規範的である。
行領域の ブロック進行次元の計算は、 慣習的に行高と呼ばれ、特に複数のフォントファミリー、フォントサイズ、 フォントスタイル、フォントリソース、 および高度なテキスト整形機能、たとえば ruby、text emphasis、および text combination(縦中横)が適用される場合に、非常に複雑になることがある。
この処理によって生成される各行領域は、
(横書き行のコンテキストでは)先行する行領域の
下に縦方向に、または(縦書き行のコンテキストでは)先行する行の横に
横方向に積み重ねられる。
[flow
transformation] 手続きのステップ (5) によって
指定されるように、TTML は line-height 行積み重ね方針を採用する。
これは [XSL-FO 1.1] §4.5 で形式的に定義されており、
その用語および概念を以下で使用する。
この方針を使用する場合、行領域の寸法は、 その特定の行領域について算出される per-inline-height-rectangle の寸法に対応する。 これはさらに、(1) 段落の各行領域について一様である expanded-nominal-requested-line-rectangle の寸法、および (2) 行領域の インライン領域子それぞれの expanded-rectangle の寸法を評価することによって決定される。 後者は、段落の各行領域の各 インライン領域ごとに異なることがある。
上で言及した句 line height は、 tts:lineHeight 属性に関連付けられた スタイルプロパティの算出値と混同すべきではない。この後者の値は、 行領域および個々の インライン領域に適用される half leading を計算するためのパラメータとして機能する。 これらは、それぞれ (1) 行領域の expanded-nominal-requested-line-rectangle の寸法、および (2) 行領域の子である インライン領域の expanded-rectangle の寸法を決定するためのパラメータである。 行領域に適用される half leading と、 その行領域の子である インライン領域に適用される half leading はしばしば異なる値であり、その詳細は [XSL-FO 1.1] §6.5.2(行領域に適用される場合)に見られることに注意。 与えられたインライン領域については、同様の扱いが適用されるが、 これは [XSL-FO 1.1] では明示的には示されておらず、 [CSS2] §10.8.1 に見られる文言から推論できる。
要約すると、[XSL-FO 1.1] §4.5 で定義され、
TTML によって採用される line-height 行積み重ね方針によって定義される挙動は、
[CSS2] の行積み重ね方針と互換であることを意図している。
これは次を意味する。
段落の tts:lineHeight の算出値が
normal である場合、(1) 段落の各
行領域は、その段落の先行する
行領域に正確に接し、交差せず、かつ
(2) 段落の行領域の行高は、
各行領域のスタイル付けされたコンテンツに従って
変化する。
段落の tts:lineHeight の算出値が 指定された <length> である場合、 段落の行領域は互いに正確に接するが、 それらのコンテンツ矩形は、 (1) そのコンテンツに適合するために必要な量より少ない空間を ブロック進行次元で消費し、 その場合、そのコンテンツはその段落の先行する 行領域と交差することがある、または (2) そのコンテンツに適合するために必要な量より多い空間を ブロック進行次元で消費することがある。
注:
次の高度なテキスト整形機能のいずれかが行のコンテンツに適用される場合、 行高に追加の調整が発生することがある。
ルビテキスト注釈
text combination(縦中横)
text emphasis
(グリフごとの)font shear
この節では、整形済み TTML 文書インスタンスのレンダリングの特定の側面の詳細を指定する。
提示プロセッサによって採用されるレンダリング順序は、 [XSL-FO 1.1] §4.9 によって指定される レンダリングモデルと整合しなければならない。さらに、次の制約が適用される。
ルビテキスト span によって生成される行領域のインライン領域子孫は、 その行領域の他のインライン領域子孫の後にレンダリングされる。
image 要素によって
生成されるブロック領域またはインライン領域の固有マークは、
関連付けられた画像のラスターから構成される。
注:
tts:backgroundImage
属性によって参照される
image 要素によって生成されるマークは、
ブロック領域またはインライン領域の固有マークには含まれない。
すなわち、それらは領域の背景マークの一部である。
この節では、コア語彙カタログのタイミング事項を指定する。 ここでタイミングは、コンテンツに適用され、 そのコンテンツの時間的提示に関する著者の意図を示す、分離可能な情報層として 理解されるものとする。
この節では、timed 要素で使用する次の基本 timing 属性を定義する。
さらに、この節では、同時に timing container として機能する timed 要素で使用する 12.2.4 timeContainer 属性を定義する。
begin 属性は、timed 要素に関連付けられた
時間間隔の開始点を指定するために使用される。
指定される場合、begin 属性の値は、
12.3.1 <time-expression>で
定義される <time-expression> 指定に従わなければならない。
時間間隔の開始点はその間隔に含まれる。すなわち、その間隔は左閉である。
begin 属性のセマンティクスは、
[SMIL 3.0] §5.4.3 によって定義されるものであり、
この仕様によって定義される任意の上書きセマンティクスを考慮する。
注:
[SMIL 3.0] §5.4.3 によって定義されるように、
timed 要素上に begin 属性が
明示的に指定されていない場合、
その属性の既定値は最も近い time container 祖先によって決定される。
ただし TTML では、その祖先は並列 time container または順次 time container の
いずれかであり、その両方が既定値 0s を適用する。
dur 属性は、timed 要素に関連付けられた
時間間隔の継続時間を指定するために使用される。指定される場合、
dur 属性の値は、
12.3.1 <time-expression>で
定義される <time-expression> 指定に従わなければならない。
注:
<time-expression> 指定の clock-time 形式が
dur 属性とともに使用される場合、それは 2 つの暗黙の
clock time 式の差として解釈されることを意図している。
文書インスタンスが
smpte time base および discontinuous marker
mode の使用を指定する場合、(整形式の)dur 属性はいかなる要素上にも
指定されてはならない。
dur 属性のセマンティクスは、
[SMIL 3.0] §5.4.3 によって定義されるものであり、
この仕様によって定義される任意の上書きセマンティクスを考慮する。
[SMIL 3.0] §5.4.3 からの意図的な相違として、
dur 属性の値はゼロ(0s)であることが許可される。
注:
この仕様がサポートする [SMIL 3.0] セマンティクスの部分集合の
コンテキストでは、end 属性と dur 属性の両方を指定する
要素のアクティブ継続時間は、dur 属性の値と、
end 属性の値から要素の begin 時刻を引いた差のうち小さい方に等しい。
end 属性は、timed 要素に関連付けられた
時間間隔の終了点を指定するために使用される。指定される場合、
end 属性の値は、
12.3.1 <time-expression>で
定義される <time-expression> 指定に従わなければならない。
時間間隔の終了点はその間隔に含まれない。すなわち、その間隔は右開である。
空でないアクティブ時間間隔の提示効果は、終了点によって指定された時刻に等しい、 またはその直後の frame(または tick)の直前の frame を含むが、 この後者の frame(または tick)には及ばない。
注:
たとえば、アクティブ間隔が [10s,10.33333s) であり、 frame rate が 1 秒あたり 30 frame である場合、その間隔の提示効果は frame 300 から 309 までに限られる(0s が frame 0 に対応すると仮定する)。 アクティブ間隔が [300f,310f) として指定される場合も同様である。
end 属性のセマンティクスは、
[SMIL 3.0] §5.4.3 によって定義されるものであり、
この仕様によって定義される任意の上書きセマンティクスを考慮する。
timeContainer 属性は、timed 子要素が時間的に配置されるための
ローカルな時間的コンテキストを指定するために使用される。
指定される場合、timeContainer 属性の値は次のいずれかでなければならない。
par
seq
要素インスタンスの time container セマンティクスが par である場合、
子要素の時間間隔は並列に、すなわち時間的に同時に適用されるとみなされる。
さらに、各子要素の時間間隔の指定は、container 要素インスタンスの
時間間隔に相対的であるとみなされる。
par time container の
[SMIL 3.0] endsync セマンティクスを決定する目的では、
既定値 all が適用される。
注:
endsync 挙動に既定値 all を使用することは、
既定値 last を使用する [SMIL 3.0] とは異なる。
要素インスタンスの time container セマンティクスが seq である場合、
子要素の時間間隔は順に、すなわち時間的に逐次的に適用されるとみなされる。
さらに、各子要素の時間間隔の指定は、その子要素が最初の子要素でない限り、
その兄弟要素の時間間隔に相対的であるとみなされる。最初の子要素である場合は、
container 要素インスタンスの時間間隔に相対的であるとみなされる。
各 time container は、独立した time base、すなわち時間座標系を構成するとみなされる。
time container セマンティクスを持つ要素上に timeContainer 属性が
指定されていない場合、par time container セマンティクスが適用されなければならない。
Time container セマンティクスは、次の要素型にのみ適用される。
並列および順次の time containment のセマンティクスは、 [SMIL 3.0] §5.4.4 によって定義されるものであり、 この仕様によって定義される任意の上書きセマンティクスを考慮する。
Timing 属性値には、次の式の使用が含まれる。
<time-expression> は、何らかの time base 内の座標を指定するために使用される。
ここで、適用される time base は
ttp:timeBase パラメータによって決定され、
I 時間式セマンティクスによって
定義されるセマンティクスが適用される。
注:
frame rate、sub-frame rate、tick rate、および time base の明示的指定に関する さらなる情報については、 7.2.5 ttp:frameRate, 7.2.9 ttp:subFrameRate, 7.2.10 ttp:tickRate, および 7.2.11 ttp:timeBaseを参照。
<time-expression>
: clock-time
| offset-time
| wallclock-time
clock-time
: hours ":" minutes ":" seconds ( fraction | ":" frames ( "." sub-frames )? )?
offset-time
: time-count fraction? metric
wallclock-time
: "wallclock(" <lwsp>? ( date-time | wall-time | date ) <lwsp>? ")"
date-time
: date "T" wall-time
wall-time
: ( hhmm-time | hhmmss-time )
date
: years "-" months "-" days
hhmm-time
: hours2 ":" minutes
hhmmss-time
: hours2 ":" minutes ":" seconds fraction?
years
: <digit> <digit> <digit> <digit>
hours
: hours2
| hours3plus
hours3plus
: <digit> <digit> <digit>+
months | days | hours2 | minutes | seconds
: <digit> <digit>
frames
: <digit> <digit>
| <digit> <digit> <digit>+
sub-frames
: <digit>+
fraction
: "." <digit>+
time-count
: <digit>+
metric
: "h" // hours
| "m" // minutes
| "s" // seconds
| "ms" // milliseconds
| "f" // frames
| "t" // ticks
|
<time-expression> は、前述の構文定義において <lwsp> 非終端の出現によって明示的に許可される場合を除き、 <whitespace> 文字を含んではならない。
<time-expression> が clock-time の観点から表される場合、
10 未満の hours、minutes、seconds、および frames を表す際には先行ゼロが使用される。
Minutes は [0…59] に制約され、seconds(任意の小数部分を含む)は閉区間 [0,60] に
制約される。ここで値 60 は leap second にのみ適用される。
ttp:timeBase が
clock であり、かつ
ttp:clockMode が
local または utc である場合を除き、
leap second を示すための特別値 60 秒の使用は
非推奨である。
提示処理を実行する場合、他の time base または clock mode におけるこの特別値の出現は、
値 59 が指定されたかのように解釈されなければならない。
<time-expression> が clock-time の観点から表され、
frames 項が指定される場合、この項の値は区間
[0…F-1] に制約されなければならない。ここで F は、
7.2.5 ttp:frameRateで定義される
ttp:frameRate パラメータによって決定される frame rate である。
clock time base が適用される場合に frames 項または
f(frames)metric が指定されると、エラーとみなされる。
<time-expression> が clock-time の観点から表され、
sub-frames 項が指定される場合、この項の値は区間
[0…S-1] に制約されなければならない。ここで S は、
7.2.9 ttp:subFrameRateで
定義される ttp:subFrameRate パラメータによって決定される
sub-frame rate である。
clock time base が適用される場合に sub-frames 項が指定されると、
エラーとみなされる。
<time-expression> の wallclock-time 形式が
文書インスタンス内で使用され、
governing time base が clock でない場合、エラーとみなされる。
governing time base の算出値が smpte である場合、
(1) <time-expression> の offset-time 形式の使用は
非推奨であり、かつ
(2) <time-expression> の clock-time 形式における
fraction seconds 成分の使用は
非推奨である。
注:
上で指定される <time-expression> 構文は、time zone 情報の表現を明示的に除外する。
著者が <time-expression> を特定の time zone と関連付けたい場合、
time expression を UTC に変換し、utc clock mode の使用を指定してもよい。
これについては 7.2.2 ttp:clockModeを参照。
[SMIL 3.0] によって定義される time containment、継続時間、および 間隔のセマンティクスは、この仕様によって定義される同名の timed 要素および timing 語彙の解釈に適用される。 ただし、次の制約が与えられる。
匿名 spanの暗黙の継続時間は次のように定義される。
匿名 spanの親 time container が
parallel time container である場合、暗黙の継続時間は
[SMIL 3.0] によって定義される
indefinite 継続時間値と等価である。
匿名 spanの親 time container が
sequential time container である場合、暗黙の継続時間はゼロと等価である。
animate、audio、br、
image、または set 要素の暗黙の継続時間は、
その要素が匿名 spanとして扱われた場合と同じであると
定義される。
非混在コンテンツ、すなわち #PCDATA テキストノードのみを持つ
span 要素の暗黙の継続時間は、その span 要素が
匿名 spanとして扱われた場合と同じであると定義される。
混在コンテンツを持つ body、div、p、
または span 要素の暗黙の継続時間は、(1) その要素が
parallel time container であるか sequential time container であるか、(2)
12.2.4 timeContainerによって
上で定義される既定の endsync セマンティクス、および
(3) これらの time container に適用される [SMIL 3.0] の
セマンティクスに従って決定される。
region 要素の暗黙の継続時間は、
[SMIL 3.0] によって定義される
indefinite 継続時間値と等価であると定義される。
governing time base が clock である場合、
time expression は [SMIL 3.0] における
wall-clock based timing と等価であるとみなされる。ここでは
I.1 Clock Time Baseの
特定のセマンティクスが適用される。
governing time base が media である場合、
time expression は [SMIL 3.0] における
offset based timing と等価であるとみなされる。ここでは
I.2 Media Time Baseの
特定のセマンティクスが適用される。
governing time base が smpte である場合、
time expression は [SMIL 3.0] における
offset based timing または event based timing のいずれかと等価であるとみなされる。
ここでは
I.3 SMPTE Time Baseの
特定のセマンティクスが適用される。
この小節は非規範的である。
次の例は、sequential および parallel time container の子である
匿名 spanの timing セマンティクスを示す。
単語 Hello と Allo はどちらも sequential time container
(p 要素)の子である匿名 spanに含まれる。
そのため、匿名 spanの暗黙の継続時間が 0 であるため、
Hello も Allo も表示されない。
対照的に、単語 Guten を含む匿名 spanと、
単語 Tag を含む最内の span は、
parallel time container セマンティクスを持つ要素(最外の span 要素)の子である。
その結果、それぞれの親匿名 spanおよび
span 要素の暗黙の継続時間が indefinite であるため、
Guten と Tag の両方が表示され、その
span、p、div、および
body 祖先の暗黙の継続時間も indefinite となる。
...
<body>
<div>
<p timeContainer="seq">
Hello
<span>Guten <span>Tag</span></span>
Allo
</p>
</div>
</body>
|
この節では、コア語彙カタログのアニメーション事項を指定する。 ここでアニメーションは、コンテンツの(時間的に)動的なスタイリングに関する著者の意図を 示すために timing と styling を組み合わせる、分離可能な情報層として理解されるものとする。
次の要素は、文書インスタンスの 構造および主要なアニメーション側面を指定する。
animate 要素は、関連付けられた要素の 1 つ以上の
スタイルプロパティ属性に適用される(対象とされる)一連の変更(アニメーション)を表す。
animate 要素は、(1)
コンテンツ要素または
region 要素の子として現れてもよく、
これはインラインアニメーションと呼ばれる。
または (2) animation 要素の子として現れてもよく、
これはアウトオブラインアニメーションと呼ばれる。
前者の場合、animate 要素の親が関連付けられた要素である。後者の場合、
animate 属性を使用して animate 要素を参照する任意の要素が
関連付けられた要素である。
animate 要素は、その子として、
Metadata.class 要素グループの
0 個以上の要素を受け入れる。
<animate begin = <time-expression> calcMode = <calculation-mode> condition = <condition> dur = <time-expression> end = <time-expression> fill = <fill> keySplines = <key-splines> keyTimes = <key-times> repeatCount = <repeat-count> xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {TT Style 名前空間内の任意の属性} Content: Metadata.class* </animate> |
アウトオブライン animate 要素は、
xml:id 属性を指定しなければならない。
animate 要素によって対象とされるスタイルプロパティ属性は、
TT Style 名前空間内、または TT 名前空間ではない名前空間内の属性を使用して直接指定される。
ここで、アニメーション値のリスト(列)は
<animation-value-list> 構文に従い、
各構成要素の
<animation-value> は、指定された属性の
構文に従う。
注:
[SVG 1.1] §19.2.12 とは対照的に、
ここで定義される単一の animate 要素は、
単一のスタイルプロパティ属性を対象とすることに制限されるのではなく、
対象となるスタイルプロパティ属性の集合に対して連続アニメーションを実行するために
使用されてもよい。
[SVG 1.1] では、これは単一の animate 要素ではなく
複数の animate 要素の使用を必要とする。
さらに、アニメーション化されたスタイルプロパティおよび key value を直接指定することにより、
[SVG 1.1] §19.2.9 で定義される
from、to、by、または
values アニメーション値属性を用いる必要がない。
animate 要素および上で列挙されたその属性のセマンティクスは、
[SVG 1.1] §19.2 によって指定されるものであり、
下記で制約またはさらに明確化されるものとして定義される。
animate 要素によって対象とされる属性およびこれらの属性に適用される値は、
TT Style 名前空間内の属性または TT 名前空間ではない名前空間内の属性を直接使用して
指定される。したがって、
[SVG 1.1] によって定義される
attributeName、from、to、
by、および values 属性は、
このバージョンの TTML ではサポートされない。
注:
直接名前付けされたスタイル属性を使用する効果は、
それぞれが attributeName 属性および
values 属性を指定する複数の
[SVG 1.1] animate 要素を指定することと等価である。
注:
たとえば、tts:color="red;green;blue" を指定することは、
[SVG 1.1] において
attributeName="tts:color" および
values="red;green;blue" を指定することと等価であるとみなされる。
calcMode 属性が指定されていない場合、
calcMode 値 linear が適用される。
注:
この暗黙値は、[SVG 1.1] §19.2.9 によって指定される 既定値に対応する。
fill 属性が指定されていない場合、
fill 値 remove が適用される。
注:
この暗黙値は、[SVG 1.1] §19.2.9 によって指定される 既定値に対応する。
keyTimes 属性が指定され、calcMode の算出値が
"paced" である場合、この使用は妥当性検証処理の目的ではエラーとみなされ、
提示処理の目的ではそのアニメーションは無視されなければならない。
keyTimes 属性が指定され、calcMode の算出値が
"paced" でない場合、keyTimes 属性で指定される時間成分の数は、
各アニメーション化属性によって指定されるアニメーション値の数と一致しなければならない。
注:
この制約は、同じ animate 要素によって単一または複数の属性が
対象とされるかどうかに関係なく適用される。これはさらに、複数の属性が対象とされる場合、
各アニメーション化属性の値が、その
<animation-value-list>内で
同じ数の値を指定しなければならないことを含意する。
注:
たとえば、下に示す最初の animate 要素は妥当である。
アニメーション化属性は 3 つの値を持つ。
一方、2 番目および 3 番目は妥当でない。2 番目の場合、
アニメーション化属性は 2 つの値を持つが、3 つの key time が指定されている。
3 番目の場合、最初のアニメーション化属性は 2 つの値を持ち、2 番目の
アニメーション化属性は 4 つの値を持つが、3 つの key time が指定されている。
<!-- valid animation of single attribute with matching key times --> <animate xml:id="a1" keyTimes="0;0.2;1" tts:color="red;green;blue"/> <!-- invalid animation of single attribute with non-matching key times --> <animate xml:id="a2" keyTimes="0;0.2;1" tts:color="red;green"/> <!-- invalid animation of multiple attributes with non-matching key times --> <animate xml:id="a3" keyTimes="0;0.2;1" tts:color="red;green" tts:backgroundColor="cyan;magenta;yellow;black"/> |
keyTimes 属性が指定されておらず、calcMode の算出値が
"paced" でない場合、アニメーションの単純継続時間にわたる指定アニメーション値の
均等(線形)間隔に対応する keyTimes 値が適用される。
注:
たとえば、アニメーション化スタイルが
tts:color="red;green;blue" として指定されている場合、
keyTimes の暗黙値は "0;0.5;1" である。
keySplines 属性が指定され、calcMode の算出値が
"spline" でない場合、この使用は妥当性検証処理の目的ではエラーとみなされ、
提示処理の目的ではそのアニメーションは無視されなければならない。
keySplines 属性が指定され、calcMode の算出値が
"spline" である場合、keySplines 属性で指定される
control 成分の数は、keyTimes 属性の算出値内の時間成分の数より
1 少なくなければならない。
keySplines 属性が指定されておらず、calcMode の算出値が
"spline" である場合、この使用は妥当性検証処理の目的ではエラーとみなされ、
提示処理の目的ではそのアニメーションは無視されなければならない。
repeatCount 属性が指定されていない場合、
repeatCount 値 1 が適用される。
[SVG 1.1] §19.2.10 によって定義される
additive 属性は、このバージョンの TTML ではサポートされない。
したがって、それが存在しない場合、この属性の "replace" 値のセマンティクスが適用される。
[SVG 1.1] §19.2.10 によって定義される
accumulate 属性は、このバージョンの TTML ではサポートされない。
したがって、それが存在しない場合、この属性の "none" 値のセマンティクスが適用される。
animate 要素を使用してコンテンツスタイリングをアニメーション化する例を
以下に示す。
...
<p dur="5s">
<animate tts:color="yellow;red;green;blue;yellow"/>
Text with Continuously Varying Colors!
</p>
...
|
注:
上記の例では、コンテンツ "Text
with Continuously Varying Colors!" の前景色は、5 秒間にわたって
yellow から red、green、blue、そして yellow に戻るように連続的にアニメーション化される。
その後、アニメーション効果は削除され、元の色が復元される
(fill の既定値が "remove" であるため)。
animate 要素を使用して region スタイリングをアニメーション化する例を
以下に示す。
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
xmlns:tts="http://www.w3.org/ns/ttml#styling"
ttp:extent="640px 480px">
<head>
<layout>
<region xml:id="r1" timeContainer="seq" tts:opacity="0">
<animate dur="1s" tts:opacity="0;1"/>
<set dur="5s" tts:opacity="1"/>
<animate dur="1s" tts:opacity="1;0"/>
<style tts:extent="480px 60px"/>
<style tts:origin="80px 400px"/>
</region>
</layout>
</head>
<body region="r1">...</body>
</tt>
|
注:
上記の例では、region r1 は初期状態で 0% opacity、すなわち完全に透明に
設定され、その後 1 秒間にわたって 100% opacity、すなわち完全に不透明へ
フェードインされる。Opacity はさらに 5 秒間 100% のまま維持され、その後
1 秒間にわたって 0% へフェードアウトされ、そこで維持される。
注:
animate 要素のセマンティクスは、
[SVG 1.1] §19.2.12 によって定義されるものに基づいており、
それはさらに [SMIL 3.0] §12 に基づいている。
animation 要素は、アニメーション事項に適用されるメタデータを含む、
アウトオブラインアニメーション事項を
グループ化するために使用されるコンテナ要素である。
animation 要素は、その子として、
Metadata.class 要素グループの
0 個以上の要素に続いて、
Animation.class 要素グループの
0 個以上の要素を受け入れる。
<animation xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: Metadata.class*, Animation.class* </animation> |
時間セマンティクスが animation 要素のコンテンツに適用される範囲で、
この要素の暗黙の時間間隔は、
ルート時間範囲と同一の範囲を持つように
定義される。
set 要素は、関連付けられた要素のスタイルプロパティ属性に
適用される(対象とされる)1 つ以上の離散的な変更(アニメーション)を表す。
set 要素は、(1)
コンテンツ要素または
region 要素の子として現れてもよく、
これはインラインアニメーションと呼ばれる。
または (2) animation 要素の子として現れてもよく、
これはアウトオブラインアニメーションと呼ばれる。
前者の場合、set 要素の親が関連付けられた要素である。後者の場合、
animate 属性を使用して set 要素を参照する任意の要素が
関連付けられた要素である。
set 要素は、その子として、
Metadata.class 要素グループの
0 個以上の要素を受け入れる。
<set begin = <time-expression> condition = <condition> dur = <time-expression> end = <time-expression> fill = <fill> repeatCount = <repeat-count> xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") {TT Style 名前空間内の任意の属性} Content: Metadata.class* </set> |
アウトオブライン set 要素は、
xml:id 属性を指定しなければならない。
set 要素によって対象とされるスタイルプロパティ属性は、
TT Style 名前空間内、または何らかの TT 名前空間ではない名前空間内の属性を使用して
直接指定される。ここで、単一の対象アニメーション(key)値は
<animation-value> 構文に従う。
注:
[SVG 1.1] §19.2.13 とは対照的に、
ここで定義される単一の set 要素は、
単一のスタイルプロパティ属性を対象とすることに制限されるのではなく、
対象となるスタイルプロパティ属性の集合に対して離散アニメーションを実行するために
使用されてもよい。
[SVG 1.1] では、これは単一の set 要素ではなく
複数の set 要素の使用を必要とする。
下記で列挙される制約または変形を除き、set 要素および
上で列挙されたその属性のセマンティクスは、
[SVG 1.1] §19.2.13 によって指定されるものであると定義される。
set 要素によって対象とされる属性およびこれらの属性に適用される
離散値は、(SVG の attributeName および to 属性を使用するのではなく)
TT Style 名前空間内の属性または TT 名前空間ではない名前空間内の属性を
直接使用して指定される。
注:
たとえば、tts:color="red" を指定することは、
[SVG 1.1] において
attributeName="tts:color" および
to="red" を指定することと等価であるとみなされる。
fill 属性が指定されていない場合、
fill 値 remove が適用される。
set 要素を使用してコンテンツスタイリングをアニメーション化する例を
以下に示す。
... <p dur="5s" tts:color="yellow"> <set begin="1s" dur="1s" tts:color="red"/> <set begin="2s" dur="1s" tts:color="green"/> <set begin="3s" dur="1s" tts:color="red"/> Text with Flashing Colors! </p> ... |
注:
上記の例では、コンテンツ "Text with Flashing Colors!" の前景色は、5 秒間にわたって yellow から red、green、red、そして yellow に戻るようにアニメーション化される。
set 要素を使用して region スタイリングをアニメーション化する例を
以下に示す。
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
xmlns:tts="http://www.w3.org/ns/ttml#styling"
ttp:cellResolution="40 16">
<head>
<layout>
<region xml:id="r1" timeContainer="seq">
<set dur="10s" tts:origin=" 8c 14c"/>
<set dur="2s" tts:origin=" 2c 2c"/>
<set dur="3s" tts:origin=" 8c 14c"/>
<set dur="2s" tts:origin="14c 4c"/>
<set dur="10s" tts:origin=" 8c 14c"/>
<style tts:extent="24c 2c"/>
</region>
</layout>
</head>
<body region="r1">...</body>
</tt>
|
注:
上記の例では、ルートコンテナ領域が
40 列 16 行の cell grid に分割される。次に、24 列 2 行の寸法を持つ
region r1 がルートコンテナ領域内に
配置され、その位置は時間とともに変化する。これにより、下位の映像内の文字が
キャプションによって隠されることを避けるために望ましい場合がある、
region を移動する効果を作成する。
注:
set 要素のセマンティクスは、
[SVG 1.1] §19.2.13 によって定義されるものに基づいており、
それはさらに [SMIL 3.0] §12 に基づいている。
この節では、コンテンツ要素および 特定のレイアウト要素で使用される 13.2.1 animate 属性を定義する。
animate 属性は、それぞれが特定の
アウトオブラインアニメーションを定義する、
1 つ以上の animate
または set 要素を参照するために使用される。
animate 属性は、次の要素型のインスタンスによって指定されてもよい。
指定される場合、animate 属性の値は、
[XML Schema Part 2] §3.3.10 で定義される
IDREFS データ型に従わなければならず、さらに、各 IDREF は
祖先として animation 要素を持つ
animate
または set 要素を参照しなければならない。
与えられた IDREF は、animate 属性の値に複数回現れてはならない。
要素 E の animate 属性によって参照される各
アウトオブラインアニメーション要素
A について、次のステップを(指定された IDREF の順序で)実行する。
A の deep copy A' を作成する。
A' から xml:id
属性を削除する。
A' を E の [children] 情報項目プロパティに挿入し、
A' が E の content model の
Animation.class* wildcard に
対応する子要素の部分列の最後の要素として現れるようにする。
注:
アウトオブラインアニメーションのセマンティクスは、本質的に インラインアニメーションを指定するための近道を形成する。これは、同じアニメーションが 複数の参照要素で使用される場合に有用である。
注:
animate 属性の使用を許可する特定の要素型定義も参照。
アニメーション属性値には、次の式の使用が含まれる。
<animation-value> 式は、アニメーションによって対象とされる属性の 開始(初期)、中間、または終了(最終)を指定するために使用される。
<animation-value> : ([^;] | escape)+ escape : '\\' char |
<animation-value> 式の構文は、アニメーションによって対象とされる属性に 適用されるすべての構文要件を満たさなければならず、さらに、 エスケープされていないセミコロンを含んではならない。
<animation-value> 式のセマンティクスは、 [SVG 1.1] §19.2.9 によって定義されるものである。
<animation-value-list> 式は、アニメーションによって対象とされる属性に 逐次的に適用されるアニメーション値のリストを指定するために使用される。
<animation-value-list> : <animation-value> (<lwsp>? ";" <lwsp>? <animation-value>)+ |
<animation-value-list> 式内の <animation-value> の構文は、 アニメーションによって対象とされる属性に適用されるすべての構文要件を 満たさなければならない。
<animation-value-list> 式のセマンティクスは、 [SVG 1.1] §19.2.9 によって定義されるものである。
<calculation-mode> 式は、アニメーションの補間モードを制御するために使用される。
<calculation-mode> : "discrete" | "linear" | "paced" | "spline" |
<calculation-mode> 式のセマンティクスは、 [SVG 1.1] §19.2.9 によって定義されるものである。
<fill> 式は、アニメーションのアクティブ終了後のアニメーション効果を 決定するために使用される。
<fill> : "freeze" | "remove" |
<fill> 式のセマンティクスは、 [SVG 1.1] §19.2.8 によって定義されるものである。
<key-splines> 式は、アニメーションの pacing を制御する Bezier 制御点のリストを指定するために使用される。ここで、各値の組は セミコロン(U+003B)文字によって区切られ、任意で線形空白(LWSP)文字で囲まれる。
<key-splines> 式のセマンティクスは、
key-splines 属性に適用されるものとして、
[SVG 1.1] §19.2.9 によって定義されるものである。
<key-times> 式は、アニメーションの pacing を制御する 相対時間値のリストを指定するために使用される。ここで、各値の組は セミコロン(U+003B)文字によって区切られ、任意で線形空白(LWSP)文字で囲まれる。
<key-times> 式のセマンティクスは、
key-times 属性に適用されるものとして、
[SVG 1.1] §19.2.9 によって定義されるものである。
この節では、コア語彙カタログのメタデータ事項を指定する。 ここでメタデータは、parameters、content、style、layout、timing、さらには metadata 自体に適用される、分離可能な情報層として理解されるものとする。 メタデータによって表される情報は、次の 2 つの形式のいずれかを取る。 (1) 文書インスタンスにおける標準化された使用のために この仕様によって定義されるメタデータ、および (2) この仕様のスコープ外で定義される任意のメタデータであり、その使用および セマンティクスは TTML Content のアプリケーションによる使用に完全に依存する。
この仕様はメタデータについていかなる提示セマンティクスも定義しない。したがって、適合する 提示プロセッサはすべてのメタデータ事項を無視してもよい。
注:
この仕様はメタデータにいかなる提示セマンティクスも付与しないが、 この仕様の上位集合プロファイルはそれを行ってもよい。その場合、そのようなプロファイルによって 定義されるメタデータ依存の提示セマンティクスは、この仕様のスコープ外であるとみなされる。
14.1.1 metadata 要素は、 メタデータ情報をグループ化するための汎用コンテナ要素として機能する。
さらに、すべて TT Metadata 名前空間で定義される次の要素は、 文書インスタンスで一般的に使用されることが期待される メタデータについて標準表現を提供する。
metadata 要素は、メタデータ情報の汎用コンテナとして機能する。
メタデータ情報は、metadata 要素によって、次を指定することで表されてもよい。
(1) metadata 要素上の 1 つ以上の metadata 属性または外部名前空間属性、
(2) 1 つ以上の metadata item または外部名前空間子要素、
(3) 1 つ以上の data 子要素、または
(4) 前述の組み合わせ。
注:
この仕様は、文書インスタンスの 形式的妥当性を、すべての外部名前空間要素および属性が削除された 抽象文書インスタンスに基づいて定義する。 したがって、次の XML 表現は、外部名前空間属性または外部名前空間子要素を その content model に形式的には含まない。 それにもかかわらず、そのような外部名前空間子要素は、TTML 文書インスタンスの具体的な符号化に現れてもよい。
<metadata
condition = <condition>
xml:base = <uri>
xml:id = ID
xml:lang = xsd:string
xml:space = ("default" | "preserve")
{TT Metadata 名前空間内の任意の属性}
Content: (
|
注:
特定の metadata item の意味は、それが現れるコンテキストで評価されなければならない。
コア語彙カタログは、任意の
コンテンツ要素型上に任意数の
metadata 要素子を許可する。そのような使用に適用される制約については、
特定の要素語彙定義を参照。
文書メタデータの使用を次の例に示す。
...
<head>
<metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
<ttm:title>Document Metadata Example</ttm:title>
<ttm:desc>This document employs document metadata.</ttm:desc>
</metadata>
</head>
...
|
要素メタデータの使用を次の例に示す。
...
<div>
<metadata xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
<ttm:title>Chapter 6 – Sherlock Holmes Gives a Demonstration</ttm:title>
<ttm:desc>Holmes shows Watson how the murderer entered the window.</ttm:desc>
</metadata>
</div>
...
|
メタデータ属性 item の使用を次の例に示す。
... <div xmlns:ext="http://example.org/ttml#metadata"> <metadata ext:ednote="remove this division prior to publishing"/> </div> ... |
注:
上記の例では、外部(external)名前空間からのグローバル属性が、
包含する div 要素に意味的に適用されるメタデータ属性を
表すために使用される。この属性は div 要素上に直接表されてもよいことに注意。
ただし、この場合、著者は特定のメタデータ属性を
metadata 要素上に間接的に表すことによって分離したいと考えている。
外部要素メタデータの使用を次の例に示す。
... <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dc:title>Foreign Element Metadata Example</dc:title> <dc:description>Express metadata using elements in foreign namespace.</dc:description> <dc:format xsi:type="dcterms:IMT">application/ttml+xml</dc:format> </metadata> ... |
注:
上記の例では、Dublin Core メタデータ語彙によって定義される多数の要素が、 文書レベルのメタデータを表すために使用される。
ttm:actor 要素は、(ロールベースの)character agent の定義を、
その character を演じる別の agent とリンクするために使用される。
<ttm:actor agent = IDREF condition = <condition> xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: EMPTY </ttm:actor> |
ttm:actor 要素の agent 属性は、
character の役を演じる agent を示す有意な ttm:agent 要素を
参照しなければならない。
ttm:actor 要素の agent 属性からその親
ttm:agent 要素への参照の使用は非推奨であり、
さらに、そのような循環参照連鎖のセマンティクスはこの仕様では定義されない。
注:
実装がそのような agent 参照の循環連鎖を辿る場合、 無限ループを避けるために、この条件を検出し、agent 参照のさらなる逆参照を 終了することが推奨される。
注:
俳優が自分自身を演じる場合、たとえば The Trip で Steve Coogan が
Steve Coogan を演じる場合、期待される実践は 2 つの ttm:agent 要素を
使用することである。最初の要素(人物としての Steve Coogan に対応)は、
値 person を持つ type 属性を使用し、
2 番目の要素(character としての Steve Coogan に対応)は、(i)
値 character を持つ type 属性、および (ii)
最初の ttm:agent 要素を参照する子
ttm:actor 要素を使用する。
ttm:actor 要素の例は、上の
例断片 – Agent メタデータに示されている。
ttm:agent 要素は、そのコンテンツの制作または表現に関与する agent と
コンテンツ情報を関連付ける目的で、agent を定義するために使用される。
ttm:agent 要素は、その子として 0 個以上の ttm:name
要素に続いて、0 個または 1 個の ttm:actor 要素を受け入れる。
agent の名前を表す少なくとも 1 つの ttm:name 要素子を指定すべきである。
その名前は、person、character、group、または organization の名前のいずれであってもよい。
<ttm:agent condition = <condition> type = ("person" | "character" | "group" | "organization" | "other") xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: ttm:name*, ttm:actor? </ttm:agent> |
各 ttm:agent 要素上には type 属性が指定されなければならず、
指定される場合、次の値のいずれかを持たなければならない。
person
character
group
organization
other
type 属性の値が character である場合、
ttm:agent 要素インスタンスは、actor の役を演じる agent を指定する
ttm:actor 子を指定すべきである。
ttm:agent メタデータ item は、head 要素の子として
指定される場合、または head 要素の metadata 要素子の
子として指定される場合にのみ有意であるとみなされる。
注:
ttm:agent 要素インスタンスは通常、
コンテンツ要素型上の
ttm:agent 属性を使用して参照される。
注:
character agent が複数の actor によって演じられる場合、 複数の character agent が指定(および参照)されてもよい。 ここで、character の異なる定義が異なる actor を指定する。
agent メタデータの使用を次の例に示す。
<tt xml:lang="en" xmlns="http://www.w3.org/ns/ttml" xmlns:ttm="http://www.w3.org/ns/ttml#metadata">
<head>
<ttm:agent xml:id="connery" type="person">
<ttm:name type="family">Connery</ttm:name>
<ttm:name type="given">Thomas Sean</ttm:name>
<ttm:name type="alias">Sean</ttm:name>
<ttm:name type="full">Sir Thomas Sean Connery</ttm:name>
</ttm:agent>
<ttm:agent xml:id="bond" type="character">
<ttm:name type="family">Bond</ttm:name>
<ttm:name type="given">James</ttm:name>
<ttm:name type="alias">007</ttm:name>
<ttm:actor agent="connery"/>
</ttm:agent>
</head>
<body>
<div>
...
<p ttm:agent="bond">I travel, a sort of licensed troubleshooter.</p>
...
</div>
</body>
</tt>
|
注:
上記の例では、2 つの agent、すなわち実在の(person)agent である Sean
Connery と、架空の(character)agent である James Bond が定義されており、
後者は ttm:actor 要素によって前者にリンクされる。
次に、コンテンツ(p 要素)から、そのコンテンツに関連付けられた
(生成に責任を持つ)character agent への参照が行われる。
この例では、ttm:agent メタデータ item がコンテナ
metadata 要素内に配置されるのではなく、文書の head 要素の
直接の子として指定されていることに注意。
ttm:copyright 要素は、何らかのスコープレベルに適用される
人間可読な copyright を表すために使用される。
文書全体に適用される copyright statement は、
head 要素の子として現れるべきである。
<ttm:copyright condition = <condition> xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: #PCDATA </ttm:copyright> |
注:
この仕様では、ttm:copyright 要素の具体的な使用は定義されない。
ttm:desc 要素は、特定の要素インスタンスについて人間可読な説明を
表すために使用される。
<ttm:desc condition = <condition> xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: #PCDATA </ttm:desc> |
注:
この仕様では、ttm:desc 要素の具体的な使用は定義されない。
ttm:desc 要素の例は、上の
例断片 – 文書
メタデータおよび
例断片 – 要素
メタデータに示されている。
ttm:item 要素は、任意の名前付きメタデータ item を表すために使用される。
ttm:item 要素は、次の 2 つの content model のいずれかを受け入れる。
(1) 1 つ以上のテキストノード(すなわち #PCDATA)、または
(2) 0 個以上の入れ子 ttm:item 要素。
<ttm:item condition = <condition> name = <item-name> xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: #PCDATA | ttm:item* </ttm:item> |
item の名前を識別するために name 属性が指定されなければならず、
その値は
<item-name> 値式に従わなければならない。
注:
同じ名前を指定する複数の名前付きメタデータ item の出現には一般的な制約は置かれない。 ただし、特定の named item の定義は、使用コンテキストおよび同じ名前を共有する 複数 item の潜在的な出現をさらに制約してもよい。
名前付きメタデータ item の値は、
(1) 要素が子テキストノードまたは子要素ノードを持たない場合は空、
(2) ttm:item 要素の子がテキストノードのみから構成される場合は
その要素の文字コンテンツ、または
(3) 名前付きメタデータ sub-item のコレクションである。
注:
特定の named item の定義は通常、許可される値の集合を制約する。 さらに、指定値が存在しない場合に特定の値が暗示されることを指定してもよい。
注:
名前付きメタデータ item の値が自然言語テキストから構成される場合、
xml:lang 属性は、
named metadata item 値に適用される言語を識別するために、
metadata item 要素上に直接指定されても、その要素の最も近い祖先から間接的に
継承されてもよい。
名前付きメタデータ item の使用を次の例に示す。この例は、 単純データ埋め込みを元のファイル名と 関連付けるために名前付きメタデータ item を使用することを示している。
...
<image>
<source>
<data type="image/png">
<ttm:item name="originalFileName"
xmlns:ttm="http://www.w3.org/ns/ttml#metadata">image.png</ttm:item>
<chunk length="119">
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY2BgYAAAAAQAAVzN/2kAAAAASUVORK5CYII=
</chunk>
</data>
</source>
</image>
...
|
ttm:name 要素は、person、character、group、または organization の
名前を指定するために使用される。
<ttm:name condition = <condition> type = ("full" | "family" | "given" | "alias" | "other") xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: #PCDATA </ttm:name> |
各 ttm:name 要素上には type 属性が指定されなければならず、
指定される場合、次の値のいずれかを持たなければならない。
full
family
given
alias
other
名前の型と名前の構文表現との関係は、この仕様では定義されない。
ttm:name 要素の 2 つの例は、上の
例断片 – Agent メタデータに示されている。
ttm:title 要素は、特定の要素インスタンスの人間可読な title を
表すために使用される。
<ttm:title condition = <condition> xml:base = <uri> xml:id = ID xml:lang = xsd:string xml:space = ("default" | "preserve") Content: #PCDATA </ttm:title> |
注:
この仕様では、ttm:title 要素の具体的な使用は定義されない。
ttm:title 要素の例は、上の
例断片 – 文書
メタデータおよび
例断片 – 要素
メタデータに示されている。
この節では、metadata 要素および
コンテンツ要素で使用するための
TT Metadata 名前空間内の次の属性を指定する。
ttm:agent 属性は IDREFS 値を取り、
コンテンツの実行を行う、またはその実行に関与する agent を指定するために、
コンテンツ要素とともに使用される。
指定される場合、ttm:agent 属性は有意な
ttm:agent 要素インスタンスを参照しなければならない。
同じ IDREF ID は、ttm:agent 属性の値に複数回現れるべきではない。
注:
この制約は、冗長な agent 参照の使用を抑制することを意図している。
ttm:agent 属性の例は、上の
例断片 – Agent メタデータに示されている。
ttm:role 属性は、コンテンツ著者が、そのようにラベル付けされた
コンテンツ要素の
roles、functions、または characteristics を表すために使用してもよい。
指定される場合、この属性の値は次の構文に従わなければならない。
ttm:role role (<lwsp> role)* role : "action" | "caption" | "description" | "dialog" | "expletive" | "kinesic" | "lyrics" | "music" | "narration" | "quality" | "sound" | "source" | "suppressed" | "reproduction" | "thought" | "title" | "transcription" | extension-role extension-role : "x-" token-char+ token-char : { XML NameChar } // [XML 1.1] Production [4a] |
同じ role token R は、ttm:role 属性の値に
複数回現れるべきではない。
注:
この制約は、冗長な role token の使用を抑制することを意図している。
注:
接頭辞 x- で始まらない ttm:role のすべての値は、
将来の標準化のために予約される。
注:
ttm:role のカスタム x- 接頭辞形式を使用する場合、
衝突を防ぐために、組織に一意な infix も使用することが推奨される。
たとえば、x-example-org-custom-role である。さらに、
相互運用性および衝突回避を促進するために、role 値の registry が
https://www.w3.org/wiki/TTML/RoleRegistry
で利用可能である。
メタデータ語彙は、次の式を使用してもよい。
<item-name> 式は、 ttm:item 要素で表されるメタデータ item の 名前を指定するために使用される。
<item-name> : <named-item> | xsd:QName |
item name 式が qualified name(xsd:QName)の形式を取る場合、 その qualified name の prefix は、 [XML Namespaces 1.0] によって指定される namespace declaration 内で 宣言されていなければならない。
qualified name(xsd:QName)の形式を取らない <item-name> のすべての値は、この仕様によって定義されるか、または W3C による将来の標準化のために予約される。
注:
この仕様によって定義されるすべての item name は unqualified(prefix なし)であり、 外部仕様によって定義されるものは qualified(prefix あり)であることが意図されている。
注:
qualified item namespace の registry については https://www.w3.org/wiki/TTML/ItemNameRegistry を参照。
<named-item> 値は、
ttm:item 要素によって値に関連付けられる、
列挙された名前付きメタデータ item のコレクションのメンバーである。
<named-item> : "altText" | "usesForced" |
altText代替テキストコンテンツを表す文字列であり、その値は xsd:string に従う。 通常、何らかの関連画像コンテンツのテキスト等価物または概要を提供するために使用される。
注:
このテキスト等価物は、コンテンツのインデックス作成をサポートし、 作成中の文書の品質確認を容易にするためにも使用されてもよい。
注:
[HTML 5.2] とは対照的に、この名前付きメタデータ item の テキストコンテンツは、参照元要素の primary(alternate ではない)コンテンツを 提示できない場合に、その要素の代わりに提示されることを意図していない。 ただし、この代替テキストコンテンツは支援技術によって使用され得る。
usesForced何らかの <condition> 式が
forced bound parameter を
使用するかどうかを表す boolean であり、その値は
xsd:boolean に従う。
この named metadata item が
文書インスタンス内に存在する場合、
それは head 要素の
子として指定されなければならない。
この付録は規範的である。
他の要件がない場合、文書インスタンスは、 UTF-8 文字符号化を使用した整形式の XML 1.0 [XML 1.0] 文書として 具体的に符号化されるべきである。
注:
TTML の具体的符号化として XML 1.0 [XML 1.0] を使用する場合、
次の名前付き文字実体のみが定義される。
&, ', >, <, and
".
この付録は規範的である。
この仕様の目的では、縮約 xml infosetは、 次の情報項目および情報項目プロパティのみから構成される XML Information Set [XML InfoSet] である。
[namespace URI]
[local name]
[normalized value]
注:
縮約 xml infosetが XML
文書実体の具体表現から構築される場合、[normalized value] 情報項目は、
[XML 1.0] §3.3.3、ステップ (3)、第 1 bullet で指定されるように、
正規化されていない XML 空白文字
	 (HT), (LF), (CR), および  (SPACE) を
含むことがある。
特に、これは、これらの空白文字のいずれかを示すために、
空白文字自体(正規化される)ではなく数値文字参照(正規化されない)が使用される場合に
発生することがある。
注:
属性情報項目も参照。
[character code]
連続する文字情報項目は個別に表現される必要はないが、 文字コードの列(すなわち文字列)へ集約(chunk)されてもよい。
注:
文字情報項目も参照。
この付録は規範的である。
この付録では、文書インスタンスで使用するための 次のスキーマを指定する。
Relax NG, Compact Syntax (RNC) Schema
XML Schema Definition (XSD) Schema
この付録によって指定されるスキーマが、この仕様の本文によって定義される 文書型、要素型、または属性型の規範的定義と異なる場合、 この仕様の本文が優先する。
TTML Content のための Relax NG Compact Syntax (RNC) [RELAX NG] ベースの スキーマは ZIP Archive で利用可能である。このスキーマは、この仕様によって定義される Timed Text Markup Language コンテンツの妥当性を定義する目的では 非規範的とみなされる。 特に、TTML Content の形式的妥当性は 3.1 文書適合性によって定義される。
TTML Content のための W3C XML Schema Definition (XSD) [XML Schema Part 1] ベースのスキーマは ZIP Archive で利用可能である。このスキーマは、この仕様によって定義される Timed Text Markup Language コンテンツの妥当性を定義する目的では 非規範的とみなされる。 特に、TTML Content の形式的妥当性は 3.1 文書適合性によって定義される。
この付録は規範的である。
この付録では、(1) この仕様によって定義される 1 つ以上の構文的および(または)意味的機能を ラベル付けする機能指定の集合、および (2) 指定された各機能について、 3.2.2 変換プロセッサ適合性または 3.2.3 提示プロセッサ適合性の 要件に準拠する TTML コンテンツプロセッサにとって、 その機能が必須であるか任意であるかを指定する。
注:
TTML プロセッサは、変換処理または提示処理に関して、 機能指定 F の定義についてこの付録の要件を満たす場合、 機能指定 F の変換セマンティクスを実装する、または 提示セマンティクスを実装すると言われる。
注:
下記の機能指定の定義が特定の要素型またはコンテキストにスコープされていない場合、 その(指定された)機能をサポートするとは、許可されたすべての使用コンテキストで それをサポートすることを意味することが意図されている。
たとえば、#length-root-container-relative
機能をサポートするとは、それが他の点で禁止されていない任意の
<length> 式での使用をサポートすることを意味する。
注:
TTML プロセッサの実装が何らかの機能のセマンティクスをサポートしないが、 その機能の構文表現が実装に既知である場合、その実装は式を解析できるが、 式のサポートされない成分のセマンティクスを無視できることが推奨される。
たとえば、#textEmphasis-minimal は
サポートされているが、#textEmphasis-color は
サポートされていない場合、
tts:textEmphasis の値のうち
<emphasis-color> 成分を含むものは、
そのサポートされない成分のセマンティクスを無視しつつ解析されるべきである
(ただし、属性値の他のサポートされる成分のセマンティクスは無視しない)。
機能指定は、次の形式に従う文字列として表される。
feature-designation
: feature-namespace designation
feature-namespace
: TT Feature Namespace // http://www.w3.org/ns/ttml/feature/
designation
: "#" token-char+
token-char
: { XML NameChar } // [XML 1.1] Production [4a]
この仕様によって定義されていない feature-designation のすべての値は、
将来の標準化のために予約される。
次の小節では、TT Feature Namespace base URI に対する相対 URI(フラグメント識別子)として 表される、すべての機能指定を定義する。
この節における feature designator の定義が [TTML1] における同じ feature designator の定義を参照し、 後者の(参照された)定義が "all defined values" という句を使用する場合、 それらの値は [TTML1] で定義されたすべての値から構成される。 それ以外の場合、"all defined values" という句が下記に直接現れる場合、 それらの値はこの仕様で定義されたすべての値から構成される。
注:
この節の機能指定のうち接尾辞 -version-2 を持つものは、
TTML 仕様のこの(第 2)版、すなわち TTML2 によって新たに定義される。
TTML プロセッサは、次の機能をサポートする場合、
#animate 機能をサポートする。
#animate 機能は、
#animate-minimal 機能の
構文的および意味的拡張である。
content profile が #animate 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#animate-fill,
#animate-minimal,
#animate-paced,
#animate-repeat, or
#animate-spline.
TTML 変換プロセッサは、
calcMode 属性の discrete および linear 値とともに
使用される場合の
animate 要素のセマンティクスを
認識し、変換できる場合、
#animate-minimal 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#animate-minimal 機能をサポートする。
注:
calcMode 属性の discrete および linear 値の
サポートは、keyTimes 属性のサポートも含意する。
注:
#animate-minimal 機能のサポートは、次の機能のいずれのサポートも含意しない。
#animate-fill,
#animate-paced,
#animate-repeat, or
#animate-spline.
TTML 変換プロセッサは、
animate 要素の
fill 属性のセマンティクスを認識し、変換できる場合、
#animate-fill 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#animate-fill 機能をサポートする。
TTML 変換プロセッサは、
calcMode 属性の paced 値とともに使用される場合の
animate 要素のセマンティクスを
認識し、変換できる場合、
#animate-paced 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#animate-paced 機能をサポートする。
TTML 変換プロセッサは、
animate 要素の
repeatCount 属性のセマンティクスを認識し、変換できる場合、
#animate-repeat 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#animate-repeat 機能をサポートする。
TTML 変換プロセッサは、
calcMode 属性の spline 値とともに使用される場合の
animate 要素のセマンティクスを
認識し、変換できる場合、
#animate-spline 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#animate-spline 機能をサポートする。
注:
calcMode 属性の spline 値のサポートは、
keySplines 属性のサポートも含意する。
TTML content processor は、
[TTML1] §D.1.1 によって定義される
#animation 機能をサポートする場合、
#animation 機能をサポートする。
注:
#animation 機能のサポートは、
#set 機能のサポートと機能的に等価である。
content profile が #animation 機能の使用を要求または許可しながら、
#set 機能の使用を禁止することはエラーである。
TTML 変換プロセッサは、
13 アニメーションによって定義される次の語彙を
認識し、変換できる場合、
#animation-out-of-line 機能をサポートする。
かつ、13.2 アニメーション属性語彙によって定義される次の属性をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#animation-out-of-line 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#animation-version-2 機能をサポートする。
#animation-version-2 機能は、
#animation 機能の構文的および意味的拡張である。
content profile が #animation-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#animate,
#animation-out-of-line, or
#animation.
TTML 変換プロセッサは、
9 埋め込みコンテンツによって定義される次の語彙を
認識し、変換できる場合、
#audio 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#audio 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#audio-description 機能をサポートする。
content profile が #audio-description 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#audio,
#gain, or
#pan.
TTML プロセッサは、次の機能をサポートする場合、
#audio-speech 機能をサポートする。
content profile が #audio-speech 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#pitch,
#speak, or
#speech.
TTML プロセッサは、次の機能をサポートする場合、
#background 機能をサポートする。
content profile が #background 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#backgroundColor or
#background-image.
TTML プロセッサは、次の機能をサポートする場合、
#background-image 機能をサポートする。
content profile が #background 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#backgroundClip,
#backgroundExtent,
#backgroundImage,
#backgroundOrigin,
#backgroundPosition, or
#backgroundRepeat.
TTML 変換プロセッサは、
tts:backgroundClip
属性のすべての定義済み値を認識し、変換できる場合、
#backgroundClip 機能をサポートする。
TTML 提示プロセッサは、
tts:backgroundClip
属性のすべての定義済み値について提示セマンティクスのサポートを実装する場合、
#backgroundClip 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.2 によって定義される
#backgroundColor 機能をサポートする場合、
#backgroundColor 機能をサポートする。
注:
#backgroundColor 機能のサポートは、次の機能のサポートと機能的に等価である。
content profile が #backgroundColor 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#backgroundColor-block,
#backgroundColor-inline, or
#backgroundColor-region.
TTML content processor は、
[TTML1] §D.1.3 によって定義される
#backgroundColor-block 機能をサポートする場合、
#backgroundColor-block 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.4 によって定義される
#backgroundColor-inline 機能をサポートする場合、
#backgroundColor-inline 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.5 によって定義される
#backgroundColor-region 機能をサポートする場合、
#backgroundColor-region 機能をサポートする。
TTML 変換プロセッサは、
tts:backgroundExtent
属性のすべての定義済み値を認識し、変換できる場合、
#backgroundExtent 機能をサポートする。
TTML 提示プロセッサは、
tts:backgroundExtent
属性のすべての定義済み値について提示セマンティクスのサポートを実装する場合、
#backgroundExtent 機能をサポートする。
TTML 変換プロセッサは、
tts:backgroundImage
属性のすべての定義済み値を認識し、変換できる場合、
#backgroundImage 機能をサポートする。
TTML 提示プロセッサは、
tts:backgroundImage
属性のすべての定義済み値について提示セマンティクスのサポートを実装する場合、
#backgroundImage 機能をサポートする。
TTML 変換プロセッサは、
tts:backgroundOrigin
属性のすべての定義済み値を認識し、変換できる場合、
#backgroundOrigin 機能をサポートする。
TTML 提示プロセッサは、
tts:backgroundOrigin
属性のすべての定義済み値について提示セマンティクスのサポートを実装する場合、
#backgroundOrigin 機能をサポートする。
TTML 変換プロセッサは、
tts:backgroundPosition
属性のすべての定義済み値を認識し、変換できる場合、
#backgroundPosition 機能をサポートする。
TTML 提示プロセッサは、
tts:backgroundPosition
属性のすべての定義済み値について提示セマンティクスのサポートを実装する場合、
#backgroundPosition 機能をサポートする。
TTML 変換プロセッサは、
tts:backgroundRepeat
属性のすべての定義済み値を認識し、変換できる場合、
#backgroundRepeat 機能をサポートする。
TTML 提示プロセッサは、
tts:backgroundRepeat
属性のすべての定義済み値について提示セマンティクスのサポートを実装する場合、
#backgroundRepeat 機能をサポートする。
TTML 変換プロセッサは、
6.1 プロファイル要素語彙によって
定義される次の語彙に適用される場合の
xml:base
属性を認識し、変換できる場合、
#base 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#base 機能をサポートする。
TTML 変換プロセッサは、
6.1
プロファイル要素語彙によって定義され、この属性が許可される
すべての語彙に適用される場合の
xml:base
属性を、次のものを除いて認識し、変換できる場合、
#base-general 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#base-general 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#base-version-2 機能をサポートする。
#base-version-2 機能は、
#base 機能の構文的および意味的拡張である。
content profile が #base-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#base or
#base-general.
TTML content processor は、
[TTML1] §D.1.6 によって定義される
#bidi 機能をサポートする場合、
#bidi 機能をサポートする。
content profile が #bidi 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#direction,
#unicodeBidi, or
#writingMode-horizontal.
TTML プロセッサは、次の機能をサポートする場合、
#bidi-version-2 機能をサポートする。
#bidi-version-2 機能は、
#bidi 機能の構文的および意味的拡張である。
content profile が #bidi-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#bidi or
#unicodeBidi-isolate.
TTML プロセッサは、次の機能をサポートする場合、
#border 機能をサポートする。
content profile が #border 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#border-block,
#border-inline, or
#border-region.
TTML 変換プロセッサは、
提示処理中にブロック領域を生成することになる
コンテンツ要素に適用される場合の
tts:border
属性のすべての定義済み値を認識し、変換できる場合、
#border-block 機能をサポートする。
TTML 提示プロセッサは、
ブロック領域を生成する
コンテンツ要素に適用される場合の
tts:border
属性について提示セマンティクスのサポートを実装する場合、
#border-block 機能をサポートする。
TTML 変換プロセッサは、
提示処理中にインライン領域を生成することになる
コンテンツ要素に適用される場合の
tts:border
属性のすべての定義済み値を認識し、変換できる場合、
#border-inline 機能をサポートする。
TTML 提示プロセッサは、
インライン領域を生成する
コンテンツ要素に適用される場合の
tts:border
属性について提示セマンティクスのサポートを実装する場合、
#border-inline 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#border-radii 機能をサポートする。
content profile が #border-radii 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#border-radii-1 or
#border-radii-2.
TTML 変換プロセッサは、
tts:border
属性で指定される
<border-radii> 値式の
1 成分値を認識し、変換できる場合、
#border-radii-1 機能をサポートする。
TTML 提示プロセッサは、
tts:border
属性で指定される
<border-radii> 値式の
1 成分値について提示セマンティクスのサポートを実装する場合、
#backgroundClip 機能をサポートする。
TTML 変換プロセッサは、
tts:border
属性で指定される
<border-radii> 値式の
2 成分値を認識し、変換できる場合、
#border-radii-2 機能をサポートする。
TTML 提示プロセッサは、
tts:border
属性で指定される
<border-radii> 値式の
2 成分値について提示セマンティクスのサポートを実装する場合、
#backgroundClip 機能をサポートする。
TTML 変換プロセッサは、
region 要素に適用される場合の
tts:border
属性のすべての定義済み値を認識し、変換できる場合、
#border-region 機能をサポートする。
TTML 提示プロセッサは、
region 要素に適用される場合の
tts:border
属性について提示セマンティクスのサポートを実装する場合、
#border-region 機能をサポートする。
TTML 変換プロセッサは、
tts:bpd 属性を認識し、
変換できる場合、#bpd 機能をサポートする。
TTML 提示プロセッサは、
tts:bpd 属性について
提示セマンティクスのサポートを実装する場合、
#bpd 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.7 によって定義される
#cellResolution 機能をサポートする場合、
#cellResolution 機能をサポートする。
TTML 変換プロセッサは、
9 埋め込みコンテンツによって定義される次の語彙を
認識し、変換できる場合、
#chunk 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#chunk 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.8 によって定義される
#clockMode 機能をサポートする場合、
#clockMode 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.9 によって定義される
#clockMode-gps 機能をサポートする場合、
#clockMode-gps 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.10 によって定義される
#clockMode-local 機能をサポートする場合、
#clockMode-local 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.11 によって定義される
#clockMode-utc 機能をサポートする場合、
#clockMode-utc 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.12 によって定義される
#color 機能をサポートする場合、
#color 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#condition 機能をサポートする。
content profile が #condition 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#condition-fn-media,
#condition-fn-parameter,
#condition-fn-supports,
#condition-primary.
TTML content processor は、
<condition> 値式で使用される
<media-function>
sub-expression をサポートする場合、
#condition-fn-media 機能をサポートする。
TTML content processor は、
<condition> 値式で使用される
<parameter-function>
sub-expression をサポートする場合、
#condition-fn-parameter 機能をサポートする。
TTML content processor は、
<condition> 値式で使用される
<supports-function>
sub-expression をサポートする場合、
#condition-fn-supports 機能をサポートする。
TTML content processor は、
<condition> 値式のうち、
<condition-function>
sub-expression を含まないものをサポートする場合、
#condition-primary 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.13 によって定義される
#content 機能をサポートする場合、
#content 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#content-sizing 機能をサポートする。
content profile が #content-sizing 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#bpd or
#ipd.
TTML 変換プロセッサは、
(1) non-combined profiles をサポートし、
(2) 次を認識し、変換できる場合、
#contentProfiles 機能をサポートする。
6.2 プロファイル属性語彙によって 定義される次の profile 属性語彙。
ttp:inferProcessorProfileSource
属性の first 値。
ttp:profile 要素上の
designator 属性。
ttp:profile 要素上の
type 属性の content 値。
ttp:feature および
ttp:extension 要素上の
value 属性の prohibited 値。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#contentProfiles 機能をサポートする。
注:
#contentProfiles 機能のサポートは、
combined profiles または
nesting profiles のサポートを含意しない。
TTML 変換プロセッサは、
(1) #contentProfiles 機能をサポートし、
(2) combined profiles をサポートし、
(3) 次を認識し、変換できる場合、
#contentProfiles-combined 機能をサポートする。
6.2 プロファイル属性語彙によって 定義される次の profile 属性語彙。
ttp:inferProcessorProfileSource
属性の combined 値。
ttp:profile 要素上の
combine 属性。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#contentProfiles-combined 機能をサポートする。
#contentProfiles-combine 機能は、
#contentProfiles 機能の
構文的および意味的拡張である。
content profile が #contentProfiles-combine 機能の使用を要求または許可しながら、
#contentProfiles
機能の使用を禁止することはエラーである。
注:
#contentProfiles-combined 機能のサポートは
nesting profiles のサポートを含意しない。
TTML content processor は、
[TTML1] §D.1.14 によって定義される
#core 機能をサポートする場合、
#core 機能をサポートする。
TTML 変換プロセッサは、
9 埋め込みコンテンツによって定義される次の語彙を
認識し、変換できる場合、
#data 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#data 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.15 によって定義される
#direction 機能をサポートする場合、
#direction 機能をサポートする。
TTML 変換プロセッサは、
tts:disparity 属性を認識し、
変換できる場合、#disparity 機能をサポートする。
TTML 提示プロセッサは、
tts:disparity 属性について
提示セマンティクスのサポートを実装する場合、
#disparity 機能をサポートする。
注:
#disparity 機能のサポートは、
#region-implied-animation
機能のサポートを含意しない。
TTML content processor は、
[TTML1] §D.1.16 によって定義される
#display 機能をサポートする場合、
#display 機能をサポートする。
content profile が #display 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#display-block,
#display-inline, or
#display-region.
TTML content processor は、
[TTML1] §D.1.17 によって定義される
#display-block 機能をサポートする場合、
#display-block 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.18 によって定義される
#display-inline 機能をサポートする場合、
#display-inline 機能をサポートする。
TTML 変換プロセッサは、
提示処理中にインライン領域を生成することになる
コンテンツ要素に適用される場合の
tts:display 属性の
inlineBlock
値を認識し、変換できる場合、
#display-inlineBlock 機能をサポートする。
TTML 提示プロセッサは、
提示処理中にインライン領域を生成することになる
コンテンツ要素に適用される場合の
tts:display 属性の
inlineBlock
値の提示セマンティクスをサポートする場合、
#display-inlineBlock 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.19 によって定義される
#display-region 機能をサポートする場合、
#display-region 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#display-version-2 機能をサポートする。
#display-version-2 機能は、
#display 機能の構文的および意味的拡張である。
content profile が
#display-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#display,
#display-block,
#display-inline,
#display-inlineBlock, or
#display-region.
TTML content processor は、
[TTML1] §D.1.20 によって定義される
#displayAlign 機能をサポートする場合、
#displayAlign 機能をサポートする。
content profile が #displayAlign 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#displayAlign-region or
#displayAlign-relative.
TTML 変換プロセッサは、
提示処理中にブロック領域を生成することになる
コンテンツ要素に適用される場合の
tts:displayAlign
属性について変換セマンティクスのサポートを実装する場合、
#displayAlign-block 機能をサポートする。
TTML 提示プロセッサは、
ブロック領域を生成する
コンテンツ要素に適用される場合の
tts:displayAlign
属性について提示セマンティクスのサポートを実装する場合、
#displayAlign-block 機能をサポートする。
TTML 変換プロセッサは、
tts:displayAlign 属性の
justify 値を認識し、変換できる場合、
#displayAlign-justify 機能をサポートする。
TTML 提示プロセッサは、
tts:displayAlign 属性の
justify 値について提示セマンティクスのサポートを実装する場合、
#displayAlign-justify 機能をサポートする。
TTML 変換プロセッサは、
region 要素に適用される場合の
tts:displayAlign
属性について変換セマンティクスのサポートを実装する場合、
#displayAlign-region 機能をサポートする。
TTML 提示プロセッサは、
region 要素に適用される場合の
tts:displayAlign
属性について提示セマンティクスのサポートを実装する場合、
#displayAlign-region 機能をサポートする。
TTML 変換プロセッサは、
tts:displayAlign
属性の before、center、
および after 値を認識し、変換できる場合、
#displayAlign-relative 機能をサポートする。
TTML 提示プロセッサは、
tts:displayAlign
属性の before、center、および
after 値について提示セマンティクスのサポートを実装する場合、
#displayAlign-relative 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#displayAlign-version-2 機能をサポートする。
#displayAlign-version-2 機能は、
#displayAlign 機能の
構文的および意味的拡張である。
content profile が
#displayAlign-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#displayAlign,
#displayAlign-block,
#displayAlign-justify,
#displayAlign-region, or
#displayAlign-relative.
TTML 変換プロセッサは、
ttp:displayAspectRatio
属性を認識し、変換できる場合、
#displayAspectRatio 機能をサポートする。
TTML 提示プロセッサは、
ttp:displayAspectRatio
属性について提示セマンティクスのサポートを実装する場合、
#displayAspectRatio 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.21 によって定義される
#dropMode 機能をサポートする場合、
#dropMode 機能をサポートする。
content profile が #dropMode 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#dropMode-dropNTSC,
#dropMode-dropPAL, or
#dropMode-nonDrop.
TTML content processor は、
[TTML1] §D.1.22 によって定義される
#dropMode-dropNTSC 機能をサポートする場合、
#dropMode-dropNTSC 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.23 によって定義される
#dropMode-dropPAL 機能をサポートする場合、
#dropMode-dropPAL 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.24 によって定義される
#dropMode-nonDrop 機能をサポートする場合、
#dropMode-nonDrop 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#embedded-audio 機能をサポートする。
content profile が #embedded-audio 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#embedded-data or
#audio.
TTML プロセッサは、次の機能をサポートする場合、
#embedded-content 機能をサポートする。
content profile が
#embedded-content 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#embedded-audio,
#embedded-font, or
#embedded-image.
TTML プロセッサは、次の機能をサポートする場合、
#embedded-data 機能をサポートする。
content profile が #embedded-data 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#chunk,
#data,
#resources, or
#source.
TTML プロセッサは、次の機能をサポートする場合、
#embedded-font 機能をサポートする。
content profile が #embedded-font 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#embedded-data or
#font.
TTML プロセッサは、次の機能をサポートする場合、
#embedded-image 機能をサポートする。
content profile が #embedded-image 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#embedded-data or
#image.
TTML content processor は、
[TTML1] §D.1.25 によって定義される
#extent 機能をサポートする場合、
#extent 機能をサポートする。
content profile が #extent 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#extent-region or
#extent-root.
注:
#extent 機能のサポートは、
#region-implied-animation
機能のサポートを含意しない。
TTML content processor は、
[TTML1] §8.2.7 によって定義される
tts:extent
属性の auto 値の構文およびセマンティクスをサポートする場合、
#extent-auto 機能をサポートする。
TTML 変換プロセッサは、
この仕様によって定義される
tts:extent
属性の auto 値の構文およびセマンティクスを認識し、変換できる場合、
#extent-auto-version-2 機能をサポートする。
TTML 提示プロセッサは、
上で説明した
tts:extent 属性の
auto 値へのセマンティック拡張について提示セマンティクスのサポートを
実装する場合、
#extent-auto-version-2
機能をサポートする。
#extent-auto-version-2 機能は、
#extent-auto 機能の意味的拡張である。
content profile が
#extent-auto-version-2 機能の使用を要求または許可しながら、
(1)
#extent-auto 機能、
または (2) 次のすべての機能の使用を禁止することはエラーである。
#extent-root,
#extent-region, and
#extent-image.
TTML 変換プロセッサは、
tts:extent
属性の contain 値を認識し、変換できる場合、
#extent-contain 機能をサポートする。
TTML 提示プロセッサは、
tts:extent 属性の
contain 値について提示セマンティクスのサポートを実装する場合、
#extent-contain 機能をサポートする。
TTML 変換プロセッサは、
tts:extent
属性の cover 値を認識し、変換できる場合、
#extent-cover 機能をサポートする。
TTML 提示プロセッサは、
tts:extent 属性の
cover 値について提示セマンティクスのサポートを実装する場合、
#extent-cover 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#extent-full-version-2 機能をサポートする。
#extent-full-version-2 機能は、
#extent-version-2 機能の構文的および意味的拡張である。
content profile が
#extent-full-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#extent-contain,
#extent-cover,
#extent-measure, or
#extent-version-2.
注:
#extent-full-version-2 機能のサポートは、
#region-implied-animation
機能のサポートを含意しない。
TTML 変換プロセッサは、
image 要素に適用される場合に、
#extent-auto-version-2 および
#extent-length-version-2 機能によって
サポートされる
tts:extent 属性の属性値を
サポートする場合、
#extent-image 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#extent-image
機能をサポートする。
content profile が #extent-image 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#extent,
features: #extent-auto-version-2, or
#extent-length-version-2.
TTML content processor は、[TTML1] §8.2.7 によって定義される
tts:extent 属性の
<length> 成分値をサポートする場合、
#extent-length 機能をサポートする。
TTML content processor は、
tts:extent 属性の
<length> 成分値に適用される場合の
#length-version-2 機能を
サポートする場合、
#extent-length-version-2 機能をサポートする。
#extent-length-version-2 機能は、
#extent-length 機能の
構文的および意味的拡張である。
content profile が
#extent-length-version-2 機能の使用を要求または許可しながら、
#extent-length
機能の使用を禁止することはエラーである。
TTML 変換プロセッサは、
tts:extent 属性とともに使用される場合の
<measure> スタイル値式の次の値を
認識し、変換できる場合、
#extent-measure 機能をサポートする。
auto
fitContent
maxContent
minContent
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#extent-measure 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.26 によって定義される
#extent-region 機能をサポートする場合、
#extent-region 機能をサポートする。
注:
#extent-region 機能のサポートは、
region 要素に適用される場合の
#extent-auto および
#extent-length 機能のサポートを含意する。
TTML プロセッサは、次の機能をサポートする場合、
#extent-region-version-2 機能をサポートする。
#extent-region-version-2 機能は、
#extent-region 機能の
構文的および意味的拡張である。
content profile が
#extent-region-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#extent-region,
#extent-auto-version-2, or
#extent-length-version-2.
注:
#extent-region-version-2 機能のサポートは、
#region-implied-animation
機能のサポートを含意しない。
TTML content processor は、
[TTML1] §D.1.27 によって定義される
#extent-root 機能をサポートする場合、
#extent-root 機能をサポートする。
注:
#extent-root 機能のサポートは、
tt 要素に適用される場合の
#extent-auto および
#extent-length 機能のサポートを含意する。
TTML プロセッサは、次の機能をサポートする場合、
#extent-root-version-2 機能をサポートする。
#extent-root-version-2 機能は、
#extent-root 機能の
構文的および意味的拡張である。
content profile が
#extent-root-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#extent-root,
#extent-auto-version-2, or
#extent-length-version-2.
TTML プロセッサは、次の機能をサポートする場合、
#extent-version-2 機能をサポートする。
#extent-version-2 機能は、
#extent 機能の構文的および意味的拡張である。
content profile が
#extent-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#extent,
#extent-image,
#extent-region-version-2, or
#extent-root-version-2.
注:
#extent-version-2 機能のサポートは、
次の機能のいずれのサポートも含意しない。
#extent-contain,
#extent-cover,
#extent-measure, or
#region-implied-animation.
TTML 変換プロセッサは、
9 埋め込みコンテンツによって定義される次の語彙を
認識し、変換できる場合、
#font
機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#font
機能をサポートする。
TTML content processor は、
[TTML1] §D.1.28 によって定義される
#fontFamily 機能をサポートする場合、
#fontFamily 機能をサポートする。
content profile が #fontFamily 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#fontFamily-generic or
#fontFamily-non-generic.
TTML content processor は、
[TTML1] §D.1.29 によって定義される
#fontFamily-generic 機能をサポートする場合、
#fontFamily-generic 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.30 によって定義される
#fontFamily-non-generic 機能をサポートする場合、
#fontFamily-non-generic 機能をサポートする。
TTML 変換プロセッサは、
tts:fontKerning
属性を認識し、変換できる場合、
#fontKerning 機能をサポートする。
TTML 提示プロセッサは、
tts:fontKerning 属性について
提示セマンティクスのサポートを実装する場合、
#fontKerning 機能をサポートする。
TTML 変換プロセッサは、
tts:fontSelectionStrategy
属性の auto 値を認識し、変換できる場合、
#fontSelectionStrategy 機能をサポートする。
TTML 提示プロセッサは、
tts:fontSelectionStrategy
属性の auto 値について提示セマンティクスのサポートを実装する場合、
#fontSelectionStrategy 機能をサポートする。
TTML 変換プロセッサは、
tts:fontSelectionStrategy
属性の character 値を認識し、変換できる場合、
#fontSelectionStrategy-character 機能をサポートする。
TTML 提示プロセッサは、
tts:fontSelectionStrategy
属性の character 値について提示セマンティクスのサポートを実装する場合、
#fontSelectionStrategy-character 機能をサポートする。
TTML 変換プロセッサは、
tts:fontShear 属性を
認識し、変換できる場合、
#fontShear 機能をサポートする。
TTML 提示プロセッサは、
tts:fontShear 属性について
提示セマンティクスのサポートを実装する場合、
#fontShear 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.31 によって定義される
#fontSize 機能をサポートする場合、
#fontSize 機能をサポートする。
content profile が #fontSize 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#fontSize-anamorphic or
#fontSize-isomorphic.
TTML content processor は、
[TTML1] §D.1.32 によって定義される
#fontSize-anamorphic 機能をサポートする場合、
#fontSize-anamorphic 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.33 によって定義される
#fontSize-isomorphic 機能をサポートする場合、
#fontSize-isomorphic 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.34 によって定義される
#fontStyle 機能をサポートする場合、
#fontStyle 機能をサポートする。
注:
#fontStyle 機能のサポートは、(1)
#fontStyle-italic および
#fontStyle-oblique 機能、
ならびに (2)
tts:fontStyle 属性の
normal 値のサポートと機能的に等価である。
content profile が #fontStyle 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#fontStyle-italic or
#fontStyle-oblique.
TTML content processor は、
[TTML1] §D.1.35 によって定義される
#fontStyle-italic 機能をサポートする場合、
#fontStyle-italic 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.36 によって定義される
#fontStyle-oblique 機能をサポートする場合、
#fontStyle-oblique 機能をサポートする。
TTML 変換プロセッサは、
tts:fontVariant
属性を認識し、変換できる場合、
#fontVariant 機能をサポートする。
TTML 提示プロセッサは、
tts:fontVariant 属性について
提示セマンティクスのサポートを実装する場合、
#fontVariant 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.37 によって定義される
#fontWeight 機能をサポートする場合、
#fontWeight 機能をサポートする。
注:
#fontWeight 機能のサポートは、(1)
#fontWeight-bold 機能、
および (2)
tts:fontWeight 属性の
normal 値のサポートと機能的に等価である。
content profile が #fontWeight 機能の使用を要求または許可しながら、
#fontWeight-bold 機能の使用を
禁止することはエラーである。
TTML content processor は、
[TTML1] §D.1.38 によって定義される
#fontWeight-bold 機能をサポートする場合、
#fontWeight-bold 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.39 によって定義される
#frameRate 機能をサポートする場合、
#frameRate 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.40 によって定義される
#frameRateMultiplier 機能をサポートする場合、
#frameRateMultiplier 機能をサポートする。
TTML 変換プロセッサは、
tta:gain 属性を
認識し、変換できる場合、
#gain 機能をサポートする。
TTML 提示プロセッサは、
tta:gain 属性について
提示セマンティクスのサポートを実装する場合、
#gain 機能をサポートする。
TTML 変換プロセッサは、
9 埋め込みコンテンツによって定義される次の語彙を
認識し、変換できる場合、
#image
機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#image
機能をサポートする。
TTML 変換プロセッサは、
[PNG] によって定義される
content type image/png の
画像リソースを認識し、変換できる場合、
#image-png
機能をサポートする。
TTML 提示プロセッサは、
[PNG] によって定義される
content type image/png の
画像リソースについて提示セマンティクスのサポートを
実装する場合、
#image-png
機能をサポートする。
TTML 変換プロセッサは、
10 スタイリングによって定義される次の語彙を
認識し、変換できる場合、
#initial
機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#initial
機能をサポートする。
TTML 変換プロセッサは、
tts:ipd 属性を
認識し、変換できる場合、
#ipd 機能をサポートする。
TTML 提示プロセッサは、
tts:ipd 属性について
提示セマンティクスのサポートを実装する場合、
#ipd 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.41 によって定義される
#layout 機能をサポートする場合、
#layout 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.42 によって定義される
#length 機能をサポートする場合、
#length 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.43 によって定義される
#length-cell 機能をサポートする場合、
#length-cell 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.44 によって定義される
#length-em 機能をサポートする場合、
#length-em 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.45 によって定義される
#length-integer 機能をサポートする場合、
#length-integer 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.46 によって定義される
#length-negative 機能をサポートする場合、
#length-negative 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.47 によって定義される
#length-percentage 機能をサポートする場合、
#length-percentage 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.48 によって定義される
#length-pixel 機能をサポートする場合、
#length-pixel 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.49 によって定義される
#length-positive 機能をサポートする場合、
#length-positive 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.50 によって定義される
#length-real 機能をサポートする場合、
#length-real 機能をサポートする。
TTML 変換プロセッサは、
<length> スタイル値式の
ルートコンテナ相対値を
認識し、変換できる場合、
#length-root-container-relative 機能をサポートする。
TTML 提示プロセッサは、
<length> スタイル値式の
ルートコンテナ相対値について
提示セマンティクスのサポートを実装する場合、
#length-root-container-relative 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#length-version-2 機能をサポートする。
#length-version-2 機能は、
#length 機能の構文的および意味的拡張である。
content profile が
#length-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#length or
#length-root-container-relative.
TTML 変換プロセッサは、
tts:letterSpacing
属性を認識し、変換できる場合、
#letterSpacing 機能をサポートする。
TTML 提示プロセッサは、
tts:letterSpacing 属性について
提示セマンティクスのサポートを実装する場合、
#letterSpacing 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.51 によって定義される
#lineBreak-uax14 機能をサポートする場合、
#lineBreak-uax14 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.52 によって定義される
#lineHeight 機能をサポートする場合、
#lineHeight 機能をサポートする。
TTML 変換プロセッサは、
tts:lineShear 属性を
認識し、変換できる場合、
#lineShear 機能をサポートする。
TTML 提示プロセッサは、
tts:lineShear 属性について
提示セマンティクスのサポートを実装する場合、
#lineShear 機能をサポートする。
TTML 変換プロセッサは、
tts:luminanceGain
属性を認識し、変換できる場合、
#luminanceGain 機能をサポートする。
TTML 提示プロセッサは、
tts:luminanceGainについて
提示セマンティクスのサポートを実装する場合、
#luminanceGain 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.53 によって定義される
#markerMode 機能をサポートする場合、
#markerMode 機能をサポートする。
content profile が #markerMode 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#markerMode-continuous or
#markerMode-discontinuous.
TTML content processor は、
[TTML1] §D.1.54 によって定義される
#markerMode-continuous 機能をサポートする場合、
#markerMode-continuous 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.55 によって定義される
#markerMode-discontinuous 機能をサポートする場合、
#markerMode-discontinuous 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.56 によって定義される
#metadata 機能をサポートする場合、
#metadata 機能をサポートする。
TTML 変換プロセッサは、
14 メタデータによって定義される次の語彙を
認識し、変換できる場合、
#metadata-item
機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#metadata-item
機能をサポートする。
注:
この仕様は、メタデータ情報の提示について標準化された形式を定義しない。 メタデータ情報の提示または提示できる能力は、実装依存であるとみなされる。
TTML プロセッサは、次の機能をサポートする場合、
#metadata-version-2 機能をサポートする。
#metadata-version-2 機能は、
#metadata 機能の
構文的および意味的拡張である。
content profile が
#metadata-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#metadata or
#metadata-item.
TTML content processor は、
[TTML1] §D.1.57 によって定義される
#nested-div 機能をサポートする場合、
#nested-div 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.58 によって定義される
#nested-span 機能をサポートする場合、
#nested-span 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.59 によって定義される
#opacity 機能をサポートする場合、
#opacity 機能をサポートする。
注:
#opacity 機能のサポートは、
#opacity-region 機能のサポートと
機能的に等価である。
content profile が #opacity 機能の使用を要求または許可しながら、
#opacity-region 機能の使用を
禁止することはエラーである。
TTML 変換プロセッサは、
提示処理中にブロック領域を生成することになる
コンテンツ要素に適用される場合の
tts:opacity
属性のすべての定義済み値を認識し、変換できる場合、
#opacity-block 機能をサポートする。
TTML 提示プロセッサは、
(1) ブロック領域を生成する
コンテンツ要素に適用される場合の
tts:opacity
属性について提示セマンティクスのサポートを実装し、かつ
(2) 少なくとも 8 個の opacity 値を区別する出力表示信号を
表示または生成できる場合、
#opacity-block 機能をサポートする。
TTML 変換プロセッサは、
提示処理中にインライン領域を生成することになる
コンテンツ要素に適用される場合の
tts:opacity
属性のすべての定義済み値を認識し、変換できる場合、
#opacity-inline 機能をサポートする。
TTML 提示プロセッサは、
(1) インライン領域を生成する
コンテンツ要素に適用される場合の
tts:opacity
属性について提示セマンティクスのサポートを実装し、かつ
(2) 少なくとも 8 個の opacity 値を区別する出力表示信号を
表示または生成できる場合、
#opacity-inline 機能をサポートする。
TTML 変換プロセッサは、
region 要素に適用される場合の
tts:opacity
属性のすべての定義済み値を認識し、変換できる場合、
#opacity-region 機能をサポートする。
TTML 提示プロセッサは、
(1) region 要素に適用される場合の
tts:opacity
属性について提示セマンティクスのサポートを実装し、かつ
(2) 少なくとも 8 個の opacity 値を区別する出力表示信号を
表示または生成できる場合、
#opacity-region 機能をサポートする。
注:
#opacity-region 機能のサポートは、
#opacity 機能のサポートと機能的に等価である。
content profile が #opacity-region 機能の使用を要求または許可しながら、
#opacity 機能の使用を禁止することはエラーである。
TTML プロセッサは、次の機能をサポートする場合、
#opacity-version-2 機能をサポートする。
#opacity-version-2 機能は、
#opacity 機能の構文的および意味的拡張である。
content profile が
#opacity-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#opacity,
#opacity-block,
#opacity-inline, or
#opacity-region.
TTML content processor は、
[TTML1] §D.1.60 によって定義される
#origin 機能をサポートする場合、
#origin 機能をサポートする。
注:
#origin 機能のサポートは、
#region-implied-animation
機能のサポートを含意しない。
TTML content processor は、
[TTML1] §D.1.61 によって定義される
#overflow 機能をサポートする場合、
#overflow 機能をサポートする。
注:
#overflow 機能のサポートは、(1)
#overflow-visible 機能、
および (2) tts:overflow 属性の
hidden 値のサポートと機能的に等価である。
content profile が #overflow 機能の使用を要求または許可しながら、
#overflow-visible 機能の使用を
禁止することはエラーである。
TTML content processor は、
[TTML1] §D.1.62 によって定義される
#overflow-visible 機能をサポートする場合、
#overflow-visible 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.63 によって定義される
#padding 機能をサポートする場合、
#padding 機能をサポートする。
注:
#padding 機能のサポートは、
次の機能のサポートと機能的に等価である。
content profile が #padding 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#padding-1,
#padding-2,
#padding-3,
#padding-4,
#padding-region.
TTML content processor は、
[TTML1] §D.1.64 によって定義される
#padding-1 機能をサポートする場合、
#padding-1 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.65 によって定義される
#padding-2 機能をサポートする場合、
#padding-2 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.66 によって定義される
#padding-3 機能をサポートする場合、
#padding-3 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.67 によって定義される
#padding-4 機能をサポートする場合、
#padding-4 機能をサポートする。
TTML 変換プロセッサは、
提示処理中にブロック領域を生成することになる
コンテンツ要素に適用される場合の
tts:padding
属性のすべての定義済み値を認識し、変換できる場合、
#padding-block 機能をサポートする。
TTML 提示プロセッサは、
ブロック領域を生成する
コンテンツ要素に適用される場合の
tts:padding
属性について提示セマンティクスのサポートを実装する場合、
#padding-block 機能をサポートする。
TTML 変換プロセッサは、
提示処理中にインライン領域を生成することになる
コンテンツ要素に適用される場合の
tts:padding
属性のすべての定義済み値を認識し、変換できる場合、
#padding-inline 機能をサポートする。
TTML 提示プロセッサは、
インライン領域を生成する
コンテンツ要素に適用される場合の
tts:padding
属性について提示セマンティクスのサポートを実装する場合、
#padding-inline 機能をサポートする。
TTML content processor は、
#padding 機能をサポートする場合、
#padding-region 機能をサポートする。
#padding-region 機能は、
null
extension
of the #padding feature,
which, by null extension is meant
that some feature is formally marked as an extension of another feature, but the extension
semantics is the null set, which is the same as saying
that the two features are functionally equivalent.
content profile が #padding-region 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#padding,
#padding-1,
#padding-2,
#padding-3, or
#padding-4.
TTML プロセッサは、次の機能をサポートする場合、
#padding-version-2 機能をサポートする。
#padding-version-2 機能は、
#padding 機能の構文的および意味的拡張である。
注:
#padding-region 機能は
null extension であるため、
#padding 機能については、
#padding-version-2 機能も同様に
#padding-region 機能の
構文的および意味的拡張である。
content profile が
#padding-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#padding,
#padding-1,
#padding-2,
#padding-3,
#padding-4.
#padding-block,
#padding-inline, or
#padding-region.
TTML 変換プロセッサは、
tta:pan 属性を
認識し、変換できる場合、
#pan 機能をサポートする。
TTML 提示プロセッサは、
tta:pan 属性について
提示セマンティクスのサポートを実装する場合、
#pan 機能をサポートする。
TTML 変換プロセッサは、
(1) ttp:permitFeatureNarrowing
属性、および (2)
ttp:feature 要素と
ttp:extension 要素上の
extends 属性を認識し、変換できる場合、
#permitFeatureNarrowing 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#permitFeatureNarrowing
機能をサポートする。
注:
TTML プロセッサが、任意として指定された場合に
#permitFeatureNarrowing 機能をサポートしないなら、
extends 属性のセマンティクスは無視される。すなわち、拡張される機能の
サポートは、その拡張機能がサポートされるとみなすには十分ではない。
TTML 変換プロセッサは、
(1) ttp:permitFeatureWidening
属性、および (2)
ttp:feature 要素と
ttp:extension 要素上の
restricts 属性を認識し、変換できる場合、
#permitFeatureWidening 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#permitFeatureWidening
機能をサポートする。
注:
TTML プロセッサが、任意として指定された場合に
#permitFeatureWidening 機能をサポートしないなら、
restricts 属性のセマンティクスは無視される。すなわち、制限される機能の
サポートは、その制限された機能がサポートされるとみなすには十分ではない。
TTML 変換プロセッサは、
tta:pitch 属性を
認識し、変換できる場合、
#pitch 機能をサポートする。
TTML 提示プロセッサは、
tta:pitch 属性について
提示セマンティクスのサポートを実装する場合、
#pitch 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.68 によって定義される
#pixelAspectRatio 機能をサポートする場合、
#pixelAspectRatio 機能をサポートする。
TTML 変換プロセッサは、
tts:position 属性を
認識し、変換できる場合、
#position 機能をサポートする。
TTML 提示プロセッサは、
tts:position 属性について
提示セマンティクスのサポートを実装する場合、
#position 機能をサポートする。
注:
#position 機能のサポートは、
#region-implied-animation
機能のサポートを含意しない。
TTML content processor は、
[TTML1] §D.1.69 によって定義される
#presentation 機能をサポートする場合、
#presentation 機能をサポートする。
TTML プロセッサは、(1)
3.2.1 汎用プロセッサ適合性で
定義される汎用プロセッサ基準を満たし、かつ
(2) 次の機能をサポートする場合、
#presentation-version-2 機能をサポートする。
#presentation-version-2 機能は、
#presentation 機能の構文的および意味的拡張である。
content profile が
#presentation-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#presentation or
#profile-version-2.
TTML 変換プロセッサは、
(1) non-combined profiles をサポートし、
(2) 次を認識し、変換できる場合、
#processorProfiles
機能をサポートする。
6.2 プロファイル属性語彙によって 定義される次の profile 属性語彙。
ttp:profile 要素上の
designator 属性、および
ttp:profile 要素上の
type 属性の processor 値。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#processorProfiles
機能をサポートする。
注:
#processorProfiles 機能のサポートは、combined
profiles
または nesting profiles のサポートを含意しない。
TTML 変換プロセッサは、
(1) #processorProfiles 機能をサポートし、
(2) combined profiles をサポートし、かつ (3) 次を
認識し、変換できる場合、
#processorProfiles-combined
機能をサポートする。
6.2 プロファイル属性語彙によって 定義される次の profile 属性語彙。
ttp:profile 要素上の
combine 属性。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#processorProfiles-combined
機能をサポートする。
#processorProfiles-combine 機能は、
#processorProfiles 機能の
構文的および意味的拡張である。
processor profile が
#processorProfiles-combine 機能の使用を要求または許可しながら、
#processorProfiles
機能の使用を禁止することはエラーである。
注:
#processorProfiles-combined 機能のサポートは、
nesting profiles のサポートを含意しない。
TTML content processor は、
[TTML1] §D.1.70 によって定義される
#profile 機能をサポートする場合、
#profile 機能をサポートする。
注:
#profile 機能のサポートは、
次の機能のサポートを含意しない。
TTML content processor は、次の機能をサポートする場合、
#profile-full-version-2 機能をサポートする。
#profile-full-version-2 機能は、
#profile-version-2 機能の
構文的および意味的拡張である。
content profile が
#profile-full-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#contentProfiles,
#contentProfiles-combined,
#permitFeatureNarrowing,
#permitFeatureWidening,
#processorProfiles,
#processorProfiles-combined,
#profile,
#profile-nesting, or
#profile-version-2.
TTML content processor は、
nesting profiles をサポートする場合、
#profile-nesting 機能をサポートする。
TTML content processor は、次の機能をサポートする場合、
#profile-version-2 機能をサポートする。
#profile-version-2 機能は、
#profile 機能の構文的および意味的拡張である。
content profile が
#profile-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#contentProfiles,
#processorProfiles, or
#profile.
注:
#profile-version-2 機能のサポートは、
次の機能のサポートを含意しない。
TTML 変換プロセッサは、
11.1.2.1
インラインアニメーションの特別なセマンティクスに従って
implied region に適用される、
div または p 要素上の style 属性を
認識し、変換できる場合、
#region-implied-animation 機能をサポートする。
TTML 提示プロセッサは、
11.1.2.1
インラインアニメーションの特別なセマンティクスに従って
implied region に適用される、
div または p 要素上の style 属性について
提示セマンティクスのサポートを実装する場合、
#region-implied-animation 機能をサポートする。
注:
#region-implied-animation 機能のサポートは、
次の機能のサポートを含意しない。
ただし、これらの機能のいずれかがサポートされている場合、
#region-implied-animation 機能のサポートは、
その機能に関して
11.1.2.1
インラインアニメーションの特別なセマンティクスが
サポートされることを含意する。
TTML 変換プロセッサは、
region によってさらに定義されるように、
コンテンツ要素の inline region 要素子を
認識し、変換できる場合、
#region-inline 機能をサポートする。
TTML 提示プロセッサは、
region によってさらに定義されるように、
コンテンツ要素の inline region 要素子について
提示セマンティクスのサポートを実装する場合、
#region-inline 機能をサポートする。
TTML 変換プロセッサは、
region 要素に適用される場合の
次の語彙を認識し、変換できる場合、
#region-timing
機能をサポートする。
TTML 提示プロセッサは、
region 要素に適用される場合の
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#region-timing
機能をサポートする。
#region-timing 機能は、
#timing 機能の意味的制限である。
注:
この機能は #timing 機能の意味的部分集合を表し、
かつ後者はすべての変換プロセッサおよび提示プロセッサにとって必須機能であるため、
この機能指定の有用性は、事実上、文書インスタンスによるこの機能の使用を
禁止することを選択し得る content profile 定義での使用に限られる。
TTML 変換プロセッサは、
9 埋め込みコンテンツによって定義される次の語彙を
認識し、変換できる場合、
#resources
機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#resources
機能をサポートする。
TTML 変換プロセッサは、
tts:ruby
属性のすべての定義済み値を認識し、変換できる場合、
#ruby 機能をサポートする。
TTML 提示プロセッサは、
tts:ruby
属性のすべての定義済み値について提示セマンティクスのサポートを実装する場合、
#ruby 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#ruby-full 機能をサポートする。
content profile が #ruby-full 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#ruby,
#rubyAlign,
#rubyAlign-withBase,
#rubyPosition, or
#rubyReserve.
TTML プロセッサは、次の機能をサポートする場合、
#rubyAlign 機能をサポートする。
content profile が #rubyAlign 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#rubyAlign-minimal or
#rubyAlign-withBase.
TTML 変換プロセッサは、
tts:rubyAlign 属性の
次の値を認識し、変換できる場合、
#rubyAlign-minimal 機能をサポートする。
start
center
end
spaceAround
spaceBetween
TTML 提示プロセッサは、
上で列挙された同じ値語彙について提示セマンティクスのサポートを実装する場合、
#rubyAlign-minimal 機能をサポートする。
TTML 変換プロセッサは、
tts:rubyAlign 属性の
withBase 値を認識し、変換できる場合、
#rubyAlign-withBase 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ値について提示セマンティクスのサポートを実装する場合、
#rubyAlign-withBase 機能をサポートする。
TTML 変換プロセッサは、
tts:rubyPosition
属性を認識し、変換できる場合、
#rubyPosition 機能をサポートする。
TTML 提示プロセッサは、
tts:rubyPosition 属性について
提示セマンティクスのサポートを実装する場合、
#rubyPosition 機能をサポートする。
TTML 変換プロセッサは、
tts:rubyReserve
属性を認識し、変換できる場合、
#rubyReserve 機能をサポートする。
TTML 提示プロセッサは、
tts:rubyReserve 属性について
提示セマンティクスのサポートを実装する場合、
#rubyReserve 機能をサポートする。
TTML content processor は、
#animation 機能をサポートする場合、
#set
機能をサポートし、そのため
#set 機能は
null extension of
the
#animation feature.
content profile が #set 機能の使用を要求または許可しながら、
#animation 機能の使用を
禁止することはエラーである。
TTML 変換プロセッサは、
set 要素の
fill 属性を認識し、変換できる場合、
#set-fill 機能をサポートする。
TTML 提示プロセッサは、
set 要素の
fill 属性について提示セマンティクスのサポートを実装する場合、
#set-fill 機能をサポートする。
TTML 変換プロセッサは、
set 要素上に指定される場合の
TT Style 名前空間内の複数の属性を認識し、変換できる場合、
#set-multiple-styles 機能をサポートする。
TTML 提示プロセッサは、
set 要素上に指定される場合の
TT Style 名前空間内の複数の属性について提示セマンティクスのサポートを実装する場合、
#set-multiple-styles 機能をサポートする。
TTML 変換プロセッサは、
set 要素の
repeatCount 属性を認識し、変換できる場合、
#set-repeat 機能をサポートする。
TTML 提示プロセッサは、
set 要素の
repeatCount 属性について提示セマンティクスのサポートを実装する場合、
#set-repeat 機能をサポートする。
TTML 変換プロセッサは、
tts:shear 属性を
認識し、変換できる場合、
#shear 機能をサポートする。
TTML 提示プロセッサは、
tts:shear 属性について
提示セマンティクスのサポートを実装する場合、
#shear 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.71 によって定義される
#showBackground 機能をサポートする場合、
#showBackground 機能をサポートする。
TTML 変換プロセッサは、
9 埋め込みコンテンツによって定義される次の語彙を
認識し、変換できる場合、
#source
機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#source
機能をサポートする。
TTML 変換プロセッサは、
tta:speak 属性を
認識し、変換できる場合、
#speak 機能をサポートする。
TTML 提示プロセッサは、
tta:speak 属性について
提示セマンティクスのサポートを実装する場合、
#speak 機能をサポートする。
TTML プロセッサは、
音声合成プロセッサをサポートする場合、
#speech 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.72 によって定義される
#structure 機能をサポートする場合、
#structure 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.73 によって定義される
#styling 機能をサポートする場合、
#styling 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.74 によって定義される
#styling-chained 機能をサポートする場合、
#styling-chained 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.75 によって定義される
#inheritance-content 機能をサポートする場合、
#styling-inheritance-content
機能をサポートする。
TTML content processor は、
[TTML1] §D.1.76 によって定義される
#styling-inheritance-region 機能をサポートする場合、
#styling-inheritance-region 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.77 によって定義される
#styling-inline 機能をサポートする場合、
#styling-inline 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.78 によって定義される
#styling-nested 機能をサポートする場合、
#styling-nested 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.79 によって定義される
#styling-referential 機能をサポートする場合、
#styling-referential 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.80 によって定義される
#subFrameRate 機能をサポートする場合、
#subFrameRate 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.81 によって定義される
#textAlign 機能をサポートする場合、
#textAlign 機能をサポートする。
content profile が #textAlign 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#textAlign-absolute or
#textAlign-relative.
TTML content processor は、
[TTML1] §D.1.82 によって定義される
#textAlign-absolute 機能をサポートする場合、
#textAlign-absolute 機能をサポートする。
TTML 変換プロセッサは、
tts:textAlign 属性の
justify 値を認識し、変換できる場合、
#textAlign-justify 機能をサポートする。
TTML 提示プロセッサは、
tts:textAlign 属性の
justify 値について提示セマンティクスのサポートを実装する場合、
#textAlign-justify 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.83 によって定義される
#textAlign-relative 機能をサポートする場合、
#textAlign-relative 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#textAlign-version-2 機能をサポートする。
#textAlign-version-2 機能は、
#textAlign 機能の構文的および意味的拡張である。
content profile が
#textAlign-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#textAlign,
#textAlign-absolute,
#textAlign-justify, or
#textAlign-relative.
TTML 変換プロセッサは、
tts:textCombine
属性を認識し、変換できる場合、
#textCombine 機能をサポートする。
TTML 提示プロセッサは、
tts:textCombine 属性について
提示セマンティクスのサポートを実装する場合、
#textCombine 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.84 によって定義される
#textDecoration 機能をサポートする場合、
#textDecoration 機能をサポートする。
注:
#textDecoration 機能のサポートは、
次の機能のサポートと機能的に等価である。
content profile が #textDecoration 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#textDecoration-over,
#textDecoration-through, or
#textDecoration-under.
TTML content processor は、
[TTML1] §D.1.85 によって定義される
#textDecoration-over 機能をサポートする場合、
#textDecoration-over 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.86 によって定義される
#textDecoration-through 機能をサポートする場合、
#textDecoration-through 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.87 によって定義される
#textDecoration-under 機能をサポートする場合、
#textDecoration-under 機能をサポートする。
TTML プロセッサは、次の機能をサポートする場合、
#textEmphasis 機能をサポートする。
#textEmphasis 機能は、
#textEmphasis-minimal 機能の
構文的および意味的拡張である。
content profile が #textEmphasis 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#textEmphasis-color,
#textEmphasis-minimal, or
#textEmphasis-quoted-string.
TTML 変換プロセッサは、
tts:textEmphasis
属性の値のうち、
<emphasis-color>
成分を含むものを認識し、変換できる場合、
#textEmphasis-color 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#textEmphasis-color
機能をサポートする。
TTML 変換プロセッサは、
tts:textEmphasis
属性の値のうち、(1)
<emphasis-color> 成分を含まず、かつ
(2) <quoted-string> 値の形式を取る
<emphasis-style> 成分を
含まないものを認識し、変換できる場合、
#textEmphasis-minimal 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#textEmphasis-minimal
機能をサポートする。
TTML 変換プロセッサは、
tts:textEmphasis
属性の値のうち、
<quoted-string> 値の形式を取る
<emphasis-style>
成分を含むものを認識し、変換できる場合、
#textEmphasis-quoted-string 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#textEmphasis-quoted-string
機能をサポートする。
TTML 変換プロセッサは、
tts:textOrientation
属性を認識し、変換できる場合、
#textOrientation 機能をサポートする。
TTML 提示プロセッサは、
tts:textOrientation
属性について提示セマンティクスのサポートを実装する場合、
#textOrientation 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.88 によって定義される
#textOutline 機能をサポートする場合、
#textOutline 機能をサポートする。
content profile が #textOutline 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#textOutline-blurred or
#textOutline-unblurred.
TTML content processor は、
[TTML1] §D.1.89 によって定義される
#textOutline-blurred 機能をサポートする場合、
#textOutline-blurred 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.90 によって定義される
#textOutline-unblurred 機能をサポートする場合、
#textOutline-unblurred 機能をサポートする。
TTML 変換プロセッサは、
tts:textShadow
属性を認識し、変換できる場合、
#textShadow 機能をサポートする。
TTML 提示プロセッサは、
tts:textShadow 属性について
提示セマンティクスのサポートを実装する場合、
#textShadow 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.91 によって定義される
#tickRate 機能をサポートする場合、
#tickRate 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.92 によって定義される
#timeBase-clock 機能をサポートする場合、
#timeBase-clock 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.93 によって定義される
#timeBase-media 機能をサポートする場合、
#timeBase-media 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.94 によって定義される
#timeBase-smpte 機能をサポートする場合、
#timeBase-smpte 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.95 によって定義される
#timeContainer 機能をサポートする場合、
#timeContainer 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.96 によって定義される
#time-clock 機能をサポートする場合、
#time-clock 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.97 によって定義される
#time-clock-with-frames 機能をサポートする場合、
#time-clock-with-frames 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.98 によって定義される
#time-offset 機能をサポートする場合、
#time-offset 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.99 によって定義される
#time-offset-with-frames 機能をサポートする場合、
#time-offset-with-frames 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.100 によって定義される
#time-offset-with-ticks 機能をサポートする場合、
#time-offset-with-ticks 機能をサポートする。
TTML 変換プロセッサは、
次の time expression 構文の部分集合を満たすすべての
<time-expression> 値を
認識し、変換できる場合、
#time-wall-clock 機能をサポートする。
<time-expression> : wallclock-time
TTML 提示プロセッサは、
上で指定された同じ構文について提示セマンティクスのサポートを実装する場合、
#time-wall-clock 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.101 によって定義される
#timing 機能をサポートする場合、
#timing 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.102 によって定義される
#transformation 機能をサポートする場合、
#transformation 機能をサポートする。
TTML プロセッサは、(1)
3.2.1 汎用プロセッサ適合性で
定義される汎用プロセッサ基準を満たし、かつ
(2) 次の機能をサポートする場合、
#transformation-version-2 機能をサポートする。
#transformation-version-2 機能は、
#transformation 機能の
構文的および意味的拡張である。
content profile が
#transformation-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#transformation or
#profile-version-2.
TTML content processor は、
[TTML1] §D.1.103 によって定義される
#unicodeBidi 機能をサポートする場合、
#unicodeBidi 機能をサポートする。
注:
#unicodeBidi 機能のサポートは、
#unicodeBidi-isolate 機能のサポートを含意しない。
TTML 変換プロセッサは、
tts:unicodeBidi
属性の isolate 値を認識し、変換できる場合、
#unicodeBidi-isolate 機能をサポートする。
TTML 提示プロセッサは、
tts:unicodeBidi
属性の isolate 値について提示セマンティクスのサポートを実装する場合、
#unicodeBidi-isolate 機能をサポートする。
TTML content processor は、次の機能をサポートする場合、
#unicodeBidi-version-2 機能をサポートする。
#unicodeBidi-version-2 機能は、
#unicodeBidi 機能の構文的および意味的拡張である。
TTML 変換プロセッサは、
次を満たす場合、
#validation
機能をサポートする。
6.2 プロファイル属性語彙によって 定義される次の属性語彙を認識し、変換できること。
TTML 提示プロセッサは、
validating content
processor であり、かつ
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#validation
機能をサポートする。
TTML content processor は、
[TTML1] §D.1.104 によって定義される
#visibility 機能をサポートする場合、
#visibility 機能をサポートする。
注:
#visibility 機能のサポートは、
次の機能のサポートと機能的に等価である。
content profile が #visibility 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#visibility-block,
#visibility-inline, or
#visibility-region.
TTML content processor は、
[TTML1] §D.1.105 によって定義される
#visibility-block 機能をサポートする場合、
#visibility-block 機能をサポートする。
TTML 変換プロセッサは、
image 要素に適用される場合の
tts:visibility 属性の
すべての定義済み値をサポートする場合、
#visibility-image 機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#visibility-image
機能をサポートする。
注:
#visibility-image 機能のサポートは、
#image 機能のサポートを含意しない。ただし、
後者のサポートがなければ、前者のサポートは目的を果たさない。
TTML content processor は、
[TTML1] §D.1.106 によって定義される
#visibility-inline 機能をサポートする場合、
#visibility-inline 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.107 によって定義される
#visibility-region 機能をサポートする場合、
#visibility-region 機能をサポートする。
TTML content processor は、次の機能をサポートする場合、
#visibility-version-2 機能をサポートする。
#visibility-version-2 機能は、
#visibility 機能の構文的および意味的拡張である。
content profile が
#visibility-version-2 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#visibility or
#visibility-image.
TTML content processor は、
[TTML1] §D.1.108 によって定義される
#wrapOption 機能をサポートする場合、
#wrapOption 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.109 によって定義される
#writingMode 機能をサポートする場合、
#writingMode 機能をサポートする。
content profile が #writingMode 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#writingMode-horizontal or
#writingMode-vertical.
TTML content processor は、
[TTML1] §D.1.111 によって定義される
#writingMode-horizontal 機能をサポートする場合、
#writingMode-horizontal 機能をサポートする。
注:
#writingMode-horizontal 機能のサポートは、
次の機能のサポートと機能的に等価である。
content profile が
#writingMode-horizontal 機能の使用を要求または許可しながら、
次の機能のいずれかの使用を禁止することはエラーである。
#writingMode-horizontal-lr or
#writingMode-horizontal-rl.
TTML content processor は、
[TTML1] §D.1.112 によって定義される
#writingMode-horizontal-lr 機能をサポートする場合、
#writingMode-horizontal-lr 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.113 によって定義される
#writingMode-horizontal-rl 機能をサポートする場合、
#writingMode-horizontal-rl 機能をサポートする。
TTML content processor は、
[TTML1] §D.1.110 によって定義される
#writingMode-vertical 機能をサポートする場合、
#writingMode-vertical 機能をサポートする。
TTML 変換プロセッサは、
この語彙を許容するサポート対象の要素型上で使用するために、
8.2 コンテンツ属性語彙によって
定義される次の属性語彙を認識し、変換できる場合、
#xlink
機能をサポートする。
TTML 提示プロセッサは、
上で列挙された同じ語彙について提示セマンティクスのサポートを実装する場合、
#xlink
機能をサポートする。
TTML content processor は、
[TTML1] §D.1.114 によって定義される
#zIndex 機能をサポートする場合、
#zIndex 機能をサポートする。
次の表、表 E-1 – 機能サポートは、 定義済みのすべての feature designation(TT Feature 名前空間なしで表される)を列挙し、各指定された機能について、 (1) その feature designation が最初に定義された TTML のバージョン、および (2) 3.2.2 変換プロセッサ 適合性または 3.2.3 提示 プロセッサ適合性の要件に準拠する TTML content processor に対して、 指定された機能を実装しなければならない、すなわち mandatory (M) であるか、 実装してもよい、すなわち optional (O) であるかを指定する。
注:
場合によっては、この仕様のこの(または後の)バージョンで、それ以前には
定義されていなかった新しい feature designation が定義されるが、それでも
そのように指定された基礎となる機能的な feature は、以前のバージョンによって
すでに定義されていたことがある。たとえば、#padding-region
designation はここで導入される。しかし、それが参照する機能は、以前は
#padding designation の下に含まれており、
これは現在 #padding-region によって定義されている。ここでは、
TTML1 で導入された #padding と、
TTML2 で導入された #padding-region の基礎となる意味は同一のままである。
便宜上、次の表、 表 E-2 – 必須機能 - 変換は、 3.2.2 変換プロセッサ 適合性の要件に準拠する TTML content processor に対する すべての必須機能を列挙し、使用コンテキストまたは機能の性質を要約するための 追加コメントを提供する。 対応する TTML Transformation Profile を定義する profile definition document は、 G.3 TTML2 Transformation Profileで 指定される。
| 機能指定 | コメント |
#content |
body,
div,
p,
span,
br
|
#contentProfiles |
|
#core |
xml:id,
xml:lang,
xml:space
|
#processorProfiles |
|
#profile |
|
#profile-version-2 |
|
#structure |
tt,
head
|
#time-offset |
|
#timing |
begin,
dur,
end
|
#transformation |
|
#transformation-version-2
|
便宜上、次の表、 表 E-3 – 必須機能 - 提示は、 3.2.3 提示プロセッサ適合性の 要件に準拠する TTML content processor に対する すべての必須機能を列挙し、使用コンテキストまたは機能の性質を要約するための 追加コメントを提供する。 対応する TTML Presentation Profile を定義する profile definition document は、 G.2 TTML2 Presentation Profileで 指定される。
| 機能指定 | コメント |
#content |
body,
div,
p,
span,
br
|
#contentProfiles |
|
#core |
xml:id,
xml:lang,
xml:space
|
#processorProfiles |
|
#profile |
|
#profile-version-2 |
|
#presentation |
|
#presentation-version-2 |
|
#structure |
tt,
head
|
#time-offset |
|
#timing |
begin,
dur,
end
|
この付録は規範的である。
この付録では、TTML プロセッサにおける extension mechanisms のサポートに関する著者の意図を表すために使用される、 extension designation の構文形式を指定する。
extension designation は、次の形式に従う文字列として表される。
extension-designation
: extension-namespace designation
extension-namespace
: TT Extension Namespace // http://www.w3.org/ns/ttml/extension/
| Other Extension Namespace // expressed as an absolute URI
designation
: "#" token-char+
token-char
: { XML NameChar } // [XML 1.1] Production [4a]
extension designation の extension namespace が TT
Extension Namespace である場合、後続する
designation token のすべての値は、将来の
標準化のために予約される。
extension designation の extension namespace が
TT Extension Namespace ではない、すなわち Other Extension Namespace
である場合、その extension namespace は、fragment
identifier の形式を取る designation token と組み合わせて使用される
base URI として機能できる絶対 URI として表されなければならない。
この付録は規範的である。
この付録では、次の標準 TTML profile を指定するか、または参照によって組み込む。
各 TTML profile は、profile definition documentの観点から定義される。 これは XML 文書として表され、その root element は 6.1.1 ttp:profileに従う。
TTML2 Full Profile は、transformation processing および presentation processing の 両方について最大限の適合性を表すために使用されることを意図している。
注:
この profile は DFXP Full Profile の上位集合である。
<?xml version="1.0" encoding="utf-8"?>
<!-- this file defines the "ttml2-full" profile of ttml -->
<profile xmlns="http://www.w3.org/ns/ttml#parameter"
designator="http://www.w3.org/ns/ttml/profile/ttml2-full">
<features xml:base="http://www.w3.org/ns/ttml/feature/">
<!-- required (mandatory) feature support -->
<feature value="required" extends="#animate-minimal">#animate</feature>
<feature value="required">#animate-fill</feature>
<feature value="required">#animate-minimal</feature>
<feature value="required">#animate-paced</feature>
<feature value="required">#animate-spline</feature>
<feature value="required">#animate-repeat</feature>
<feature value="required">#animation</feature>
<feature value="required">#animation-out-of-line</feature>
<feature value="required" extends="#animation">#animation-version-2</feature>
<feature value="required">#audio</feature>
<feature value="required">#audio-description</feature>
<feature value="required">#audio-speech</feature>
<feature value="required">#background</feature>
<feature value="required">#background-image</feature>
<feature value="required">#backgroundClip</feature>
<feature value="required">#backgroundColor-block</feature>
<feature value="required">#backgroundColor-inline</feature>
<feature value="required">#backgroundColor-region</feature>
<feature value="required">#backgroundColor</feature>
<feature value="required">#backgroundExtent</feature>
<feature value="required">#backgroundImage</feature>
<feature value="required">#backgroundOrigin</feature>
<feature value="required">#backgroundPosition</feature>
<feature value="required">#backgroundRepeat</feature>
<feature value="required">#base</feature>
<feature value="required">#base-general</feature>
<feature value="required" extends="#base">#base-version-2</feature>
<feature value="required">#bidi</feature>
<feature value="required" extends="#bidi">#bidi-version-2</feature>
<feature value="required">#border</feature>
<feature value="required">#border-block</feature>
<feature value="required">#border-inline</feature>
<feature value="required">#border-radii</feature>
<feature value="required">#border-radii-1</feature>
<feature value="required">#border-radii-2</feature>
<feature value="required">#border-region</feature>
<feature value="required">#bpd</feature>
<feature value="required">#cellResolution</feature>
<feature value="required">#chunk</feature>
<feature value="required">#clockMode</feature>
<feature value="required">#clockMode-gps</feature>
<feature value="required">#clockMode-local</feature>
<feature value="required">#clockMode-utc</feature>
<feature value="required">#color</feature>
<feature value="required">#condition</feature>
<feature value="required">#condition-fn-media</feature>
<feature value="required">#condition-fn-parameter</feature>
<feature value="required">#condition-fn-supports</feature>
<feature value="required">#condition-primary</feature>
<feature value="required">#content</feature>
<feature value="required">#content-sizing</feature>
<feature value="required">#contentProfiles</feature>
<feature value="required" extends="#contentProfiles">#contentProfiles-combined</feature>
<feature value="required">#core</feature>
<feature value="required">#data</feature>
<feature value="required">#direction</feature>
<feature value="required">#disparity</feature>
<feature value="required">#display</feature>
<feature value="required">#display-block</feature>
<feature value="required">#display-inline</feature>
<feature value="required">#display-inlineBlock</feature>
<feature value="required">#display-region</feature>
<feature value="required" extends="#display">#display-version-2</feature>
<feature value="required">#displayAlign</feature>
<feature value="required">#displayAlign-block</feature>
<feature value="required">#displayAlign-justify</feature>
<feature value="required">#displayAlign-region</feature>
<feature value="required">#displayAlign-relative</feature>
<feature value="required" extends="#displayAlign">#displayAlign-version-2</feature>
<feature value="required">#displayAspectRatio</feature>
<feature value="required">#dropMode</feature>
<feature value="required">#dropMode-dropNTSC</feature>
<feature value="required">#dropMode-dropPAL</feature>
<feature value="required">#dropMode-nonDrop</feature>
<feature value="required">#embedded-audio</feature>
<feature value="required">#embedded-content</feature>
<feature value="required">#embedded-data</feature>
<feature value="required">#embedded-font</feature>
<feature value="required">#embedded-image</feature>
<feature value="required">#extent</feature>
<feature value="required">#extent-auto</feature>
<feature value="required" extends="#extent-auto">#extent-auto-version-2</feature>
<feature value="required">#extent-contain</feature>
<feature value="required">#extent-cover</feature>
<feature value="required" extends="#extent-version-2">#extent-full-version-2</feature>
<feature value="required">#extent-image</feature>
<feature value="required">#extent-length</feature>
<feature value="required" extends="#extent-length">#extent-length-version-2</feature>
<feature value="required">#extent-measure</feature>
<feature value="required">#extent-region</feature>
<feature value="required" extends="#extent-region">#extent-region-version-2</feature>
<feature value="required">#extent-root</feature>
<feature value="required" extends="#extent-root">#extent-root-version-2</feature>
<feature value="required" extends="#extent">#extent-version-2</feature>
<feature value="required">#font</feature>
<feature value="required">#fontFamily</feature>
<feature value="required">#fontFamily-generic</feature>
<feature value="required">#fontFamily-non-generic</feature>
<feature value="required">#fontKerning</feature>
<feature value="required">#fontSelectionStrategy</feature>
<feature value="required">#fontSelectionStrategy-character</feature>
<feature value="required">#fontShear</feature>
<feature value="required">#fontSize</feature>
<feature value="required">#fontSize-anamorphic</feature>
<feature value="required">#fontSize-isomorphic</feature>
<feature value="required">#fontStyle</feature>
<feature value="required">#fontStyle-italic</feature>
<feature value="required">#fontStyle-oblique</feature>
<feature value="required">#fontVariant</feature>
<feature value="required">#fontWeight</feature>
<feature value="required">#fontWeight-bold</feature>
<feature value="required">#frameRate</feature>
<feature value="required">#frameRateMultiplier</feature>
<feature value="required">#gain</feature>
<feature value="required">#image</feature>
<feature value="required">#image-png</feature>
<feature value="required">#initial</feature>
<feature value="required">#ipd</feature>
<feature value="required">#layout</feature>
<feature value="required">#length</feature>
<feature value="required">#length-cell</feature>
<feature value="required">#length-em</feature>
<feature value="required">#length-integer</feature>
<feature value="required">#length-negative</feature>
<feature value="required">#length-percentage</feature>
<feature value="required">#length-pixel</feature>
<feature value="required">#length-positive</feature>
<feature value="required">#length-real</feature>
<feature value="required">#length-root-container-relative</feature>
<feature value="required" extends="#length">#length-version-2</feature>
<feature value="required">#letterSpacing</feature>
<feature value="required">#lineBreak-uax14</feature>
<feature value="required">#lineHeight</feature>
<feature value="required">#lineShear</feature>
<feature value="required">#luminance</feature>
<feature value="required">#markerMode</feature>
<feature value="required">#markerMode-continuous</feature>
<feature value="required">#markerMode-discontinuous</feature>
<feature value="required">#metadata</feature>
<feature value="required">#metadata-item</feature>
<feature value="required" extends="#metadata">#metadata-version-2</feature>
<feature value="required">#nested-div</feature>
<feature value="required">#nested-span</feature>
<feature value="required">#opacity</feature>
<feature value="required">#opacity-block</feature>
<feature value="required">#opacity-inline</feature>
<feature value="required">#opacity-region</feature>
<feature value="required" extends="#opacity">#opacity-version-2</feature>
<feature value="required">#origin</feature>
<feature value="required">#overflow</feature>
<feature value="required">#overflow-visible</feature>
<feature value="required">#padding</feature>
<feature value="required">#padding-1</feature>
<feature value="required">#padding-2</feature>
<feature value="required">#padding-3</feature>
<feature value="required">#padding-4</feature>
<feature value="required">#padding-block</feature>
<feature value="required">#padding-inline</feature>
<feature value="required">#padding-region</feature>
<feature value="required" extends="#padding">#padding-version-2</feature>
<feature value="required">#pan</feature>
<feature value="required">#permitFeatureNarrowing</feature>
<feature value="required">#permitFeatureWidening</feature>
<feature value="required">#pitch</feature>
<feature value="required">#pixelAspectRatio</feature>
<feature value="required">#position</feature>
<feature value="required">#presentation</feature>
<feature value="required" extends="#presentation">#presentation-version-2</feature>
<feature value="required">#processorProfiles</feature>
<feature value="required" extends="#processorProfiles">#processorProfiles-combined</feature>
<feature value="required">#profile</feature>
<feature value="required" extends="#profile-version-2">#profile-full-version-2</feature>
<feature value="required">#profile-nesting</feature>
<feature value="required" extends="#profile">#profile-version-2</feature>
<feature value="required">#region-implied-animation</feature>
<feature value="required">#region-inline</feature>
<feature value="required">#region-timing</feature>
<feature value="required">#resources</feature>
<feature value="required">#ruby</feature>
<feature value="required">#ruby-full</feature>
<feature value="required">#rubyAlign</feature>
<feature value="required">#rubyAlign-minimal</feature>
<feature value="required">#rubyAlign-withBase</feature>
<feature value="required">#rubyPosition</feature>
<feature value="required">#rubyReserve</feature>
<feature value="required" extends="#animation">#set</feature>
<feature value="required">#set-fill</feature>
<feature value="required">#set-multiple-styles</feature>
<feature value="required">#set-repeat</feature>
<feature value="required">#shear</feature>
<feature value="required">#showBackground</feature>
<feature value="required">#source</feature>
<feature value="required">#speak</feature>
<feature value="required">#speech</feature>
<feature value="required">#structure</feature>
<feature value="required">#styling</feature>
<feature value="required">#styling-chained</feature>
<feature value="required">#styling-inheritance-content</feature>
<feature value="required">#styling-inheritance-region</feature>
<feature value="required">#styling-inline</feature>
<feature value="required">#styling-nested</feature>
<feature value="required">#styling-referential</feature>
<feature value="required">#subFrameRate</feature>
<feature value="required">#textAlign</feature>
<feature value="required">#textAlign-absolute</feature>
<feature value="required">#textAlign-justify</feature>
<feature value="required">#textAlign-relative</feature>
<feature value="required" extends="#textAlign">#textAlign-version-2</feature>
<feature value="required">#textCombine</feature>
<feature value="required">#textDecoration</feature>
<feature value="required">#textDecoration-over</feature>
<feature value="required">#textDecoration-through</feature>
<feature value="required">#textDecoration-under</feature>
<feature value="required" extends="#textEmphasis-minimal">#textEmphasis</feature>
<feature value="required">#textEmphasis-color</feature>
<feature value="required">#textEmphasis-minimal</feature>
<feature value="required">#textEmphasis-quoted-string</feature>
<feature value="required">#textOrientation</feature>
<feature value="required">#textOutline</feature>
<feature value="required">#textOutline-blurred</feature>
<feature value="required">#textOutline-unblurred</feature>
<feature value="required">#textShadow</feature>
<feature value="required">#tickRate</feature>
<feature value="required">#time-clock-with-frames</feature>
<feature value="required">#time-clock</feature>
<feature value="required">#time-offset-with-frames</feature>
<feature value="required">#time-offset-with-ticks</feature>
<feature value="required">#time-offset</feature>
<feature value="required">#time-wall-clock</feature>
<feature value="required">#timeBase-clock</feature>
<feature value="required">#timeBase-media</feature>
<feature value="required">#timeBase-smpte</feature>
<feature value="required">#timeContainer</feature>
<feature value="required">#timing</feature>
<feature value="required">#transformation</feature>
<feature value="required" extends="#transformation">#transformation-version-2</feature>
<feature value="required">#unicodeBidi</feature>
<feature value="required">#unicodeBidi-isolate</feature>
<feature value="required" extends="#unicodeBidi">#unicodeBidi-version-2</feature>
<feature value="required">#validation</feature>
<feature value="required">#visibility</feature>
<feature value="required">#visibility-block</feature>
<feature value="required">#visibility-image</feature>
<feature value="required">#visibility-inline</feature>
<feature value="required">#visibility-region</feature>
<feature value="required" extends="#visibility">#visibility-version-2</feature>
<feature value="required">#wrapOption</feature>
<feature value="required">#writingMode</feature>
<feature value="required">#writingMode-horizontal-lr</feature>
<feature value="required">#writingMode-horizontal-rl</feature>
<feature value="required">#writingMode-horizontal</feature>
<feature value="required">#writingMode-vertical</feature>
<feature value="required">#xlink</feature>
<feature value="required">#zIndex</feature>
<!-- optional (voluntary) feature support -->
</features>
<extensions xml:base="http://www.w3.org/ns/ttml/extension/">
<!-- required (mandatory) extension support -->
<!-- optional (voluntary) extension support -->
</extensions>
</profile>
TTML2 Presentation Profile は、presentation processing について 最小限の適合性を表すために使用されることを意図している。
注:
この profile は DFXP Presentation Profile の上位集合である。
<?xml version="1.0" encoding="utf-8"?>
<!-- this file defines the "ttml2-presentation" profile of ttml -->
<profile xmlns="http://www.w3.org/ns/ttml#parameter"
designator="http://www.w3.org/ns/ttml/profile/ttml2-presentation">
<features xml:base="http://www.w3.org/ns/ttml/feature/">
<!-- required (mandatory) feature support -->
<feature value="required">#content</feature>
<feature value="required">#contentProfiles</feature>
<feature value="required">#core</feature>
<feature value="required">#presentation</feature>
<feature value="required" extends="#presentation">#presentation-version-2</feature>
<feature value="required">#processorProfiles</feature>
<feature value="required">#profile</feature>
<feature value="required" extends="#profile">#profile-version-2</feature>
<feature value="required">#structure</feature>
<feature value="required">#time-offset</feature>
<feature value="required">#timing</feature>
<!-- optional (voluntary) feature support -->
<feature value="optional">#animate</feature>
<feature value="optional">#animate-fill</feature>
<feature value="optional">#animate-minimal</feature>
<feature value="optional">#animate-paced</feature>
<feature value="optional">#animate-spline</feature>
<feature value="optional">#animate-repeat</feature>
<feature value="optional">#animation</feature>
<feature value="optional">#animation-out-of-line</feature>
<feature value="optional" extends="#animation">#animation-version-2</feature>
<feature value="optional">#audio</feature>
<feature value="optional">#audio-description</feature>
<feature value="optional">#audio-speech</feature>
<feature value="optional">#background</feature>
<feature value="optional">#background-image</feature>
<feature value="optional">#backgroundClip</feature>
<feature value="optional">#backgroundColor-block</feature>
<feature value="optional">#backgroundColor-inline</feature>
<feature value="optional">#backgroundColor-region</feature>
<feature value="optional">#backgroundColor</feature>
<feature value="optional">#backgroundExtent</feature>
<feature value="optional">#backgroundImage</feature>
<feature value="optional">#backgroundOrigin</feature>
<feature value="optional">#backgroundPosition</feature>
<feature value="optional">#backgroundRepeat</feature>
<feature value="optional">#base</feature>
<feature value="optional">#base-general</feature>
<feature value="optional" extends="#base">#base-version-2</feature>
<feature value="optional">#bidi</feature>
<feature value="optional" extends="#bidi">#bidi-version-2</feature>
<feature value="optional">#border</feature>
<feature value="optional">#border-block</feature>
<feature value="optional">#border-inline</feature>
<feature value="optional">#border-radii</feature>
<feature value="optional">#border-radii-1</feature>
<feature value="optional">#border-radii-2</feature>
<feature value="optional">#border-region</feature>
<feature value="optional">#bpd</feature>
<feature value="optional">#cellResolution</feature>
<feature value="optional">#chunk</feature>
<feature value="optional">#clockMode</feature>
<feature value="optional">#clockMode-gps</feature>
<feature value="optional">#clockMode-local</feature>
<feature value="optional">#clockMode-utc</feature>
<feature value="optional">#color</feature>
<feature value="optional">#condition</feature>
<feature value="optional">#condition-fn-media</feature>
<feature value="optional">#condition-fn-parameter</feature>
<feature value="optional">#condition-fn-supports</feature>
<feature value="optional">#condition-primary</feature>
<feature value="optional">#content-sizing</feature>
<feature value="optional" extends="#contentProfiles">#contentProfiles-combined</feature>
<feature value="optional">#data</feature>
<feature value="optional">#direction</feature>
<feature value="optional">#disparity</feature>
<feature value="optional">#display</feature>
<feature value="optional">#display-block</feature>
<feature value="optional">#display-inline</feature>
<feature value="optional">#display-inlineBlock</feature>
<feature value="optional">#display-region</feature>
<feature value="optional" extends="#display">#display-version-2</feature>
<feature value="optional">#displayAlign</feature>
<feature value="optional">#displayAlign-block</feature>
<feature value="optional">#displayAlign-justify</feature>
<feature value="optional">#displayAlign-region</feature>
<feature value="optional">#displayAlign-relative</feature>
<feature value="optional" extends="#displayAlign">#displayAlign-version-2</feature>
<feature value="optional">#displayAspectRatio</feature>
<feature value="optional">#dropMode</feature>
<feature value="optional">#dropMode-dropNTSC</feature>
<feature value="optional">#dropMode-dropPAL</feature>
<feature value="optional">#dropMode-nonDrop</feature>
<feature value="optional">#embedded-audio</feature>
<feature value="optional">#embedded-content</feature>
<feature value="optional">#embedded-data</feature>
<feature value="optional">#embedded-font</feature>
<feature value="optional">#embedded-image</feature>
<feature value="optional">#extent</feature>
<feature value="optional">#extent-auto</feature>
<feature value="optional" extends="#extent-auto">#extent-auto-version-2</feature>
<feature value="optional">#extent-contain</feature>
<feature value="optional">#extent-cover</feature>
<feature value="optional" extends="#extent-version-2">#extent-full-version-2</feature>
<feature value="optional">#extent-image</feature>
<feature value="optional">#extent-length</feature>
<feature value="optional" extends="#extent-length">#extent-length-version-2</feature>
<feature value="optional">#extent-measure</feature>
<feature value="optional">#extent-region</feature>
<feature value="optional" extends="#extent-region">#extent-region-version-2</feature>
<feature value="optional">#extent-root</feature>
<feature value="optional" extends="#extent-root">#extent-root-version-2</feature>
<feature value="optional" extends="#extent">#extent-version-2</feature>
<feature value="optional">#font</feature>
<feature value="optional">#fontFamily</feature>
<feature value="optional">#fontFamily-generic</feature>
<feature value="optional">#fontFamily-non-generic</feature>
<feature value="optional">#fontKerning</feature>
<feature value="optional">#fontSelectionStrategy</feature>
<feature value="optional">#fontSelectionStrategy-character</feature>
<feature value="optional">#fontShear</feature>
<feature value="optional">#fontSize</feature>
<feature value="optional">#fontSize-anamorphic</feature>
<feature value="optional">#fontSize-isomorphic</feature>
<feature value="optional">#fontStyle</feature>
<feature value="optional">#fontStyle-italic</feature>
<feature value="optional">#fontStyle-oblique</feature>
<feature value="optional">#fontVariant</feature>
<feature value="optional">#fontWeight</feature>
<feature value="optional">#fontWeight-bold</feature>
<feature value="optional">#frameRate</feature>
<feature value="optional">#frameRateMultiplier</feature>
<feature value="optional">#gain</feature>
<feature value="optional">#image</feature>
<feature value="optional">#image-png</feature>
<feature value="optional">#initial</feature>
<feature value="optional">#ipd</feature>
<feature value="optional">#layout</feature>
<feature value="optional">#length</feature>
<feature value="optional">#length-cell</feature>
<feature value="optional">#length-em</feature>
<feature value="optional">#length-integer</feature>
<feature value="optional">#length-negative</feature>
<feature value="optional">#length-percentage</feature>
<feature value="optional">#length-pixel</feature>
<feature value="optional">#length-positive</feature>
<feature value="optional">#length-real</feature>
<feature value="optional">#length-root-container-relative</feature>
<feature value="optional" extends="#length">#length-version-2</feature>
<feature value="optional">#letterSpacing</feature>
<feature value="optional">#lineBreak-uax14</feature>
<feature value="optional">#lineHeight</feature>
<feature value="optional">#lineShear</feature>
<feature value="optional">#luminance</feature>
<feature value="optional">#markerMode</feature>
<feature value="optional">#markerMode-continuous</feature>
<feature value="optional">#markerMode-discontinuous</feature>
<feature value="optional">#metadata</feature>
<feature value="optional">#metadata-item</feature>
<feature value="optional" extends="#metadata">#metadata-version-2</feature>
<feature value="optional">#nested-div</feature>
<feature value="optional">#nested-span</feature>
<feature value="optional">#opacity</feature>
<feature value="optional">#opacity-block</feature>
<feature value="optional">#opacity-inline</feature>
<feature value="optional">#opacity-region</feature>
<feature value="optional" extends="#opacity">#opacity-version-2</feature>
<feature value="optional">#origin</feature>
<feature value="optional">#overflow</feature>
<feature value="optional">#overflow-visible</feature>
<feature value="optional">#padding</feature>
<feature value="optional">#padding-1</feature>
<feature value="optional">#padding-2</feature>
<feature value="optional">#padding-3</feature>
<feature value="optional">#padding-4</feature>
<feature value="optional">#padding-block</feature>
<feature value="optional">#padding-inline</feature>
<feature value="optional">#padding-region</feature>
<feature value="optional" extends="#padding">#padding-version-2</feature>
<feature value="optional">#pan</feature>
<feature value="optional">#permitFeatureNarrowing</feature>
<feature value="optional">#permitFeatureWidening</feature>
<feature value="optional">#pitch</feature>
<feature value="optional">#pixelAspectRatio</feature>
<feature value="optional">#position</feature>
<feature value="optional" extends="#processorProfiles">#processorProfiles-combined</feature>
<feature value="optional" extends="#profile-version-2">#profile-full-version-2</feature>
<feature value="optional">#profile-nesting</feature>
<feature value="optional">#region-implied-animation</feature>
<feature value="optional">#region-inline</feature>
<feature value="optional">#region-timing</feature>
<feature value="optional">#resources</feature>
<feature value="optional">#ruby</feature>
<feature value="optional">#ruby-full</feature>
<feature value="optional">#rubyAlign</feature>
<feature value="optional">#rubyAlign-minimal</feature>
<feature value="optional">#rubyAlign-withBase</feature>
<feature value="optional">#rubyPosition</feature>
<feature value="optional">#rubyReserve</feature>
<feature value="optional" extends="#animation">#set</feature>
<feature value="optional">#set-fill</feature>
<feature value="optional">#set-multiple-styles</feature>
<feature value="optional">#set-repeat</feature>
<feature value="optional">#shear</feature>
<feature value="optional">#showBackground</feature>
<feature value="optional">#source</feature>
<feature value="optional">#speak</feature>
<feature value="optional">#speech</feature>
<feature value="optional">#styling</feature>
<feature value="optional">#styling-chained</feature>
<feature value="optional">#styling-inheritance-content</feature>
<feature value="optional">#styling-inheritance-region</feature>
<feature value="optional">#styling-inline</feature>
<feature value="optional">#styling-nested</feature>
<feature value="optional">#styling-referential</feature>
<feature value="optional">#subFrameRate</feature>
<feature value="optional">#textAlign</feature>
<feature value="optional">#textAlign-absolute</feature>
<feature value="optional">#textAlign-justify</feature>
<feature value="optional">#textAlign-relative</feature>
<feature value="optional" extends="#textAlign">#textAlign-version-2</feature>
<feature value="optional">#textCombine</feature>
<feature value="optional">#textDecoration</feature>
<feature value="optional">#textDecoration-over</feature>
<feature value="optional">#textDecoration-through</feature>
<feature value="optional">#textDecoration-under</feature>
<feature value="optional" extends="#textEmphasis-minimal">#textEmphasis</feature>
<feature value="optional">#textEmphasis-color</feature>
<feature value="optional">#textEmphasis-minimal</feature>
<feature value="optional">#textEmphasis-quoted-string</feature>
<feature value="optional">#textOrientation</feature>
<feature value="optional">#textOutline</feature>
<feature value="optional">#textOutline-blurred</feature>
<feature value="optional">#textOutline-unblurred</feature>
<feature value="optional">#textShadow</feature>
<feature value="optional">#tickRate</feature>
<feature value="optional">#time-clock-with-frames</feature>
<feature value="optional">#time-clock</feature>
<feature value="optional">#time-offset-with-frames</feature>
<feature value="optional">#time-offset-with-ticks</feature>
<feature value="optional">#time-wall-clock</feature>
<feature value="optional">#timeBase-clock</feature>
<feature value="optional">#timeBase-media</feature>
<feature value="optional">#timeBase-smpte</feature>
<feature value="optional">#timeContainer</feature>
<feature value="optional">#transformation</feature>
<feature value="optional" extends="#transformation">#transformation-version-2</feature>
<feature value="optional">#unicodeBidi</feature>
<feature value="optional">#unicodeBidi-isolate</feature>
<feature value="optional" extends="#unicodeBidi">#unicodeBidi-version-2</feature>
<feature value="optional">#validation</feature>
<feature value="optional">#visibility</feature>
<feature value="optional">#visibility-block</feature>
<feature value="optional">#visibility-image</feature>
<feature value="optional">#visibility-inline</feature>
<feature value="optional">#visibility-region</feature>
<feature value="optional" extends="#visibility">#visibility-version-2</feature>
<feature value="optional">#wrapOption</feature>
<feature value="optional">#writingMode</feature>
<feature value="optional">#writingMode-horizontal-lr</feature>
<feature value="optional">#writingMode-horizontal-rl</feature>
<feature value="optional">#writingMode-horizontal</feature>
<feature value="optional">#writingMode-vertical</feature>
<feature value="optional">#xlink</feature>
<feature value="optional">#zIndex</feature>
</features>
<extensions xml:base="http://www.w3.org/ns/ttml/extension/">
<!-- required (mandatory) extension support -->
<!-- optional (voluntary) extension support -->
</extensions>
</profile>
TTML2 Transformation Profile は、transformation processing について 最小限の適合性を表すために使用されることを意図している。
注:
この profile は DFXP Transformation Profile の上位集合である。
<?xml version="1.0" encoding="utf-8"?>
<!-- this file defines the "ttml2-transformation" profile of ttml -->
<profile xmlns="http://www.w3.org/ns/ttml#parameter"
designator="http://www.w3.org/ns/ttml/profile/ttml2-transformation">
<features xml:base="http://www.w3.org/ns/ttml/feature/">
<!-- required (mandatory) feature support -->
<feature value="required">#content</feature>
<feature value="required">#contentProfiles</feature>
<feature value="required">#core</feature>
<feature value="required">#processorProfiles</feature>
<feature value="required">#profile</feature>
<feature value="required" extends="#profile">#profile-version-2</feature>
<feature value="required">#structure</feature>
<feature value="required">#time-offset</feature>
<feature value="required">#timing</feature>
<feature value="required">#transformation</feature>
<feature value="required" extends="#transformation">#transformation-version-2</feature>
<!-- optional (voluntary) feature support -->
<feature value="optional">#animate</feature>
<feature value="optional">#animate-fill</feature>
<feature value="optional">#animate-minimal</feature>
<feature value="optional">#animate-paced</feature>
<feature value="optional">#animate-spline</feature>
<feature value="optional">#animate-repeat</feature>
<feature value="optional">#animation</feature>
<feature value="optional">#animation-out-of-line</feature>
<feature value="optional" extends="#animation">#animation-version-2</feature>
<feature value="optional">#audio</feature>
<feature value="optional">#audio-description</feature>
<feature value="optional">#audio-speech</feature>
<feature value="optional">#background</feature>
<feature value="optional">#background-image</feature>
<feature value="optional">#backgroundClip</feature>
<feature value="optional">#backgroundColor-block</feature>
<feature value="optional">#backgroundColor-inline</feature>
<feature value="optional">#backgroundColor-region</feature>
<feature value="optional">#backgroundColor</feature>
<feature value="optional">#backgroundExtent</feature>
<feature value="optional">#backgroundImage</feature>
<feature value="optional">#backgroundOrigin</feature>
<feature value="optional">#backgroundPosition</feature>
<feature value="optional">#backgroundRepeat</feature>
<feature value="optional">#base</feature>
<feature value="optional">#base-general</feature>
<feature value="optional" extends="#base">#base-version-2</feature>
<feature value="optional">#bidi</feature>
<feature value="optional" extends="#bidi">#bidi-version-2</feature>
<feature value="optional">#border</feature>
<feature value="optional">#border-block</feature>
<feature value="optional">#border-inline</feature>
<feature value="optional">#border-radii</feature>
<feature value="optional">#border-radii-1</feature>
<feature value="optional">#border-radii-2</feature>
<feature value="optional">#border-region</feature>
<feature value="optional">#bpd</feature>
<feature value="optional">#cellResolution</feature>
<feature value="optional">#chunk</feature>
<feature value="optional">#clockMode</feature>
<feature value="optional">#clockMode-gps</feature>
<feature value="optional">#clockMode-local</feature>
<feature value="optional">#clockMode-utc</feature>
<feature value="optional">#color</feature>
<feature value="optional">#condition</feature>
<feature value="optional">#condition-fn-media</feature>
<feature value="optional">#condition-fn-parameter</feature>
<feature value="optional">#condition-fn-supports</feature>
<feature value="optional">#condition-primary</feature>
<feature value="optional">#content-sizing</feature>
<feature value="optional" extends="#contentProfiles">#contentProfiles-combined</feature>
<feature value="optional">#data</feature>
<feature value="optional">#direction</feature>
<feature value="optional">#disparity</feature>
<feature value="optional">#display</feature>
<feature value="optional">#display-block</feature>
<feature value="optional">#display-inline</feature>
<feature value="optional">#display-inlineBlock</feature>
<feature value="optional">#display-region</feature>
<feature value="optional" extends="#display">#display-version-2</feature>
<feature value="optional">#displayAlign</feature>
<feature value="optional">#displayAlign-block</feature>
<feature value="optional">#displayAlign-justify</feature>
<feature value="optional">#displayAlign-region</feature>
<feature value="optional">#displayAlign-relative</feature>
<feature value="optional" extends="#displayAlign">#displayAlign-version-2</feature>
<feature value="optional">#displayAspectRatio</feature>
<feature value="optional">#dropMode</feature>
<feature value="optional">#dropMode-dropNTSC</feature>
<feature value="optional">#dropMode-dropPAL</feature>
<feature value="optional">#dropMode-nonDrop</feature>
<feature value="optional">#embedded-audio</feature>
<feature value="optional">#embedded-content</feature>
<feature value="optional">#embedded-data</feature>
<feature value="optional">#embedded-font</feature>
<feature value="optional">#embedded-image</feature>
<feature value="optional">#extent</feature>
<feature value="optional">#extent-auto</feature>
<feature value="optional" extends="#extent-auto">#extent-auto-version-2</feature>
<feature value="optional">#extent-contain</feature>
<feature value="optional">#extent-cover</feature>
<feature value="optional" extends="#extent-version-2">#extent-full-version-2</feature>
<feature value="optional">#extent-image</feature>
<feature value="optional">#extent-length</feature>
<feature value="optional" extends="#extent-length">#extent-length-version-2</feature>
<feature value="optional">#extent-measure</feature>
<feature value="optional">#extent-region</feature>
<feature value="optional" extends="#extent-region">#extent-region-version-2</feature>
<feature value="optional">#extent-root</feature>
<feature value="optional" extends="#extent-root">#extent-root-version-2</feature>
<feature value="optional" extends="#extent">#extent-version-2</feature>
<feature value="optional">#font</feature>
<feature value="optional">#fontFamily</feature>
<feature value="optional">#fontFamily-generic</feature>
<feature value="optional">#fontFamily-non-generic</feature>
<feature value="optional">#fontKerning</feature>
<feature value="optional">#fontSelectionStrategy</feature>
<feature value="optional">#fontSelectionStrategy-character</feature>
<feature value="optional">#fontShear</feature>
<feature value="optional">#fontSize</feature>
<feature value="optional">#fontSize-anamorphic</feature>
<feature value="optional">#fontSize-isomorphic</feature>
<feature value="optional">#fontStyle</feature>
<feature value="optional">#fontStyle-italic</feature>
<feature value="optional">#fontStyle-oblique</feature>
<feature value="optional">#fontVariant</feature>
<feature value="optional">#fontWeight</feature>
<feature value="optional">#fontWeight-bold</feature>
<feature value="optional">#frameRate</feature>
<feature value="optional">#frameRateMultiplier</feature>
<feature value="optional">#gain</feature>
<feature value="optional">#image</feature>
<feature value="optional">#image-png</feature>
<feature value="optional">#initial</feature>
<feature value="optional">#ipd</feature>
<feature value="optional">#layout</feature>
<feature value="optional">#length</feature>
<feature value="optional">#length-cell</feature>
<feature value="optional">#length-em</feature>
<feature value="optional">#length-integer</feature>
<feature value="optional">#length-negative</feature>
<feature value="optional">#length-percentage</feature>
<feature value="optional">#length-pixel</feature>
<feature value="optional">#length-positive</feature>
<feature value="optional">#length-real</feature>
<feature value="optional">#length-root-container-relative</feature>
<feature value="optional" extends="#length">#length-version-2</feature>
<feature value="optional">#letterSpacing</feature>
<feature value="optional">#lineBreak-uax14</feature>
<feature value="optional">#lineHeight</feature>
<feature value="optional">#lineShear</feature>
<feature value="optional">#luminance</feature>
<feature value="optional">#markerMode</feature>
<feature value="optional">#markerMode-continuous</feature>
<feature value="optional">#markerMode-discontinuous</feature>
<feature value="optional">#metadata</feature>
<feature value="optional">#metadata-item</feature>
<feature value="optional" extends="#metadata">#metadata-version-2</feature>
<feature value="optional">#nested-div</feature>
<feature value="optional">#nested-span</feature>
<feature value="optional">#opacity</feature>
<feature value="optional">#opacity-block</feature>
<feature value="optional">#opacity-inline</feature>
<feature value="optional">#opacity-region</feature>
<feature value="optional" extends="#opacity">#opacity-version-2</feature>
<feature value="optional">#origin</feature>
<feature value="optional">#overflow</feature>
<feature value="optional">#overflow-visible</feature>
<feature value="optional">#padding</feature>
<feature value="optional">#padding-1</feature>
<feature value="optional">#padding-2</feature>
<feature value="optional">#padding-3</feature>
<feature value="optional">#padding-4</feature>
<feature value="optional">#padding-block</feature>
<feature value="optional">#padding-inline</feature>
<feature value="optional">#padding-region</feature>
<feature value="optional" extends="#padding">#padding-version-2</feature>
<feature value="optional">#pan</feature>
<feature value="optional">#permitFeatureNarrowing</feature>
<feature value="optional">#permitFeatureWidening</feature>
<feature value="optional">#pitch</feature>
<feature value="optional">#pixelAspectRatio</feature>
<feature value="optional">#position</feature>
<feature value="optional">#presentation</feature>
<feature value="optional" extends="#presentation">#presentation-version-2</feature>
<feature value="optional" extends="#processorProfiles">#processorProfiles-combined</feature>
<feature value="optional" extends="#profile-version-2">#profile-full-version-2</feature>
<feature value="optional">#profile-nesting</feature>
<feature value="optional">#region-implied-animation</feature>
<feature value="optional">#region-inline</feature>
<feature value="optional">#region-timing</feature>
<feature value="optional">#resources</feature>
<feature value="optional">#ruby</feature>
<feature value="optional">#ruby-full</feature>
<feature value="optional">#rubyAlign</feature>
<feature value="optional">#rubyAlign-minimal</feature>
<feature value="optional">#rubyAlign-withBase</feature>
<feature value="optional">#rubyPosition</feature>
<feature value="optional">#rubyReserve</feature>
<feature value="optional" extends="#animation">#set</feature>
<feature value="optional">#set-fill</feature>
<feature value="optional">#set-multiple-styles</feature>
<feature value="optional">#set-repeat</feature>
<feature value="optional">#shear</feature>
<feature value="optional">#showBackground</feature>
<feature value="optional">#source</feature>
<feature value="optional">#speak</feature>
<feature value="optional">#speech</feature>
<feature value="optional">#styling</feature>
<feature value="optional">#styling-chained</feature>
<feature value="optional">#styling-inheritance-content</feature>
<feature value="optional">#styling-inheritance-region</feature>
<feature value="optional">#styling-inline</feature>
<feature value="optional">#styling-nested</feature>
<feature value="optional">#styling-referential</feature>
<feature value="optional">#subFrameRate</feature>
<feature value="optional">#textAlign</feature>
<feature value="optional">#textAlign-absolute</feature>
<feature value="optional">#textAlign-justify</feature>
<feature value="optional">#textAlign-relative</feature>
<feature value="optional" extends="#textAlign">#textAlign-version-2</feature>
<feature value="optional">#textCombine</feature>
<feature value="optional">#textDecoration</feature>
<feature value="optional">#textDecoration-over</feature>
<feature value="optional">#textDecoration-through</feature>
<feature value="optional">#textDecoration-under</feature>
<feature value="optional" extends="#textEmphasis-minimal">#textEmphasis</feature>
<feature value="optional">#textEmphasis-color</feature>
<feature value="optional">#textEmphasis-minimal</feature>
<feature value="optional">#textEmphasis-quoted-string</feature>
<feature value="optional">#textOrientation</feature>
<feature value="optional">#textOutline</feature>
<feature value="optional">#textOutline-blurred</feature>
<feature value="optional">#textOutline-unblurred</feature>
<feature value="optional">#textShadow</feature>
<feature value="optional">#tickRate</feature>
<feature value="optional">#time-clock-with-frames</feature>
<feature value="optional">#time-clock</feature>
<feature value="optional">#time-offset-with-frames</feature>
<feature value="optional">#time-offset-with-ticks</feature>
<feature value="optional">#time-wall-clock</feature>
<feature value="optional">#timeBase-clock</feature>
<feature value="optional">#timeBase-media</feature>
<feature value="optional">#timeBase-smpte</feature>
<feature value="optional">#timeContainer</feature>
<feature value="optional">#unicodeBidi</feature>
<feature value="optional">#unicodeBidi-isolate</feature>
<feature value="optional" extends="#unicodeBidi">#unicodeBidi-version-2</feature>
<feature value="optional">#validation</feature>
<feature value="optional">#visibility</feature>
<feature value="optional">#visibility-block</feature>
<feature value="optional">#visibility-image</feature>
<feature value="optional">#visibility-inline</feature>
<feature value="optional">#visibility-region</feature>
<feature value="optional" extends="#visibility">#visibility-version-2</feature>
<feature value="optional">#wrapOption</feature>
<feature value="optional">#writingMode</feature>
<feature value="optional">#writingMode-horizontal-lr</feature>
<feature value="optional">#writingMode-horizontal-rl</feature>
<feature value="optional">#writingMode-horizontal</feature>
<feature value="optional">#writingMode-vertical</feature>
<feature value="optional">#xlink</feature>
<feature value="optional">#zIndex</feature>
</features>
<extensions xml:base="http://www.w3.org/ns/ttml/extension/">
<!-- required (mandatory) extension support -->
<!-- optional (voluntary) extension support -->
</extensions>
</profile>
DFXP Full Profile は [TTML1]、 Appendix F.3, DFXP Full Profileによって 指定される。
DFXP Presentation Profile は [TTML1]、 Appendix F.2, DFXP Presentation Profileによって指定される。
DFXP Transformation Profile は [TTML1]、 Appendix F.1, DFXP Transformation Profileによって指定される。
この付録は規範的である。
この付録では、root container region とその使用に関する本質的な特性を決定するためのセマンティクスを指定する。これには次が含まれる。
aspect ratio(display、storage、pixel)。
resolution(spatial extent)。および
coordinate space。
root container region には 3 つの aspect ratio が適用される。
root container の display aspect ratio は、仮想的な表示装置上に
提示されることを意図した display pixels
の観点での root container の aspect ratio に対応する。
この display aspect ratio は、
tt 要素上の
ttp:displayAspectRatio 属性によって
明示的に指定されるか、または下記で説明する他の情報を使用して推論される。
注:
root container の pixels の実際の物理的な提示は、定義済みの TTML presentation processing の後で、aspect ratio、sample resolution、および color space に関する 多数の変換の対象となることがある。そのような post-TTML processing は、完全にこの仕様の範囲外である。
root container の storage aspect ratio は、
document coordinate space 内の
logical pixels
の観点での root container の aspect ratio に対応する。
ここで、双方向(単射かつ全射)のマッピングが各
logical pixel を
一意の display pixel に関連付ける。
この storage aspect ratio は、
tt 要素上の
tts:extent 属性によって明示的に指定されるか、
または下記で説明する他の情報を使用して推論される。
tts:extent 属性が
tt 要素上に指定される場合、
tts:extent 属性の値が 2 つの pixel-valued <length> 式から構成される場合、 storage aspect ratio は指定されているとみなされ、 extent の width をその height で割ったものに等しい数値を持つものとみなされる。
そうでない場合(算出値が contain である場合)、
storage aspect ratio は未指定とみなされ、下記で説明する他の情報を使用して推論される。
注:
logical pixel 自体には固有の aspect ratio はない。しかし、display pixel にマッピングされると、下記で指定される root container の pixel aspect ratio によって 定義される固定値を持つものとなる。
root container の pixel aspect ratio は、root container の各
display pixel
の aspect ratio を定義する。これにより、
document coordinate space 内の各
logical pixel は、
関連付けられた display pixel の固定された
aspect ratio を取り、DAR = SAR × PAR となる。
この pixel aspect ratio は、
tt 要素上の
ttp:pixelAspectRato 属性によって
明示的に指定されるか、または下記で説明する他の情報を使用して推論される。
以下の小節では、これらの aspect ratio が、文書内でどの(ratio)が指定されているかに従って どのように解決されるかを指定する。
3 つの aspect ratio のいずれも指定されていない場合、3 つの aspect ratio は 次の順序付き手順に従って決定される。
related media object が存在し、
定義済みの DAR を持つ場合、
DAR の解決値は
related media object の display aspect ratio
である。
そうでない場合、DAR の値は
document processing context によって
(任意に)決定される。
SAR および PAR の値は、その後、下記の
H.1.2 1 つの Aspect
Ratio に従って解決される。
3 つの aspect ratio のうち 1 つだけが指定されている場合、他の 2 つの aspect ratio の解決値は次のように決定される。
DAR が指定されているか、または上記の
H.1.1 Aspect
Ratio なし によって解決されていた場合、
その解決値はその指定値または解決値であり、
SAR および PAR の値は次のように決定される。
SAR の解決値は DAR の解決値である。
PAR の解決値は 1(1)である。
SAR が指定されている場合、その解決値はその指定値であり、
DAR および PAR の値は
次のように決定される。
related media object が存在し、
定義済みの DAR を持つ場合、
DAR の解決値は
related media object の
display aspect ratio であり、PAR の値は
その後、下記の
H.1.3 2 つの Aspect
Ratios に従って解決される。
そうでない場合、DAR の解決値は
document
processing context によって決定され、PAR の値は
その後、下記の
H.1.3 2 つの Aspect
Ratios に従って解決される。
PAR が指定されている場合、
その解決値はその指定値であり、DAR および
SAR の値は次のように決定される。
related media object が存在し、
定義済みの DAR を持つ場合、
DAR の解決値は
related media object の
display aspect ratio であり、SAR の値は
その後、下記の
H.1.3 2 つの Aspect
Ratios に従って解決される。
そうでない場合、SAR の解決値は
document
processing context によって決定され、DAR の値は
その後、下記の
H.1.3 2 つの Aspect
Ratios に従って解決される。
3 つの aspect ratio のうち 2 つが指定されているか、または以前に解決されている場合、
3 つ目の aspect ratio の解決値は、式
DAR = SAR × PAR を使用して決定される。
3 つの aspect ratio がすべて指定されており、それらの値が式
DAR = SAR × PAR を満たす場合、
それらは解決済みの aspect ratio とみなされる。しかし、式が満たされない場合、
validation processing を実行するときには
エラーが報告されるべきであり(validation processor configuration に従う)、
presentation processing を実行するときには、指定された PAR 値は無視され、
PAR の解決値は上記の
H.1.3 2 つの Aspect
Ratios によって決定される。
root container region は、固定数の row pixels と固定数の column pixels を持つ logical pixels の grid に細分される。ここで、column pixels の数は horizontal axis 上の root container region の resolution を表し、 row pixels の数は vertical axis 上の root container region の resolution を表す。前者は root container region の width、後者は root container region の height としてそれぞれ定義され、両方の axes に沿った (これら 2 つの)resolution の集合は、root container region の collective resolution または spatial extent と呼ばれる。
注:
上記の storage aspect ratio (SAR) で述べたように、 logical pixel には固有の aspect ratio がない。 つまり、logical pixel には定義された形状がなく、 したがって定義された size もない。 logical pixel が display pixel にマッピングされた場合にのみ、 固定された形状と size を持つ。 それにもかかわらず、logical pixel を 正方形で測定可能な絶対 size を持つものとして考えることはしばしば便利である。 しかし、読者はこの早すぎる(そしておそらく誤った)結論に達しないよう注意されたい。
tts:extent 属性の値が
tt 要素上に指定され、
2 つの pixel-valued <length> 式から構成される場合、
これら 2 つの式は root container region の
width および height を表し、
したがってその collective
resolution を決定する。
そうでない場合、root container region の
collective resolution は、
上記の H.1 Aspect Ratios によって
決定される SAR の解決値を尊重する方法で、
document
processing context によって(任意に)決定される。
注:
document processing context が root container region に任意の resolution を割り当てる場合、その内部処理上の制約および処理される document instance にとって便利な任意の方法で割り当ててもよい。 たとえば、related media object の storage aspect ratio に適用されるものと同じ resolution を割り当ててもよく、 または文書内に見られる length expressions の精度を評価して、その同じ精度を保持する logical resolution を割り当ててもよい。
root container region の coordinate space、別名
document coordinate space は、
無境界の 2 次元平面であり、その上に長方形 R の形式を取る
logical pixels の閉集合が定義される。
それらの pixels は R の境界の内部(内側)にあり、この coordinate space の origin
(position)は R の左上隅と一致し、vertical axis 上の正の pixels は下向きに延び、
horizontal axis 上の正の pixels は右向きに延びる。
さらに、R の width および
height は、root container region の解決済みの
resolution に設定される。
最後に、R に適用される aspect ratio は、上記で示したように
DAR、SAR、および PAR の解決値に従って確立される。
higher level protocol が適用されない限り、 document coordinate space は、所与の document instance を処理するときに一度だけ決定される。
この付録は規範的である。
この付録では、document instances 内の time expressions を解釈するためのセマンティクスを指定する。
注:
下記で使用される local real time という語句は、 document processing context 内の仮想 real time clock をモデル化することを意図している。 ここで local とは、この processing context の実装の直近にあることを意味する。 この仮想 clock との関係を定義する意図は、教授目的のために、局所的に有効な時間の物理的実現を 確立することである。
注:
下記で使用される play rate という語句は、 document processing context 内の(可変である可能性のある)parameter をモデル化することを 意図しており、その中で time の playback(または interpretation)の rate は、 たとえば related media object の playback の rate を 遅くしたり速くしたりするときに、人為的に拡大または縮小されることがある。 一般性を失うことなく、以下の説明は固定された play(back) rate を仮定する。 variable play rates の場合、結果として得られる計算に対して適切な調整が必要となることがある。
document processing context は、 synthetic document syncbase を確立するときに使用される、適用可能な epoch および任意の epoch-related offsets を 定義する。
clock time base で動作する場合、
<time-expression> によって定義される
time expressions を解釈するため、およびそれらの media time と local real time との関係について、
次のセマンティクスが適用される。
clock time base C は、epoch
E(document
processing context によって定義される)で表される local real time
R と、次のように関係する。
|
<time-expression> によって表される
time value expressions は、clock time
C と次のように関係する。
|
注:
time expressions の frames および sub-frames terms と
frames (f) metric は、clock time base を使用する場合には適用されない。
clock time base C は media time
M から独立している。
|
注:
すなわち、clock time base が使用される場合、timing は media time から切り離されている
(必ずしも比例しない)。たとえば、media play rate が 0 の場合、media
playback は中断される。しかし、timing coordinates は、reference clock base に直接比例して、
clock time の自然な進行に従って進み続ける。さらに、playback 中に media play rate が変化しても、
presentation timing は影響を受けない。
media time base で動作する場合、
<time-expression> によって定義される
time expressions を解釈するため、およびそれらの media time、document time、local real time
との関係について、次のセマンティクスが適用される。
media time base M は、epoch
E(document
processing context によって定義される)で表される local real time
R と次のように関係する。
|
注:
playRate の値が
document processing context によって
決定される場合、すなわち既定値 1.0 に設定されていない場合、
その値は document presentation の過程で real time において変化することがある。
この場合、所与の M の値に対する R の値は、
playRate の新しい値に基づいて再評価されることが期待される。
<time-expression> によって表される
time value expressions は、ttp:frameRate、ttp:subFrameRate、
および ttp:frameRateMultiplier parameters に従って、
media time M と次のように関係する。
|
注:
computed frameRateMultiplier ratio が整数でない場合、
effectiveFrameRate は整数でない有理数となる。
注:
上記の形式化は、
document temporal coordinate space
の begin time が
related media object の begin time と関係していることを
仮定している。この仮定が成り立たない場合、media time M を計算するときに、
その差を考慮する追加の offset を導入してもよい。
この小節は非規範的である。
ttp:timeBase="media" の場合、computed document times は
offset なしで等価な media times として使用される。
注:
たとえば wrapper format によって課される追加の media time processing は、 TTML 仕様の範囲外である。
たとえば、[ISOBMFF TT] は TTML documents を segmented および non-segmented files 内の samples として wrap する機構を提供し、 [MPEG DASH] は HTTP および MPEG-2 TS を介した fragmented delivery のための さらなる segmentation semantics を提供する。
次の document fragments は timing において等価である。
<tt ttp:timeBase="media" ...>
...
<body>
<div xml:id="d1" begin="1s">
<p xml:id="p1" begin="0s" end="1s">First paragraph</p>
<p xml:id="p2" begin="2s" end="3s">Second paragraph</p>
</div>
</body>
</tt>
|
<tt ttp:timeBase="media" ...>
...
<body>
<div xml:id="d1">
<p xml:id="p1" begin="1s" end="2s">First paragraph</p>
<p xml:id="p2" begin="3s" end="4s">Second paragraph</p>
</div>
</body>
</tt>
|
この例では、
[SMIL 3.0] の用語を使用すると、body
element の implicit duration は、その computed duration と同一であり、これは
Root Temporal
Extent でもある。しかし、
document processing
context が適用可能な media times の範囲を指定する場合、それらは解決済みの
begin および end times を制限し、したがって
Root Temporal
Extent を制限する。
次の例では、processing context は、document が active である media time range が 1.5s から 3.5s までであると定義し、timed content が それら両方の時刻に存在するため、これが Root Temporal Extent を定義する。
灰色の背景は、 document processing context が document を inactive と定義する期間を示す。 document temporal coordinate space は、この transformation の影響を受けない。
document processing context が media time range を 0-3s と定義した場合、 Root Temporal Extent は p1 によって定義される 1s から 2s までとなり、p2 は決して 表示されない。
smpte time base で動作する場合、
<time-expression> によって定義される
time expressions を解釈するため、およびそれらの media time と local real time との関係について、
次のセマンティクスが適用される。
ttp:markerMode parameter の computed value が discontinuous である場合、
time expressions と media time M または local real time
R との間に直接的な関係はない。この場合、
time expressions は、related media object 内で
smpte time codes
が検出されたときに document processing context
によって発行される同期イベント(markers)を参照する。
そうでなく、ttp:markerMode parameter の computed value が
continuous である場合、time expressions と
local real time および media time との関係は、
synthetic smpte document syncbase の観点で
下記のように説明され、ここでは
SMPTE time base S と呼ばれる。
|
注:
smpte time base が適用される場合の time expressions の
offset-time 形式および fraction component の両方の非推奨化については、
<time-expression> を参照。
SMPTE time base S は media time base
M と次のように関係する。
|
上記で説明したように派生された media time base が与えられると、
media time base M は local real time
R と、上記の
I.2 Media Time Base で説明されるように関係する。
この付録は規範的である。
この付録では、 timed text intermediate document の構文要素および構造を指定する。 ISD インスタンスは、単独の文書インスタンスとして、または ISD Sequence インスタンスとして表される集合の中で表すことができる。
ISD 関連のすべての語彙は、TTML ISD 名前空間で定義される。これはここでは
http://www.w3.org/ns/ttml#isd
と定義され、推奨される接頭辞は isd である。
注:
TTML ISD 名前空間の要素を使用することに加え、ISD 文書インスタンスは通常、 5.1 名前空間で定義される 1 つ以上の他の TTML 名前空間の語彙を含む。
TTML Intermediate Synchronic Document、略して
ISD または ISD インスタンスは、
ソース TTML 文書の離散的で時間的に重ならない区間、すなわち ISD 区間を表す。
その区間内では、非離散アニメーションを除き、すべての内容、スタイル、およびレイアウト
情報は静的なままである。
特に、TTML 文書のタイミング階層は平坦化され、その後、時間的に
重ならない区間に細分される。各区間は、その区間内におけるソース TTML 文書の
静的ビューを定義し、その静的ビューは ISD インスタンスとして表される。
TTML
Intermediate Synchronic Document の
具体的な単独インスタンスは、
isd:isd 要素をそのルート文書要素として指定しなければならない。
Intermediate Synchronic Document の
インスタンスが
Intermediate Synchronic Document Sequence
インスタンスに含まれる場合、その ISD インスタンスは、ルート
isd:sequence 要素の子要素である
isd:isd によって表される。
注:
ISD インスタンスは、関連する区間内の連続アニメーションを示す 1 つ以上の animate 要素を含むことがある。 連続的にアニメーションされるスタイルは、ISD 区間境界をまたいで細分され、 その段階的な連結が、交差する任意の ISD 区間にわたって等価な連続アニメーションを表すようにする。
TTML Intermediate Synchronic Document
Sequence は、開始時刻に従って順序付けられた、時間的に重ならない
Intermediate Synchronic
Document インスタンスの集合を表す。TTML
Intermediate Synchronic Document Sequence
の具体的なインスタンスは、
isd:sequence 要素をそのルート文書要素として
指定しなければならない。
isd:sequence 要素は、Intermediate
Synchronic Document Sequence 文書のルート文書要素として機能する。
isd:sequence 要素は、その子として 0 個以上の
ttm:metadata 要素、
続いて 0 個または 1 個の ttp:profile
要素、
続いて 0 個以上の isd:isd 要素を受け入れる。
子 isd:isd 要素は、それらの開始時刻の media time equivalent に従って
順序付けられなければならない。さらに、任意の 2 つの子
isd:isd 要素の時間区間は、(時間的に)重なってはならない。
<isd:sequence
extent = xsd:string
size = xsd:nonNegativeInteger
version = xsd:positiveInteger
xml:base = <uri>
xml:id = ID
xml:lang = xsd:string
{any attributes in the ISD Parameter Attribute Set}>
Content:
|
extent 属性が指定される場合、それは
2 つの pixel-valued <length> 式から構成される
<extent> 値構文の部分集合に従わなければならない。
その場合、指定された値は
H.2 Resolution
で定義される root container region の
spatial extent を表す。
この spatial extent は、子
isd:isd 要素によって表される各構成
Intermediate Synchronic Document
にグローバルに適用される。
size 属性が指定される場合、それは
isd:isd 子要素の数に対応する非負整数で
なければならない。
指定されない場合、size は、isd:sequence
要素が終了し、その時点で size を検査によって決定できる場合を除き、
indefinite であるとみなされなければならない。
注:
size 属性は、通常、real time captioning の場合には省略される。
version 属性が指定される場合、それは、この ISD sequence document の作成に使用された
Intermediate Synchronic Document Syntax
仕様のバージョンに対応する正整数でなければならない。
指定される場合、数値は 2(2)以上でなければならない。
指定されない場合、version は 2(2)に等しいとみなされなければならない。
この Intermediate Synchronic Document Syntax
仕様に関連付けられる version は 2(2)である。
注:
[TTML1] §9.3.2 で参照または含意される ISD 抽象化は、 その仕様では具体的に定義されていなかった。ここでは version one (1) を、 その以前の抽象化およびその各種(標準化されていない)実現についての非公式な議論のために予約する。
xml:lang 属性は、
isd:sequence 要素上に指定されなければならない。
その値が空である場合、それは
Intermediate Synchronic Document
Sequence 内の内容に適用されるデフォルト言語が存在しないことを意味する。
そうでない場合、指定された値は、各構成
Intermediate Synchronic Document
に適用されるデフォルト言語を表す。
J.2 ISD Parameter Attribute Set で列挙される 制限された parameter attribute set から、1 つ以上の parameter properties を指定できる。 指定される場合、それらは各構成 Intermediate Synchronic Document に グローバルに適用される。
子 ttp:profile 要素が存在する場合、
その ttp:profile 要素は
次の制約を満たさなければならない。
combine 属性が指定されていないこと。
designator 属性が指定されていないこと。
type 属性が指定されていないこと。
use 属性が指定されていないこと。
子孫要素が ttp:profile 要素でないこと。
子孫 ttp:feature 要素が、値 prohibited を持つ
value 属性を指定していないこと。
子孫 ttp:extension 要素が、値 prohibited を持つ
value 属性を指定していないこと。
さらに、そのような子 ttp:profile
要素は、外部参照されたすべての profile documents を取得した後の、ソース TTML 文書の
combined processor profile と等価な profile を
指定しなければならない。
注:
isd:sequence 内で単一の
ttp:profile の指定を許可する意図は、
(エンドユーザーによる上書きがない場合に)文書を処理するために満たされなければならない
processor profile requirements を宣言する簡略化された機構を提供することである。
isd:isd 要素は、
(1) 単独の Intermediate Synchronic Document
のルート文書要素として、または
(2) Intermediate Synchronic Document
Sequence 文書の
isd:sequence 要素の子として機能する。
ここで、isd:isd 要素は、
construct intermediate document
手続きによって作成される、各 intermediate synchronic document form、
DOCinter 内に保持されるルート
tt 要素から派生し、それを置換する。
isd:isd 要素は、その子として 0 個以上の
ttm:metadata 要素、
続いて 0 個または 1 個の ttp:profile
要素、
続いて 0 個以上の isd:css 要素、
続いて 0 個以上の isd:region 要素を受け入れる。
<isd:isd
begin = <time-expression>
end = <time-expression> | "indefinite"
extent = xsd:string
version = xsd:positiveInteger
xml:base = <uri>
xml:id = ID
xml:lang = xsd:string
{any attributes in the ISD Parameter Attribute Set}>
Content:
|
begin 属性は指定されなければならず、その値は
<time-expression> の
offset-time 形式を取らなければならない。さらに、
s(seconds)、
f(frames)、
t(ticks)の metric の使用に制限されるか、metric を省略してもよい。
その場合、s seconds が含意される。
この開始時刻は、この isd:isd 要素の
派生元であるソース TTML 文書の
document temporal coordinate space
の開始時刻からの offset として表される。
end 属性も同様に指定されなければならず、同じ制約が適用される。
end 属性の値が
<time-expression> の形式を取る場合、
この終了時刻は、この isd:isd 要素の
派生元であるソース TTML 文書の
document temporal coordinate space
の開始時刻からの offset として表される。
そうでない場合(値が indefinite である場合)、この属性が符号化される時点では
temporal extent が不明であるか、または temporal end point が存在しない。
注:
[SMIL 3.0] の用語で表すと、これらの
begin および end 属性の値は、
document begin に対する active duration の解決済み開始時刻および終了時刻に
対応する。
extent 属性が指定される場合、それは
2 つの pixel-valued <length> 式から構成される
<extent> 値構文の部分集合に従わなければならない。
その場合、指定された値は
H.2 Resolution で定義される
root container region の
spatial extent を表す。ここで、この
spatial extent は、この
isd:isd 要素によって表される
Intermediate Synchronic
Document に適用される。さらに、
この isd:isd 要素が
Intermediate Synchronic Document
Sequence 文書に含まれている場合、
container isd:sequence 要素が
extent 属性を指定しているなら、この
isd:isd 要素は
extent 属性を指定すべきではなく、指定される場合は、container
isd:sequence 要素上に指定された
extent 属性の値と等しくなければならない。
xml:lang 属性は、
isd:isd 要素が単独の
Intermediate
Synchronic Document 文書である場合、その要素上に指定されなければならない。
そうでない場合、それは指定してもよく、かつ
isd:isd 要素のデフォルト言語がその親
isd:sequence 要素のデフォルト言語と異なる場合には
指定すべきである。
その値が空である場合、それは
Intermediate
Synchronic Document 内の内容に適用されるデフォルト言語が存在しないことを意味する。
そうでない場合、指定された値は適用されるデフォルト言語を表す。
version 属性は、
isd:sequence 要素型上の同名属性の
構文およびセマンティクスに従う。version
属性は、ルート文書要素ではない、すなわち
isd:sequence 要素の子要素である
isd:isd 要素上に指定してはならない。
isd:isd 要素が単独の
Intermediate
Synchronic Document 文書である場合、子
ttp:profile 要素が存在してもよい。
その場合、J.1.1 isd:sequence で指定される
同じ制約およびセマンティクスが適用される。
そうでなく、単独文書でない場合、子
ttp:profile 要素は存在してはならない。
isd:css 要素は、同じ computed styles の集合を共有する
何らかの要素集合の一意の computed style set を表すために使用される。
特に、ソース TTML 文書内の各要素 E のうち、ある
Intermediate Synchronic Document の
isd:region 要素に選択されコピーされるものについて、
E の computed style set、CSS(E) が決定される。そして、その
CSS(E) が既存の isd:css 要素によってまだ指定されていない場合、
それには一意の識別子が割り当てられ、新しい isd:css 要素としてインスタンス化される。
isd:css 要素は、その子として 0 個以上の
ttm:metadata 要素を受け入れる。
<isd:css
xml:base = <uri>
xml:id = ID
xml:lang = xsd:string
{any attributes in TT Style Namespaces}
Content:
|
isd:isd 要素の任意の 2 つの
isd:css 子要素、S1 および S2 について、
S1 の specified styles の集合は
S2 の specified styles の集合と同じであってはならない。
2 つの specified styles の集合を比較する目的では、styles は canonical order に置かれ、
その後、値の等価性について item ごとに比較されなければならない。ここで canonical order は
qualified attribute name order に従う。各 qualified name は
<namespace URL, local name> という tuple から構成され、
そのような tuple は case-sensitive lexical string order によって component-wise に比較される。
isd:region 要素は、layout and presentation region
と、その region に選択された content を表すために使用される。ここで、その content は
body 要素およびその子孫
content elements の形式を取る。
isd:region 要素は、その子として 0 個以上の
ttm:metadata 要素、
続いて 0 個以上の animate
要素、
続いて正確に 1 個の body
要素を受け入れる。
<isd:region
style = IDREF
ttm:role = xsd:string
xml:base = <uri>
xml:id = ID
xml:lang = xsd:string
Content:
|
isd:region 要素によって表される region の computed style set が、
region に適用される
initial style values の集合でない場合、
その region の computed style set を指定する
isd:css 要素を参照する
style 属性を指定しなければならない。
body 要素
およびその子孫要素には、次の制約が適用される。
animate 属性が指定されていないこと。
begin 属性が指定されていないこと。
dur 属性が指定されていないこと。
end 属性が指定されていないこと。
region 属性が指定されていないこと。
timeContainer 属性が指定されていないこと。
TT Style Namespaces 内の属性が指定されていないこと。
set 要素が存在しないこと。
significant text node、すなわち #PCDATA context 内の text node が、
他の子を持たない span 要素内に
含まれていない、ということがないこと。
さらに、body 要素
B およびその各子孫
content elements C について、
B または各 C の computed style set がその親要素の computed style set と
等しくない場合、その要素、すなわち B または C は、
その要素の computed style set を指定する
isd:css 要素を参照する
style 属性を指定しなければならない。
定義済みの Parameter
Attributes の次の部分集合は、上で説明したように
isd:sequence または
isd:isd 要素で使用できる。
Intermediate Synchronic Document
Syntax を用いる具体的な文書インスタンスは、
UTF-8 文字符号化を使用する整形式の [XML 1.0] 文書として
符号化されなければならない。
さらに、そのような文書は、
isd:sequence 要素または
isd:isd 要素をルート文書要素として指定しなければならない。
具体的な ISD Sequence または ISD インスタンスから構成されるリソースが交換され、
そのリソースの content type を識別するために media type が使用される場合、
media type application/ttml+xml を使用すべきである。これについては
[TTML1] Appendix C も参照。
この media type が使用される場合、任意の profile parameter は指定してはならず、
指定されている場合は processor によって無視されなければならない。
この付録は規範的である。
注:
この仕様の公開されている無償版については、 http://standards.iso.org/ittf/PubliclyAvailableStandards/c066391_ISO_IEC_14496-22_2015.zip を参照。 関連する OpenType Specification の Microsoft 版については、 https://docs.microsoft.com/en-us/typography/opentype/spec/ を参照。 OpenType は Microsoft Corporation の登録商標である。
Timed Text Markup Language (TTML) は、Timed Text Authoring Format (TTAF) の Distribution Format Exchange Profile (DFXP) としても知られており、 [TTAF1-REQ] によって確立された要件の部分集合を満たす。 次の表は、これらの要件を列挙し、 この仕様によって満たされる程度を示す。ここで、 S は要件が満たされることを表し、P は 要件が部分的に満たされることを表し、N は 要件が満たされないことを表す。
| ID | 名前 | 状態 | コメント |
|---|---|---|---|
| R100 | 仕様フォーマット | S | |
| R101 | 仕様のモジュール性 | S | |
| R102 | 仕様の構成 | S | |
| R103 | コアと周辺 | S | TT extension namespaces |
| R104 | コアの発展 | S | TT extension namespaces |
| R105 | コアの所有権 | S | TT Namespaces |
| R106 | コアの全射性 | S | |
| R107 | 周辺の発展 | S | TT extension namespaces |
| R108 | 周辺の所有権 | S | Non-TT Namespaces |
| R109 | 変換 | S | 3GPP、QText、RealText、SAMI をサポートする |
| R110 | ストリーム可能な変換 | S | Progressive decoding |
| R111 | アクセシビリティ – コンテンツ | S | 代替文書インスタンス |
| R112 | アクセシビリティ – オーサリングシステム | S | |
| R200 | オーサリング可能性 | S | |
| R201 | 複数の自然言語 | S | 代替文書インスタンス |
| R202 | 自然言語の網羅性 | S | Unicode 4.0 |
| R203 | 自然言語関連付けの粒度 | S | xml:lang を参照 |
| R204 | 最小文字表現可能性 | S | Unicode 4.0 |
| R205 | 内在的および外在的テキストコンテンツ | P | 内在的のみ |
| R206 | マークアップ関連付け | P | 内在的のみ |
| R207 | 条件付きコンテンツ | S | condition を参照 |
| R208 | 流し込みテキスト | S | |
| R209 | 論理的流し込みテキスト語彙 | S | |
| R210 | 提示的流し込みテキスト語彙 | S | 論理的流し込みテキストからの暗黙のマッピング。 |
| R211 | 流し込みテキスト語彙の関係 | S | |
| R212 | 流し込みテキスト語彙の分離 | N | |
| R213 | 非流し込みテキスト | N | |
| R214 | 非流し込みテキスト語彙 | N | |
| R215 | 流し込みおよび非流し込みテキストの混合 | N | |
| R216 | ハイパーリンク | S | xlink を参照 |
| R217 | 埋め込みグラフィック | P | image および下記の注 1 を参照。 |
| R218 | 非埋め込みグラフィック | S | image を参照 |
| R219 | 埋め込みフォント | S | font を参照 |
| R220 | 非埋め込みフォント | S | font を参照 |
| R221 | 記述的語彙 | S | ttm:agent、ttm:role を参照 |
| R222 | 埋め込み音声 | S | audio を参照 |
| R223 | 非埋め込み音声 | S | audio を参照 |
| R290 | マークアップフォーマット | S | |
| R291 | マークアップフォーマットと Unicode の相互作用 | S | |
| R292 | 外在的リソース参照 | S | xlink を参照 |
| R293 | スキーマ妥当性の指定 | S | |
| R300 | インラインスタイリング | S | |
| R301 | インラインスタイリング形式 | P | インラインおよび参照スタイリング |
| R302 | アウトオブラインスタイリング | N | |
| R303 | アウトオブラインスタイリング形式 | N | |
| R304 | スタイリング優先順位 | S | |
| R305 | スタイルパラメータ – 聴覚 | P | 以下を参照:
tta:gain,
tta:pan,
tta:pitch
および
tta:speak.
|
| R306 | スタイルパラメータ – 視覚 | P | 以下をサポートする: absolute position, background color, bidirectional treatment, block progression dimension, border (before, after, start, end), color, display none, display inline block, display alignment, font family, font size, font style, font weight, height, inline progression dimension, line height, line wrapping option, opacity, origin, overflow, padding (before, after, start, end), relative position, text alignment, text decoration, text shadow, visibility, white space collapse, white space treatment, width, writing mode, z-index |
| R390 | スタイルパラメータの対称性 | S | |
| R391 | スタイルパラメータ定義 | S | |
| R392 | スタイルパラメータの短縮形 | S | |
| R401 | インラインタイミング | S | |
| R402 | アウトオブラインタイミング | N | |
| R403 | 同期パラメータ | P | begin、end、dur をサポートする |
| R404 | 同期パラメータ値空間 | P | offset values、media marker values (SMPTE 12M)、wall-clock values をサポートする |
| R405 | 時間包含セマンティクス | P | sequential、parallel をサポートする |
| R500 | アニメーションモード | S | animate、animation および set を参照 |
| R501 | スクロールアニメーション | N | |
| R502 | ハイライトアニメーション | S | <set tts:backgroundColor="..."/> |
| R503 | フェード遷移アニメーション | S | <animate tts:opacity="..."/> |
| R504 | アニメーションされるスタイルパラメータ – 聴覚 | P |
<animate tta:pan="..."/>
、さらに
tta:gain
、tta:pitch
および
tta:speak
にも適用される
|
| R505 | アニメーションされるスタイルパラメータ – 視覚 | P | 以下のアニメーションをサポートする: background color, border color, color, display, opacity, origin, visibility |
| N506 | アニメーションされるコンテンツ | S | |
| R600 | メタデータ項目の関連付け | S | metadata、Metadata.class を参照 |
| R601 | メタデータ項目の構成要素 | P | name、value をサポートする |
| R602 | メタデータ項目値の表現 | P | metadata を参照 |
| R603 | メタデータ項目の拡張性 | S | metadata および ttm:item を参照 |
| R604 | メタデータ項目の妥当性検証 | S | metadata を参照 |
| R690 | Dublin Core 優先 | N | ttm:copyright、ttm:desc、ttm:title および
汎用 ttm:item を使用する |
注:
R217 は original text の存在に関係する副要件を含む。しかし、この仕様は 著者による使用に制限を課さないため、この副要件は範囲外と判断されている。
この付録では、TTML 語彙の派生に関する情報を提供し、 要素および属性の派生を別々に説明する。
表 N-1 – 要素の第 1 列は TTML 要素語彙項目を指定し、第 2 列はその語彙項目の基礎となる 構文的および/または意味的モデルを指定し、 第 3 列はそのモデルを定義する参照 (モデルが示されている場合)を指定し、 第 4 列は派生の詳細を指定し、最後の 列は派生の性質を説明する追加の注を参照する。
派生の詳細を説明する第 4 列では、
属性の追加または削除を示すために表記が使用される。
たとえば、tt:div 要素の派生では、
詳細列に "-@class" が含まれており、これは
xhtml:div モデル要素で使用するために指定される
class 属性が、対応する TTML 要素で使用するためには
指定されないことを表す。これに対し、詳細列の
"+@begin" は、xhtml:div モデル
要素で使用するためには指定されない begin 属性が追加される
ことを表す。
| 要素 | モデル | 参照 | 詳細 | 注 |
tt:animate |
svg:animate |
[SVG 1.1] | begin, calcMode, dur, end, fill, keySplines, keyTimes, repeatCount を除く -@*; +style, +@tts:*, +@xml:id | 3,6 |
tt:animation |
tt:styling |
[TTML1] | 概念的派生 | 4,12 |
tt:audio |
audio |
[HTML 5.2] | -@accesskey, -@autoplay, -@class, -@contenteditable, -@controls, -@crossorigin, -@dir, -@draggable, -@hidden, -@id, -@lang, -@loop, -@muted, -@preload, -@spellcheck, -@tabindex, -@title, -@translate; +@animate, +@begin, +@clipBegin, +@clipEnd, +@condition, +@dur, +@end, +@format, +@style, +@timeContainer, +@type, +@tta:*, +@tts:*, +@ttm:*, +@xml:id, +@xml:lang, +@xml:space | 2,3 |
tt:body |
xhtml:body |
[XHTML 1.0] | -@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*; content model は 0 個以上の division (div) 子に部分集合化され、 任意の metadata および animation 子によって上位集合化される | 1,2 |
tt:br |
xhtml:br |
[XHTML 1.0] | -@class, -@title; +@ttm:*, +@tts:*, +@xml:lang, +@xml:space; content model は、他の content vocabulary との整合性のために、 任意の metadata および animation 子によって上位集合化される | 1,2 |
tt:chunk |
none | [Data Scheme], [Data Encodings] | 概念的派生 | 4 |
tt:data |
none | [Data Scheme], [Data Encodings] | 概念的派生 | 4 |
tt:div |
xhtml:div |
[XHTML 1.0] | -@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content model は 0 個以上の paragraph (p) 子に部分集合化され、 任意の metadata および animation 子によって上位集合化される | 1,2,3 |
tt:font |
none | |||
tt:head |
xhtml:head |
[XHTML 1.0] | -@dir, -@lang, -@profile; +@id, +@xml:space; content model は 任意の metadata 子、続いて任意の styling 子、 続いて任意の layout 子に変更される | 1,3 |
tt:image |
img |
[HTML 5.2] | -@accesskey, -@alt, -@class, -@contenteditable, -@crossorigin, -@dir, -@draggable, -@height, -@hidden, -@id, -@ismap, -@lang, -@longdesc -@referrerpolicy -@sizes, -@spellcheck, -@srcset, -@tabindex, -@title, -@translate; -@usemap, -@width; +@animate, +@begin, +@condition, +@dur, +@end, +@format, +@region, +@timeContainer, +@type, +@tta:*, +@tts:*, +@ttm:*, +@xlink:href, +@xlink:role, +@xlink:show, +@xlink:title, +@xml:id, +@xml:lang, +@xml:space | 2,3 |
tt:initial |
none | |||
tt:layout |
fo:simple-page-master |
[XSL-FO 1.1] | 概念的派生 | 4 |
tt:metadata |
svg:metadata |
[SVG 1.1] | +@ttm:*, +@xml:lang, +@xml:space; content model は mixed ではない(#PCDATA なし) | 3 |
tt:p |
xhtml:p |
[XHTML 1.0] | -@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content model は 0 個以上の span 子に部分集合化され、任意の metadata および animation 子によって上位集合化される | 1,2,3 |
tt:region |
fo:region-* |
[XSL-FO 1.1] | 概念的派生 | 4 |
tt:resources |
svg:defs |
概念的派生 | 4 | |
tt:set |
svg:set |
[SVG 1.1] | begin, dur, end を除く -@*; +@tts:*, +@xml:lang, +@xml:space | 3,6 |
tt:source |
source |
[HTML 5.2] | -@media, @srcset, @sizes; +@condition, @format, @xml:space | 3 |
tt:span |
xhtml:span |
[XHTML 1.0] | -@class, -@dir, -@lang, -@on*, -@title; +@begin, +@dur, +@end, +@region, +@timeContainer, +@ttm:*, +@tts:*, +@xml:space; content model は 0 個以上の #PCDATA または break (br) 子に部分集合化され、 任意の metadata および animation 子によって上位集合化される | 1,2,3 |
tt:style |
style specification | [CSS2] | style property name と value のペアの識別された集合を XML 表現したもの。 他の style 要素への参照によって、任意で他の styles を含める | 7 |
tt:styling |
xhtml:style |
[XHTML 1.0] | style 仕様集合の集合を XML 表現したもの。 各集合は style 子要素によって表される | 1,7 |
tt:tt |
xhtml:html |
[XHTML 1.0] | -@dir, -@lang; +@id, +@ttp:*, +@xml:space; content model は body および/または head を任意にすることによって部分集合化される | 1,8 |
ttm:actor |
mpeg7:Creator |
[MPEG7-5] | 概念的派生 | 4 |
ttm:agent |
mpeg7:Agent |
[MPEG7-5] | 概念的派生 | 4 |
ttm:copyright |
mpeg7:CopyrightString |
[MPEG7-5] | 概念的派生 | 4 |
ttm:desc |
svg:desc |
[SVG 1.1] | -@class, -@style | 2,9 |
ttm:item |
meta |
[HTML 5.2] | 概念的派生 | 4 |
ttm:name |
mpeg7:Name |
[MPEG7-5] | 概念的派生 | 4 |
ttm:title |
svg:title |
[SVG 1.1] | -@class, -@style | 2,9 |
ttp:extension |
@requiredExtensions |
[SVG 1.1] | 概念的派生 | 10 |
ttp:extensions |
@requiredExtensions |
[SVG 1.1] | 概念的派生 | 10 |
ttp:feature |
@requiredFeatures |
[SVG 1.1] | 概念的派生 | 10 |
ttp:features |
@requiredFeatures |
[SVG 1.1] | 概念的派生 | 10 |
ttp:profile |
@baseProfile |
[SVG 1.1] | 概念的派生 | 11 |
注:
派生は、[XHTML 1.0] §A.1 で定義される strict DTD に関して示される。
class 属性は実質的に
style
属性によって置き換えられる。この属性は、inline style を指定するのではなく、
style specification sets の集合を定義する 1 つ以上の
style
要素を間接的に参照する。
xml:lang および xml:space 属性は、
foreign namespace elements のコンテキストで継承セマンティクスが動作することを
サポートするために、すべての element
types に対して定義される。
派生は概念的(観念的)なものに限られる。
削除済み
svg:set の attributeName および to 属性は、
tts:* 属性の使用による対象属性名および値の直接表現によって
置き換えられる。
CSS style specification syntax は、TT Style Namespace で定義される 属性の使用によって XML にマッピングされる。
xml:id 属性は、すべての element types で使用するために定義される。
style 属性は、
10.2.1 style で列挙される
element types でサポートされる。
svg:svg 要素上の @requiredExtensions
および @requiredFeatures の使用から派生するが、
optionality の個別指定をサポートするよう拡張される。
svg:svg 要素上の @baseProfile
および @version の使用から派生する。
既存の tt:styling 要素から概念的に派生する。
これは styling specifications の汎用コンテナであるが、
animation specifications を定義するために使用される。
表 N-2 – 属性の第 1 列は TTML 属性語彙項目を指定し、第 2 列はその語彙項目の基礎となる 構文的および/または意味的モデルを指定し、 第 3 列はそのモデルを定義する参照 (モデルが示されている場合)を指定し、 第 4 列は派生の詳細を指定し、最後の 列は派生の性質を説明する追加の注を参照する。
派生の詳細を説明する第 4 列では、
属性値の追加または削除を示すために
表記が使用される。たとえば、timeContainer
属性の派生では、
詳細列に "-excl" が含まれており、これは
timeContainer モデル属性で使用するために指定される
excl 値が、対応する TTML 属性で使用するためには
指定されないことを表す。同様に、詳細列の "+value"
は、その属性の値が value を含むように
拡張されたことを示す。
複数の TTML element type で使用するために指定される属性のみを 以下に示す。特定の TTML element type のために一意に定義される per-element namespace attributes は以下には示さないが、 上記の 表 N-1 – 要素で説明される特定の element type の派生の一部とみなされる。
Style 属性の派生は、以下で別途列挙される。
| 属性 | モデル | 参照 | 詳細 | 注 |
begin |
begin |
[SMIL 3.0] | 注を参照 | 1,2,3 |
dur |
dur |
[SMIL 3.0] | 注を参照 | 1,2,3 |
end |
end |
[SMIL 3.0] | 注を参照 | 1,2,3 |
region |
master-reference |
[XSL-FO 1.1] | 概念的派生 | |
style |
class |
[CSS2] | style specification(s) を直接参照解除する | |
timeContainer |
timeContainer |
[SMIL 3.0] |
-excl,
-none;
既定属性値なし
|
4 |
ttm:agent |
none | 内容の agent を属性付けるために使用される | ||
ttm:role |
none | 内容の role を属性付けるために使用される | ||
ttp:cellResolution |
none | cell based coordinates の一様な grid resolution を表す | ||
ttp:clockMode |
none | time expressions をどのように解釈するかを決定する | ||
ttp:frameRate |
none | 整数 frame rate を表す | ||
ttp:frameRateMultiplier
|
none | 非整数の有理 frame rates を表すために使用される | ||
ttp:markerMode |
none | marker continuity semantics を表す | ||
ttp:pixelAspectRatio
|
none | root container の pixel aspect ratio を表す | ||
ttp:profile |
none | document instance によって使用される TTML の profile を表す | ||
ttp:dropMode |
none | frame counting (drop) modes を表す | ||
ttp:subFrameRate |
none | sub-frame rate を表す | ||
ttp:tickRate |
none | tick based time expressions を解釈するために使用される | ||
ttp:timeBase |
none | time expressions のセマンティクスを解釈するために使用される | ||
xml:id |
xml:id |
[XML ID] | モデルに準拠する | |
xml:lang |
xml:lang |
[XML 1.0] | モデルに準拠する | |
xml:space |
xml:space |
[XML 1.0] | 注を参照 | 5 |
注:
ttp:timeBase 属性によって表される parameter がそれぞれ
media、smpte、
または clock であるかに応じて、次のいずれかを表す
clock value の表現に制限される。
(1) media time
line にリンクされた暗黙の syncbase からの offset、
(2) 暗黙の media marker の発生を表す event time、
または (3) wall-clock
time。
[SMIL 3.0]
Clock-value 構文を、次のように構文的に部分集合化し、上位集合化する。
(1) 非負の Full-clock-value または
Timecount-value を要求する。
(2) Full-clock-value の場合、
hours は 2 桁以上でなければならない。
(3) Timecount-value の場合、metric は
指定されなければならない。
(4) 分を表すために min metric の別名として m を使用する。
(5) frames および ticks をそれぞれ表す f および t
metrics を追加する。
(6) frame count または subframe count 付き frame
count を指定することにより、
Full-clock-value における任意の Fraction の
代替表現を追加する。
time expression の解釈は、
ttp:clockMode,
ttp:dropMode,
ttp:frameRate,
ttp:frameRateMultiplier,
ttp:markerMode,
ttp:subFrameRate,
ttp:tickRate, および
ttp:timeBase 属性によって表される
parameters によってさらに制約される。
指定されない場合、 12.2.4 timeContainer で指定される element types には parallel (par) container semantics が適用される。
root element では、既定属性値は
default として指定され、これは whitespace
normalization の観点から定義される。preservation および default normalization の
セマンティクスは、8.2.10 xml:space によって
presentation semantics の観点から定義される。
この節では、各 style 属性が派生した参照、または 参照元に対する差異を伴って等価とみなすことができる参照を列挙する。 これは、TTML style 属性を等価な CSS properties に、また利用可能な場合は XSL properties にマッピングするための参考情報として使用できる。他のマッピング、 たとえば [SVG 1.1] へのマッピングも可能である。
CSS 等価性では、各 Intermediate Synchronic Document が、記載された style properties を与えられた要素を持つ等価な [HTML 5.2] DOM 構造にマッピングされることを仮定する。
注:
TTML では、style attribute names および values は lowerCamelCase 命名規則を使用するよう正規化される。
| 参照 | [CSS Backgrounds and Borders], §3.7 |
| モデル | background-clip |
| 値 | 値は直接マッピングされる。 |
| 注 | なし |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.8.2 | [CSS2], §14.2.1 |
| モデル | background-color |
background-color |
| 値 | -inherit |
値は直接マッピングされる |
| 注 | モデルの named colors の部分集合を使用し、次のように 2 つの aliases が
追加される。magenta を fuchsia として、
cyan
を aqua として。
|
モデルの named colors の部分集合を使用し、次のように 2 つの aliases が
追加される。magenta を fuchsia として、
cyan
を aqua として。named color orange はサポートされない。
|
| 参照 | [CSS Backgrounds and Borders], §3.9 |
| モデル | background-size |
| 値 | 値は直接マッピングされる |
| 注 | なし |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.8.3 | [CSS2], §14.2.1 |
| モデル | background-image |
background-image |
| 値 | -inherit |
-inherit |
| 注 | なし | なし |
| 参照 | [CSS Backgrounds and Borders], §3.8 |
| モデル | background-origin |
| 値 | 値は直接マッピングされる |
| 注 | なし |
| 参照 | [CSS2], §14.2 |
| モデル | background-position |
| 値 | 値は直接マッピングされる |
| 注 | なし |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.8.4 | [CSS2], §14.2.1 |
| モデル | background-repeat |
background-repeat |
| 値 |
|
|
| 注 | なし | なし |
| 参照 | [XSL-FO 1.1], §7.31.3, および [CSS Backgrounds and Borders], §4 および §5 |
| モデル | border |
| 値 | -inherit |
| 注 | なし |
| 参照 | [XSL-FO 1.1] によって定義される height property,
§7.15.6 および [CSS Box Model], §9 |
| モデル | モデルを挿入 |
| 値 | 値は直接マッピングされる |
| 注 | なし |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.18.1 | [CSS2], §14.1 |
| モデル | color |
color |
| 値 | -inherit |
-inherit |
| 注 | モデルの named colors の部分集合を使用し、次のように 2 つの aliases が
追加される。magenta を fuchsia として、
cyan
を aqua として。
|
モデルの named colors の部分集合を使用し、次のように 2 つの aliases が
追加される。magenta を fuchsia として、
cyan
を aqua として。named color orange はサポートされない。
|
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.29.1 | [CSS Writing Modes], §2.1 |
| モデル | direction |
direction |
| 値 | -inherit. 特別な継承
セマンティクス が適用される。 |
特別な継承 セマンティクス が適用される。 |
| 注 | なし` | なし` |
派生なし、すなわちこの仕様で導入された。
注:
tts:disparity の computed value は
[DVBSS] で定義される disparity shift value の半分に等価である。
| 参照 | [CSS2], §9.2.4 |
| モデル | display |
| 値 | auto, none のみ |
| 注 | なし |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.14.4 | [CSS Flex], §8.2 |
| モデル | display-align |
justify-content(下記の注を参照) |
| 値 | -inherit, +justify |
|
| 注 | なし | CSS はさまざまな layout を提供する。そのうち
tts:displayAlign 属性に等価なセマンティクスを提供する layout の一つをここに示す。
|
| 参照 | [XSL-FO 1.1], §7.15.6 および §7.15.14 |
| モデル | width, height |
| 値 | 値は直接マッピングされる |
| 注 | shorthand property |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.9.2 | [CSS2], §15.3 |
| モデル | font-family |
font-family |
| 値 | -inherit. generic family names を部分集合化し拡張する |
-inherit. generic family names を部分集合化し拡張する |
| 注 | CSS と同様に、list delimiters の周囲に white space を含んでもよい。 | なし |
| 参照 | [CSS Fonts], §6.3 |
| モデル | font-kerning |
| 値 | -auto |
| 注 | なし |
| 参照 | [XSL-FO 1.1], §7.9.3. |
| モデル | font-selection-strategy |
| 値 | -inherit, character は
character-by-character にマッピングされる
|
| Selection criteria は拡張される。 | なし。 |
| 参照 | [CSS Transforms], §9.1 |
| モデル | skewX() および skewY() 2D transform functions |
| 値 |
|
| 注 | 類似の transformation functions は [SVG 1.1] でも利用可能である |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.9.4. | [CSS2], §15.7. |
| モデル | font-size |
font-size |
| 値 | -inherit, -<absolute-size>,
-<relative-size>. |
-inherit, -<absolute-size>,
-<relative-size>.
|
| 注 |
|
|
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.9.7 | [CSS2], §15.4 |
| モデル | font-style |
font-style |
| 値 | -inherit, -backslant |
-inherit |
| 注 | なし | なし |
| 参照 | [CSS Fonts], §6.11 |
| モデル | font-variant-east-asian および font-variant-position および
font-feature-settings
|
| 値 |
|
| 注 | なし |
| 参照 | [XSL-FO 1.1], §7.9.9 | [CSS2], §15.6 |
| モデル | font-weight |
font-weight |
| 値 | -inherit, -bolder, -lighter,
-<number> |
-inherit, -initial, -bolder,
-lighter, -<number>, -unset |
| 注 | なし | なし |
| 参照 | [XSL-FO 1.1] によって定義される width property,
§7.15.14 および [CSS Box Model], §9 |
| モデル | モデルを挿入 |
| 値 | 値を挿入 |
| 注 | 注を挿入 |
| 参照 | [CSS Text], §8.2 |
| モデル | letter-spacing |
| 値 | 値は直接マッピングされる |
| 注 | なし |
line stacking semantic は CSS line box stacking strategy と一致することを意図している。
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.16.4 | [CSS2], §10.8 |
| モデル | line-height |
line-height |
| 値 |
-inherit, -<number>, -<space>
|
-inherit, -<number>,
-<space>,
-calc, -initial, -unset
|
| 注 | この仕様の意図は、line の allocation rectangle が、[XSL-FO 1.1] §4.5 で定義される per-inline-height-rectangle と一貫すること、すなわち CSS-style line box stacking strategy が使用されることである。 | なし |
派生なし、すなわちこの仕様で導入された。
| 参照 | [CSS Transforms], §9.1 |
| モデル | skewX() および skewY() 2D transform functions |
| 値 |
|
| 注 | 類似の transformation functions は [SVG 1.1] でも利用可能である |
| 参照 | [CSS3 Color], §3.2 |
| モデル | opacity |
| 値 | -inherit |
| 注 | なし |
| 参照 | [XSL-FO 1.1] |
| モデル | top, left |
| 値 | 値は直接マッピングされる |
| 注 | shorthand property |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.21.2 | [CSS2], §11.1.1 |
| モデル | overflow |
overflow |
| 値 | -inherit, -auto, -error-if-overflow |
-inherit, -auto, -initial,
-scroll, -unset |
| 注 | なし | なし |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.31.15 | [CSS2], §8.4 |
| モデル | padding |
padding |
| 値 | -inherit. Individual shorthand values は
[XSL-FO
1.1], §7.8.31,
7.8.32, 7.8.33, および 7.8.34 で定義される
writing mode relative padding values にマッピングされる
|
-calc, -inherit, -unset
|
| 注 | absolute padding properties ではなく、writing mode relative padding properties の観点で 表される。 |
TTML および XSL edge descriptors は、[CSS Writing
Modes], §6.2 で定義される abstract flow
relative edge descriptors にマッピングされる。
|
| 参照 | [CSS Backgrounds and Borders], §3.6 |
| モデル | background-position |
| 値 | 値は直接マッピングされる |
| 注 | なし |
| 参照 | [Ruby] および [CSS Ruby]. |
| モデル | ruby-* |
| 値 | 注および仕様本文を参照。 |
| 注 | さらなる情報については [JLREQ], §3.3 も参照。代替として [HTML 5.2] ruby markup にマッピングしてもよい。 |
| 参照 | [CSS Ruby], §4.3 |
| モデル | ruby-align |
| 値 | +end, +withBase.
この style 属性のセマンティクスは、この仕様によって拡張される。 |
| 注 | 参照で示される例および example renderings が適用される。 |
| 参照 | [CSS Ruby], §4.1 |
| モデル | モデルを挿入 |
| 値 | 値を挿入 |
| 注 | 参照で示される例および example renderings は、この仕様で定義される マッピングを前提として適用される。 |
派生なし、すなわちこの仕様で導入された。
| 参照 | [CSS Transforms], §9.1 |
| モデル | skewX() および skewY() 2D transform functions |
| 値 |
|
| 注 | 類似の transformation functions は [SVG 1.1] でも利用可能である |
| 参照 | [SMIL 3.0], §7.4.2 |
| モデル | showBackground |
| 値 | -inherit |
| 注 | なし |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.16.9 | [CSS2], §16.2 |
| モデル | text-align |
text-align |
| 値 | -inherit |
-inherit, +start, +end |
| 注 | text-align-last は "relative" に設定されなければならない |
TTML は writing mode dependent values start および
end
を追加し、これらは abstract flow-relative directions とみなして、
[CSS Writing Modes] §6.4 に従って physical directions に
マッピングしてもよい。詳細については
tts:padding CSS derivation を参照。
|
| 参照 | [CSS Writing Modes], §9.1 |
| モデル | text-combine-upright |
| 値 | 値は直接マッピングされる |
| 注 | なし |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.17.4 | [CSS2], §16.3.1 |
| モデル | text-decoration |
text-decoration |
| 値 | -blink, -inherit (keyword), -no-blink
|
-blink, -inherit (keyword),
+noUnderline, +noLineThrough,
+noOverline.
lineThrough は line-through にマッピングされる。
|
| 注 | 特別な継承 セマンティクス により、継承可能であると定義される。 | 特別な継承 セマンティクス が適用される。 underlines の位置を決定するための XSL semantic が適用される。 |
| 参照 | [CSS Text Decoration], §3 |
| モデル |
|
| 値 | auto を除き、値は直接マッピングされる。
auto のセマンティクスは writing mode dependent である。
|
| 注 | なし |
| 参照 | [UTR50] および [CSS Writing Modes], §5.1 |
| モデル | text-orientation |
| 値 |
-inherit,
-sideways-left,
-sideways-right,
-use-glyph-orientation
|
| 注 | なし |
| 参照 | [XSL-FO 1.1] |
| モデル | text-shadow |
| 値 | -inherit (keyword), 継承可能であると定義される |
| 注 | 2 つではなく 1 つの length specification のみを使用する。ここで 1 つの length は、 glyph contour 上の点に垂直な glyph contour の nominal edge からの outline effect の距離を定義する。 font size に相対的な outline effect を表すために percentage lengths も追加される。 Outline effects は outer closed contours の外側および inner closed contours の内側の 両方に描画されることを意図している。 |
| 参照 | [CSS Text Decoration], §4 |
| モデル | text-shadow |
| 値 | 値は直接マッピングされる |
| 注 | なし |
| 参照 | [XSL-FO 1.1], §7.29.6 および [CSS Writing Modes], §2.2 |
| モデル | unicode-bidi |
| 値 | -inherit,+isolate |
| 注 | [CSS Writing Modes] から isolate を追加する |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.30.17 | [CSS2], §11.2 |
| モデル | visibility |
visibility |
| 値 | -inherit, -collapse |
-inherit, -collapse |
| 注 | なし | なし |
| 参照 | [XSL-FO 1.1], §7.16.13 |
| モデル | wrap-option |
| 値 | -inherit |
| 注 | なし |
| 参照 | [XSL-FO 1.1], §7.29.7 |
| モデル | writing-mode |
| 値 |
-inherit,
-bt-lr,
-bt-rl,
-lr-bt,
-rl-bt,
-lr-alternating-rl-bt,
-lr-alternating-rl-tb,
-lr-inverting-rl-bt,
-lr-inverting-rl-tb,
-tb-lr-in-lr-pairs
|
| 注 | なし |
| XSL 派生 | CSS 派生 | |
| 参照 | [XSL-FO 1.1], §7.30.18 | [CSS2], §9.9.1 |
| モデル | z-index |
z-index |
| 値 | -inherit |
-inherit |
| 注 | なし | なし |
この付録では、この仕様が QA Framework Specifications Guidelines、[QAF SG] によって定義される 要件およびガイドラインに適合していることを指定する。
注:
外部仕様への規範的参照を行う場合、 特定の条項または節が引用される。
N 語彙の派生も参照。
Test assertions および test suites は、 Proposed Recommendation (PR) 段階に入る前に提供される。
3.2 プロセッサ適合性の criterion #3 および TTML Abstract Document Instance の定義を参照。
TTML のこのバージョンでは廃止される機能はない。
[XML 1.0] が timed text document instance の具体的符号化として使用される場合、 [XML Media Types] および [XML Guidelines] によって指定されるセキュリティ上の考慮事項が適用される。
注:
XML entities は、timed text document instance の reduced xml infoset には含まれない。それでも、 実装には、recursive entity expansion に対する保護を提供するか、 TTML processor における entity expansion を完全に防止することが推奨される。
timed text document instance は、 content processor によって何らかの方法で 処理されることを意図している。 この仕様は、そのようなプロセッサによる timed text document instance の適合処理の意味を定義するが、 そのプロセッサの実際の実装はこの仕様の範囲外である。
この仕様は、timed text document instance が、audio、font、image、および untyped (generic) data resources を含む外部リソースを参照できるようにする機構を定義する。 そのようなリソースの取得、および timed text document instance の具体的表現の取得は、content processor の完全な制御下にある。 したがって、そのようなリソースへのアクセスを許可または制限するよう設計された制御も、この仕様の範囲外である。
外部リソースを取得する場合、content processors は、 潜在的に CORS-enabled な request が必要かどうかを判断すべきである。 これは [HTML 5.2] で定義される。
そのようなリソースの取得が content processor によって防止される場合、 文書全体または文書の一部が意図どおりに処理されないことがあり、 したがって、文書の content の一部またはすべてが presentation processing に利用できないことがある。
media playback 中に外部リソースをダウンロードする user agent は、リソースの origin server に対して、 ユーザーの media consumption の進行状況を示す。 多くの場合、そのような media progress 情報は、たとえば scripting によって、または streaming media requests を監視することによって、 media の origin server に他の機構を通じて利用可能である。
外部リソースをダウンロードするときに cross origin policies を強制しない user agents は、 そのような media progress 情報、および潜在的には 他の user tracking 情報を、media を提供する web site の同意なしに、 また user の同意なしに他の origins へ公開する。 この仕様は API を定義せず、実装が参照リソースを取得することをどのように期待されるかについて 何も述べない。
ここで定義される timed text document instance の処理は、 content processor が任意のリソースまたは処理状態をキャッシュまたは保存することを、いかなる方法でも指定せず、またそれに依存しない。
この仕様は、外部 style sheet または style specification の処理を含めず、 また参照しない。むしろ、 すべての style information は TTML document syntax に直接統合され、この構文の reduced xml infoset 表現の観点で処理される。
ここでは、conditional expressions が特定の processing state を考慮できる場合に、content の conditional processing を許可する 機構が定義される。この processing state には、user language preference、related media language、 forced captions が有効であるかどうか、および media query expression が満たされるか どうかが含まれる。 しかし、この state への直接アクセスは TTML content には提供されない。むしろ、 content processor が この state にアクセスし、condition が満たされるかどうかについて binary(yes または no)の判断を行う。
[XLink 1.1] に基づく機構がここで定義され、著者が content を 外部文書と関連付けることを許可する。 この機構に対する semantic support が content processor によって提供されるかどうかは、 この仕様の範囲外でなされる決定である。 さらに、link activation のセマンティクスがサポートされる場合でも、それは同様にこの 仕様の範囲外である。
timed text document instance を選択し、 ダウンロードまたは解釈させる user agent は、origin server に対して、user が captions または subtitles を必要としていることを示す可能性があり、したがって、 captions または subtitles を取得するための user の language preference を示す可能性がある。 この language preference は user に関する情報を構成する。しかし、timed text document instance の提供、およびそれを取得して処理するかどうかの選択は、Document Instance 自体ではなく、 それを提供する application(たとえば [HTML 5.2] に基づく web application)の特性である。
この付録では、[SRGB] pixels を high dynamic range (HDR) pixels 上に合成する方法を示す。
次では、perceptual quantizer (PQ) EOTF および full-range quantization を使用して
[ITU BT.2100-1] で指定される system colorimetry に準拠する
HDR pixels 上に [SRGB] pixels を合成するために、
tts:luminanceGain を使用することを示す。
(r, g, b) を、opacity が 0 から 1 の間である full-range 8-bit
[SRGB] pixel とする。
(R, G, B) および (Rc, Gc, Bc) を、
PQ EOTF および full-range quantization を使用して [ITU
BT.2100-1] で指定される system colorimetry における
full-range 10-bit pixels とし、opacity A
および Ac は 0 から 1 の間とする。
8-bit full-range quantization を反転する。
(r, g, b) / 255 → (r, g, b)
[SRGB] EOTF を使用して線形化する。
(r2.4, g2.4, b2.4) → (r, g, b)
tts:luminanceGain 属性および [SRGB] illuminant を使用して HDR
absolute luminance を計算する。
80 ∙ tts:luminanceGain ∙ (r, g, b) → (r, g, b)
[SRGB] color space から [ITU BT.2100-1] color space に変換する。
[(0.62740389593470, 0.32928303837789, 0.04331306568741),
(0.06909728935823, 0.91954039507545, 0.01136231556630),
(0.01639143887515, 0.08801330787723, 0.89559525324763)] ∙ (r, g, b) → (r, g, b)
10,000 cd∙m-2 に正規化する。
(r, g, b) / 10000 → (r, g, b)
[ITU BT.2100-1] で指定される inverse PQ EOTF を適用する。
(PQ(r), PQ(g), PQ(b)) → (r, g, b)
ここで
PQ(L) = [(c1 + c2 ∙ Lm1) / (1 + c3 ∙ Lm1)]m2
であり、m1 = 0.1593017578125, m2 = 78.84375,
c1 = 0.8359375, c2 = 18.8515625, および c3 = 18.6875
である。
opacity を適用する。
(1-a) ∙ (r, g, b) → (r, g, b)
10-bit full-range quantization を適用する。
(Q(r), Q(g), Q(b)) → (r, g, b)
ここで Q(N) = floor(1023 ∙ N + 0.5)
合成を適用して (Rc, Gc, Bc) を得る。
(clamp(r + R), clamp(g + G), clamp(b + B)) → (Rc, Gc, Bc)
1 + (1 - a) ∙ (A - 1) → Ac
ここで
clamp(x) = 0、x < 0 の場合
かつ
clamp(x) = x、0 ≤ x ≤ 1023 の場合
かつ
clamp(x) = 1023、x > 1023 の場合
次では、[SRGB] pixels を Hybrid Log-Gamma (HLG) HDR pixels 上に合成することを示す。
(r, g, b) を、opacity A が 0 から 255 の間である full-range 8-bit
[SRGB] pixel とする。
(R,G,B) および (Rc,Gc,Bc) を、
HLG EOTF および narrow-range quantization を使用して [ITU
BT.2100-1] で指定される system colorimetry における
narrow-range 10-bit pixels とする。Subscript c は
post-compositing の video signal を表す。
(X,Y,Z) を、CIE 1931 XYZ
colour space [XYZ] で指定される system colorimetry における
pixels とする。
8-bit full-range quantization を反転する。
(r, g, b)/255 → (r, g, b)
A/255 → A
[SRGB] EOTF を使用して線形化する。
(r2.0,g2.0,b2.0) → (r,g,b)
[SRGB] color space から [ITU BT.2100-1] color space に変換する。
[(0.4124, 0.3576, 0.1805),
(0.2126, 0.7152, 0.0722), (0.0193,0.1192,0.9505)]•(r,g,b)→(X,Y,Z)
[(1.7167, −0.3557, −0.2534),
(−0.6667, 1.6165, 0.0158), (0.0176,−0.04277,0.9421)]•(X,Y,Z)→(r,g,b)
simplified inverse HLG OOTF を適用する。
((0.265r),(0.265g),(0.265b)) → (r,g,b)
[ITU BT.2100-1] で指定される HLG OETF を適用する。
(HLG(r),HLG(g),HLG(b)) → (r,g,b)
ここで
HLG(x) = (3x)0.5、0 ≤ x ≤ 1/12 の場合
かつ
HLG(x) = a•ln(12x−b)+c、x > 1/12 の場合、
かつ a = 0.17883277、b = 1−4a、c = 0.5−a•ln(4a)
である。
10-bit narrow-range quantization を適用する。
(Q(r),Q(g),Q(b)) → (r,g,b)
ここで Q(x) = floor((940 − 64) • x + 64.5)
foreground graphic (r,g,b) を opacity
A で background video (R,G,B) の上に合成し、
(Rc,Gc,Bc) を得る。
((A•r+(1−A)R),(A•g+(1−A)G),(A•b+(1−A)B)) → (Rc,Gc,Bc)
出力を 10-bit signal range に clamp する。
(clamp(Rc),clamp(Gc),clamp(Bc)) → (Rc,Gc,Bc)
ここで
clamp(x) = 0、x < 0 の場合
かつ
clamp(x) = x、0 ≤ x ≤ 1023 の場合
かつ
clamp(x) = 1023、x > 1023 の場合
注:
上記のアルゴリズムは
tts:luminanceGain 属性を使用しない。HLG
HDR では absolute gain level が不要であるためである。むしろ、
このアルゴリズムは peak [SRGB] white を HLG における "graphics white" に
マッピングする。これは [ITU BT.2100-1] で定義される narrow range
signal の 75% として定義される。
注:
gamma index 2.0 は、[SRGB] で指定される gamma 2.2 とは意図的に異なる。 その仕様の値 2.2 は、そこで指定される viewing environment に固有のものであり、 それらの条件に対する psychovisual rendering adjustment を含む。この adjustment は、 display rendering を除外する HLG signal には不要である。
TTML Content は、streaming scenarios で有用である可能性のある次の特性を満たすように 作成できる。
progressively encoded できる(すなわち、現在の data を送信する前に 後続の data を計算することを必要としない)。
progressively decoded できる(forward references を必要とせず、必要な場合は reverse references のみを使用する場合)。
同じ segment または access unit(または equivalent)に含まれていない resource の参照解除(およびそれに続く読み込み)を必要としない。
content の temporal ordering が temporal presentation order に従うことを可能にする inline format に timing structure が コンパイルされている。
TTML Content を stream できる一つの可能な手段は、 document instance の information set を 重なりのない fragments に分割することである。ここで、特定の一つの fragment、 これを root fragment と呼ぶものは、 document instance の front matter (head) および その top level structural elements を表し、 他の fragments は、time intervals が parallel に active になることが期待される content を表す。
stream への任意(random)entry、すなわち任意の data access unit から data を読み始めることができるという性質を必要とする applications では、 root fragment は、decoder が再同期し、その後の content fragments を解釈するために information set 内の十分な structural information を取得できるように、 stream に繰り返し送信(挿入)される。
そのような document instance の fragmentation の例を 図 2 – Fragment Streaming に示す。
|
注:
この仕様は transport buffer model または decoder capabilities model を定義しない。
TTML Content を stream できる別の手段は、 document instance の information set を temporally bound fragments に分割することである。各 fragment はそれ自体が document instance であり、 それを提示するために必要なすべての front matter (head) および content を含む。 ここで各 fragment の temporal interval は、 document interchange context または document processing context またはその両方によって制約され、 他の fragments との temporal overlaps が解決される。
たとえば、一部の document processing contexts は、timeline の任意の瞬間に 最大 1 つの document instance だけが active になれると指定し、さらに 複数の候補が存在する場合にそれがどの document instance であるかを確立する precedence rules を 指定することによって、temporal overlap を解決する。
すべての content が正しく表示されることを保証するために、 複数の fragmentation interval と重なる interval を持つ ISD に含まれる content は、その ISD を 生成するために必要な各 fragment 内で複製される必要がある場合がある。 実装は、interval 以外は同一である adjacent ISDs を識別し、それらを結合された interval を 覆う単一の ISD に置き換えることが可能である。
この手法の意図は、presentation processors が、非 streaming 版の document instance によって生成されるものと等価な ISDs の sequence を生成できるようにしつつ、 segment duration を変化させることによって、一部の制御可能な量の front matter の重複を回避する能力を利用できるようにすることである。 元の source の再構成が同一の document instance になることは保証されない。
注:
この技法は、たとえば [ISOBMFF TT] および [EBU-TT-Live] で使用される。
そのような document instance の fragmentation の例を 図 3 – Temporal Fragmentation に示す。
![]() |
注:
上記の例では、単一の document instance が T1 から T6 までの intervals に表示される content を持ち、 2 つの document instances(segments)に fragment 化される。 第 1 は T1 から T3 までに必要なすべての content と 参照される styles および regions を含み、第 2 は T4 から T6 までに必要なすべての content と参照される styles および regions を 含む。
document instance を timed text intermediate document instances の sequence に変換し、それらを discrete entities として stream することが可能である。
この技法は client processing requirements を最小化する一方で、関連するすべての front matter が、それが適用されるすべての ISD に重複されることを要求する。元の source の再構成が 同一の document instance になることは保証されない。
この節では、目的の動作を得るために TTML Content を使用する、次の一般的な caption styles の例を提供する。
Pop-On Captions
Roll-Up Captions
Paint-On Captions
paint-on captions の例。この例では、2 つの regions が alternating, paint-on content の対象となり、content は explicit sequential time containment rules を使用して timing される。各 paragraph は time において重ならず、対象 region の同じ単一 row に 表示される。
<tt ttp:cellResolution="60 20" xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<head>
<layout>
<region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 1c"/>
<region xml:id="r2" tts:color="yellow" tts:origin="10c 8c" tts:extent="40c 1c"/>
</layout>
</head>
<body>
<div timeContainer="seq">
<p region="r1" dur="4s">Lorem ipsum dolor sit</p>
<p region="r2" dur="4s">Amet consectetur adipiscing elit</p>
<p region="r1" dur="6s">Sed do eiusmod tempor incididunt labore</p>
<p region="r2" dur="4s">et dolore magna aliqua</p>
<p region="r1" dur="7s">Ut enim ad minim veniam quis, nostrud</p>
</div>
</body>
</tt>
|
roll-up captions の例。Roll-up effects は、overlapped time intervals を使用することで実現され、 ある時刻に region 内に 0、1、または 2 つの paragraphs が表示される。 wrapping が発生しないため、各 paragraph は region の単一 row(line)を消費する。 presentation processor が adjacent synchronic intermediate document instances 間の smooth scrolling をサポートするかどうかに応じて、 transitions、すなわち古い paragraph(line)を外へ移動し、新しい paragraph(line)を中へ移動することは、 smooth または discrete のどちらかになる。
<tt ttp:cellResolution="60 20" xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<head>
<layout>
<region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 2c"
tts:displayAlign="after"/>
</layout>
</head>
<body>
<div region="r1">
<p>
<span begin="0s" end="8s">Lorem ipsum dolor sit</span>
<span begin="4s" end="12s"><br/>Amet consectetur adipiscing elit</span>
<span begin="8s" end="18s"><br/>Sed do eiusmod tempor incididunt labore</span>
<span begin="14s" end="25s"><br/>et dolore magna aliqua</span>
<span begin="18s" end="29s"><br/>Ut enim ad minim veniam quis, nostrud</span>
</p>
</div>
</body>
</tt>
|
paint-on captions の例。Paint-on effects は、timed span
elements を使用して inline text units、たとえば words を、ある time interval にわたって
expose(paint)することで実現される。ここでは、5 つの paragraphs が、それぞれの words を
sequentially timed することで、1 秒ごとに新しい word を 1 つ paint する。
各 inline element の active duration の end は
div element の parallel time container の end と一致するため、
いったん word が paint されると、div element の active time interval が経過するまで
region 内(rendered line 上)に残る。
<tt ttp:cellResolution="60 20" xml:lang="en" xmlns="http://www.w3.org/ns/ttml"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<head>
<layout>
<region xml:id="r1" tts:color="white" tts:origin="10c 4c" tts:extent="40c 5c"/>
</layout>
</head>
<body>
<div begin="0s" end="25s">
<p>
<span begin="0s">Lorem</span>
<span begin="1s">ipsum</span>
<span begin="2s">dolor</span>
<span begin="3s">sit</span>
</p>
<p>
<span begin="4s">Amet</span>
<span begin="5s">consectetur</span>
<span begin="6s">adipiscing</span>
<span begin="7s">elit</span>
</p>
<p>
<span begin="8s">Sed</span>
<span begin="9s">do</span>
<span begin="10s">eiusmod</span>
<span begin="11s">tempor</span>
<span begin="12s">incididunt </span>
<span begin="13s">labore</span>
</p>
<p>
<span begin="14s">et</span>
<span begin="15s">dolore</span>
<span begin="16s">magna</span>
<span begin="17s">aliqua</span>
</p>
<p>
<span begin="18s">Ut</span>
<span begin="19s">enim</span>
<span begin="20s">ad</span>
<span begin="21s">minim</span>
<span begin="22s">veniam</span>
<span begin="23s">quis,</span>
<span begin="24s">nostrud</span>
</p>
</div>
</body>
</tt>
|
この節では、任意の document instance の提示をカスタマイズするために、 document authors および implementers が利用できるオプションの高水準の概要を提供する。
このコンテキストにおける customisation は、指定された presentation behaviour の変更であることに注意されたい。この節は、font rasterisation algorithms など、 unspecified presentation behaviour を実装できる方法を列挙しようとするものではない。
condition 属性により、document author は
authoring time に既知の input parameters に基づいて、
intended presentation を変更できる。たとえば、closed system では、
content に適用される styling を変更するために使用できる text-size parameter に対して
事前定義された enumerated values が存在する場合がある。または、
media function
を使用して、media query に基づいて該当する regions の位置および extent を変更できる。
[Media Queries] を参照。
presentation の前に document instance を変更するために、pre-processing techniques を適用することが可能である。 たとえば、[XPROC] pipeline のコンテキストで [XSLT3] を使用して、 style attributes の initial values、または継承される root element style attributes を変更できる。そのような pre-processing はこの仕様の範囲外であるが、 そのような pre-processor が transformation processor のインスタンスとみなされる範囲では例外である。
この仕様は、 presentation processor の適合性 要件を可能な限り定義しようとするが、これは、適切と判断される場合に、 実装がそのような適合性から意図的に逸脱することを妨げるものではない。 たとえば、presentation processor は、提示される text と video playback controls などの他の visual indicators との positional clashes を識別し、 影響を受ける TTML region を一時的に移動することで解決することがある。または、 presentation processor は、予期しない line breaks を導入しないまま、 提示される font size を減らすオプションを user に提供することがある。
定義上、そのような non-conformance はこの仕様の範囲外である。
この節では、Timed Text Markup Language (TTML) Version 1 (TTML1) と Version 2 (TTML2) の間の語彙変更について、高水準の概要を提供する。 この概要は網羅的であることを意図していない。変更の詳細については、 Timed Text Markup Language 2 (TTML2) Change Summary を参照。
新しい element vocabulary は、この仕様の次の節に追加され、下記でさらに説明される。
次の elements は、animation 機能のサポートを強化するために追加された。
tt:animate1 つ以上の時間的に連続する active time intervals の内部およびそれらをまたぐ continuous animation をサポートする。
tt:animationheader matter における out-of-line animation directives の grouping をサポートする。
次の elements は、embedded content および content references をサポートするために追加された。
tt:audiobuilt-in、embedded、および external audio resources の使用をサポートする。
tt:chunkaudio、data、font、および image resources を埋め込むときの chunking の使用を サポートする。ここで chunking とは、resource content を連続する data segments(chunks)に細分することを指す。
tt:databuilt-in、embedded、および external data resources の使用をサポートする。
tt:fontbuilt-in、embedded、および external font resources の使用をサポートする。
tt:imagebuilt-in、embedded、および external image resources の使用をサポートする。
tt:resources
header matter における sharable embedded content および content references の grouping をサポートする。
tt:sourceembedded content および content references の alternative sources をサポートする。
次の element は、metadata 機能を拡張するために追加された。
ttm:itemnamed metadata items の extensible collection をサポートする。
注:
この機能は、name と value から構成される metadata items のために 追加の新しい語彙を定義することを避けたいという要望に動機づけられている。 汎用の named metadata item element は、そのような items の無制限な collection を 定義する将来のニーズに対応できる。
次の element は、styling 機能を拡張するために追加された。
tt:initialstyle properties について、著者が指定する initial values をサポートする。
注:
この機能は複数の要件に動機づけられており、これには次が含まれる。
(1) この仕様が implementation dependent として定義する inherited style properties の
特定の initial values について、固定された決定的な値を指定できることが望ましいこと。たとえば、
tts:color の initial value。
そして
(2) 特定の non-inherited style
properties について、各場合に style value を明示的に指定することを強制されるのではなく、
initial value を上書きできることが望ましいこと。たとえば、
tts:showBackground
の initial value として whenActive が、default initial value の
always より好まれる場合がある。
編集者は、Timed Text Working Group の現在および過去のメンバー、他の W3C Working Groups のメンバー、および 他のフォーラムの業界専門家が、この文書の 過程または内容に直接的または間接的に貢献したことを、次のとおり謝意をもって認める。
Thomas Bause-Mason, John Birch, Kees Blom, Bert Bos, Brad Botkin, Dick Bulterman, Cyril Concolato, Frans de Jong, Mike Dolan, Martin Dürst, Donald Evans, Geoff Freed, Al Gilman, Giles Godart-Brown, Markus Gylling, Markku Hakkinen, Sean Hayes, Erik Hodge, Philipp Hoschka, Suzi Hyun, Richard Ishida, Michael Jordan, Masahiko Kaneko, Courtney Kennedy, George Kerscher, Dae Kim, David Kirby, Andrew Kirkpatrick, Philippe Le Hégaret, Pierre-Anthony Lemieux, Chris Lilley, Jason Livingston, Monica Martin, Matthew May, Nigel Megitt, Thierry Michel, Frank Olivier, Soohong Daniel Park, Silvia Pfeiffer, Addison Phillips, Stefan Pöschel, Rohit Puri, Brian Raymor, David Ronca, Patrick Schmitz, David Singer, Craig Smithpeters, Andreas Tai, and Mohamed Zergaoui.
編集者は、現在および過去のメンバーによる次の貢献に特に謝意を表する。Mike Dolan(SMPTE time codes、streaming; SMPTE liaison)、David Kirby(導入例文書; SMPTE time codes、descriptive metadata; EBU/AAF liaison)、Geoff Freed(styling および style properties の example images)、Sean Hayes(applicative timing、HTML/CSS mapping proposal を含む advanced profile concepts)、Erik Hodge(timing)、 Thierry Michel(metadata)、および Dave Singer(animation、scrolling)。
編集者はまた、この仕様に関する作業の現在および過去の sponsors である Cox Communications、Microsoft、Netflix、および Samsung Electronics の支援に謝意を表する。
Working Group は、この仕様を同僚 David Kirby に捧げる。