Copyright © 2025 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
このセクションは、本書が公開された時点での文書のステータスを説明します。現在のW3C 公開物の一覧と本技術レポートの最新版は、W3C 技術レポートインデックス(https://www.w3.org/TR/)で確認できます。
本書は、Vibration API の範囲と機能についてグループの合意を示しています。グループは、より高度なユースケースがこのシンプルな初版では実現できないことを認識しており、それらは将来の改訂で対応する予定です。
前バージョンからの変更履歴を掲載しています。
本書はDevices and Sensors Working Groupによって Recommendation trackを用い、候補勧告草案として公開されました。
候補勧告として公開されることは、W3Cおよびそのメンバーによる承認を意味しません。候補勧告草案は、ワーキンググループが次の候補勧告スナップショットに含める予定の、前回の候補勧告からの変更点を統合しています。
この文書はドラフトであり、随時更新、差し替え、廃止される可能性があります。進行中の作業以外の引用は不適切です。
本書はW3C特許ポリシーの下で運営されているグループによって作成されました。 W3Cは、 グループの成果物に関連して提出された特許開示の公開リストを管理しています。そのページには特許開示の方法も記載されています。個人が該当する特許を知っている場合は、Essential Claim(s)を含むと考える場合、W3C特許ポリシーの第6節に従って情報を開示する必要があります。
この文書は、2023年11月3日 W3Cプロセス文書によって管理されています。
このセクションは規範的ではありません。
このAPIは、シンプルな触覚フィードバックのみが必要なユースケースに対応するために設計されています。より細かな制御が必要なユースケースは本仕様の範囲外です。このAPIは一般的な通知メカニズムとして利用することを意図していません。そのような用途にはNotifications API [NOTIFICATIONS]仕様を使用できます。また、バイブレーションが有効かどうかの判定も本仕様の範囲外です。
規範的ではないと記載されたセクションに加え、本仕様のすべての著作ガイドライン、図、例、および注記は規範的ではありません。それ以外はすべて規範的です。
この文書中のMAY、MUST、およびSHOULDというキーワードは、BCP 14 [RFC2119] [RFC8174] で示された通り、ここに記載されたようにすべて大文字で登場した場合のみ、解釈されるものとします。
本仕様は、含まれるインターフェースを実装するユーザーエージェントという単一製品に適合性要件を定義します。
本仕様で定義されたAPIをECMAScriptで実装する場合、Web IDL仕様 [WEBIDL-1] に従い、同仕様のバインディングと用語に一貫して従う必要があります。
WebIDLtypedef (unsigned long or sequence<unsigned long>) VibratePattern;
vibrate()
メソッドの手順は、バイブレーションパターンの処理アルゴリズムを実行することです。
バイブレーションパターンは
VibratePattern オブジェクトとして表現されます。
バイブレーションパターンの処理の規則は、下記のアルゴリズムによります。
vibrate()
メソッドの第1引数をpatternとします。
visibleでない場合、falseを返して手順を終了します。
検証と正規化を バイブレーションパターンに対してpatternを使って行う場合、次の手順を実行します:
振動を実行を グローバルオブジェクト globalとバイブレーションパターンpatternで行う場合、次の手順を実行します:
ユーザーエージェントは、
visibility stateが
トップレベル閲覧コンテキストの
Documentで変化したと判断した場合、すでに実行中のバイブレーションパターンの処理アルゴリズムを中断しなければなりません。
Vibration API自体はデータの発生源ではなく、Webで消費可能なデータを生成しません。しかし、他のAPIのイベントソースとして利用される可能性が知られています。特に、加速度センサーやジャイロスコープなどの特定のセンサーは、製造時の微細な不完全性により、バイブレーションAPIによる刺激を利用してフィンガープリントの手段となる可能性があります。この意味で、Vibration APIは他の仕組みと組み合わせることで間接的なプライバシーリスクを生じさせます。これには、クロスデバイストラッキングや通信など、予期しないプライバシーリスクが含まれる可能性があります。また、振動しているデバイスは外部の観察者から視認され、ユーザーの物理的な識別や追跡が可能となる場合もあります。
これらの理由から、ユーザーエージェントは API利用時にユーザーへ通知し、オリジンごとまたはグローバルでAPIを無効化(実質的に何も行わない)する手段を提供してもよい(MAY)。
ユーザーエージェントは、 振動リクエストの回数制限(例:1分または1時間ごと)などグローバルなレート制限を用いて過度な利用を防ぐべきです(SHOULD)。
このセクションは規範的ではありません。
以下の例では、デバイスは1000ミリ秒(ms)振動します:
// 1000 ms振動
navigator.vibrate(1000);
// または
navigator.vibrate([1000]);
以下の例では、パターンによりデバイスは50ms振動、100ms停止、150ms振動します:
navigator.vibrate([50, 100, 150]);
以下の例では、既存の振動をすべてキャンセルします:
// 既存の振動をキャンセル
navigator.vibrate(0);
// または
navigator.vibrate([]);
グループは、Justin Lebar、Mounir Lamouri、Jonas Sicking、およびMozilla WebAPIチームの貢献と、初期入力としてWebVibratorプロトタイプを提供してくれたことに深く感謝します。Anne van Kesterenには、他の文脈でも仕様を再利用できるよう提案いただき、Lukasz Olejnikにはプライバシーの考慮事項について感謝します。最後に、Zhiqiang Zhangには簡体字中国語訳を感謝します。
W3C勧告 2016年10月18日以降の変更点:
文書の解釈に機能的な影響を与えないその他の変更:
WebIDLtypedef (unsigned long or sequence<unsigned long>) VibratePattern;
partial interface Navigator {
boolean vibrate (VibratePattern pattern);
};