top | item 3836309

Don't tell me how to enable JavaScript

203 points| Wilya | 14 years ago |riversoflambdas.tumblr.com | reply

197 comments

order
[+] debacle|14 years ago|reply
If you've got JavaScript disabled, no one is interested in catering to you. You are the pathological customer in the ad-driven content consumption world of the Internet. It's impossible to make money off of you.

Sure, you enable JavaScript but you don't disable AdBlock and so now you're just consuming resources and contributing negatively to the site you're visiting's bottom line.

I understand the myriad justifications for disabling JavaScript, but I don't really care. There aren't enough people with JavaScript disabled to warrant giving it any attention.

It's the same with Flash. If you don't have Flash, I will show you how to get it, but I'm not going to spend the time telling you why you ought to get it, because I don't care to argue the point. There aren't enough people without Flash for it to be a concern.

[+] chris_wot|14 years ago|reply
With respect, I feel you are wrong. I browse the web with my iPad more than I browse it with my laptop. There is no way that I can run Flash on this device. There are now a significant numbers of folks who are doing the same as me.

If you have to use Flash, then that's fine. But the author of the article is right IMO. You need to provide a compelling reason for me to hop off my iPad and boot up my workstation/laptop to look at your website.

I have long considered that Unobtrusive Javascript to be one of the best paradigms for websites. It shouldn't be that hard to do. In fact, even in web applications there should be a clear seperation of content and behaviour, just as there is to seperate content and style. I was looking at a VMware product the other day that does ITSM, and it was the most god-awful mix of bad Javascript and HTML that I was most surprised. Not only did it not use Javascript in a sensible way (ala jquery, YUI, etc.), but it used stupid tricks like document.all - and in fact the webpages that it loaded entirely relied on Javascript working.

Therefore, I submit to you that by not designing your websites with Unobtrusive Javascript, that you are a. causing accessibility issues (and NOT just for disabled users), and b. you probably haven't developed your website very well anyway.

Please, I urge you to convince your users WHY they need to turn on Javascript to use your site. If you can't provide a compelling case, then I'd suggest that you probably don't have a good reason to require it!

[+] ef4|14 years ago|reply
> There aren't enough people without Flash for it to be a concern.

That's not really true anymore, given the 200 million iPhones kicking around.

[+] mkmcdonald|14 years ago|reply
> If you've got JavaScript disabled, no one is interested in catering to you.

I'd hope an amicable, intelligent developer would. Scripts don't always load. Errors happen.

> I understand the myriad justifications for disabling JavaScript, but I don't really care.

How nice of you to pick and choose users that matter. It must be a nice luxury.

[+] krosaen|14 years ago|reply
Agreed. I think it's important for geeks not to be too influenced by certain preferences held by a fraction of their peers at the expense of more work that could have been spent making your product better for 99.5% Reminds me of people griping about lack of ogg vorbis support.
[+] Pewpewarrows|14 years ago|reply
The last time I checked, GitHub has 0 ads on it. And they're clearly not making any money off of their users, because features like paid accounts don't exist. It's impossible to monetize a product without slapping tons of intrusive advertisements all over the place.

/s

[+] icebraining|14 years ago|reply
Sure, you enable JavaScript but you don't disable AdBlock

I'm the opposite: I run NoScript but not AdBlock.

[+] Drbble|14 years ago|reply
Ads are pay per click almost exclusively. Adblock saves money by avoiding rendering and distribution costs. Adblock users don't click ads even when Adblock is off.
[+] Pewpewarrows|14 years ago|reply
Here is how I handle this for projects that I work on, and I haven't received a single complaint thus far:

1. Decide if the core of the site is undoable without JavaScript. Something like Google Docs or games relying heavily on Canvas/WebGL are prime examples. It is very rare for this to be the case, but if it is then disregard the rest of the steps.

2. Build the entire site without even considering JavaScript as an option. The advantage of this is I can finish all functionality without opening my browser window once. I build out the core with unit tests, and assert the base user workflow using integration tests that can simulate things like form submissions to route end-points. My test suite is now a constant confirmation that my site works with JavaScript disabled.

3. Open up the site in a browser, and begin the design & UX portion of development. Because the site is essentially feature-complete and tested already, I can have a lot of fun experimenting in this stage, tweaking things to my heart's content.

4. I slap this on the page after I'm satisfied with the enhanced UX that design and client-side scripting provides:

    <div class="jsnotice">
        We notice that you currently have Javascript disabled. While this site is fully accessible
        without it, you're still missing out on some pretty neat features. We work tirelessly
        to ensure that our scripts are small, unobtrusive, and do not harm your user experience.
        Please add us to your whitelist, or <a href="//enable-javascript.com/">enable Javascript in your browser</a>!
    </div>
Using Modernizr, that class only shows if JavaScript is disabled. The message itself is unobtrusive, and I always provide a way for the user to dismiss it permanently. If I want, I go into a little bit of detail on what "features" they're not experiencing fully.
[+] goodside|14 years ago|reply
What percentage of your users actually have JavaScript disabled? How small would the user base have to be before you decided they weren't worth this much effort?
[+] tomkin|14 years ago|reply
I have a completely different viewpoint on this topic that probably won't be very popular – but, if we're talking about writing experiences for those with JS turned off, isn't that the same as having to write code for an IE6 experience? I imagine the percentage of people having JS turned off is roughly in the ballpark of how many IE6 users we have left to deal with. Why has this been turned into a purist argument when it really should be about practicality and quality of one's work?

Though, I do get the gripe about not even seeing what the site is about before enabling JS. Even the weakest IE6 experiences seem to have some semblance of the subject matter.

[+] masklinn|14 years ago|reply
> if we're talking about writing experiences for those with JS turned off, isn't that the same as having to write code for an IE6 experience?

Not quite: the major issue with IE6 is that it fucks things up by providing partial implementations. A no-scripted browser "just" provides no scripting, static content and styling are perfectly handled just not additional behaviors.

These are very, very different situations.

[+] ef4|14 years ago|reply
The difference I see is that this author isn't asking for anything more than a little bit of useful static text. No meaningful code changes, just a tiny snippet of plain old HTML will do the trick.

That's dramatically easier than trying to make a complex app work in IE6.

[+] EvilTerran|14 years ago|reply
Well... dealing with IE6 involves a lot of working around quirks in its treatment of plain ol' HTML and CSS, even if the site's completely static. Dealing with the no-JS crowd wouldn't entail that at all, so at least it should be an easier sliver of the market to cater to than the IE6 crowd.
[+] eps|14 years ago|reply
Unlike NoScript users Ppople running IE6 can't right-click and disable it at will.
[+] drewmclellan|14 years ago|reply
Thinking about users with JavaScript disabled is unhelpful. Sure, some of those exist, but they've largely opted into that.

It's more helpful to think about designing a site to work robustly for the situations in which JavaScript doesn't successfully run. There could be reasons from aggressive firewalls blocking scripts, to slow or broken network connections, where the user might not get your JavaScript along with the page.

Many browsers halt all JavaScript execution on a script error. All it takes is a badly coded third-party ad on your page, or a typo in your own code to stop all JavaScript on the page from running.

Is it right that your page or app should completely stop functioning at that point? The web is a brittle platform. Things break all the time, but our technology stack of HTML, CSS and JavaScript can be exceptionally robust when used in the right way.

Build your site with HTML. Make it look much better with CSS. Make it work much better with JavaScript. Be prepared that CSS or JavaScript may not load at any point, with the reassurance that plain old HTML has got your back.

Sure, it takes a bit longer. Doing a good job always does.

[+] mortenjorck|14 years ago|reply
This just boils down to a question of understanding your audience and communicating with them appropriately. The simple takeaway is that disabling JavaScript tends to correlate with tech savvy, and so addressing these users as non-technical comes off as condescending and results in blog posts like these.

If I'm building something JS-only, I try to speak the NoScript user's language when writing the error copy, even attempting to build a bit of rapport, like here: http://presteign.com

[EDIT] Something has apparently gone wrong in the last couple of days with the dynamic content loading on the site linked above, so I've put a maintenance page in its place. The <noscript> message was: This site needs JavaScript enabled to work. At least it's not Flash, right?

[+] aGHz|14 years ago|reply
The OP missed the point: it's a passive aggressive way to get you off the site and hope you never come back. We're already focusing all our energy on convincing normal people why our app is awesome, convincing you why you should also enable JS to enjoy it is very low on the priority list. Not to mention that I already have to test my site in 4 browsers, you want me to now test it for a very small edge case too? How entitled is that?
[+] XLcommerce|14 years ago|reply
How was the original author acting entitled? He's merely saying that instead of insulting his intelligence just give him some screenshots and info about your app in the noscript. If your app is worth it he'll flick the js switch to the on position.
[+] icebraining|14 years ago|reply
The OP missed the point: it's a passive aggressive way to get you off the site and hope you never come back.

Then tell us that. I'm serious, I'd rather get a "fuck off" message than one assuming I'm an idiot.

Nobody is saying you have to support non-Javascript users. The author is saying that if you want to support us, then get it right.

[+] EvilTerran|14 years ago|reply
Entitled?

You're the one who stands to profit from the interaction. You do the legwork.

[+] dazzawazza|14 years ago|reply
I started reading this thinking what a complete dick but on reflection they are right. It's as hard to show a feature list and ask to be white listed as it is to redirect to http://www.enable-javascript.com/.

Well said. Thank you.

[+] drostie|14 years ago|reply
There is perhaps a lesson here. Hopkins said it this way[1]:

    Each mortal thing does one thing and the same:
    Deals out that being indoors each one dwells
...and he then calls for humanity to rise above this standard case. It is functional, if sub-optimal[2], for how we can organize society: every single person complains about what bugs them, and we connect the social graph dynamically to make people happier -- the people who want a NoScript user's business will design with them in mind, the people who don't care enough, won't.

I would add that this applies not just to JavaScript but also to cookies. We use NoScript and Cookie Monster because they're condoms for the Internet -- they protect us from tracking cookies and some XSS attacks.

The web site for Priv.ly unfortunately breaks when you use NoScript. The reason for the break is to make four links appear when you mouse over an image which is hiding them, and then those links load videos into that element. Basically, the element is an iframe for videos, except they didn't use an iframe. It would have been faster to develop if they had just used an iframe to load their videos, and then their videos could probably be covered by a NoScript exception for Vimeo.

If the site didn't break, it would say, "You do not have scripts enabled, which means you are either running old technology, or are our kind of person. If you are the latter, we hope you will consider helping out." This is almost very nice and polite -- but please, skip the crap about "running old technology" when you follow-up on this example, and instead just condense the content which you were going to show me into a short summary with a nice little end point, "to see my app, please enable JavaScript." If your app is its own summary, like a blog article, then you absolutely should not require JS to display it.

[1]: http://www.bartleby.com/122/34.html "As Kingfishers Catch Fire" [2]: http://www.ted.com/talks/lang/en/david_logan_on_tribal_leade... "Different Stages of Tribes"

[+] NelsonMinar|14 years ago|reply
There's one very important user who doesn't run Javascript: Googlebot. If your site displays no content without scripting you are invisible to search engines. So this blog post's advice to display some static fallback is useful; not for the NoScript weirdos but for SEO.

Hopefully the search engines will fix their spiders. In the meantime we have ugly workarounds like the #!/escaped_fragment nonsense.

[+] lucian1900|14 years ago|reply
Although this is a fair point, even the googlebot has started running JS.
[+] Drbble|14 years ago|reply
And Googlebot the indexes content, not apps. As long as you don't use Google's broken blog platform (ha, irony) your blog with your content works fine without JS, creating SEO juice for your JS app.
[+] earnubs|14 years ago|reply
Suggestion for your CSS:

body { font-size: 14px; line-height:1.4 }

[+] MattBearman|14 years ago|reply
Please do this! I had to zoom in quite far on my 13" mpb just to make the site comfortable to read
[+] thaumaturgy|14 years ago|reply
Ideally, sure, sites should try to fall back more gracefully than that if JS is disabled.

But I'll bet that there are more IE 6 users than Noscript users.

[+] masklinn|14 years ago|reply
> sites should try to fall back more gracefully than that if JS is disabled.

They may not be able to though, take something like Etherpad there is very little value it can provide when javascript is disabled so being upfront about it makes sense. An other acceptable excuse is not having the manpower to handle both experiences correctly.

Of course, the most common case is likely that they can't be arsed.

[+] ticks|14 years ago|reply
It's one of those "live by the sword, die by the sword" issues as far as I'm concerned. At least with IE6, a lot of people are stuck with it due to locked-down corporate networks; whereas with JS, people who are opting-out should blame themselves - unless I'm missing an obvious web browser that doesn't support it? That said, I too offer minimal support for non-JS'ers.
[+] glanch|14 years ago|reply
I used to be a Noscript user, but I just got sick and tired of clicking 2-3x as much as usual, just to get every page to load correctly. Normal process:

-Page loads, great

-Click on something but it doesn't respond

-Shit, probably JS

-Click NoScript, see a list of sites

=This is where is really gets good=

-Stare at the list of sites noscript is blocking on the page, arbitrarily unblock one that 'seems' like it would be hosting the code that runs the thing I'm trying to fix, based only on domain name

-Refresh the page, try clicking that thing again, if it doesn't work, repeat the process

I wasted many hours of my life on that process, and what did I gain from it? Security? Not really, since I would randomly enable sites to run JS. So I uninstalled it. Worst case scenario, I get a virus and have to reformat, and lose an hour or two. I don't have any important data on my hard drive.

So, Noscripters, are you guys just really concerned about security or is it a psychological thing - as in, it feels good to be able to be the boss of your browser and tell sites whether or not they can run JS?

[+] ebbv|14 years ago|reply
> someone who wants JS to be off or blocked. Someone who is thus actually pretty tech-savvy

I disagree. Anyone who has JS disabled in 2012 is not tech savvy. They are a paranoid weirdo. They're the guy who refuses to buy a TV even though the Wire, Breaking Bad and Justified are on.

Nobody should have to waste their time trying to convince you to be sane.

[+] jerf|14 years ago|reply
I use NoScript & Flashblock because it makes my web experience better. Pages load more quickly, they flash and blink and play advertising noises less, those intrusive pop-ins often don't work, and every time I go on to somebody else's machine to use the web I wonder how they put up with it all. At the same time, I never miss out on any actual features of the page because it's very easy to deal with turning things on.

I am pretty sure this qualifies as "tech savvy".

Nobody would have to waste my time convincing me to turn on Javascript if so very, very many sites didn't spend so much time using Javascript to degrade their site's experience. Don't bother trying to convince me this isn't the case, I have years of concrete experience proving the opposite. Theoretical arguments about how that might not be true aren't going to fly.

[+] Lockyy|14 years ago|reply
"Refuses to buy a TV even though -snipped- is on."

Forgetting about Netflix on your pc are you? In fact, watching shows on a specific channel as opposed to via an on demand service such as Netflix is actually a worse experience. Because I watch things when the TV channel decides, as opposed to when I want to watch things.

I have a TV. I haven't switched the channel off of my ps3 once. Everything I could ever want to watch is on there.

[+] EvilTerran|14 years ago|reply
Setting aside your vacuous insult-flinging...

Fobbing someone off to a patronising "how to enable JS" page is more of a waste of time than showing them a screenshot & paragraph description of what they're missing out on. It's about as much effort, and drives them away, while giving them a preview may actually earn you a customer - the very opposite of "wasting time".

[+] jimminy|14 years ago|reply
So it's more sane to spend money just so that you can waste several dozen hours a year watching these shows, that will have ultimately no consequence in your life. If you want to do that it's absolutely fine, but there is no reason to deride someone for their views just because they don't match your own decisions.

P.S. I love Breaking Bad and Justified, but I don't have a need for a TV any more, still have one, but rarely turn it on. If I want to watch them, I just go to Amazon/iTunes/Netflix/Hulu and stream them.

[+] dillona|14 years ago|reply
Web browser exploitation is much harder without JavaScript.

Keeping my computer secure is more important than using the latest ridiculous web app that slows my computer to a crawl.

[+] natesm|14 years ago|reply
Not really a good comparison. A TV costs $1000 or so (for one that isn't bad). Then it costs about $50 a month to even be useful, plus whatever HBO costs to get a good amount of shows that aren't bad. Even then, the picture quality is worse than my iPad or Ultrasharp. If anything, I think that TV ownership is probably lower among "tech-savvy" people.

Enabling JS is free.

[+] Jach|14 years ago|reply
What a wordy way to get across the point. Here's a tl;dr:

If your webpage doesn't display anything without javascript, or if it doesn't display anything except "please enable javascript" or "here's a link to tell you how to enable javascript", then please take the extra minute to add something like the following to your webpage:

    <noscript><span style="color:red">This site about X requires scripting because Y.</span></noscript>
That's it, shortening/assuming context/lengthening as desired. Warning that your site will/will not be using your browser to mine bitcoins for the owner is optional. Recoding your site so it works with lynx is also optional and fine, if you really want to, but it's not what's being asked.
[+] lucb1e|14 years ago|reply
To comment on the story: Yes, I have browsed without remembering that I had it disabled. Briefly, I guess a minute or five. Then I started missing things.

Javascript is to enhance the web, the crux of all webapps. Going around to disable it, then enable it for half the websites you encounter, kinda seems overkill to me.

I definitely see the advantages though. It's much faster, and you don't get disturbed by anything. Ideally I'd automatically get every article I go to from HN trough readability first. But doing that is slower than just letting my computer load the thousands of lines of JS, and not everything from HN is text. I can live with the nonsense on the page as long as adblock plus is turned on. Actually every news website should go trough readability, or at least get the "share it with your friends on Facebook, G+, Twitter, email, print, delicious, stumbleupon, digg, or by direct link" blocked by adblock plus. But disabling Javascript just for this?

My website also has a message for people who don't have Javascript enabled. It does aim for an average user who doesn't know he has it enabled since one of the priorities is to get the broadest possible compatibility, but that's just one sentence linking you to where you can read more if you want to.

One of the things I promise in the more info is that my Javascript won't ever be intrusive in any way. For example I use it to load Disqus comments, or to toggle visibility of fields when you click something. JS is not required to navigate or get all content though.

[+] marcusf|14 years ago|reply
Honest question: How large is the noscript population? If I were to chose where to invest my time, catering to the noscript crowd would probably come pretty low on my list of priorities.
[+] madhadron|14 years ago|reply
A particularly egregious one: I went to download Google Chrome with links (the text mode browser). Google's download page for Chrome requires JavaScript. I know Google has been falling apart, but really?
[+] cnbeuiwx|14 years ago|reply
This got me thinking of Engadget and how they actually WARN the user if they have 3rd party cookies disabled (!) when reading comments:

"Warning: A browser setting is preventing you from logging in. Fix this setting to log in"

Sigh.

[+] npsimons|14 years ago|reply
To all those who are saying "forget the people with JS disabled", I'd like to remind them that attention is scarce; information is not. Do the math. Sure, we may not account for very many people. We may not be "important" in your world. But I can tell you that when I encounter a website that doesn't work without JS, or balks at my filtering/anonymizing/caching proxy (with custom user-agent), I go elsewhere. I don't forward the URI of that site, or bookmark it. I forget about it. It doesn't exist to me. There are likely a dozen other similar sites willing to get my business or attention. I have no time or patience to waste on people who want me to jump through hoops just to see their sales pitch. To be sure, I turn on Javascript for some sites, but it's a pretty high bar that has to be met. Requiring Javascript to read a blog does not meet that bar. This article is right on the money.
[+] packynix|14 years ago|reply
it's 2012 and you should just enable javascript.
[+] ojr|14 years ago|reply
Complaining about enabling javascript on tumblr, a site that has many javascript functions built into their blog system by default is an oxymoron.

Generation Y and our "evil" javascript enabled browsers will take over Generation X in years to come.

[+] marginalboy|14 years ago|reply
I think you missed the point. The author clearly stated he was willing to whitelist a site he wants to use. There are good reasons for someone not to browse arbitrary sites with JS enabled by default if they choose, from security to memory management...
[+] cientifico|14 years ago|reply
You are not part of my target users. Sorry and goodbye.

As long as I normally focus on the 80% of the users, and more that 80% of my users use javascript, I have to say, that you are not part of my target. I don't have the money to make an app for the user with a normal browser (including mobile), and the user with IE, ups, sorry, the users without javascript.

Buy a better computer

[+] LinXitoW|14 years ago|reply
I get the sentiment(and i'm right there with ya), but the author isn't asking for your whole website to work without JS, just to display some very basic, static stuff without Javascript. Hell, even just ignoring that JS is missing might be a better solution. That way, the user at least gets to look at the HTML and CSS, which will probably still convey enough information about the website.

I really don't understand why anyone'd even react to missing JS. Anyone willfully turning it off will be aware of that.