2011-02-02 12 views
6

In una recente ricerca sulle migliori pratiche per i collegamenti Ignora, questa è la soluzione più completa sono riuscito a trovare: http://www.communis.co.uk/blog/2009-06-02-skip-links-chrome-safari-and-added-wai-ariacross browser, Javascript-less, Skip Navigation link

Quello che non mi piace di questo si è che richiede JavaScript sui browser Webkit. Questa è davvero la soluzione migliore che abbiamo per qualcosa apparentemente semplice come un link di navigazione salta?

Sono presenti collegamenti o esempi che parlano di altre soluzioni "migliori"?

risposta

1

Io tendo ad usare

#skip-to-nav, #skip-to-content 
{ 
    position: absolute; 
    right: 100%; 
} 

e faccio in modo che il # skip-to-NAV e # passare da contenuti i link sono nell'elemento body.

Drupal 7 usi:

/** 
* Hide elements visually, but keep them available for screen-readers. 
* 
* Used for information required for screen-reader users to understand and use 
* the site where visual display is undesirable. Information provided in this 
* manner should be kept concise, to avoid unnecessary burden on the user. 
* "!important" is used to prevent unintentional overrides. 
*/ 
.element-invisible { 
    position: absolute !important; 
    clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 
    clip: rect(1px, 1px, 1px, 1px); 
} 

/** 
* The .element-focusable class extends the .element-invisible class to allow 
* the element to be focusable when navigated to via the keyboard. 
*/ 
.element-invisible.element-focusable:active, 
.element-invisible.element-focusable:focus { 
    position: static !important; 
    clip: auto; 
} 

Ho testato sia con gli screen reader, ed entrambi sembrano funzionare bene per tutti coloro che non riescono a vedere lo schermo.

Per quanto riguarda l'ordine di tabulazione, non mi preoccupo di una tabulazione dell'utente a un elemento che non possono vedere. Probabilmente dovrei, ma trovo che la stragrande maggioranza degli utenti non usa comunque il tasto Tab. Quelli che tendono a capire di più su cosa sta succedendo comunque, quindi IMHO diventa discutibile.

Modifica per aggiungere:

Dopo qualche discussione con @discojoe, ho deciso di guardare un po 'più da vicino ciò che Drupal 7 utilizza per nascondere/rivelare il contenuto, ho aggiornato il codice di conseguenza.

+0

Nota che gli utenti della tastiera vedenti sarà anche usa skip links, e non solo utenti di screen reader, quindi è buona norma rendere visibili i collegamenti di salto, almeno a fuoco.(In effetti, gli utenti di screen reader hanno i tasti di scelta rapida per passare a molti elementi sulla pagina, quindi sono spesso meno propensi a utilizzare i collegamenti ignorati rispetto agli utenti vedenti della tastiera) – discojoe

+0

Nella maggior parte dei casi, i collegamenti salta interrompono il flusso visivo del design di una pagina web. Inoltre, se il tuo contenuto è così in basso nella pagina che un utente avvistato ha bisogno di un link di salto, lo stai facendo male. – zzzzBov

+0

Non è la distanza che deve percorrere un utente avvistato, ma quanti collegamenti di navigazione un utente con solo tastiera vedetta dovrebbe sfogliare. Considera un sito con 50 collegamenti nav nella barra di navigazione principale - non irragionevole per un sito di grandi dimensioni - un utente della tastiera dovrebbe passare da una pagina all'altra in ogni visita della pagina. Un collegamento di salto è per aggirare i blocchi di contenuti ripetuti, non per saltare giù la pagina. – discojoe

2

Un buon collegamento di salto dovrebbe essere sempre visibile per avvisare l'utente della sua presenza. Una buona alternativa è usare il CSS per rendere visibile il link di salto quando riceve lo stato attivo.

considerare questo HTML

<div id="skip"><a href="#content">Skip to content</a></div> 

Utilizzato con questo CSS

#skip a { 
position: absolute; 
margin-left: -3000px; 
width: 1; 
height: 1; 
overflow: hidden; 
} 

e

#skip a:focus, #skip a:active { 
margin-left: 0px; 
width: auto; 
height: auto; 
} 

Il collegamento è nascosto fino a quando non riceve lo stato attivo. :focus utilizzabile per browser non IE e :active per utenti IE. Un utente del mouse non vedrà mai il collegamento, poiché non è utilizzato lo :hover.

aggiornamento: 03 \ 02 \ 11 link ad alcuni articoli utili sull'attuazione collegamento salto e l'usabilità

+0

Questo è simile all'approccio che utilizzo attualmente. Ma è completamente rotto in tutti i browser basati su Webkit. – Bart