[24] [DFN[vendor prefix]] は、 [[CSS]]、[[DOM]]、[[HTML]] などで[[事業者]]依存の独自拡張機能に[[事業者]]名を[[接頭辞]]として付与するものです。

[EG[
[49] [[CSS]] の [CODE[opacity]] [[プロパティー]]は、長らく、
[CODE[-webkit-opacity]]、 [CODE[-moz-opacity]]、[CODE[-khtml-opacity]]
といった[[事業者接頭辞]]付きで実装されていました。
]EG]

[45] 実験的な新機能を導入するときに、将来標準化された際との互換性の問題や、
他の事業者や他の機能が標準化された際との衝突の問題を回避する策として
00年代に用いられるようになりました。

[46] ところが次第に一般の[[著者]]が[[事業者接頭辞]]付きの機能を普通に使うようになりました。
特定の [[Webブラウザー]]が使っている[[事業者接頭辞]]付き機能のみを用いていて他の
[[Webブラウザー]]では正しく機能しない [[Webページ]]が作られたり、
いろいろな [[Webブラウザー]]に対応させるためにあらゆる (存在しないものも含めた)
[[事業者接頭辞]]と機能名の組み合わせを列挙した[[スタイルシート]]を書くのが流行ったりしました。
自動的に各[[事業者接頭辞]]との組み合わせを列挙した形に「展開」するツールが作られたりもしました。

[47] 結局[[事業者接頭辞]]付きの機能自体を[[標準化]]せざるを得ない状況に陥りました
([[Compatibility Standard]])。[[著者]]が[[事業者接頭辞]]付きと無しの両方で機械的に同じ値を指定するようになったため、
将来標準化された際の互換性の問題を回避するとの当初の目的も達成できなくなりました。
[[著者]]も [[Webブラウザー]]の開発者も[[標準化]]の担当者も、
手間と互換性の制約ばかりが増えて何のメリットもない最悪な結末でした。

[48] 10年代前半にこうした問題点が明らかになってきてから、各社は新たに[[事業者接頭辞]]付きで実験機能を提供することをやめ、
他の形を模索するようになりました。

* 仕様書

[REFS[
- [43] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-06-10 18:36:00 +09:00]]) <https://html.spec.whatwg.org/#extensibility-2>
- [44] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-06-10 18:36:00 +09:00]]) <https://html.spec.whatwg.org/#dom-canvas-getcontext>
]REFS]

* Vendor prefix の一覧

[22]
[FIG(list middle)[

- [CODE[atsc-[VAR[*]]]] ([[ATSC]])
- [CODE(CSS)@en[[[-ah-*]]]] ([[Antenna House]])
- [CODE(CSS)@en[[[-apple-*]]]] ([[Apple]])
- [CODE(CSS)@en[-epub-[VAR[*]]]]
- [CODE[-epubx-[VAR[*]]]]
- [CODE(CSS)@en[-fx-[VAR[*]]]]
- [CODE(CSS)@en[[[-ie-*]]]]
- [CODE[-internal-[VAR[*]]]] ([[Blink]])
- [CODE(CSS)@en[[[-khtml-*]]]] ([[KHTML]])
- [CODE(CSS)@en[[[-konq-*]]]] ([[Konqueror]])
- [CODE(CSS)@en[[[-manakai-*]]]] ([[manakai]])
- [CODE(CSS)@en[[[mixi-*]]]] ([[mixi]])
- [CODE(CSS)@en[[[-moz-*]]]] ([[Mozilla]])
- [CODE(CSS)@en[[[-ms-*]]]] ([[IE]])
- [CODE(CSS)@en[[[mso-*]]]] ([[Microsoft Office]])
- [CODE(CSS)@en[[[-o-*]]]] ([[Opera]])
- [CODE(CSS)@en[[[-oxy-*]]]] ([[Oxygen]])
- [CODE(CSS)@en[[[-webkit-*]]]] ([[WebKit]])
- [CODE(CSS)@en[-x-[VAR[*]]]]
- [CODE(CSS)@en[-xv-[VAR[*]]]] ([[Opera]])
]FIG]

* 標準化

[54] [[vendor prefix]] 付きの機能の一部は、その後[[標準化]]せざるを得なくなりました。

[FIG(list)[
- [CITE@en[Compatibility Standard]]
- [CITE@en[DOM Standard]]
-- [[dispatch]] ([[遺物イベント型]])

]FIG]

-*-*-

[62] [CITE[HTMLayout CSS support map]], [TIME[2024-08-17T08:41:34.000Z]], [TIME[2010-11-29T13:53:25.140Z]] <https://web.archive.org/web/20101129135248/http://www.terrainformatica.com/htmlayout/cssmap.whtm>

[63] >>62 custom CSS attributes

* 文脈

[50] かつては [CODE(DOMa)@en[visibilityState]] でも認められていましたが、
削除されました。

* 関連

[25] [[IETF]] は[[MIME型]]の [CODE(MIME)@en[[[vnd.*]]]] ([[vendor tree]]) などのように [[vendor prefix]]
と類似した構文を定義しています。

[26] [[X-*]] も参照。

* 歴史

[1] [CITE@en[Syntax and basic data types]]
( ([TIME[2011-04-16 03:28:12 +09:00]] 版))
<http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords>

[2] [CITE@en[Cascading Style Sheets (CSS) Snapshot 2007]]
( ([TIME[2011-05-12 23:25:26 +09:00]] 版))
<http://www.w3.org/TR/2011/NOTE-css-beijing-20110512/#experimental>

[3] [CITE@en[Cascading Style Sheets (CSS) Snapshot 2010]]
( ([TIME[2011-05-12 23:24:12 +09:00]] 版))
<http://www.w3.org/TR/2011/NOTE-css-2010-20110512/#experimental>

[4] [CITE[IRC logs: freenode / #whatwg / 20110608]]
( ([TIME[2011-06-11 01:00:34 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20110608>

[5] [CITE@en[CSS vendor prefixes, again... - <Glazblog/>]]
( ([[glazou]] 著, [TIME[2011-11-09 21:39:35 +09:00]] 版))
<http://www.glazman.org/weblog/dotclear/index.php?post/2011/11/05/CSS-vendor-prefixes-again>

[6] [CITE@en[CSS vendor extension issues]]
( ([[Karl Dubost]] 著, [TIME[2011-11-09 04:13:57 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-archive/2011Nov/0009.html>

[7] [CITE[IRC logs: freenode / #whatwg / 20111111]]
( ([TIME[2011-11-12 00:43:00 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20111111>

[8] [CITE[IRC logs: freenode / #whatwg / 20111115]]
( ([TIME[2011-11-16 23:10:22 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20111115>

[9] [CITE@en[Vendor Prefixes Are Hurting the Web]]
( ([[Henri Sivonen]] 著, [TIME[2011-11-16 20:46:00 +09:00]] 版))
<http://hsivonen.iki.fi/vendor-prefixes/>

[10] [CITE@en[CSS Vendor Prefixes ''''''[''''''CSS Working Group Wiki'''''']'''''']]
( ([TIME[2011-11-16 23:58:22 +09:00]] 版))
<http://wiki.csswg.org/spec/vendor-prefixes>

[11] [CITE[IRC logs: freenode / #whatwg / 20120209]]
( ([TIME[2012-02-11 19:27:31 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20120209>

[12] [CITE[IRC logs: freenode / #whatwg / 20120221]]
( ([TIME[2012-02-22 23:27:39 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20120221#l-210>

[13] [CITE[IRC logs: freenode / #whatwg / 20120502]]
( ([TIME[2012-05-06 21:45:58 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20120502>

[14] [CITE@en[Proposition to change the prefixing policy]]
( ([[Florian Rivoal]] 著, [TIME[2012-05-05 02:26:17 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-style/2012May/0125.html>

[15] [CITE[IRC logs: freenode / #whatwg / 20120713]]
( ([TIME[2012-07-21 01:41:48 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20120713#l-1035>

[16] [CITE@en[接頭辞外しと-webkit-サポート - fragmentary]]
( ([TIME[2012-08-14 02:06:20 +09:00]] 版))
<http://myakura.hatenablog.com/entry/2012/08/14/020029>

[17] [CITE[prefixes are out of fashion · cc1e3c1 · whatwg/xhr]]
( ([TIME[2012-09-16 06:58:00 +09:00]] 版))
<https://github.com/whatwg/xhr/commit/cc1e3c1f57c9e28974f0ab58c3c7fe6c70de4d59>

[18] [CITE@en[Re: pointerLock vendor prefixes, shims and usability]]
( ([[Boris Zbarsky]] 著, [TIME[2012-12-25 06:41:00 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-webapps/2012OctDec/0731.html>

[19] [CITE@en[CSS WG Blog – Minutes San Diego F2F August 2012: Experimental Features Policy]]
( ([TIME[2013-04-04 02:02:48 +09:00]] 版))
<http://www.w3.org/blog/CSS/2012/08/30/resolutions-53/>

[20] [CITE[Developer FAQ - The Chromium Projects]]
( ([TIME[2013-04-04 01:08:00 +09:00]] 版))
<http://www.chromium.org/blink/developer-faq>

[21] [CITE@en[Page Visibility]]
( ([TIME[2013-05-20 23:01:23 +09:00]] 版))
<https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html#sec-vendor-prefix>

[27] [CITE[Source Map Revision 3 Proposal - Google ドライブ]]
( ([TIME[2013-12-14 09:33:42 +09:00]] 版))
<https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#>

[28] [CITE@en[User Timing]]
( ([TIME[2013-12-16 22:17:37 +09:00]] 版))
<https://dvcs.w3.org/hg/webperf/raw-file/default/specs/UserTiming/Overview.html#vendor-prefixes>

[29] [CITE@en[Performance Timeline]]
( ([TIME[2013-12-16 22:27:38 +09:00]] 版))
<https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html#sec-vendor-extensions>

[30] ( ([TIME[2014-03-20 05:35:04 +09:00]] 版))
<http://peter.sh/data/vendor-prefixed-css.php>

[31] [CITE@en[Re: List of all CSS unprefixed properties]]
( ([[Daniel Glazman]] 著, [TIME[2014-03-19 15:58:34 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-style/2014Mar/0438.html>

[32] [CITE[IRC logs: freenode / #whatwg / 20140820]]
( ([TIME[2014-08-21 02:22:51 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20140820#l-664>

[33] [CITE@en[WebDriver]]
( ([TIME[2014-11-07 11:13:51 +09:00]] 版))
<https://dvcs.w3.org/hg/webdriver/raw-file/default/webdriver-spec.html#h3_vendor-specific-extensions>

[34] [CITE@en[RFC 6749 - The OAuth 2.0 Authorization Framework]]
([TIME[2014-12-15 14:15:35 +09:00]] 版)
<http://tools.ietf.org/html/rfc6749#section-8.2>

[35] [CITE@en[1107378 – rewrite certain -webkit- prefixed CSS (ultimately for sites on a "fixlist", via bug 1132743)]]
([TIME[2015-02-27 17:33:34 +09:00]] 版)
<https://bugzilla.mozilla.org/show_bug.cgi?id=1107378>

[36] [CITE[JavaScript - click()やload()で追加したcssにベンダープレフィックスをつける - Qiita]]
( ([TIME[2015-03-01 14:26:41 +09:00]] 版))
<http://qiita.com/SeijiNishiwaki/items/31d8870420be756a1492>

[37] [[vendor prefix]] の弊害極まって >>36 みたいなわけのわからないテクニックが必要になっている...

[38] [CITE@en[Spec Element.webkitMatchesSelector() · Issue #3 · whatwg/compat]]
([TIME[2015-10-20 15:09:44 +09:00]] 版)
<https://github.com/whatwg/compat/issues/3>

[39] [CITE@en[Fixes #18. Spec -webkit-text-size-adjust. · whatwg/compat@9ca9281]]
([TIME[2016-01-01 11:17:38 +09:00]] 版)
<https://github.com/whatwg/compat/commit/9ca9281367491d4e0e4b2afb6a61012b38ab9f68>

[40] [CITE@en[''''''[''''''css-2015'''''']'''''' Pre-CR Unprefixed Features]]
([[fantasai]] 著, [TIME[2016-03-22 10:05:27 +09:00]] 版)
<https://lists.w3.org/Archives/Public/www-style/2016Mar/0303.html>

[41] [CITE[Updating Our Prefixing Policy | WebKit]]
([TIME[2016-04-26 23:07:22 +09:00]] 版)
<https://webkit.org/blog/6131/updating-our-prefixing-policy/>

[42] [CITE@en[Consider adding Document.fullscreen property · Issue #38 · whatwg/fullscreen]]
( ([TIME[2016-05-04 14:46:33 +09:00]]))
<https://github.com/whatwg/fullscreen/issues/38>

[51] [CITE@en[WebDriver]]
([TIME[2016-07-22 07:24:31 +09:00]])
<https://w3c.github.io/webdriver/webdriver-spec.html#dfn-extension-prefix>

[52] [CITE@en['''['''cssom''']''' Include vendor-prefixed properties in "supported CSS property"]]
([[zcorpan]]著, [TIME[2016-08-11 17:17:01 +09:00]])
<https://github.com/w3c/csswg-drafts/commit/e2f369bdd8569e7e34910fe8dbaf2aa2920bdaa2>

[53] [CITE@en[Suggest browser specific extension in Protocol Extensions. (#326)]]
([[shs96c]]著, [TIME[2016-09-08 19:49:40 +09:00]])
<https://github.com/w3c/webdriver/commit/324b0724a1257ef9342b4482a8bb9defe8ef6f7c>

[FIG(quote)[
[FIGCAPTION[
[55] [CITE[ARIB TR-B39]]
([TIME[2016-07-25 17:01:00 +09:00]])
<http://www.arib.or.jp/english/html/overview/doc/4-TR-B39v1_0-1p4.pdf#page=276>
]FIGCAPTION]

> 10.6.17 ベンダープレフィックス
> 10.6.17.1 種類
> 表 10-28 に示すベンダプレフィックスを運用する。それぞれの対応可否は受信機の商品企画とし、
> 対応しない項目については画面提示に影響を与えないこと。
> 表 10-28 ベンダープレフィックス一覧
> ベンダープレフィックス プロパティ・値
> webkit -webkit
> o -o
> ms -ms
> moz -moz- 
> 10.6.17.2 ベンダープレフィックスを付与すべきプロパティ
> ベンダープレフィックスを付与すべきプロパティを表 10-29 に示す。ベンダープレフィックスを
> 付与するか否かは、受信機の対応状況に合わせて判断してもよい。
> 10.6.17.3 ベンダープレフィックスを付与すべき値
> ベンダープレフィックスを付与すべき値を表 10-30 に示す。ベンダープレフィックスを付与する
> か否かは、受信機の対応状況に合わせて判断してもよい。
> 10.6.17.4 ベンダープレフィックスを付与すべきイベント
> ベンダープレフィックスを付与すべきイベントを表 10-31 に示す。ベンダープレフィックスを付
> 与するか否かは、受信機の対応状況に合わせて判断してもよい。
> 

]FIG]


[56] [CITE@en[protocol: define extension capabilities (#343)]]
([[andreastt]]著, [TIME[2016-10-06 23:29:33 +09:00]])
<https://github.com/w3c/webdriver/commit/dcc48dcef8c1979b490403e585bc8f580ed5006e>

[57] [CITE@en[Remove old-fashioned vendor-specific extension advice]]
([[annevk]]著, [TIME[2016-10-13 02:28:15 +09:00]])
<https://github.com/whatwg/html/commit/76f88a4015d55273749c34238d250b7bdb1aff62>

[23] [CITE@en[API Deprecations and Removals in Chrome 57  |  Web  |  Google Developers]]
([TIME[2017-02-23 00:20:53 +09:00]])
<https://developers.google.com/web/updates/2017/02/chrome-57-deprecations?utm_source=feed&utm_medium=>

[58] [CITE@en-us[IndieUI: User Context 1.0]]
([TIME[2016-08-19 00:40:59 +09:00]])
<https://w3c.github.io/indie-ui/indie-ui-context.html>

[59] [CITE@en[Generalize protocol extension mechanism (#1177)]]
([[jugglinmike]]著, [TIME[2018-01-06 19:28:51 +09:00]])
<https://github.com/w3c/webdriver/commit/971ab897921b3a84ce5c426fefca5c9b3d2ebff2>

[60] [CITE@en[Generalize protocol extension mechanism by jugglinmike · Pull Request #1177 · w3c/webdriver]]
([TIME[2018-01-07 13:50:15 +09:00]])
<https://github.com/w3c/webdriver/pull/1177>

[61] [CITE@en[Make custom attribute rules consistent with custom element name rules · Issue #2271 · whatwg/html · GitHub]], [TIME[2023-03-29T03:06:10.000Z]] <https://github.com/whatwg/html/issues/2271>
