it-swarm.it

Dovrei preoccuparmi di sviluppare per JavaScript disabilitato?

Dovrei preoccuparmi di sviluppare per JavaScript disabilitato?

Sento che il mio tempo è meglio trascorso a sviluppare per la maggioranza.

103
Jiew Meng

Esiste una filosofia di web design nota come Progressive Enhancement che dovresti prendere in considerazione. L'idea è di creare un sito di base che sia utilizzabile e praticabile, e quindi ti sovrapponi a questi miglioramenti come jQuery e cose specifiche del browser per "migliorarlo". In questo modo ottieni un sito che funziona per tutti e sembra bello per la maggior parte.

Se ciò non ti convince, considera altri motivi per far funzionare un sito senza JavaScript:

  • È più SEO friendly. Se il tuo sito si basa su JS per contenuti e collegamenti, è probabile che i motori di ricerca ne ignorino grossi pezzi.

  • Immagina di essere un sito di e-commerce che vende widget. Ora, anche se solo il 5% dei tuoi clienti disabilita javascript, questa è una potenziale perdita di vendita del 5%. Vale la pena perdere clienti?

  • Non discriminare i disabili. Affidarsi a JavaScript significa che il tuo sito non è accessibile e, in alcuni casi (come siti governativi/del settore pubblico), potresti infrangere la legge discriminando le persone.

70
Dan Diplo

Per uno, non sono d'accordo con le persone là fuori che insistono sul fatto che tutto dovrebbe funzionare senza Javascript. È bello codificare il minimo comune denominatore in molti casi (ad esempio, sarei davvero incazzato se il sito della mia banca richiedesse Flash o alcune assurdità.) Ma realisticamente quasi tutti hanno Javascript abilitato in questi giorni e se usato correttamente il i siti risultanti possono essere abbastanza spettacolari e utili! (Voglio dire, vediamo quanto è bella Google Maps quando Javascript è disattivato ...)

Tuttavia, ciò non dovrebbe assolutamente toglierti dall'assicurare che la tua pagina fallisca con grazia se Javascript non è presente. Mai e poi mai lasciare gli utenti a fissare una pagina spezzata a metà carica senza alcuna indicazione su cosa è andato storto. Chiediti: preferirei passare 2 minuti a codificare un messaggio "Questa pagina richiede Javascript" o ricevere 10 e-mail ogni giorno dagli utenti che mi dicono che la mia pagina è rotta perché hanno abilitato noscript?

47
Toji

Si, dovresti.

Se lo percepisci come qualcosa che richiede uno sforzo extra, potresti farlo diversamente.

Sviluppa le tue pagine affinché funzionino senza JavaScript, quindi aggiungi miglioramenti basati su JavaScript, effetti Ajax e così via. Funzioneranno se JS è supportato/abilitato, altrimenti le tue pagine degraderanno con grazia.

E per favore, non sviluppare le pagine in cui:

  1. L'intero contenuto viene estratto dal database da JavaScript

  2. Il markup cade completamente a pezzi perché gli elementi incollati insieme e messi nei posti giusti da JavaScript non da CSS

  3. I collegamenti nella navigazione e nel corpo non funzionano senza JavaScript (a meno che non sia un framework come ASP.NET che si basa su JavaScript per un motivo)

È solo contro lo spirito del web e contro il buon senso.

Post scriptum Parlato da un utente di NoScript.

39
user8685

Come sviluppatore non mi preoccupo più dell'1% degli utenti che disattivano Javascript. È troppo dispendioso in termini di tempo e il tempo di sviluppo è troppo costoso da perdere con tali sciocchezze. AJAX consente di risparmiare un'incredibile quantità di larghezza di banda che si trasforma direttamente in un risparmio di $$$, il che rende i profitti più alti. Se perdo uno o due potenziali utenti del sito per ogni 100 utenti, questi uno o due perdono gli utenti costeranno molto di più nello sviluppo di quanto il reddito potenziale che potrebbero mai portare.

Prova a disattivare Javascript e ad accedere a Facebook, dopo ciò diventa un sito Web molto rotto. Se è abbastanza buono per Facebook, è abbastanza buono per me.

33
Robert

Personalmente utilizzo il plug-in NoScripts Firefox durante la navigazione e incoraggio gli altri a utilizzarlo. Su tutti i PC di famiglia, sostengo che NoScripts sia uno dei bit obbligatori di software che installo. L'ho impostato con una whitelist dei siti Web di posta elettronica e bancari di base insieme ai popolari siti di social e video e ho spiegato loro come funziona l'autorizzazione temporanea. A giudicare dalla popolarità di questo plugin, penso che ci sia una buona parte di persone che lo usano.

Almeno mi aspetto che la funzionalità di navigazione funzioni senza script. Se hai qualcosa di specifico come il video che richiede script, va bene, ma visualizza un segnaposto Nice che dice "sono necessari script per visualizzare questo video".

Far affidare la tua navigazione agli script è un grosso errore. In molti casi mi farà rimbalzare dal sito con disgusto. Un errore ancora più grande è che parte del tuo sito o la navigazione scompaiano completamente quando gli script sono disabilitati. A meno che tu non evidenzi il fatto che manchi qualcosa, c'è una buona possibilità che non me ne accorgerò, quindi lascerò il tuo sito pensando che non fosse lì. Inoltre, un messaggio a schermo intero che dice "questo sito richiede script" non ti porterà molto lontano, ho bisogno di vedere un certo livello di contenuto prima di fidarmi di te abbastanza da consentire gli script.

Infine, non dimenticare che non sono solo i PC desktop a navigare nel tuo sito, ma i browser mobili sono sempre più popolari. Sebbene il supporto JavaScript mobile stia migliorando, non è affatto perfetto, quindi a meno che non testerai pesantemente tutti i diversi browser mobili, ti suggerirei di cercare la versione mobile della tua pagina praticamente senza script.

11
Simon P Stevens

Dipende dal sito e da chi lo utilizzerà.

Il sito è pubblico o è una rete intranet o un sito che sarà disponibile solo per determinati clienti? Probabilmente incontrerai utenti senza JavaScript in pubblico. Se verrà utilizzato solo dai client, puoi dire loro che supporta solo JavaScript abilitato?

SEO è una considerazione o l'intero sito è dietro una schermata di accesso o SEO, altrimenti non è un fattore? È molto più facile ottimizzare per i motori di ricerca se non c'è JavaScript.

Il sito verrà mai utilizzato sui browser mobili? I browser per dispositivi mobili spesso non dispongono di supporto JavaScript scarso o scadente.

Dovresti anche capire che JavaScript può rendere difficile per gli screen reader elaborare il tuo sito e avere altre considerazioni sull'accessibilità potenzialmente negative.

Gli utenti di browser basati su testo (ad es. Lynx) hanno anche un supporto JavaScript scarso o nullo.

Devi guardare il tuo sito e il tuo pubblico e decidere se è necessario supportare gli utenti che hanno disabilitato JavaScript. Devi anche vedere se è persino possibile non usare JavaScript. Se stai creando un'applicazione Web avanzata e hai bisogno di supporto come webcam e microfono, potrebbe non essere possibile utilizzare JavaScript.

Se decidi che devi supportare gli utenti senza JavaScript, puoi comunque utilizzare JavaScript. Dovresti semplicemente rendere il sito web ancora funzionante senza di esso. Questo si chiama miglioramento progressivo, dovrebbe degradarsi con grazia se non c'è supporto JavaScript.

Se decidi di richiedere JavaScript, devi avvisare i tuoi utenti (utilizzando il <noscript> tag) che lo stai facendo.

9
Adam

Posso consigliare un articolo da "A List Apart" ?:

Miglioramento progressivo con JavaScript

... Abbiamo rivisto la mentalità necessaria per implementare il miglioramento progressivo in JavaScript e diverse tecniche attraverso le quali farlo. Abbiamo anche toccato il concetto di script discreto e abbiamo imparato un po 'su come gestire l'interrelazione tra CSS e JavaScript.

Quando combini l'approccio generale con quell'articolo con strumenti utili come JQuery (o Prototype, o qualunque sia il tuo framework JavaScript preferito), è davvero banale applicare il comportamento JavaScript dopo il fatto.

Esistono diversi tipi di browser là fuori che non hanno ancora JavaScript o almeno un supporto JavaScript molto limitato. Per non parlare del fatto che la regola n. 1 sia per WCAG che per la conformità alla sezione 508 (accessibilità per persone non statunitensi) è che la vista non dipende da un linguaggio di scripting funzione. Se la pagina viene ricaricata ogni volta che apporto una modifica, ma mi consente comunque di apportare modifiche, funziona. Il livello AJAX nella parte superiore del sito di base mi consente di fare lo stesso senza ricaricare la pagina.

I motivi principali che posso vedere per il supporto di utenti JavaScript non sono:

  • Supportare le persone con disabilità (screen reader, dispositivi di input alternativi, ecc.)
  • Supportare le persone attente alla sicurezza: ammettiamolo che ci sono persone cattive che fanno cose atroci con JavaScript, quindi la soluzione più semplice è sbarazzarsi di JavaScript
  • È il modo più semplice per disabilitare gli annunci senza un plug-in
  • Dispositivi mobili e integrati
  • Browser della riga di comando utilizzati per scaricare strumenti su server senza testa
  • Gli spider dei motori di ricerca seguono solo collegamenti reali: JavaScript li confonde

Per favore, se hai bisogno di cookie e JavaScript sul tuo sito per farlo funzione, quindi fai correttamente la dovuta diligenza per evitare i seguenti problemi con quanto segue:

  • Attacchi di scripting tra siti
  • Tracciamento utente di terze parti
  • Hacking/Defacement tramite manipolazione DOM
  • Phishing (se uno script può accedere al DOM, può inviare qualsiasi informazione sulla pagina al server da cui è stato caricato)

(E questa è solo la breve lista)

Quando la soluzione non è così difficile, perché non farlo?

Inoltre, mentre sei alla tua festa JavaScript, non dimenticare di supportare la navigazione della tastiera sana.

8
Berin Loritsch

Assolutamente

Un sito che non funziona correttamente senza JavaScript dovrebbe avvisare chiaramente l'utente. Il più possibile dovrebbe essere fatto funzionare correttamente senza JavaScript. Ci sono alcuni casi in cui ciò non sarà possibile, siti altamente dinamici costruiti su livelli di AJAX e recuperi remoti sono uno di questi. Ciò non significa che sia giusto mostrare una pagina vuota se ho JavaScript disabilitato.

Il degrado grazioso è estremamente importante e non si applica solo a JavaScript, si applica a tutto ciò che codifichi. Markup HTML valido, CSS valido, convalida lato server di tutto.

8
Josh K

Su un sito come questo troverai molti sviluppatori che ti dicono come hanno disabilitato Javascript, quindi dovresti supportare il miglioramento progressivo. In realtà il 5% delle persone con Javascript disabilitato, il 90% sono sviluppatori e altri fanatici della tecnologia, non sono il pubblico in generale. La maggior parte dei siti principali non supporta il miglioramento progressivo. Hai provato a usare Facebook senza Javascript? Sostanzialmente dicono di andare via.

4
Craig

<5% degli utenti disabilita javascript

Secondo BrowserStatistics , nel 2008, solo il 5% degli utenti aveva disattivato JavaScript. La tendenza è in costante calo, quindi è lecito ritenere che ormai vicino al 2011 tale numero sia molto più piccolo.

Declassamento graduale

Il tuo sito non dovrebbe mai essere mai interrotto, indipendentemente dal fatto che gli utenti abbiano attivato o disattivato JS. Anche se è semplice come visualizzare un messaggio per cui il tuo sito necessita di javascript attivato, dovresti assicurarti che il tuo sito web venga visualizzato e si comporti in modo accettabile e non rotto per quelli pochi selezionati.

Rielaborazione per utenti non JS? Normalmente: No.

Lo sviluppatore ordinario non ha bisogno di creare una versione non javascript in un'altra lingua. Tuttavia, se è noto che i tuoi clienti hanno esigenze anti-javascript, ovviamente sei costretto a soddisfarlo. (Anche GMail ha una versione no-JS)

3
rlb.usa

I miei pensieri:

L'uso di JavaScript aumenta sempre la superficie degli attacchi, non solo per te, ma per i tuoi clienti - quasi tutti quelli che conosco navigano con NoScript e questo include persone non tecniche.

Se vedo un sito di shopping online che utilizza javascript male non comprerò da loro. Prima di tutto navigo sempre con JavaScript disabilitato, e se un sito si degrada con grazia potrei essere interessato. Se è appena rotto, di solito suppongo che anche i programmatori non abbiano la capacità di fornire una piattaforma di negozio sicura.

Tende a rallentare tutto - nonostante sia vicino a una grande città, la mia banda larga è abbastanza lenta senza dover aspettare il caricamento di qualche idea di marketing. Se un sito impiega più di 5 secondi per caricare i contenuti di base, non mi preoccuperò se non ne ho davvero bisogno.

1
Rory Alsop

Solo per funzionalità mission critical

Generalmente è una buona idea "degradare con grazia". Tuttavia, vorrei concentrarmi solo su parti mission-critical della tua applicazione web, per soddisfare situazioni in cui JavaScript potrebbe non essere disponibile.

Se sono solo effetti "campane e fischietti", allora non preoccuparti. Le persone che navigano deliberatamente senza JavaScript dovranno semplicemente fare un'esperienza semplice (ehi, questa è la loro scelta per non usare Js)

1
Darknight

La maggior parte delle risposte qui sembrano evidenziare le critiche ai siti Web standard che utilizzano JavaScript in modi non essenziali o confusi. E le app Web? Ci sono un sacco di funzioni critiche che non possono essere raggiunte nemmeno in remoto così efficacemente senza JavaScript. Anche qualcosa di semplice come un contatore di parole di base in un'area di testo o abilitare/disabilitare una domanda di modulo aggiuntiva basata sulla risposta a un'altra. In questo caso non è ragionevole costruire per la maggioranza e degradare con grazia per la minoranza? Soprattutto se sai che la tua base di utenti non è tecnica e è improbabile che JS sia disabilitato?

1
Jordan

Cose da considerare:

AFAIK, ai ragni dei motori di ricerca non piace Javascript. Dovresti avere contenuti di base e navigazione senza Javascript solo per SEO.

Alcuni siti Web possono avere regole per l'accesso dei disabili, per motivi legali o per politica aziendale. Ciò è generalmente meglio realizzato con HTML semplice anziché Javascript.

Mentre la maggior parte delle persone naviga con Javascript oggi, questa non è una garanzia per il futuro. Il web sta diventando sempre più ostile e strumenti come NoScript potrebbero diventare più popolari. In alternativa, è possibile che più persone utilizzino dispositivi con browser meno capaci, sebbene con alcuni Android essendo abbastanza economici questo sembra meno probabile. Un grazioso degrado può essere un modo per rendere il sito a prova di futuro.

0
David Thornley

Sì.

Non parlerò di persone con NoScript, dispositivi incorporati, ecc. La loro condivisione può essere misurata e quindi puoi decidere se la riduzione delle entrate causata da fastidiosi es. Lo 0,5% degli utenti merita l'implementazione di una soluzione per loro.

Ma ci sono altri motivi per seguire il principio del miglioramento progressivo e spesso sono più importanti.

  1. Gli utenti al 100% non possono eseguire javascript prima che gli script vengano caricati. Se il sito può funzionare senza js, può essere caricato più velocemente per i visitatori per la prima volta, i visitatori con cache vuota e per tutti i visitatori dopo gli aggiornamenti del codice js.

  2. I siti che possono funzionare senza js sono più affidabili. L'errore Javascript che rompe un sito Web è un incubo architettonico. Maggiori informazioni su questo e sui relativi problemi: http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs

  3. È più facile attenersi a Progressive Enhancement piuttosto che implementare un sito solo JavaScript compatibile con SEO.

  4. È più semplice scrivere test automatizzati per il sito che non richiede JavaScript per funzionare.

In realtà è abbastanza facile seguire il principio del Miglioramento progressivo, quindi perché non seguirlo?

0
Mike Korobov

Dipende dalla risposta a una singola domanda:

"Il costo del supporto agli utenti con Javascript disabilitato è maggiore o minore dei soldi persi se non li supporta?"

Supponiamo che il tuo sito Web abbia una durata di 3 anni prima di dover essere ricostruito, costa £ 30.000 per i "clienti ricchi" e ne aggiungi altri 10.000 per supportare gli utenti non javascript (di cui supponiamo che ci siano il 5% di)

Se il 5% mancante degli utenti avesse speso più di £ 10.000, fallo. In caso contrario, non farlo a meno che non sia legalmente richiesto.

Questa è più una decisione aziendale/economica che tecnica.

0
PhonicUK