[34] [CODE(DOMi)@en[Navigator]] [[インターフェイス]]の
[DFN[[CODE(DOMm)@en[vibrate]]]] は、[[バイブレーション]]の実行、
つまり[[装置]]を[[振動]]させることを指示するものです。

* 仕様書

[REFS[
- [16] [CITE@en[Vibration API]] ([TIME[2014-11-20 01:59:39 +09:00]] 版) <http://dev.w3.org/2009/dap/vibration/>
]REFS]

* 引数

[23] [CODE(DOMm)@en[[[vibrate]]]]
[[メソッド]]は、[[必須]]の [CODE(DOMi)@en[[[VibratePattern]]]] [[型]]の[[引数]]を1つ持ちます [SRC[>>16]]。
これは実行する振動のパターンを指定するものです。

* 返り値

[24] [CODE(DOMm)@en[[[vibrate]]]] [[メソッド]]の[[戻り値]]の[[型]]は、
[CODE(IDL)@en[[[boolean]]]] です [SRC[>>16]]。この値は[[バイブレーションを実施]]できたかどうかを表しています。

* 処理

[25] [CODE(DOMm)@en[[[vibrate]]]] [[メソッド]]は、次のようにしなければ[MUST[なりません]]
[SRC[>>16]]。
[FIG(steps)[
= [36] [VAR[パターン]]を、必須の第1引数を [CODE(DOMi)@en[VibratePattern]] として解釈した結果に設定します。
= [35] [DFN[[RUBYB[[[バイブレーションパターンの処理]]]@en[processing vibration patterns]]]]
== [37] [VAR[正規パターン]]を、[VAR[パターン]]を[[検証および正規化]]した結果に設定します。
== [26] [[文脈オブジェクト]]の[F[最上位閲覧文脈]]に関する[[可視性状態の決定]]の結果が [CODE[visible]] でなく、
[[プラットフォーム]]と深く統合され[[特権]]を持った[[アプリケーション]]でもないなら、
=== [40] [[偽]]を返し、ここで停止します。
== [38] [VAR[正規パターン]]について[[バイブレーションを実施]]した結果を返します。
]FIG]

;; [39] [[仕様書]]は[F[可視性状態]]が変化した時[[バイブレーションパターンの処理]]を停止することを求めています
[SRC[>>16]] が、実質的には[[バイブレーションパターンの実施]]を停止させるものです。

[HISTORY[
[27] 旧版の[[仕様書]]は、どの[[文書]]の状態を参照するべきなのか明確ではありませんでした。
]HISTORY]

* 歴史

** ガラケー時代

[17] [[ガラケー]]の中には、[[HTML]] の [DFN[[CODE(HTMLa)@en[[[vibration]]]]]]
[[属性]]や [DFN[[CODE(HTMLa)@en[[[viblength]]]]]] [[属性]]によって[[バイブレーション]]の挙動を指定できるものもありました。

[20] この2つの[[属性]]は、 [CODE(HTMLe)@en[[[a]]]] [[要素]]、
[CODE(HTMLe)@en[[[input]]]] [[要素]]、
[CODE(HTMLe)@en[[[img]]]] [[要素]]に存在していました。

[19] [CODE(HTMLe)@en[[[img]]]] [[要素]]の [CODE(HTMLa)@en[[[vibration]]]]
[[属性]]は、対応機種のサポート終了により2010年4月の2.1.0版で削除されました。
[WEAK[(他の[[要素]]では存続。)]]

;; [18] これらの[[属性]]は標準化されることなく、[[ガラケー]]の衰退により使われなくなりました。

[41] a/input vibration
Softbank
3.9.1., 3.12.2.

[42] a/input viblength
Softbank 3.9.1., 3.10.1., 3.12.2.

** Vibration API

[1] [CITE@en[Vibration API]]
( ([TIME[2011-11-17 21:51:59 +09:00]] 版))
<http://www.w3.org/TR/2011/WD-vibration-20111117/>

[2] [CITE[Bug 679966 – WebVibrator]]
( ([TIME[2011-11-18 08:22:05 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=679966>

[3] [CITE@en[Vibration API]]
( ([TIME[2012-05-03 23:34:31 +09:00]] 版))
<http://www.w3.org/TR/2012/CR-vibration-20120508/>

[4] [CITE[cordova-plugin-vibration/doc/index.md at master · apache/cordova-plugin-vibration · GitHub]]
( ([TIME[2014-06-11 00:39:40 +09:00]] 版))
<https://github.com/apache/cordova-plugin-vibration/blob/master/doc/index.md>

[5] [CITE@en[Cordova and w3c spec Algnment - Vibration Gap Analysis]]
( ([[Lisa Seacat DeLuca]] 著, [TIME[2014-06-09 23:20:25 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-webapps/2014AprJun/0868.html>

[8] [CITE@en[Vibration API]]
( ([TIME[2012-02-02 01:38:44 +09:00]] 版))
<http://www.w3.org/TR/2012/WD-vibration-20120202/>

[9] [CITE@en[Vibration API]]
( ([TIME[2013-05-23 21:41:39 +09:00]] 版))
<http://www.w3.org/TR/2013/WD-vibration-20130523/>

[10] [CITE@en[Vibration API]]
( ([TIME[2013-07-23 02:25:43 +09:00]] 版))
<http://www.w3.org/TR/2013/CR-vibration-20130723/>

[11] [CITE@en[Vibration API]]
( ([TIME[2014-02-10 23:36:36 +09:00]] 版))
<http://www.w3.org/TR/2014/WD-vibration-20140211/>

[12] [CITE@en[Vibration API]]
( ([TIME[2014-06-16 23:39:19 +09:00]] 版))
<http://www.w3.org/TR/2014/WD-vibration-20140619/>

[13] [CITE@en[Vibration API]]
( ([TIME[2014-09-04 19:19:32 +09:00]] 版))
<http://www.w3.org/TR/2014/CR-vibration-20140909/>

[15] [CITE@en[Vibration]]
( ([[Anne van Kesteren]] 著, [TIME[2014-10-09 21:46:44 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-archive/2014Oct/0000.html>

[14] [CITE@en[Integrate vibration · f57831c · whatwg/notifications]]
( ([TIME[2014-11-21 01:39:14 +09:00]] 版))
<https://github.com/whatwg/notifications/commit/f57831c11f90ec31b01a042508580bd45d74bb6c>

[6] [CITE@en[Vibration API]]
( ([TIME[2014-12-08 16:37:11 +09:00]] 版))
<http://www.w3.org/TR/2014/PR-vibration-20141209/>

[7] [CITE@en[Vibration API]]
( ([TIME[2015-02-06 02:28:12 +09:00]] 版))
<http://www.w3.org/TR/2015/REC-vibration-20150210/>

[21] [CITE@en[Vibration API: All Results]]
([TIME[2014-12-08 17:31:14 +09:00]] 版)
<http://w3c.github.io/test-results/vibration/20141118.html>

[22] >>21 の[[実装報告]]によると、 [[Firefox]] と [[Chrome]] が対応しています。


[28] [CITE@en[Add Notification.prototype.vibrate. Fixes #43. · whatwg/notifications@4661293]]
([TIME[2015-07-16 13:01:53 +09:00]] 版)
<https://github.com/whatwg/notifications/commit/4661293aa4e2dcd46c9db5e163f3781914835f87>

[29] [CITE@en[Vibration API]]
([TIME[2016-04-26 17:46:38 +09:00]] 版)
<https://w3c.github.io/vibration/>

[30] [CITE@en[Use '''['''SameObject''']''' Notification's vibrate attribute]]
( ([[annevk]]著, [TIME[2016-05-13 14:51:37 +09:00]]))
<https://github.com/whatwg/notifications/commit/40a08aa722d3c5b2eff3888292ca918b3ea8a9bf>

[31] [CITE@en[Block navigator.vibrate in cross-origin iframes · Issue #25 · WICG/interventions]]
([TIME[2016-07-12 01:12:41 +09:00]])
<https://github.com/WICG/interventions/issues/25>

[32] [CITE@en[Vibration API]]
([TIME[2016-08-18 15:56:23 +09:00]])
<https://www.w3.org/TR/2016/PER-vibration-20160818/>

[33] [CITE@en[Vibration API (Second Edition)]]
([TIME[2016-10-13 23:22:28 +09:00]])
<https://www.w3.org/TR/2016/REC-vibration-20161018/>