It seems that Firefox 23, currently in beta, has removed the option to disable JavaScript. Is this good for programmers and web apps?

One of the small changes we didn't notice in our recent coverage of Firefox 23 recently was the fact that the option to disable JavaScript has been removed. It isn't mentioned in the list of changed features and Mozilla isn't making much of a fuss about it. However the change is causing some reaction on the internet and it is clearly important from the point of view of what constitutes a browser.

Originally, you expected a browser to support nothing more than HTML; then along came JavaScript and, less controversially, CSS. The trinity of the web app is HTML, CSS and JavaScript, but until Firefox 23 a user could disable JavaScript very easily and opt to view the web without JavaScript. This is the reason you will find so many commentators and experts saying that JavaScript should only be used to enhance a web page so that if the JavaScript was turned off the user would still have a good experience of the page.

Of course, if your intent has been to create a web app then this approach has been nonsense for a long time. Today there are a lot of programmers of the opinion that if the user has JavaScript off then its their own fault and consuming the page without JavaScrpt is as silly as trying to consume it without HTML.

Is there an option to turn off HTML?I think not.

This hardline "JavaScript or nothing" approach is much more common than you might expect, but it isn't one that people like to write about, or promote, because of the fear of a reaction from end users. To be more precise, end users see JavaScript as being much worse than the arch enemy - the cookie. This particular groups of users can be characterized as "tin foil hat wearing conspiracy theorists" but recent events has put right and might on their side. The PRISM "revelations" have placed all technology in the "danger-to-privacy" category and so this is about the worst time you can imagine to remove the disable JavaScript option.

Why has Mozilla decided that this is the right thing to do?

The simple answer is that there is a growing movement to reduce user options that can break applications. The idea is that if you provide lots of user options then users will click them in ways that aren't particularly logical. The result is that users break the browser and then complain that it is broken. For example, there are websites that not only don't work without JavaScript, but they fail in complex ways - ways that worry the end user. Hence, once you remove the disable JavaScript option Firefox suddenly works on a lot of websites.

This seems very reasonable, but removing options from dumb users also removes them from the expert user - and that's us. Reducing freedom, even freedom to crash the application, can be seen as a bad thing. And if reducing that freedom exposes the browser user to all manner of nasties, then it is even more a bad thing.

It is uncertain whether or not the disabled disable option will make it into the final release of Firefox 23 and it is even less certain that other browser manufacturers will follow, but from the programmer's point of view a disable JavaScript option has to be seen as silly as a disable HTML option. Web pages are no longer static by default.

Of course, end users aren't necessarily going to agree but a world where you could rely on JavaScript being on would be a simpler one.