Href è obbligatorio sui link?

Lo sto chiedendo perché ho alcuni link che si comportano come pulsanti che estraggono contenuti tramite ajax, quindi non ho bisogno di alcun href su di essi.

(Sto chiedendo questo dal punto di vista SEO)

Href è obbligatorio sui link?

Sì. Le ancore senza attributi href non sono collegamenti.

Lo sto chiedendo perché ho alcuni link che si comportano come pulsanti che estraggono contenuti tramite ajax

Se lo fai, allora fallo bene. Usa JavaScript non intrusivo e pushState .

“Collegamenti” che funzionano solo se stai usando un dispositivo di puntamento e hai triggersto JS non sono buoni collegamenti.

Lo sto chiedendo dal punto di vista SEO

I motori di ricerca non eseguiranno il tuo JavaScript, quindi gli pseudo-link (che dipendono da JS) sono solo buchi neri del nulla per quanto li riguarda).

Suppongo che per “link” intendiate semplicemente a elemento. Se è vero allora:

No. Almeno, non nella specifica della bozza HTML5 :

Se un elemento non ha un attributo href, allora l’elemento rappresenta un segnaposto per il caso in cui un link potrebbe essere stato collocato, se fosse stato pertinente.

Dalla specifica HTML 4.01 :

Gli autori possono anche creare un elemento A che non specifica ancore, cioè, che non specifica href, nome o id. I valori per questi attributi possono essere impostati in un secondo momento tramite gli script.

Se hai link che fungono da pulsanti, probabilmente dovresti aver usato un elemento .

no non lo è. Ma i collegamenti possono essere diversi (sottolineatura e colore) se l’href non è impostato.

Non ne sono sicuro, ma qualche tempo fa ho avuto un problema con “a” senza href … i clic non funzionavano. Ma forse era solo un vecchio browser.

Secondo le specifiche è, e inoltre troverete che i browser implementano diversi stili predefiniti (ad esempio non cambiano il cursore sul puntatore) quando si esce da href. Gli approcci più comuni per aggiungere hrefs fittizi sono

 href="#" // But the event handler function must return false in order to avoid the default behaviour of jumping to the top of the page href="javascript:void()" // has the advantage of having no annoying default behaviour 

Non sono assolutamente necessari, tuttavia dovresti probabilmente inserire href="#/" come href per renderlo semanticamente corretto. Senza un attributo href="" , è probabile che l’ancora venga analizzato come un segnalibro nella pagina, specialmente se è specificato l’attributo name="" .

Anche se non è necessario, è necessario aggiungere l’href ai tag di ancoraggio, perché, senza un href, non sono realmente tag di ancoraggio.

Puoi aggiungere un ‘#’ al link e aggiungere un onClick = ‘return false;’ per prevenire l’evento click. Se si utilizza JQuery, è ansible aggiungere event.preventDefault() al gestore di clic per i collegamenti.

Da una prospettiva SEO, vorrei usare i titoli per i tag di ancoraggio (evita la proprietà -ve text-indent).