2012-10-24 15 views
5

Al momento sto facendo molto lavoro con accessibilità e WCAG ma una cosa che sto cercando di far funzionare bene per tutti gli utenti e in particolare quelli che usano la navigazione da tastiera, è un salto al collegamento del contenuto .tabindex o focus per la navigazione da tastiera

Sembra facile da fare, lanciare un collegamento a un'ancora nella parte superiore della pagina e le persone possono "cliccarci" per saltare la navigazione o altri contenuti in gran parte non importanti.

Il problema è, tuttavia, quando si fa clic su un collegamento di ancoraggio utilizzando la tastiera e si preme di nuovo il tasto "tab", si passa all'elemento direttamente dopo il collegamento "salta al contenuto" e non al successivo elemento nell'area di contenuto principale. Cioè, l'ancora che hai collegato non ha ricevuto attenzione.

Sembra che questo sia un problema comune, perché devo ancora trovare un sito con un collegamento "salta al contenuto" che funzioni correttamente. Anche il sito Vision Australia ha questo problema.

Speravo che qualcuno sapesse di una tecnica/hack/libreria per fare in modo che funzionasse come dovrebbe.

EDIT: Posso confermare che questo problema si verifica in Chrome e Safari, ma non in Firefox sul mio Mac.

+2

Questo è in realtà un problema di Chrome/WebKit; funziona davvero bene in IE e FireFox su Windows; quindi il problema è davvero come aggirare un bug del browser, l'HTML stesso è in realtà soddisfacente per ogni specifica. – BrendanMcK

risposta

6

La maggior parte dei browser scorre verso il basso visivamente verso la destinazione del collegamento stessa pagina, ma in realtà non mette a fuoco la tastiera su quel collegamento. È possibile utilizzare JavaScript (o JQuery, come nell'esempio qui sotto) per dare attenzione al target:

$("a[href^='#']").not("a[href]='#'").click(function() { 
    $("#"+$(this).attr("href").slice(1)+"").focus(); 
}); 

Tuttavia, c'è un bug in WebKit che impedisce anche questa soluzione di lavorare in browser WebKit come Chrome e Safari . Ho scritto un post sul blog su questo circa un anno fa, e molti altri hanno costruito su di esso:

+1

Mentre IE e Firefox non necessariamente mettono a fuoco l'elemento target (le semplici A senza un href non dovrebbero focalizzarsi in primo luogo), si comportano correttamente in quanto * * * premere il tasto TAB * * sposta lo stato attivo sul successivo oggetto tabbable dopo il target. Questo è un comportamento di lunga data sin dalle prime versioni di IE. Chrome/WebKit è notevole in quanto scorre solo, e la tabulazione continua dal collegamento originale, non dalla posizione di destinazione. – BrendanMcK

+0

Ottimo post, Terril. Mi piace il concetto di collegamento a un id piuttosto che a un'ancora con nome. Nonostante le carenze dei browser, se i principali screen reader stanno andando bene penso che ciò lo renda migliore (ma non perfetto). – Christian

Problemi correlati