L’attributo ‘nome’ è considerato obsoleto per i tag di ancoraggio ?

A Visual Studio non piacciono i tag di ancoraggio su pagina:

Validazione (Transizione XHTML 1.0): l’attributo ‘nome’ è considerato obsoleto. Si consiglia un nuovo costrutto.

Sto usando gli attributi del name in questo modo …

    ...  ... 

On this page…

...

Section One

...

C’è davvero un modo più moderno di farlo? O Visual Studio è pieno di merda?

Dovresti invece usare l’attributo id . Funziona allo stesso modo e non è necessario un , ma semplicemente

 

Section One

gli attributi dei nomi sono deprecati in XHTML 1.0 – puoi comunque utilizzare un attributo id allo stesso modo, vedi Framment Identifiers nelle Linee guida sulla compatibilità HTML delle specifiche XHTML.

Quindi puoi semplicemente usare

 

Section One

Ma nota che la specifica 1.0 consiglia di giocare in sicurezza con qualcosa del genere:

 

Section One

Tuttavia, il tuo frammento utilizza XHTML 1.1 , in cui l’attributo name è stato completamente rimosso dagli elementi a e map – quindi puoi utilizzare solo un id.

Credo che l’approccio moderno sia utilizzare l’attributo id , che verrebbe valutato come un’ancora. Ad esempio, se hai cambiato

 

Section One

a

 

Section One

Lo indirizzeresti comunque come page.html#one .

Puoi anche colbind un header di sezione:

Sommario

 

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... [...]

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

Credo che il modo corretto per farlo sia

Sì, è obsoleto. Dovresti sostituire con l’attributo “id”.

Citando la pagina w3schools:

L’attributo id Sostituisce Il nome Attributo HTML 4.01 definisce un attributo nome per gli elementi a, applet, frame, iframe, img e map.In XHTML l’attributo name è deprecato.

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

nome = gli attributi sono per gli elementi di etichettatura in un modulo e possono essere utilizzati solo sugli elementi

(input, textarea, select etc). Per tutto il resto, ID = è usato. È esattamente il motivo per cui la gente del W3C riteneva che due diversi modi di nominare un elemento (con diversi insiemi di caratteri consentiti) fossero necessari non è noto prontamente.

Ma qui http://www.w3.org/TR/html4/struct/links.html#h-12.2.3 ho letto questo: “Alcuni vecchi programmi utente non supportano ancore create con l’attributo id.” Così?

Fino a quando non è più supportato dallo standard (X) HTML che stai usando – e non solo deprecato – potrebbe essere più sicuro usare sia il name che l’ id sui link di ancoraggio a una parte della stessa pagina. Dalla specifica XHTML 1 del W3C :

In XML, i riferimenti URI RFC2396 che terminano con identificativi di frammento del modulo "#foo" non si riferiscono a elementi con un attributo name="foo" ; piuttosto, si riferiscono a elementi con un attributo definito come ID di tipo, ad esempio, l’attributo id in HTML 4. Molti client HTML esistenti non supportano l’uso di attributi di tipo ID in questo modo, quindi possono essere forniti valori identici per entrambi questi attributi garantire la massima compatibilità ...) (ad esempio, ...) .