Copyright © 2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
このセクションでは、文書が公開された時点でのステータスを説明します。現在の W3C の公開物や、技術報告書の最新の改訂版は、W3C の標準と草案のインデックスで確認できます。
この仕様は Chromium ベースのブラウザーに実装されている。WebKit はこの 仕様に反対する立場を公開している。Firefox はバージョン 129 でその実装を削除した。これは、現在の形式では W3C 勧告へ進むことは見込まれていない。
この文書は、Vibration API のスコープと機能に関するグループの合意を表しています。この初版で実現できない、より高度なユースケースがあることはグループでも認識しています。これらの課題は、将来の改訂版で対応する予定です。
前回のバージョンからの変更履歴が提供されています。
この文書は、デバイスとセンサー作業部会によって、推薦プロセスを利用して、候補推薦草案として公開されました。
候補推薦として公開されたことは、W3C およびそのメンバーによる推奨を意味するものではありません。候補推薦草案は、次の候補推薦スナップショットに含めることを作業部会が意図した変更を統合しています。
これは草案文書であり、他の文書によって更新、置き換え、または廃止される可能性があります。この文書を進行中の作業以外の目的で引用することは適切ではありません。
この文書は、W3C 特許ポリシーの下で運営されているグループによって作成されました。
W3C は、グループの成果物に関連する特許開示の公開リストを保持しています。そのページには、特許の開示手順も記載されています。特許に関する実際の知識を持つ個人は、その情報をW3C 特許ポリシー第6セクションに従って開示しなければなりません。
この文書は、2025年8月18日 の 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);
};