回答編集履歴

1

おかしな挙動の追記

2019/04/22 12:40

投稿

think49
think49

スコア18156

test CHANGED
@@ -148,4 +148,60 @@
148
148
 
149
149
 
150
150
 
151
+ ### おかしな挙動の追記
152
+
153
+
154
+
155
+ > 本件の挙動確認をしていたのですが、a:link でbackground-colorを設定しない場合、a:visited のbackground-colorが反映されませんでした。
156
+
157
+ > ...(中略)...
158
+
159
+ >
160
+
161
+ > ```CSS
162
+
163
+ > a:visited {
164
+
165
+ > background-color: black;
166
+
167
+ > color: red;
168
+
169
+ > }
170
+
171
+ > ```
172
+
173
+
174
+
175
+ Google Chrome 73.0.3683.103で再現する事を確認しました。
176
+
177
+ 開発者ツールの [Styles] タブで `background-color: black;` は有効な状態でしたが、実際の描画には反映されていません。
178
+
179
+ 前述の「検証」節で仮定した動作に照らし合わせると、下記の仮説を立てることが出来ます。
180
+
181
+
182
+
183
+ - 「カスケード処理」では有効
184
+
185
+ - カスケード処理後の「訪問済みスタイル上書き処理」で `background-color: black;` が無効化されている
186
+
187
+
188
+
189
+ 仕様上の「利用者のプライバシー云々」は、`background-image` を併用する事でブラウザ履歴を盗み取れる事実が露見した事を受けての規定と記憶しています。
190
+
191
+
192
+
193
+ - [:visitedと一緒にbackground-imageとかは使えないようになってるよ。プライバシー保護が理由。(CSS おれおれ Advent Calendar 2012 – 15日目) | Ginpen.com](https://ginpen.com/2012/12/16/visited-privacy-leaking/)
194
+
195
+ - [CSS によるブラウザ履歴の漏えいを防ぐ取り組み | Mozilla Developer Street (modest)](https://dev.mozilla.jp/2010/04/plugging-the-css-history-leak/)
196
+
197
+ - [visited background-image - Google 検索](https://www.google.com/search?q=visited+background-image)
198
+
199
+
200
+
201
+ ここで `background` 全体を封印する修正が加えられたなら、一応、辻褄は合います。
202
+
203
+ (`background-image` と `background: url()` だけを封印すればいいはずなので、個人的にはどうかと思いますが…)
204
+
205
+
206
+
151
207
  Re: te2ji さん