Are there two ways to jump to a fragment identifier in HTML?

nonopolarity picture nonopolarity · Jan 27, 2016 · Viewed 9.9k times · Source

I always thought the standard way to specify a fragment identifier is by <a name="foo"></a>.

<a href="#foo">go to foo</a>

<a name="foo"></a>                        <!-- obsolete method, it seems -->
<p>some content under that anchor with name</p>

But it seems like this is the old way, and the new way is using an id, like this:

<a href="#bar">go to bar</a>

<p id="bar">some content under that p with id</p>

In fact, the W3C validator says that name is obsolete for the <a> element. So are there 2 ways to jump to the fragment identifier but 1 of them is obsolete? (And when did that happen?)

(there are other questions about the difference between id and name, but this one is about fragment identifier)

Answer

Quentin picture Quentin · Jan 27, 2016

So are there 2 ways to jump to the fragment identifier but 1 of them is obsolete?

There are two ways to identify a fragment.

(There are also two ways to jump to one, since you can do it with a URL or write a pile of JavaScript to scroll the page).

And when did that happen?

id was introduced in 1996 when HTML 4 came out. It effectively obsoleted the name attribute for anchors.

name was made officially obsolete in HTML 5 in 2014 (or in Living HTML on some date that I'm not going to try to figure out).