Focus sul modulo html predefinito senza JavaScript


159

È possibile impostare il focus di input predefinito su un modulo HTML senza utilizzare JavaScript, ad esempio:

<html>
  <form>
    Input 1: <input type="text" name="textbox1"/>
    <br/>
    Input 2: <input type="text" name="textbox2"/>
  </form>
</html>

Voglio impostare lo stato attivo predefinito su una delle caselle di testo quando il modulo viene caricato senza utilizzare JavaScript (poiché desidero che il comportamento si verifichi quando un utente ha disabilitato js).

Risposte:


293

Puoi farlo in HTML5, ma altrimenti devi usare JavaScript.

HTML5 ti consente di aggiungere autofocusal tuo elemento del modulo, ad esempio:

<input type="text" name="myInput" autofocus />

Questo funziona nei browser che supportano HTML5 (o meglio, i browser che supportano questa particolare parte di HTML5) ma, come sapete, non tutti possono ancora usarlo.


22

Qualcosa di cui essere a conoscenza ... se si imposta un elemento di modulo focalizzato, quindi chiunque utilizzi la tecnologia assistita (AT) come uno screen reader dovrà eseguire il backup per visualizzare i menu e qualsiasi altro contenuto che si trova prima del campo focalizzato.

Un metodo preferito, a mio avviso, è quello di non focalizzare l'attenzione su nessun campo, tranne uno skip-link se è disponibile. Ciò dà loro la possibilità di saltare al contenuto delle pagine o leggere la pagina dall'alto verso il basso.


L'aggiunta di un skip-link anch'esso nascosto visivamente, ma accessibile tramite i lettori di schermo sarebbe fantastico!
James Cazzetta,

Ho così tanto da imparare sull'accessibilità. Grazie per aver aggiunto questa risposta per aiutare il resto di noi a imparare!
Andrew Steitz,

3

Come altri hanno già detto, senza Javascript non è possibile garantire un campo predefinito. Un'opzione alternativa che potresti provare, se hai più campi a cui un utente potrebbe voler accedere, sta usando l' accesskeyattributo. Ciò significa essenzialmente che un utente può tornare in uno dei campi immediatamente dopo la navigazione, il che può tornare utile per gli utenti di screen reader, ecc.

L'articolo di Wikipedias su questo argomento è abbastanza utile - http://en.wikipedia.org/wiki/Access_key


0

Questo non è possibile senza una qualche forma di scripting. Anche la home page di Google richiede Javascript per focalizzare il campo di ricerca.


1
È. Google aggiunge solo JavaScript per quei browser che non supportano HTML5. Qualcosa che vale la pena considerare in qualsiasi app.
mvbrakel,

-8

Potresti essere in grado di utilizzare il tabindexTuttavia, attributo e utilizzare il valore più basso nella casella di testo predefinita. Controlla qui per il supporto del browser:

http://reference.sitepoint.com/html/object/tabindex#compatibilitysection

Il sito suggerisce questo

(in quasi tutti gli altri casi, vale a dire controlli dei moduli e collegamenti, il tabindex ha un eccellente supporto)


3
L'attributo "tabindex" non attiva automaticamente alcun elemento, nemmeno un elemento con "tabindex = 1". È necessario premere <tab> (o un clic) per mettere a fuoco il primo elemento nella sequenza di tabulazioni.
Clint Pachl,
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.