-
Notifications
You must be signed in to change notification settings - Fork 4
/
549.txt
91 lines (66 loc) · 5.16 KB
/
549.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
[2] [CODE(DOMi)@en[[[Document]]]] [[オブジェクト]]の [DFN[[CODE(DOMa)@en[[[hidden]]]]]] [[属性]]は、
[[文書]]が表示されているかを返します。
[16] [CODE(DOMi)@en[[[Document]]]] [[オブジェクト]]の [CODE(DOMa)@en[[[visibilityState]]]]
[[属性]]の値 [DFN[[CODE(DOM)@en[[[hidden]]]]]]、
[DFN[[CODE(DOM)@en[[[visible]]]]]] は[[文書]]が隠れていること、いないことをそれぞれ表します。
[17] これら2つの「hidden」の意味は若干異なっています。
* 仕様書
[REFS[
- [1] [CITE@en[Page Visibility]] ([TIME[2013-05-20 13:53:52 +09:00]] 版) <https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html#dom-document-hidden>
- [18] [CITE@en[Page Visibility]] ([TIME[2013-05-20 14:16:53 +09:00]] 版) <https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html#pv-page-hidden>
- [22] [CITE@en[Page Visibility]] ([TIME[2013-05-20 14:24:55 +09:00]] 版) <https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PageVisibility/Overview.html#pv-page-visible>
- [27] [CITE@en[Vibration API]] ([TIME[2014-11-20 01:59:39 +09:00]] 版) <http://dev.w3.org/2009/dap/vibration/#dfn-processing-vibration-patterns>
]REFS]
* WebIDL 定義
[FIG[
[3] [SRC[>>1]]
[PRE(IDL code)[
partial interface [[Document]] {
[[readonly attribute]] [[boolean]] hidden;
};
]PRE]
]FIG]
* 取得器 ([CODE(DOMa)@en[hidden]] 属性)
[4] [[最上位閲覧文脈]]に含まれている [CODE(DOMi)@en[[[Document]]]] がまったく見えないなら[[真]]、
どこかの[[画面]]に一部分でも表示されているなら[[偽]]を返さなければ[['''なりません''']] [SRC[>>1]]。
;; [6] 当該 [CODE(DOMi)@en[[[Document]]]] が直接含まれている[[閲覧文脈]]ではなく、[[最上位閲覧文脈]]によって決まります。
[5] [CODE(DOMi)@en[[[Document]]]] の [CODE(DOMa)@en[[[defaultView]]]] が [[null]] なら、[[真]]を返さなければ[['''なりません''']]
[SRC[>>1]]。
[7] 通常[[全画面]]で表示するような[[アクセシビリティ・ツール]]もあったりしますから、
[[Webブラウザー]]が[[最小化]]されておらず他の[[アプリケーション]]に完全に隠れてしまっているような場合であれば[[偽]]を返しても[['''構いません''']]
[SRC[>>1]]。
[EG[
[8] 例えば次の場合に[[真]]を返します。
- [9] [[最小化]]されている場合 [SRC[>>1]]
- [10] 裏の[[タブ]]になっている場合 [SRC[>>1]]
- [11] [[unload]] しようとしている場合 [SRC[>>1]]
- [12] [[session history entry]] を探索しようとしている場合 [SRC[>>1]]
- [13] [[OS]] の[[ロック画面]]が表示されている場合 [SRC[>>1]]
- [21] [CODE(DOMa)@en[[[visibilityState]]]] が [CODE(DOM)@en[[[prerender]]]] の場合
]EG]
[25] 値の変化のタイミングについては [CODE(DOMe)@en[[[visibilitychange]]]] の項をご覧ください。
[26] [CODE(JS)@en[[[navigator.vibrate]]]] が無視されるかどうかは、
この[[属性]]の値に依存します [SRC[>>27]]。
* [CODE(DOMa)@en[visibilityState]] 属性の値 [CODE(DOM)@en[hidden]]
[19] [[最上位閲覧文脈]]に含まれている [CODE(DOMi)@en[[[Document]]]] がまったく見えないなら
[CODE(DOMa)@en[[[visibilityState]]]] [[属性]]は [CODE(DOM)@en[[[hidden]]]]
を返さなければ[['''なりません''']]。ただし >>7 の場合は [CODE(DOM)@en[[[visible]]]]
を返して[['''構いません''']]。 [SRC[>>18]]
[20] >>19 の規定からすると [CODE(DOMa)@en[[[hidden]]]] [[属性]]が[[真]]なら [CODE(DOMa)@en[[[visibilityState]]]]
[[属性]]は必ず [CODE(DOM)@en[[[hidden]]]] になりそうなものですが、 >>11 の場合に [CODE(DOM)@en[[[unloaded]]]]
という別の値が用意されています。また [CODE(DOM)@en[[[prerender]]]] という値も用意されています。
更に [[vendor prefix]] のついた値も認められており、厳密に解釈すると >>19 の規定に反してしまう可能性があります。
仕様書の例示には >>9、>>10、>>13 のみ挙げられています。
* [CODE(DOMa)@en[visibilityState]] 属性の値 [CODE(DOM)@en[visible]]
[23] [[最上位閲覧文脈]]に含まれている [CODE(DOMi)@en[[[Document]]]]
がどこかの[[画面]]に一部分でも表示されているなら [CODE(DOMa)@en[[[visibilityState]]]]
[[属性]]は [CODE(DOM)@en[[[visible]]]] を返さなければ[['''なりません''']]。また >>7
の場合も [CODE(DOM)@en[[[visible]]]] で[['''構いません''']]。 [SRC[>>18]]
;; [24] これは [CODE(DOMa)@en[[[hidden]]]] が[[偽]]になる場合と同じである [SRC[>>18]] とわざわざ明記されています
(>>19 については言及なし)。
* 歴史
[15] [[Page Visibility]] 仕様により追加されました。 [[WebKit]] では [DFN[[CODE(DOMa)@en[[[webkitHidden]]]]]]
として実装されています [TIME[2013-05-20T14:04:38.00Z]]。 [[WinIE]] では [DFN[[CODE(DOMa)@en[[[msHidden]]]]]]、
[[Firefox]] では [DFN[[CODE(DOMa)@en[[[mozHidden]]]]]] も実装されていました。
* 関連
[14] [[要素]]の [CODE(DOMa)@en[[[hidden]]]] [[属性]]とは関係ありません。