Impedisci tabstop su A element (anchor link) in HTML


152

È possibile annullare la <a href="...">chiusura di una scheda in qualsiasi browser? Mi piacerebbe farlo senza Javascript.

Risposte:


265

Alcuni browser supportano l' tabindex="-1"attributo, ma non tutti, poiché non si tratta di un comportamento standard.


22
Oh grande! Grazie! Ho controllato con FF3.5, IE8 e CH3 e funziona in tutti e tre. Grazie mille!
Robert Koritnik,

1
Non preoccuparti di questo: proprio come zzzzBov afferma qui , HTML5 è venuto in soccorso e ha standardizzato questa funzionalità. Quindi ora i browser colpevoli sono quelli che mancano questo.
TechNyquist,

1
Tieni presente che la disabilitazione del tabstop su un collegamento ipertestuale va contro le regole di accessibilità (ad es. Persone che usano gli screen reader, ecc.). Se sai che questo non è un problema per la tua base di utenti, allora dovrebbe andare bene.
Ricardo Sanchez,

73

I browser moderni, conformi a HTML5, supportano l' [tabindex]attributo , in cui un valore -1impedisce che l'elemento venga tabulato.

Se il valore è un numero intero negativo
L'agente utente deve consentire all'elemento di essere focalizzato, ma non dovrebbe consentire all'elemento di essere raggiunto usando la navigazione di attivazione sequenziale.


1
Gli estratti della documentazione aiutano sempre. ;-) Questo ci dice che quelli che non lo supportano sono tra i pochi e probabilmente lo supporteranno prima o poi.
Robert Koritnik,

15

È possibile applicare un gestore JQuery all'elemento a cui si desidera targetizzare più elementi senza tabulazioni.

$(document).ready(function () {
    $('.class').attr('tabindex', '-1');
});

Sarebbe un modo per farlo ....


6

Penso che potresti farlo tramite javascript, sovrascrivi window.onkeypresso onkeydown, intrappoli il pulsante della scheda e imposti il ​​focus sull'ordine desiderato.


2
Non so se hai controllato altre risposte, specialmente accettate, a cui è stata data risposta circa un anno fa e hai risolto questo problema senza usare Javascript.
Robert Koritnik,

2
Apprezzo la soluzione alternativa anche se non affronta l'OP e la risposta accettata. Non c'è bisogno di essere denigratori.
Anthony DiSanti,

@Anthony DiSanti: È vero, ma in questo caso particolare non vedo ancora perché si dovrebbe ricorrere a javascript se qualcos'altro funziona meglio? Quindi se non è una risposta a questa domanda, perché è qui allora? Non importa. Javascript è di solito l'ultimo passo che uno farebbe se certe cose non potessero essere fatte diversamente. E mi dispiace @Ammosi se ti ho insultato. Non intendevo essere scortese. Grazie per la risposta in ritardo.
Robert Koritnik,

7
Concordo sull'evitare javascript se esiste una soluzione HTML o CSS basata su standard. Tuttavia, in questo caso non esiste. Il poster originale non aveva bisogno di supportare i browser prima di IE8 e FF3.5, ma per il mio lavoro ho bisogno di supportare nuovamente IE6. La soluzione tabindex non è quindi applicabile. Fornire l'unica soluzione funzionante nel browser con la maggiore quota di mercato non dovrebbe essere scoraggiato.
Anthony DiSanti,

4

Rimuovi l' hrefattributo dal tuo tag di ancoraggio


cosa succede se non posso?
Hakan Fıstık,

Se vuoi usare javascript nonostante la domanda per evitare quel tipo di soluzioni, per rimuovere gli attributi href, usa il caricamento del documento jquery con qualcosa del genere$('[href="whatever-the-url-is"]').removeAttr('href');
Jonas Lundman,

6
LOL rimuove l'href
quemeful
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.