¿El atributo ‘nombre’ está desactualizado para tags de anclaje?

A Visual Studio no le gustan las tags de anclaje en la página:

Validación (XHTML 1.0 Transitional): El atributo ‘nombre’ se considera obsoleto. Se recomienda una construcción más nueva.

Estoy usando atributos de name de esta manera …

    ...  ... 

On this page…

...

Section One

...

¿Hay realmente una forma más moderna de hacer esto? ¿O está Visual Studio lleno de basura?

Deberías usar el atributo id lugar. Funciona de la misma manera, y no necesitas un artificial, sino simplemente

 

Section One

los atributos de nombre están en desuso en XHTML 1.0 ; sin embargo, puede usar un atributo de id del mismo modo; consulte Identificadores de fragmentos en las Pautas de compatibilidad de HTML de la especificación XHTML.

Entonces puedes simplemente usar

 

Section One

Pero tenga en cuenta que la especificación 1.0 recomienda ir a lo seguro con algo como esto:

 

Section One

Sin embargo, su fragmento utiliza XHTML 1.1 , donde el atributo de nombre se ha eliminado por completo de map elementos a y map , por lo que solo puede usar una identificación.

Creo que el enfoque moderno es usar el atributo id , que se evaluaría como un ancla. Por ejemplo, si cambiaste

 

Section One

a

 

Section One

Todavía lo abordarías como page.html#one .

También puede vincular en un encabezado de sección:

Tabla de contenido

 

Introduction
Some background
On a more personal note
...the rest of the table of contents... ...the document body...

Introduction

...section 1...

Some background

...section 2...

On a more personal note

...section 2.1... [...]

Fuente: http://www.w3.org/TR/REC-html40/struct/links.html

Creo que la forma correcta de hacerlo es

Sí, está desactualizado. Debe reemplazar con el atributo “id”.

Citando la página w3schools:

El atributo de ID reemplaza El nombre de atributo HTML 4.01 define un atributo de nombre para los elementos a, applet, frame, iframe, img y map. En XHTML, el atributo de nombre está en desuso. Use id en su lugar.

http://www.w3schools.com/Xhtml/xhtml_syntax.asp

name = los atributos son para etiquetar elementos en un formulario, y solo se pueden usar en elementos

(input, textarea, select etc). Para todo lo demás, ID = se usa. Exactamente por qué la gente de W3C pensó que se necesitaban dos formas diferentes de nombrar un elemento (con diferentes conjuntos de caracteres permitidos) no se conoce fácilmente.

Pero aquí http://www.w3.org/TR/html4/struct/links.html#h-12.2.3 Leo esto: “Algunos agentes de usuario más antiguos no son compatibles con los anclajes creados con el atributo id”. ¿Asi que?

Hasta que ya no sea compatible con el estándar (X) HTML que está utilizando, y no solo desaprobado, puede ser más seguro usar tanto el name como el id en los enlaces de anclaje. a una parte de la misma página. De la especificación XHTML 1 del W3C :

En XML, las referencias de URI RFC2396 que terminan con identificadores de fragmentos de la forma "#foo" no se refieren a elementos con un name="foo" atributo name="foo" ; más bien, se refieren a elementos con un atributo definido como de tipo ID, por ejemplo, el atributo id en HTML 4. Muchos clientes HTML existentes no admiten el uso de atributos de tipo ID de esta manera, por lo que se pueden suministrar valores idénticos. para ambos atributos para garantizar la máxima compatibilidad hacia adelante y hacia atrás (por ejemplo, ...) .