/
901.txt
148 lines (111 loc) · 8.37 KB
/
901.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
[1] [DFN[[RUBYB[[[活性化動作]]]@en[activation behavior]]]]とは、[[要素]]の[[クリック]]によって最終的に呼び出されると規定されている動作のことです。
* 仕様書
[REFS[
- [26] [CITE@en[DOM Standard]] ([TIME[2016-10-21 03:59:46 +09:00]]) <https://dom.spec.whatwg.org/#eventtarget-activation-behavior>
- [8] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-01-30 08:05:01 +09:00]] 版) <https://html.spec.whatwg.org/#activation>
-- [2] [CITE@en-US-x-hixie[Web Applications 1.0]]
<http://www.whatwg.org/specs/web-apps/current-work/complete.html#activation-behavior>
-- [5] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-01-30 08:05:01 +09:00]] 版) <https://html.spec.whatwg.org/#nearest-activatable-element>
- [7] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-01-30 08:05:01 +09:00]] 版) <https://html.spec.whatwg.org/#selector-active>
]REFS]
* 活性化の手順
[12] [[イベント対象]]は、その種類と状態に応じて、
[DFN[[RUBYB[活性化動作]@en[activation behavior]]]]
(旧[DFN[[RUBYB[クリック後活性化手順]@en[post-click activation steps]]]])、
[DFN[[RUBYB[遺物活性化前動作]@en[legacy-pre-activation behavior]]]]
(旧[DFN[[RUBYB[クリック前活性化手順]@en[pre-click activation steps]]]])、
[DFN[[RUBYB[遺物被取消活性化動作]@en[legacy-canceled-activation behavior]]]]
(旧[DFN[[RUBYB[取り消しされた活性化の手順]@en[canceled activation steps]]]])
が定義されていることがあります [SRC[>>26, >>8]]。
[15] 次の[[要素]]には、[[活性化動作]]が定義されている、または状態によっては定義されます。
[FIG(middle list)[
- [CODE(HTMLe)@en[[[link]]]] [SRC[[[HTML Standard]]]]
- [CODE(HTMLe)@en[[[a]]]] [SRC[[[HTML Standard]]]]
- [CODE(HTMLe)@en[[[area]]]] [SRC[[[HTML Standard]]]]
- [DEL[[CODE(HTMLe)@en[[[video]]]] [SRC[[[HTML Standard]]]]]]
- [DEL[[CODE(HTMLe)@en[[[audio]]]] [SRC[[[HTML Standard]]]]]]
- [CODE(HTMLe)@en[[[label]]]] [SRC[[[HTML Standard]]]]
- [CODE(HTMLe)@en[[[input]]]] [SRC[[[HTML Standard]]]]
- [CODE(HTMLe)@en[[[button]]]] [SRC[[[HTML Standard]]]]
- [CODE(HTMLe)@en[[[menuitem]]]] [SRC[[[HTML Standard]]]]
- [CODE(HTMLe)@en[summary]]
[HISTORY[
- [CODE(HTMLe)@en[[[th]]]] [SRC[[[HTML Standard]]]]
- [CODE(HTMLa)@en[[[tabindex]]]] [[属性]]を持つ[[要素]] [SRC[[[HTML Standard]]]]
]HISTORY]
]FIG]
;; [16] [CODE(HTMLe)@en[[[<input type=range>]]]] や[[日時]]選択の[[制御子]]のボタンや、
[CODE(HTMLe)@en[[[select]]]] [[要素]]のボタン、
[[CSS]] [[スクロールバー]]などの動作は[[活性化動作]]とはされていません。
[14] [[遺物活性化前動作]]および[[遺物被取消活性化動作]]は、次の[[要素]]で定義されています。
[FIG(middle list)[
- [CODE(HTML)@en[[[<input type=radio>]]]] [SRC[[[HTML Standard]]]]
- [CODE(HTML)@en[[[<input type=checkbox>]]]] [SRC[[[HTML Standard]]]]
]FIG]
;; これらの[[要素]]では、 [CODE(DOMe)@en[[[click]]]] [[イベント]]の直前に状態が変更され、
[CODE(DOMe)@en[[[click]]]] [[イベント]]が[[取り消し]]されると元の状態に戻されます。
[31]
関連して、 [[focusing steps]] が実行されることがあります。
-*-*-
[21] [[活性化動作]]には、[[マウス]]の状態だけでなく、[[鍵盤]]の状態も影響するかもしれません。
[EG[
[22] 例えば[[ハイパーリンク]]での[[クリック]]や[[フォーム]]の[[提出ボタン]]の[[クリック]]は、 [KBD[[[Shift]]]]
押下中なら新しい[[窓]]での [[navigate]] となります。
]EG]
* 活性化の手順の呼び出し
[13] [[クリック]]などによって[[要素]]が[[活性化]]されると、
活性化の各手順が呼び出されます ([[クリック]]を参照)。
[[活性化動作]]と[[取り消しされた活性化の手順]]は、 [CODE(DOMe)@en[[[click]]]]
[[イベント]]が[[取り消し]]されたかどうかにより、片方のみ実行されます。
[9] [[利用者エージェント]]は、[[利用者]]が[[要素]]の[[活性化動作]]を手動で[RUBYB[呼び出す]@en[trigger]]方法を用意する[['''べきです''']] [SRC[>>8]]。
[EG[
[10] 例えば[[鍵盤]]入力、[[音声]]入力、[[マウス]]の[[クリック]]のような方法で[[活性化動作]]を指示するような実装が可能です [SRC[>>8]]。
]EG]
;; [11] [[クリック]]およびそれ以外の[[活性化動作]]が指定された時の動作については、
[[クリック]]も参照。
* 要素の活性化の状態
[18] [[要素]]は、その種類だけでなく、状態によっても[[活性化動作]]を持つかどうかが変化することもあります。
;; >>14、>>15 の各項を参照。
[17] ある[[要素]]が[[活性化動作]]を持つかどうかは、どの[[要素]]の[[活性化動作]]が実行されるか
(>>6)、[[フォーム]]が暗示的に[[提出]]できるか ([[既定ボタン]]参照)、
[CODE(CSS)@en[[[:active]]]] が適用されるタイミング、
[CODE(HTMLe)@en[[[input]]]] [[要素]]の[[フォーカス]]に紐付く[[イベント]]の[[発火]]タイミングに影響します。
[6] ある[[要素]]の[DFN[[RUBYB[直近活性化可能要素]@en[nearest activatable element]]]]とは、
その[[要素]]またはその[[祖先]]で[[活性化動作]]が定義されている[[要素]]であって、
直近のものです。存在しないこともあります。 [SRC[>>5]]
[[真正クリック活性化手順]]では、[[活性化動作]]の実行対象が[[直近活性化可能要素]]により決定されます。
[7] ある[[要素]]が[DFN[[RUBYB[形式的活性化状態にある]@en[in a formal activation state]]]]とは、
[[利用者]]が当該[[要素]]の[[活性化動作]]を[RUBYB[実行]@en[trigger]]する意思を示し始めた時点から、
[[利用者]]がその意思を示し終える時点と[[活性化動作]]が実行し終わる時点のいずれか早い方までの間をいいます [SRC[>>18]]。
* 関連
[19] [[活性化動作]]を実行させる状態にあることを[[擬似クラス]] [CODE(CSS)@en[[[:active]]]]
が表しています。
[20] [[活性化]]その他の目的のために[[要素]]が選択されている状態になっていることを[[焦点]]を持っているといいます。
* 歴史
[3] [CITE@en[Web Applications 1.0 r7004 Fix 'activation behavior' definitions for form controls so that .click() doesn't do anything on them if they're disabled; fix definition of default submit buttons so that they are more predictable; unhide some v2COMMAND text that is now applicable again]]
( ([TIME[2012-02-22 09:34:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7003&to=7004>
[4] [CITE@en[Web Applications 1.0 r8453 Move activation stuff from the part of the spec that talks about elements to the part of the spec that talks about user interaction]]
( ([TIME[2014-02-04 06:39:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=8452&to=8453>
[23] [CITE@en[Remove the activation behavior of media elements · whatwg/html@c649b7f]]
([TIME[2015-09-15 11:05:18 +09:00]] 版)
<https://github.com/whatwg/html/commit/c649b7f1bcebc1e8effdc063ec4a85a782b5fd63>
[24] [CITE@en[Define special dispatch behavior for click events]]
([[annevk]]著, [TIME[2016-10-18 01:55:28 +09:00]])
<https://github.com/whatwg/dom/commit/cb12fd4e2db68a9d86841a13a73611e16f9f1fb4>
[25] [CITE@en[Editorial: rename activation-behavior-related algorithms]]
([[annevk]]著, [TIME[2016-10-20 17:45:18 +09:00]])
<https://github.com/whatwg/dom/commit/82692b9bebfb94b948d3f7593da05ea7c1e23ffc>
[27] [CITE@en[Align activation behavior with changes to DOM Standard]]
([[annevk]]著, [TIME[2016-10-21 00:06:40 +09:00]])
<https://github.com/whatwg/html/commit/7beb920ba2e1a71246b81d86005f223a0d7ac8ab>
[28] [CITE@en[Remove tabindex's synthetic click event feature]]
([[annevk]]著, [TIME[2016-11-04 00:03:54 +09:00]])
<https://github.com/whatwg/html/commit/35e3e1ec556de58da08d928ee033b7d10e91d1b9>
[29] [CITE@en[Please add two clarification · Issue #3466 · whatwg/html]]
([TIME[2018-02-26 11:57:39 +09:00]])
<https://github.com/whatwg/html/issues/3466>
[30] [CITE@en[Handle delegates focus in the focusing steps]]
([[rakina]]著, [TIME[2019-10-16 15:46:58 +09:00]])
<https://github.com/whatwg/html/commit/133607f19d5bd4e554c2106f36ee70c6a67cbb5d>