Devo preoccuparmi di sviluppare JavaScript disabilitato?
Ritengo che il mio tempo sia meglio speso per lo sviluppo per la maggioranza.
Esiste una filosofia di progettazione Web nota come Progressive Enhancement che è quella che dovresti prendere in considerazione. L'idea è di costruire un sito di base che sia utilizzabile e praticabile, e poi si sovrappone a questi miglioramenti come jQuery e cose specifiche del browser per "migliorarlo". In questo modo ottieni un sito che funziona per tutti e sembra carino per la maggioranza.
Se ciò non ti convince, considera altri motivi per cui un sito funziona senza javascript:
È più SEO friendly. Se il tuo sito si basa su JS per i contenuti e i link, è probabile che i motori di ricerca ignorino frammenti di grandi dimensioni.
Immagina di essere un sito di eCommerce che vende widget. Ora, anche se solo il 5% dei clienti disabilita javascript, si tratta di una potenziale perdita delle vendite 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 i siti governativi / del settore pubblico), potresti essere infrangere la legge discriminando le persone.
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 i siti risultanti possono essere abbastanza spettacolari e utili! (Voglio dire, vediamo quanto è bello Google Maps quando Javascript è disattivato ...)
Tuttavia, ciò non dovrebbe assolverti almeno assicurando che la tua pagina fallisca con garbo se Javascript non è presente. Mai MAI lasciare che i tuoi utenti guardino una pagina mezza carica e rotta senza indicazioni su cosa è andato storto. Basta chiedere a te stesso: preferirei trascorrere 2 minuti a scrivere un messaggio "Questa pagina richiede Javascript" o ricevere 10 email ogni giorno dagli utenti che mi dicono che la mia pagina è stata interrotta perché hanno noscript abilitato?
Sì, dovresti.
Se lo percepisci come qualcosa che richiede uno sforzo extra, potresti farlo nel modo contrario.
Sviluppa le tue pagine per lavorare senza JavaScript, quindi aggiungi miglioramenti basati su JavaScript, effetti Ajax e così via. Funzioneranno se JS è supportato / abilitato, altrimenti le tue pagine si degraderanno con garbo .
E per favore, non sviluppare le pagine dove:
L'intero contenuto viene estratto dal database da JavaScript
Il markup va completamente a pezzi perché gli elementi incollati e inseriti nei giusti posti da JavaScript non dai CSS
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 della rete e contro il buon senso.
P.S. Parlato da un utente di NoScript.
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 sprecare per tali assurdità. AJAX risparmia un'incredibile quantità di larghezza di banda che si trasforma direttamente in un risparmio su $$$, il che rende i profitti higer. Se perdo ogni uno o due utenti potenziali del sito per ogni 100 utenti, quelli uno o due utenti persi costeranno molto più nello sviluppo del reddito potenziale che potrebbero mai ottenere.
Prova a disattivare Javascript e ad accedere a Facebook, dopodiché diventa un sito Web molto danneggiato. Se è abbastanza buono per Facebook, è abbastanza buono per me.
Personalmente uso il NoScripts plug-in di Firefox durante la navigazione e incoraggio altri a usarlo. Su tutti i PC di famiglia, manterrò NoScripts è uno dei bit obbligatori del software che installo. L'ho creato con una whitelist dei siti di posta elettronica e bancari di base insieme al popolare social & siti di video e spiegare loro come funziona il permesso temporaneo. A giudicare dalla popolarità di questo plugin penso che ci sia una buona parte di persone che lo usano.
Per lo meno mi aspetto che la funzionalità di navigazione funzioni senza script. Se hai qualcosa di specifico come il video che richiede script allora va bene, ma mostra un segnaposto che dice "sono necessari degli script per vedere questo video".
Rendere la tua navigazione basata su script è comunque un grosso errore. In molti casi mi farà rimbalzare dal sito disgustato. Un errore ancora più grande è quello di far parte del tuo sito o della tua navigazione completamente scomparire quando gli script sono disabilitati. A meno che tu non evidenzi il fatto che manchi qualcosa c'è una buona possibilità che non se ne accorgerà, quindi lascerai il tuo sito pensando che non ci sia. Inoltre, un messaggio a schermo intero che dice solo "questo sito richiede script" non ti porterà molto lontano, ho bisogno di vedere un certo livello di contenuto prima di fidarmi di te abbastanza per consentire gli script.
Infine, non dimenticare che non sono solo i PC desktop che stanno esplorando il tuo sito, ma i browser mobili sono sempre più popolari. Anche se il supporto JavaScript per dispositivi mobili sta migliorando, non è affatto perfetto, quindi a meno che non testerai pesantemente tutti i diversi browser per dispositivi mobili ti suggerirei di cercare la versione mobile della tua pagina praticamente senza script.
Dipende dal sito e da chi lo utilizzerà.
Il sito è pubblico o è una intranet o un sito che sarà disponibile solo per determinati clienti? Probabilmente incontrerai utenti senza JavaScript nel pubblico. Se verrà utilizzato solo dai client, puoi dire che supporta solo JavaScript abilitato?
Il SEO è una considerazione o l'intero sito dietro una schermata di accesso o SEO non è altrimenti un fattore? È molto più semplice ottimizzare i motori di ricerca se non c'è JavaScript.
Il sito sarà mai utilizzato sui browser mobili? I browser per dispositivi mobili spesso non dispongono di supporto JavaScript scarso o scarso.
Devi anche capire che JavaScript può rendere difficile per gli screen reader l'elaborazione del tuo sito e ha altre considerazioni di accessibilità potenzialmente negative.
Anche gli utenti di browser testuali (ad esempio lynx) hanno un supporto JavaScript scarso o nullo.
Devi guardare il tuo sito e il tuo pubblico e decidere se è necessario supportare gli utenti che hanno JavaScript disabilitato. Devi anche vedere se è anche possibile non usare JavaScript. Se stai realizzando un'applicazione Web avanzata e hai bisogno di supporto per webcam e microfono, potrebbe essere impossibile non utilizzare JavaScript.
Se decidi che devi supportare gli utenti senza JavaScript, puoi comunque utilizzare JavaScript. Dovresti solo rendere il sito ancora funzionante senza di esso. Questo è chiamato miglioramento progressivo, dovrebbe degradarsi con grazia se non c'è supporto JavaScript.
Se decidi di richiedere JavaScript, devi avvisare i tuoi utenti (utilizzando il tag <noscript>
) che stai facendo.
Un sito che non funziona correttamente senza JavaScript dovrebbe avvisare chiaramente l'utente. Il più possibile dovrebbe essere fatto per funzionare correttamente senza JavaScript. Ci sono alcuni casi in cui questo non sarà possibile, siti altamente dinamici costruiti su strati di AJAX e recuperi remoti sono uno di questi. Questo non significa che va bene mostrare una pagina vuota se ho JavaScript disabilitato.
Il degrado aggraziato è estremamente importante e non si applica solo a JavaScript, si applica a tutto ciò che codifica. Marcatura HTML valida, CSS valido, convalida lato server di tutto .
Posso consigliare un articolo da "A List Apart":
Progressive Enhancement with JavaScript
...We’ve reviewed the mindset needed to implement progressive enhancement in JavaScript and several techniques through which to do it. We’ve also touched on the concept of unobtrusive scripting and learned a little about how to manage the inter-relationship of CSS and JavaScript.
Quando combini l'approccio generale con quell'articolo con strumenti utili come JQuery (o Prototype, o qualunque sia il tuo framework JavaScript di scelta), è davvero banale applicare il comportamento di JavaScript dopo il fatto.
Ci sono diversi tipi di browser là fuori che non hanno ancora JavaScript o supporto per JavaScript molto limitato. Senza contare che la regola n. 1 per entrambe le WCAG e la conformità alla sezione 508 (accessibilità per le persone non statunitensi) è che la vista non dipende da un linguaggio di scripting per funzione . Se la pagina si ricarica ogni volta che apporto una modifica, ma mi consente comunque di apportare modifiche, sta funzionando. Il livello AJAX in cima al sito di base mi consente di fare lo stesso senza ricaricare la pagina.
I principali motivi per cui non posso supportare gli utenti JavaScript sono:
Per favore, se hai intenzione di richiedere i cookie e JavaScript sul tuo sito per farlo in funzione , allora esegui correttamente la tua due diligence per evitare i seguenti problemi con quanto segue:
(E questa è solo la short list)
Quando la soluzione non è così difficile, perché non farlo?
Inoltre, mentre sei alla tua festa di JavaScript, non dimenticare di supportare la sana tastiera di navigazione.
Su un sito come questo troverai molti sviluppatori che ti dicono come hanno Javascript disabilitato, quindi dovresti supportare il miglioramento progressivo. In realtà il 5% delle persone che hanno disabilitato Javascript, il 90% di loro 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? In pratica dicono di andare via.
< Il 5% degli utenti disabilita JavaScript
Secondo BrowserStatistics , nel 2008 solo il 5% degli utenti aveva disattivato JavaScript. La tendenza è in costante calo, quindi è molto sicuro supporre che ora, vicino al 2011, questo numero sia molto più piccolo.
Esegui il downgrade con precisione
Il tuo sito dovrebbe mai essere interrotto, indipendentemente dal fatto che gli utenti abbiano attivato o disattivato JS. Anche se è semplice come visualizzare un messaggio sul fatto che il tuo sito ha bisogno di javascript attivato, dovresti assicurarti che il tuo sito web esegua il rendering e si comporti in modo accettabile e non interrotto per quei 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, allora ovviamente sei costretto a provvedere ad esso. (Anche GMail ha una versione no-JS)
Solo su funzionalità mission critical
Generalmente è una buona idea "degradare con grazia". Tuttavia, vorrei concentrarmi solo su parti mission critical della tua applicazione web, per far fronte a situazioni in cui JavaScript potrebbe non essere disponibile.
Se è solo un effetto "campane e fischi", allora non preoccuparti. Le persone che deliberatamente navigano con JavaScript non potranno fare altro che fare un'esperienza semplice (hey è la loro scelta per non usare Js)
I miei pensieri:
L'utilizzo di javascript aumenterà sempre l'area di superficie per gli 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 acquisti online che utilizza male javascript, non comprerò da loro. Per prima cosa navigo sempre con javascript disabilitato, e se un sito si degrada con garbo potrei essere interessato. Se è solo 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 qualche idea di marketing da caricare. Se un sito impiega più di 5 secondi per caricare contenuti di base, non mi preoccuperò se non ne avrò un reale bisogno.
La maggior parte delle risposte qui sembrano evidenziare le critiche dei siti web standard che utilizzano JavaScript in modi non essenziali o hacky. Ma per quanto riguarda le app Web? Ci sono un sacco di funzioni critiche che non possono essere raggiunte neanche lontanamente così efficacemente senza JavaScript. Anche qualcosa di semplice come un contatore di parole di base sotto un'area di testo, o abilitare / disabilitare una domanda di modulo aggiuntiva basata sulla risposta ad un'altra. In questo caso non è ragionevole costruire per la maggioranza e degradare con garbo per la minoranza? Soprattutto se sai che la tua base di utenti è non tecnica e improbabile che JS sia disabilitato?
Cose da considerare:
AFAIK, gli spider dei motori di ricerca non amano Javascript. Dovresti avere contenuti di base e navigazione senza Javascript solo per SEO.
Alcuni siti Web potrebbero disporre di regole per l'accesso da parte dei disabili, sia per ragioni legali che per i criteri aziendali. Di solito è meglio farlo con HTML semplice rispetto a Javascript.
Mentre la maggior parte delle persone naviga con Javascript al giorno d'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 potenti, sebbene con alcuni telefoni Android che sono piuttosto economici questo sembra meno probabile. Il degrado aggraziato potrebbe essere un modo per testare il sito in futuro.
Sì.
Non ho intenzione di parlare di persone con NoScript, dispositivi embedded, ecc. La loro quota può essere misurata e quindi puoi decidere se la diminuzione delle entrate causata da fastidiosi, ad es. 0,5% di utenti vale la pena implementare una soluzione per loro.
Ma ci sono altri motivi per seguire il principio del miglioramento progressivo, e spesso sono più importanti.
100% utenti non possono eseguire javascript prima che vengano caricati gli script. 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.
I siti che possono funzionare senza js sono più affidabili. L'errore di Javascript che rompe un sito Web è un incubo architettonico. Maggiori informazioni su questo e problemi correlati: link
È più facile attenersi a Progressive Enhancement piuttosto che implementare un sito solo per javascript SEO.
È più facile scrivere test automatici per siti che non richiedono il javascript per funzionare.
In realtà è abbastanza facile seguire il principio del miglioramento progressivo, quindi perché non seguirlo?
Dipende dalla risposta a una singola domanda:
"Il costo di supportare utenti con Javascript disabilitato superiore o inferiore al denaro perso non supporta quegli utenti?"
Supponete che il vostro sito abbia una vita di 3 anni prima di dover essere ricostruito, costa £ 30.000 da compilare per "clienti ricchi" e aggiungete altri £ 10.000 a supporto di utenti non javascript (di cui assumeremo lì sono il 5% di)
Se il 5% mancante degli utenti avrebbe speso più di £ 10.000, fallo. Se non lo faranno, non farlo a meno che non sia richiesto per legge.
Questa è più una decisione aziendale / economica che una tecnica.
No, non dovresti
Con due eccezioni:
Per i siti Web desktop e touch, Javascript offre un'esperienza utente incredibilmente ricca. C'è una ragione per cui tutti i migliori siti web fanno ampio uso di AJAX e Javascript. Tutti i browser attuali lo supportano. Abbracciarlo!
Come qualcuno che ha sudato in passato per far funzionare un intero sito Web con Javascript disabilitato, posso assicurare a chiunque che finirà per degradare l'esperienza per il 99% al fine di accontentare l'1%.
Piuttosto basta inserire un tag NOSCRIPT che indica a quegli utenti di abilitare Javascript. Ci saranno abituati.
Dipende molto dal tuo mercato di riferimento. Se il tuo mercato di riferimento è non tecnologico, sei abbastanza sicuro ignorando javascript disabilitato. Tuttavia, se cerchi techies, beh, la maggior parte di quelli che conosco hanno javascript disabilitato ... Avrai bisogno di supportarli a meno che tu non voglia la piccola parte di techies che permette javascript (io sono uno dei la minoranza, lascio javascript sulle mie macchine). : -)
JavaScript disabilitato è estremamente importante e dovresti supportarlo. L'industria del porno è famosa per lo spamming degli utenti con finestre pop-up. La disabilitazione di JavaScript è praticamente necessaria se navighi in questo territorio.
Vuoi davvero forzare gli utenti a attivare / disattivare JavaScript in modo permanente mentre escono da siti di reputazione discutibile alla tua app?
Perché dovresti usare JavaScript? Comunque non è necessario per qualcosa di utile. Aggiungilo per effetti stupidi, se lo desideri, ma fallo funzionare per noi seduti su un nuovo netbook / iPod lento / qualsiasi cosa voglia farlo funzionare un po 'più veloce (e più sicuro) girando JavaScript!
Leggi altre domande sui tag web-development javascript