
PASS The user agent scroll to the fragment when there is an element with an ID exactly equal to the decoded fragid
PASS The user agent scroll to the fragment when there is an anchor element with a name attribute exactly equal to the decoded fragid
PASS The user agent should not scroll to an element with an ID exactly equal to the decoded fragid in an open shadow tree
PASS The user agent should not scroll to an element with an ID exactly equal to the decoded fragid in a closed shadow tree
PASS The user agent should not scroll to an anchor element with a name attribute exactly equal to the decoded fragid in an open shadow tree
PASS The user agent should not scroll to an anchor element with a name attribute exactly equal to the decoded fragid in a closed shadow tree
PASS The user agent should scroll to an element with an ID exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside an open shadow tree earlier in tree order
PASS The user agent should scroll to an element with an ID exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside a closed shadow tree earlier in tree order
PASS The user agent should scroll to an anchor element with a name attribute exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside an open shadow tree earlier in tree order
PASS The user agent should scroll to an anchor element with a name attribute exactly equal to the decoded fragid in the document tree even if there was another element with the same ID inside a closed shadow tree earlier in tree order

