Appドキュメント

概要

ULOCOはHTML要素を再生します。

使用方法はHTMLまたはJavaScriptの2種類あり、HTMLではHTML/CSSの簡単な知識でULOCOを使うことが可能です。

JavaScriptでは高度なカスタマイズ(エンディングや再生の汎用設定など)を行うことができます。

導入

読み込み

ULOCOタグをWebサイトに設置します。

ULOCOタグは次のようなHTMLコードです。

<link rel="stylesheet" href="https://APP_DOMAIN/api/v1/source/style.css?code=code"  crossorigin="anonymous" media="print" onload="this.media='all'">
<script id="uloco-app" src="https://APP_DOMAIN/api/v1/source/app.js?code=code" crossorigin="anonymous"></script>
<script type="text/javascript">
    uloco.addEvent("ready", function() {
        uloco.init();
    });
</script>

ULOCOタグにはWebサイトごとの固有の情報を含むため、管理画面から確認できるULOCOタグを適切な位置にコピー&ペーストしてください。

セットアップ

再生するHTML要素(再生対象要素)はWebサイト側でセットアップします。

HTML

スマートボタンをご利用ください。

<button class="uloco-smartbutton"
        data-uloco-content-selector="セレクター">
    スマートボタン
</button>

data-uloco-content-selector属性に再生対象要素のセレクターを指定することで、Webページの読み込み時に自動でセットアップします。

JavaScript

1. オブジェクトの生成

uloco.createContentメソッドで再生対象オブジェクトを生成します。

const content = uloco.createContent(target, options)

第一引数は再生対象のセレクターまたはDOMノード、第二引数は再生対象のオプションです。

オプションについては別途説明いたします。

2. オブジェクトの設定

uloco.setContentメソッドで再生対象オブジェクトを設定します。

uloco.setContent(content)

※ JavaScriptで設定した場合、再生、停止、再生等のイベントの呼び出しが必要です。

※『スマートボタン』及び『JavaScriptのセレクター指定』ではセレクターに一致する全ての要素が対象となります。

再生の開始・停止・再開

再生の開始・停止・再開の処理を設定します。

HTML

スマートボタンをご利用ください。

スマートボタンがクリックされると、再生状態に応じて再生・停止・再開などの適切な処理を実行します。

JavaScript

uloco.switchメソッドを任意のタイミングで呼び出します。

uloco.switch()

uloco.switchメソッドは再生状態に応じて再生・停止・再開などの適切な処理を実行します。

再生構成

ULOCOは再生対象要素の子ノード(HTML要素やテキスト)を1つずつ再生します。

再生の構成は次のとおりです。

1. 開始

ノードの再生を開始します。

2. マーカー

マーカーはノードへの注視スタイルの適用です。

ポインター及びハイライトのなどのスタイルがあります。

3. スクロール

スクロールは画面の自動スクロールです。

条件を満たした時にノードが画面内に表示されるようにスクロールします。

4. ナレーション

ナレーションはサウンド再生です。

ノードのテキストまたは音声ファイルを再生します。

5. スクロールビュー

スクロールビューはノードの全体表示です。

ノードの高さが画面に収まっていない場合や、次のノードまでに距離がある場合、一定のスピードでスクロールします。

6. 終了

ノードの再生を終了します。

再生動作

再生の動作(振る舞い)は機能設定及び再生設定を参照します。

設定をカスタマイズすることで、Webページに合わせた表現や動作を行うことが可能です。

なお、デフォルトは汎用的な設定になっております。

機能設定

機能設定はマーカーやスクロール、ナレーションなどの機能の設定です。

設定一覧

設定項目の値が『1/0』の場合、JavaScriptでは『true/false』となります。

設定項目 プロパティ名 デフォルト 内容
HTML JavaScript
プレイコンファーム 有効/無効 - confirmation.enabled 1/0 1 プレイコンファームの有効・無効
マーカー 有効/無効 - marker.enabled 1/0 1 マーカーの有効・無効
ハイライト - marker.highlight.enabled 1/0 1 マーカー/ハイライトの有効・無効
ポインター - marker.pointer.enabled 1/0 1 マーカー/ポインターの有効・無効
スクロール 有効/無効 - scroller.enabled 1/0 1 スクロールの有効・無効(スクロールビューも対象です。)
スピード - scroller.scroll.speed 数値 1 スクロールのスピード
加速度 - scroller.scroll.acceleration 数値 0.05 スクロールの加減度
スクロールビュー/スピード - scroller.view.speed 数値 1 スクロールビューのスピード
スクロールビュー/ボリューム - scroller.view.volume 数値 0.9 スクロールビューのスクロールボリューム
表示範囲/上部 - scroller.range.top 0〜1.0 0.2 スクロールの範囲(上側)
表示範囲/下部 - scroller.range.bottom 0〜1.0 0.8 スクロールの範囲(下側)
ナレーション 有効/無効 - narrator.enabled 1/0 1 ナレーションの有効・無効
倍速 - narrator.browser.rate 数値 1.0 ナレーション(合成音声)の倍速
言語 - narrator.browser.lang 言語コード 'ja-JP' ナレーション(合成音声)の言語
種類(名称) - narrator.browser.name 名称 'Kyoko' ナレーション(合成音声)の種類(名称)
種類(番号) - narrator.browser.voice 番号 0 ナレーション(合成音声)の種類(番号)、種類(名称)が存在しない場合に使用されます。
辞書 - narrator.dictionary オブジェクト - ナレーションの読み上げ時の文章の読み方
ブラウザ別/倍速 - narrator.browser.{ブラウザ名}.rate 数値 (Safariのみ1.1) ブラウザ別のナレーション(合成音声)の倍速
ブラウザ別/言語 - narrator.browser.{ブラウザ名}.lang 言語コード - ブラウザ別のナレーション(合成音声)の言語
ブラウザ別/種類(名称) - narrator.browser.{ブラウザ名}.name 名称 - ブラウザ別のナレーション(合成音声)の種類(名称)
ブラウザ別/種類(番号) - narrator.browser.{ブラウザ名}.voice 番号 - ブラウザ別のナレーション(合成音声)の種類(番号)、種類(名称)が存在しない場合に使用されます。

※ ナレーションの種類はナレーションツールからご確認ください。

※ {ブラウザ名}は次のいずれかです。

Microsoft Edge → edge、Google Chrome → chrome、 Safari → safari、Firefox → firefox

カスタマイズ

HTML

この設定方法の実装は検討中であり、現在は使用できません。

簡単機能設定タグ

<input type="hidden" data-uloco-settings-{プロパティ}="値">

属性に設定項目を付与します。

{プロパティ}は設定項目のプロパティ名です。

例えばナレーションスピードを1.2倍にする場合は次のようになります。

<input class="uloco-smartsettings" type="hidden"
       data-uloco-settings-narrator-browser-speed="1.2">

また、複数設定がある場合は、同じタグに属性を追加します。

<input class="uloco-smartsettings" type="hidden"
       data-uloco-settings-{プロパティ名1}="値1"
       data-uloco-settings-{プロパティ名2}="値2"
       data-uloco-settings-{プロパティ名3}="値3">

JavaScript

uloco.settingsオブジェクトのプロパティを変更します。

uloco.settings.{プロパティ} = 値;

{プロパティ}は設定項目のプロパティ名です。

例えばナレーションスピードを1.2倍にする場合は次のようになります。

uloco.settings.narrator.browser.speed = 1.2;

再生設定

再生設定は各ノードの再生に関する設定です。

設定一覧

設定項目の値が『1/0』の場合、JavaScriptでは『true/false』となります。

設定項目 プロパティ名 内容
開始 遅延 before-delay 数値 ノードの再生開始前の遅延時間
マーカー 有効・無効 marker 1/0 マーカーの有効・無効
ハイライト marker-highlight 1/0 マーカーのハイライトの有無
ポインター marker-pointer 1/0 マーカーのポインターの有無
遅延 marker-delay 数値 マーカー実行前の遅延時間
スクロール 有効・無効 scroll 1/0 スクロールの有効・無効
モード scroll-mode required/outside スクロールのモード
遅延 scroll-delay 数値 スクロール実行前の遅延時間
ナレーション 有効・無効 narration 1/0 ナレーションの有効・無効
テキスト(追加) narration-text 文字列 ナレーションで読み上げる追加テキスト
テキスト(代替) narration-alttext 文字列 ナレーションで読み上げる代替テキスト
音声データ narration-file 音声データのURL ナレーションで再生する音声データ
遅延 narration-delay 数値 ナレーション実行前の遅延時間
スクロールビュー 有効・無効 scroll-view 1/0 スクロールビューの有効・無効
遅延 scroll-view-delay 数値 スクロールビュー実行前の遅延時間
終了 遅延 after-delay 数値 ノードの再生終了後の遅延時間
制御 一括設定 all 1/0 ノードのマーカー、スクロール、ナレーションの有効可否の一括設定
グループ group 1/0 ノードのグループ可否(この設定が1のノードは子ノードを含めたグループとなります。グループ内のノードはマーカー及びスクロールがグループにまとまります。)
スキップ skip 1/0 ノードのスキップ可否(この設定がが1のノードは再生されずスキップされます。)
インナー inner 1/0 ノードの子ノードの再生可否(この設定が0のノードの子ノードは再生されません。)
イベント event 1/0 ノードのイベント有効可否(この設定が0のノードはクリックによるジャンプイベントが起動しません。)

設定レベル

再生設定には再生対象要素レベルとノードレベルがあります。

再生対象要素レベル

再生対象要素レベルは再生対象内要素の全てのノードに適用される設定です。

ノードレベル

ノードレベルは特定のノードのみに適用される設定です。


レベル間で設定の重複がある場合は、『再生対象要素レベル < ノードレベル』の優先度で適用されます。

デフォルト

設定項目 プロパティ 再生対象要素レベル
全て h1 h2 h3 h4 h5 h6 p a img video ol ul menu table input textarea select button
開始 遅延 before-delay - - - - - - - - - - - - - - - - - - -
マーカー 有効・無効 marker - - - - - - - - - - - - - - - - - - -
遅延 marker-delay 300ms - - - - - - - - - - - - - - - - - -
ハイライト marker-highlight - - - - - - - - - - - - - - - - - -
ポインター marker-pointer - - - - - - - - - - - - - - - - - -
スクロール 有効・無効 scroll - - - - - - - - - - - - - - - - - - -
モード scroll-mode outside - - - - - - - - - - - - - - - - - -
遅延 scroll-delay - - - - - - - - - - - - - - - - - - -
ナレーション 有効・無効 narration - - - - - - - - - - - - - - - - - - -
遅延 narration-delay 300ms - - - - - - - - - - - - - - - - - -
テキスト(追加) narration-text - - - - - - - - - - - - - - - - - - -
テキスト(代替) narration-alttext - - - - - - - - - - - - - - - - - - -
音声データ narration-file - - - - - - - - - - - - - - - - - - -
スクロールビュー 有効・無効 scroll-view - - - - - - - - - - - - - - - - - -
遅延 scroll-view-delay 1000ms - - - - - - - - - - - - - - - - - -
終了 遅延 after-delay 500ms - - - - - - - - 1000ms 1000ms - - - - - - - -
制御 一括設定 all - - - -
グループ group - - - - - - - - - - - - - - - - - - -
スキップ skip - - - - - - - - - - - - - - - - - - -
インナー inner - - - - - - - - - - - - - - - - - - -
イベント event - - - - - - - - × - - - - - - × × × ×

カスタマイズ

再生対象要素レベル

再生対象要素レベルのカスタマイズはJavaScriptのみです。

再生対象要素から再生コンテンツを生成する際に、設定を参照してノードを設定します。

JavaScript(再生対象要素レベル / デフォルト)

※ uloco.init()より前に記述します。

■ 全ノード

uloco.settings.content.node.propertiesオブジェクトに値を設定します。

uloco.settings.content.node.properties["プロパティ名"] = 値;

例えば、全てのノードの開始遅延を500msに設定する場合、次のようになります。

uloco.settings.content.node.properties["before-delay"] = 500;

■ セレクター別

uloco.settings.content.node.elementsオブジェクトにノードのセレクターとプロパティを追加します。

uloco.settings.content.node.elements["セレクター"] = {
    "プロパティ名": 値,
};

例えば、クラス属性にplay-itemがあるノードのマーカー、スクロール、ナレーションを一括で有効にする場合、次のようになります。

uloco.settings.content.node.elements[".play-item"] = {
    "all": true,
};

また、複数設定がある場合は、プロパティを追加します。

uloco.settings.content.node.elements[".play-item"] = {
    "all": true,
    "before-delay": 500,
    "scroll-mode": "required"
};

uloco.settings.content.node.propertiesオブジェクトに設定した値は全ての再生コンテンツの生成時に適用されます。

個別に設定を行う場合は、再生コンテンツ生成時(uloco.setContent)にオプションとして設定を与えます。

JavaScript(再生対象要素レベル / 再生コンテンツ別)

再生対象オブジェクトの生成時の第二引数に設定値を与えることで、uloco.settings.content.node.propertiesオブジェクトの設定を上書きできます。

const options = {
    node: {
        "additions": {},
        "exclusions": [],
        "properties": {
            "scroll": false,
            "scroll-delay": 1000,
        },
    }
};
const content = uloco.createContent(target, options);
uloco.setContent(content);

■ 設定の追加

options.node.additionsに設定します。

設定方法は共通レベルのuloco.settings.content.node.elementsと同じです。

■ 設定の除外

options.node.exclusionsに設定します。

const options = {
    node: {
        "exclusions": [ "table", ".ex-item", "#ex-item" ],
    }
};

options.node.exclusionsの各値はセレクターです。

■ ノード共通設定

options.node.propertiesに設定します。

設定方法は共通レベルのuloco.settings.content.node.propertiesと同じです。

ノードレベル

ノードレベルのカスタマイズはHTMLのみです。

HTML

HTML要素(タグ)に特定の属性を付与します。

<div data-uloco-node-{プロパティ}="値">Hello World!</div>

{プロパティ}は設定項目のプロパティ名です。

例えば、スクロールを有効にする場合は次のようになります。

<div data-uloco-node-scroll="1">Hello World!</div>

また、複数設定がある場合は、属性を追加します。

<div data-uloco-node-scroll="1"
     data-uloco-node-scroll-mode="required"
     data-uloco-node-scroll-delay="500">
    Hello World!
</div>

スタイル

主要クラス

ULOCOの主なHTML要素のクラスは次のとおりです。

要素 クラス 説明
スマートボタン uloco-smartbutton スマートボタンのクラス
マーカー(ポインター) uloco-marker-pointer マーカー(ポインター)のクラス
マーカー(ハイライト) uloco-marker-highlight マーカー(ハイライト)のクラス

カスタマイズ

スタイルをカスタマイズするには、ULOCOタグ(スタイル)の読み込みよりも後に、CSSなどによってスタイルを上書きしてください。

高度なカスタマイズ

高度なカスタマイズはJavaScriptのみです。

再生

JavaScript

uloco.play()

停止

JavaScript

uloco.pause()

再開

JavaScript

uloco.resume()

ジャンプ

JavaScript

再生対象オブジェクトとプレイヤーオブジェクトのjumpメソッドを使用します。

// contentはuloco.createContentによって生成されるオブジェクトです。
let target = document.querySelectorAll('ジャンプ対象のセレクター')
content.position(target);
uloco.jump(content);

エンディング

JavaScript

■ 共通

uloco.settings.content.ending.delay = 遅延時間;
uloco.settings.content.ending.text = "ナレーションテキスト";
uloco.settings.content.ending.file = "ナレーションデータ";
uloco.settings.content.ending.handler = 関数;
                

■ 再生対象別

再生対象オブジェクトの生成時の第二引数に設定値を追加します。

const options = {
    ending: {
        delay: 遅延時間,
        text: "ナレーションテキスト",
        file: "ナレーションデータ",
        handler: 関数
    }
}
const content = uloco.createContent(target, options);
uloco.setContent(content);

コンバージョンの記録

JavaScript

uloco.recordConvert({ key: コンバージョン名 });

コンバージョン名には任意の文字列を与えられます。

非対応環境

非対応環境(非対応ブラウザなど)でULOCOが読み込まれた場合のコールバック関数を設定できます。

JavaScript

再生対象オブジェクトの生成時の第二引数に設定を与えます。

uloco.addEvent("unsupported", function() {
    // 非対応環境時の処理
    alert("このブラウザは自動再生に対応していません。");
});

注意点

再生順序について

ULOCOはHTMLドキュメントの構造に沿って再生します。

そのため、CSSなどによって要素の順番を入れ替えた場合でも、HTML要素の順番で実行されます。

マーカー(ポインター)

マーカー(ポインター)は再生中のノードの前に要素を追加します。

そのため、CSSのdisplay:flexなどの中にある場合、スタイルプロパティによってはレイアウト崩れが生じる場合があります。

解決するにはFlexboxのアイテムをラッパー要素で囲むなどWebページ側の調整をお願いいたします。

マーカー(ハイライト)

マーカー(ハイライト)は再生中のノードにクラスを追加します。

ULOCOのスタイルプロパティよりも優先されるプロパティがすでに設定されてる場合、ハイライトスタイルが適用されません。

解決するにはスタイルカスタマイズなどWebページ側の調整をお願いいたします。

ナレーション

合成音声はブラウザの標準機能を使用しております。

そのため、ブラウザやユーザーのデバイス設定によってナレーションの声質や発音等が異なることがあり、また、テキストを正しく発声しない場合があります。

※ e.g. Android/Chromeではナレーションの再生中に停止した場合、再開時には対象ノードの文章を最初から読み上げます。

ブラウザ間でのナレーションの差異が気になる方は独自ナレーションをカスタマイズによって組み込むことを推奨いたします。