diff --git a/lib/commons/dom/get-element-by-reference.js b/lib/commons/dom/get-element-by-reference.js index fb1a552718..7c4c0a7f47 100644 --- a/lib/commons/dom/get-element-by-reference.js +++ b/lib/commons/dom/get-element-by-reference.js @@ -13,7 +13,7 @@ dom.getElementByReference = function (node, attr) { let fragment = node.getAttribute(attr); if (fragment && fragment.charAt(0) === '#') { - fragment = fragment.substring(1); + fragment = decodeURIComponent(fragment.substring(1)); let candidate = document.getElementById(fragment); if (candidate) { diff --git a/test/checks/navigation/skip-link.js b/test/checks/navigation/skip-link.js index 34e2348419..ffe4798e19 100644 --- a/test/checks/navigation/skip-link.js +++ b/test/checks/navigation/skip-link.js @@ -44,4 +44,10 @@ describe('skip-link', function () { var node = fixture.querySelector('a'); assert.isUndefined(checks['skip-link'].evaluate(node)); }); + + it('should return true if the URI encoded href points to an element with an ID', function () { + fixture.innerHTML = 'Click Here