Become a Patron!

My Amazon wishlist can be found here.

Life Line

HTML name attribute deprecated

Just now somebody on IRC was claiming that the "name" attribute in HTML - the one that is used to give form input fields a name to be used in $_GET and _$POST in PHP is in fact deprecated. Quoting that seems indeed true - but you should always double check on the internet, as nobody ever reads specifications right.

The W3C has also a section on this available , and if you only skim you might only see:

"Note that in XHTML 1.0, the name attribute of these elements is formally deprecated, and will be removed in a subsequent version of XHTML."

But if you read correctly, it's only for the elements: a, applet, form, frame, iframe, img, and map.

Today's lesson: always read the specs carefully .


This article has a short URL available:


No name for anchor tags? Does that mean no more #section to jump from place to place in a document?

"Sorry screen readers, I can no longer provide you with a way to skip my 20 item long menu at the top of each page. Enjoy!"

@Josh: Nah... there is the ID attribute for this of course.

@Josh, as is mentioned, you should use the ID element.

On a (Strict?) Doctyped XHTML page, you can reference any element with an ID by the standard hash URL.

For example, I have an ID called content (...). Adding #content to the URL will take me to that location on the page (foo.php#content). Exactly the same behavior as the old name attribute but far easier :)

Add Comment


Will not be posted. Please leave empty instead of filling in garbage though!

Please follow the reStructured Text format. Do not use the comment form to report issues in software, use the relevant issue tracker. I will not answer them here.

All comments are moderated