Hacker News new | past | comments | ask | show | jobs | submit login

That's 2% I could do without, no problem.

Explain that to a potential investor. "We snubbed 2% of our potential user base because we were too lazy to make sure that our site degrades gracefully." From the article, that's _6 million_ of Yahoo!'s 300M+ user base.

I really don't understand what's the big deal about making sure your site works without JS, it's just some extra work that you're going to have to do anyway later down the line (and it will be more complex then).

If your web page is a simple marketing site, blog, or e-store, then I completely agree.

But if your web page is a complex application, having to support no-JS either shuts you out from from a huge set of interface tools, or forces you to maintain two interfaces in tandem. To me, 2% doesn't justify that, particularly when you can just politely inform the user that their browser has a significant feature disabled, and inform them how they can remedy the situation so that your site works.

I agree with you and the posters below that you can't develop two versions. But I'd like to point out that "it doesn't work because JS is disabled" versus "it's not pretty because JS is disabled" are two different things, and they are not mutually exclusive. There are a slew of sites that work without JS even though they depend on it for "fancy" stuff. Plus you don't have to support two different sites in tandem, it's not exactly 100% more work. For example, instead of an AJAX call (which returns content), display the content in a new page, i.e. Slashdot's comment system -- when JS is turned off, clicking on a comment opens it up in a new page.

You're overlooking a lot of powerful applications that need SOMEthing to work client-side. Markup.io, recently featured here, is not the sort of application that can post-through to another page to fix. One could argue that it might also work with Flash, or ActiveX, but I'm only even mentioning them to head off somebody else from doing so, as that's hardly a solution.

I suppose it could be implemented as an Applet, but what's important is that Markup.io is exactly the sort of thing that Javascript exists for, really. And yes, disabling JS will break it, completely, and yes, I think that's perfectly forgivable.

On the whole, I agree that my blog should degrade, and data-entry type applications should work as well, but saying that everything should is completely overlooking an entire category of application for which it's perfectly acceptable, in my opinion.

Ok, good point. My problem is sites where it is reasonable to expect them to work without JS, but end up not working at all. I would never expect a specialized site like Markup.io or asteroids-on-a-page (forgot the name) to work without JS. News sites, portals, blogs, shopping sites, etc, are all fair game for no JS (like you said).

By the way, not sure if you're the author of Markup.io, but it's pretty cool.

Oh, no I'm not even remotely connected to it, it was just the first example that came to mind.

It is pretty cool though.

Markup.io isn't actually a part of the world-wide web of linked semantic documents. Its content is inaccessible (even for viewing) unless you blindly trust its code. It rightfully deserves to be a browser plugin, it's just cleverly smuggling itself into everyone else's content because there are no good portable extension mechanisms for browsers.

> because there are no good portable extension mechanisms for browsers.

...which is why JS is filling that gap. :)

Even if your users have JavaScript enabled, they still need to download and run it before using your complex application.

Consider GMail. How awesome would it be if you didn't have to wait for its "Loading..." progress bar? It takes 2-4 seconds for that to go away on my computer. If you design for progressive enhancement, you can interact immediately and when JS is ready, it simply enhances what's already there. If done right, it's all the same interface.

If you don't mind waiting, your users may not agree: Google and Amazon both have noted significant losses in revenue at page delays much shorter than 2 seconds.

> Consider GMail. How awesome would it be if you didn't have to wait for its "Loading..." progress bar?

Well, taking a look at "Basic HTML view"... considerably less awesome.

My point was that Google solves this problem the wrong way.

Instead of making two interfaces, they should make one interface. If JavaScript hasn't loaded yet (or if it's disabled), the majority of the interface can still be available immediately.

JavaScript should always add to the experience. It doesn't make sense to show GMail's Chat widget until JS is loaded-- but it really doesn't make sense to show nothing at all until the Chat JS downloads and runs!

You should be able to show the message list right away. You can start scanning your messages immediately. You can click normal links and submit forms.

Bonus for JS enabled users: a few seconds later the links, buttons, etc. all get hooked up to JavaScript. The Chat widget appears. By the time you click, things may even happen all AJAXy-- and it appeared to load instantly by loading JS in the background.

Now that's awesome.

But what about features that _need_ JS to work? Should they be in the interface until the JS loads and they work? Then when I try to use them in the first few seconds, they're broken. If they're added afterwards, they just pop into existence...

I don't mind waiting the second or two.

No. Those features should not be in the HTML markup if they are bonuses that require JavaScript. At least, they must be hidden until its script loads. But you shouldn't have to hide everything.

I'm pretty happy browsers don't show a big "Loading..." message until everything is loaded instead of painting the page as soon as possible. Shouldn't we be avoiding that too?

The bulk of that interface can be progressively enhanced.

For example, the message list and side navigation can be normal links. When JS comes along, they get actions (show this view, show this message) that override the default actions of those links (navigate to the page /message_view?id=foo).

If you try to use them in those first few seconds, they act as normal links-- they aren't broken, they just weren't enhanced yet. You can start using the page faster.

It's potentially a lot of extra work. If your site's UI is heavy on the AJAX, a non-JS option basically means writing a completely separate UI.

Explain to an investor, "We don't have features X, Y, and Z, which our competitors have, because we were spending time maintaining the non-JS version for 2% of our user base.".

Also, non-Javascript Luddism may correlate with other forms of Luddism. For example, non-eCommerce Luddism or non-ads-clicking Luddism. So it might be that you're doing all that work for people who are not going to benefit your bottom line as much as the typical user.

It's something each business probably has to measure for itself, but the people saying, "I don't see what the big deal is," just aren't looking hard enough.

I don't think Luddites are savvy enough to figure out how to disable JavaScript, and most of the people who disable JavaScript are probably at the opposite end of the spectrum: people who know the privacy and security risks of JavaScript, and who would rather a website be obviously broken on the first visit than have it be subversively annoying and ad-laden.

If an e-commerce site won't let me get to their product list and see prices without cookies and Javascript, I won't buy from them if there are alternatives. There's no real justification for making a simple online store 100% AJAX for even the most basic features, so the sites that do that don't get my money. (They probably don't do to well from an SEO perspective, either.)

Blogs that require cookies and JavaScript before they'll show their content are obviously more concerned with spamming me than being of use to me, so they also get closed immediately.

Tell that to facebook (http://i.imgur.com/9FdJa.png) :-).

The problem with bending over backwards for non-js is that you double your dev cycles (no AJAX, need regular forms for everything), lose dynamic menus (want to duplicate those?), lose a ton of instrumentation you may be doing, etc.

I think it's perfectly fine to say "non-js means you have a read-only experience". Even facebook doesn't go that far -- you can't even log in without js enabled! (And they're definitely in the camp of 2% * 500M).

What will people do who have js disabled? They'll get a tech friend to help, because that disabling was probably a misconfiguration :).

At some point you have to prioritize your time to work on the features that help 95% of your users.

Facebook caters for non js people by directing them to the cut down mobile version of the site. Which is not a perfect solution, but it is much much better than simply telling them to go away.

The problem with bending over backwards for non-js is that you double your dev cycles

I would think you are being generous. A marked advantage of JS based RIA is rapid time to market, it is a simpler development model that provides superior usability when done correctly. The old page post model is a considerably slower development model. Hence all the server side frameworks, people have been trying to crack that nut, in the page post model, since someone bolted up CGI POST to a script and spit out some dynamic HTML.

"I really don't understand what's the big deal about making sure your site works without JS"

It's worth reminding ourselves that the business and technical constraints of different web applications vary widely and so strategies will also vary widely.

For example, if you are building a greenfield app and your purpose is to try to search for a product/market fit, it generally doesn't make sense to optimize for the 2% of non-js users yet. You haven't yet found a steady source of revenue meaning that (1) you probably can't afford the extra effort and (2) your app's features are likely going to change drastically.

Try explaining to a potential investor: "We lost the market because we were busy making sure the last 2% of potential customers could use the site".

We were too lazy to spend at least twice the time creating the product.

Shorter version: 2x more work does not justify 2%

Explain that to a potential investor.

We snubbed 2% of our potential user base and reinvested the money we saved in increasing the conversion rate of the 98%. Further we are going to use some of that money to chase additional revenue streams. If we exploit all available revenue models and hit a wall with upping the conversion rate, we will look at creating a separate none JS version of the site with reduced functionality, so that the two distinctive development models are not intertwined therefore reducing out maintenance burden.

It might not be laziness that you don't support that 2%. It costs real time and money to add and support fallback content and functionality. There could be better uses of that time and money that create more value for the business...which is something your investors should understand.

2%? Is that supposed to sound significant? I'm sure Yahoo would be doing fine, give or take 6 million users.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact