aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormrmr19932014-12-17 12:47:38 +0000
committermrmr19932014-12-17 12:47:38 +0000
commit833942ae06f680bc1949a7bced4719b707950568 (patch)
treedbd1160179b2eff5e135cdc789c141269e10598c
parent82beb23ce138505f0358ec8e15a56d20db6846dd (diff)
downloadvimium-833942ae06f680bc1949a7bced4719b707950568.tar.bz2
Stop ignoring clickable opacity: none; elements
Some websites (notably Facebook) use `opacity: none;` to show an image in the place of a less-customisable element (eg. an `<input type="file" />`). To not show link hints for such transparent elements is confusing and often the wrong thing to do.
-rw-r--r--lib/dom_utils.coffee3
-rw-r--r--tests/dom_tests/dom_utils_test.coffee6
2 files changed, 1 insertions, 8 deletions
diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee
index 8ade58bb..1e2cc812 100644
--- a/lib/dom_utils.coffee
+++ b/lib/dom_utils.coffee
@@ -60,8 +60,7 @@ DomUtils =
# eliminate invisible elements (see test_harnesses/visibility_test.html)
computedStyle = window.getComputedStyle(element, null)
if (computedStyle.getPropertyValue('visibility') != 'visible' ||
- computedStyle.getPropertyValue('display') == 'none' ||
- computedStyle.getPropertyValue('opacity') == '0')
+ computedStyle.getPropertyValue('display') == 'none')
continue
return clientRect
diff --git a/tests/dom_tests/dom_utils_test.coffee b/tests/dom_tests/dom_utils_test.coffee
index 130a3014..ad8bde3c 100644
--- a/tests/dom_tests/dom_utils_test.coffee
+++ b/tests/dom_tests/dom_utils_test.coffee
@@ -50,12 +50,6 @@ context "Check visibility",
assert.isTrue (DomUtils.getVisibleClientRect document.getElementById 'foo') != null
assert.isTrue (DomUtils.getVisibleClientRect document.getElementById 'bar') != null
- should "detect opacity:0 links as hidden", ->
- document.getElementById("test-div").innerHTML = """
- <a id='foo' style='opacity:0'>test</a>
- """
- assert.equal null, DomUtils.getVisibleClientRect document.getElementById 'foo'
-
should "detect links that contain only floated / absolutely-positioned divs as visible", ->
document.getElementById("test-div").innerHTML = """
<a id='foo'>