We are debating whether to maintain the LiteMode (the SPA is actually SSR, we've decoupled our MVC well, so maintaining the LiteMode is only 20% more work). This got me thinking. What if we made the LiteMode entirely text-only, maybe with some optional CSS. No JavaScript.
I tested HN and it degrades fairly well. Some things such as the comment toggle doesn't work. There's actually a HTML
I recently gave it a shot on an old, sluggish iPad. I was blown away at how many websites just…don’t work, or only partially render.
It’s part of the modern web stack, and catering to those who disable JS is like catering to those who run FreeBSD - they exist, and they’re smart people, but their numbers are so small that catering to them makes no sense from a business perspective (unless they are a target demo).
With that said, removing the interpreted JavaScript runtime from your site is a laudable goal and things should be smoother, faster, and lighter.
The vast vast vast amount of average web users will not disable JavaScript. And those that do likely understand that they are crippling their own browsing experience, and so are more willing to accept if the site doesn't function properly under those constraints.
I wouldn't go out of my way to make a site work without JavaScript, unless it was a personal project I was passionate about operating in that manner. Lite mode sounds like something that might benefit a larger chunk of users.
Maybe you should do some small testing and see how much of your audience uses "LiteMode", and how many disable scripts completely, to inform your strategy.
That said, we're normally undercounted because JS itself is used to do the counting so I guess this balances things out.
If a site doesn't display without JS then my first move is to toggle off CSS and see if I can read it. If I can't I check source to see if I can read it. If I can't I close the tab.
What do I actually need javascript for? It actually is really easy to do without for the majority of what I use the web for anyway. YMMV.
I enable JavaScript if I know who is running a site and where their company is located and/or if I have a binding contract with them. Even then I use disposable containers [1] for those sites and run bleachbit before/after visiting such sites and use sqlite3 to clear visit_time from places.sqlite. I launch Firefox from firejail [2] with AppArmor enforcement.
[1] - https://addons.mozilla.org/en-US/firefox/addon/temporary-con...
Between the browser security issues & resource usage, anti-improved speed & UX, etc. - enabling JS is mostly not worth it to me.
(Yes, doing this kinda rules out a fair number of web sites for me. But with ~10,000x more content on the web than I could view in my remaining mortal years anyway...ruling out a lot of sites is a feature, not a bug.)
What I really want is a CPU budget for websites, you can run 2M operations or something, and then you're put to sleep.
Maybe a poll would be more suitable for this kind of a question though, and I guess there must be some already collected statistics around.
Edit: Speaking of "LiteMode" and accessibility in general, I think it's also nice to not go too heavy on CSS or assumptions about fonts. I used to override CSS (browsed quite a lot in the dark, so enforced a light-on-dark theme), to use textual browsers, and still disabling web fonts and setting a minimal font size, which occasionally leads to slightly messed up markup and related issues. Though those sorts of things tend to be covered in various accessibility guidelines.
I generally find the experience browsing the web is by far better like this than with JS switched on. Web pages load quickly and use less CPU and RAM. I don't get a load of popovers asking me to sign up to spam, asking me to allow cookies, or advertise random products. Some web site that don't allow non-subscribers to view the whole article (like New York Times) do with JS switched off. I don't have my mouse movements tracked so that they can detect when I'm about to close the tab. I worry very much less about security. I have confidence that those idle tabs aren't making my CPU busy and draining my battery.
The trade-off is that some web pages don't work. These can be broadly categorised. Some web pages don't work (as far as I can tell) out of pure spite - the JS is completely unnecessary, but the page just shows a blank white page without it. This is usually a simple fix like inspecting the source and toggling the CSS display: block attribute. That kind of page is just user-hostile in its approach - they go against all accessibility requirements, and I consider that if they're dastardly enough to pull that sort of trick, they're probably nasty enough to use JS to do really horrible things, and they will never have JS enabled by me. Then there are those cool demo pages that get posted on HN every now and again, where the content is JS. These usually get enabled - they pass the risk/reward test. Other pages are the generic large corporate web sites where I can see that JS should enhance the page, but shouldn't be necessary.
In my view, the burden of deciding whether to enable JS on a non-working site or dig into the source is much less than the burden of dealing with all those popovers, adverts, anti-patterns, and privacy risks. That's why I do it.
Also, it's a positive feedback loop for your web paranoia... seeing all the crap that gets loaded.
The main reason I do it is because of speed. Sites load an order of magnitude faster, they are not able to “scroll jack” or automatically play videos, and another huge bonus is ad blocking, since most ads are implemented using JavaScript.
Whenever I come across a website that has a great non-JS fallback (Google, NPR’s text-only, Apple’s marketing pages, HN), I think it’s a sign that the website developer really cares about their users. It’s not just for crazy people like me, it’s also paramount for users with disabilities who need to rely on screen readers (they prefer non interactive versions of websites). There are also folks who use old computers for financial or ideological reasons (i.e., opposition to e-waste or environmental concerns) who must disable JavaScript in order to make browsing modern websites pleasurable.
I applaud your efforts to maintain the lite mode for your site! It’s such a big deal to me.
Eventually I found my pace. I would enable JS for current domain only temporary (I think NS will do that for 24h then back to being disabled) and if it has fewer than 5 external domains I will start reading the page and see what else might I be needing. Most of the time I don't mind that I have images missing as example of what I'm reading so that is the only one that gets temporary unrestricted.
In the beginning of doing this it felt that I was a slave, to always needing to enable JS when need it. But nowadays is mostly muscle memory and I don't even notice it. However I am the only one with NS in my household. Rest of my family and my clients only get uBlock Origin as I recognize NS is not an easy extension to use as daily driver.
The direct connection prevents me from going to a site with a homonym url (such as g00gle.com).
I turn each thing on one-at-a-time until the site works enough for me.
80% of the time, _nothing_ is needed other than the connection to download html. Plenty of sites' text show up just fine and is perfectly legible without any CSS, images, or javascript.
Sometimes a site will talk about image content. Then I'll enable images and CSS. 95% of sites work like that just fine.
The last 5%? Usually they work with javascript and without cookies. I rarely go that far. Those last 5% sites rarely bring true value with their use of javascript.
Then there's the last .1% of sites that "need" the whole shebang. Those shites are rarely encountered.
For the small set of sites that are actually important to me, I selectively allow the minimum number of scripts required to make the site function well enough to do what I need it to do.
Reader mode or viewing with CSS disabled (view -> page style -> no style) often reveal the content of sites that show a blank page or just "loading..." when JS is disabled.
uBlock Origin element blocker gets rid of garbage occluding content too.
To view sites that do not degrade gracefully, the Redirector extension is useful to rewrite urls. E.g., for twitter and reddit:
(https?://)twitter.com(/.) -> $1nitter.net$2\?theme=Twitter
(https?://)www(.reddit.com/.) -> $1i$2
Blocking JS is good for the environment :) A low-end machine can still provide a pleasant experience browsing the web. And, a more capable machine doesn't waste energy running useless scripts (also good for battery life).
Disabling JS also substantially reduces attack surface.
https://github.com/gorhill/uBlock/wiki/Blocking-mode:-medium...
I suspect it's something to do with Chrome-specific features being inadvertently used (possibly someone here will know what's going on, google just gives a few pages of people complaining about the problem but no solutions).
You should make a version without JavaScripts and minimal (if at all) CSS.
Occasionally some things are going to require JavaScripts; in the case that they really do, you should ensure that documentation, links with other protocols/file-formats (if any), etc, should be visible and accessible even without JavaScripts, too.
I'd still personally make sure your site works well without JavaScript, though that's less of a statistical thing and more of a 'I feel sites should always be backwards compatible and not rely on scripting where not necessary' one.
Out of all people I know outside of HN, I'm the only person who does even one of the things I do. If I like your product and your product requires javascript, I'll whitelist you. Realistically, consider if the effort you'd be spending on this could not be spent elsewhere.
My main browser, with about 200 tabs and 3 windows open, is seamonkey. With javascript and cookies disabled.
Quite frankly, I find that many technical sites work just fine with JS and cookies disabled.
Pretty much anything that requires login, needs both. When this is the case (such as posting this comment) I launch a firefox instance, make my post, then logout and close the browser.
But seamonkey with all those tabs is on at all times...
The reason I want to do it is to stop tracking and bloat. Your "< 30 lines of JavaScript" wouldn't bother me at all (assuming it isn't for tracking or downloading large amounts of data).
The exception has been some clickbait-y/social media sites that I wish I spent less time on anyway, e.g. Facebook. The fact that they don't work is a nice reminder of what I don't like about them in the first place :)
No sane users who actually use the web would disable JS everywhere, it is pretty much unuseable. I disabled it on a few sites with an interesting content but really messy and it helped - but it was a miracle.
But reading this thread sparked a thought: could browsers handle server side handling (e.g. submit buttons) in the way React and alike frameworks work: instead of rebuilding the page from scratch diff the current DOM and the DOM for the new page and apply the diff in a smooth transition with animations?
Some people do (and you'll get a disproportionate number of them here), but unless yours is a niche product particularly aimed at such people, they're an insignificant number in comparison to the billions who've never even heard of such a thing.
I usually leave, and if I can't find what I need somewhere else, I may come back and fiddle either with CSS or even enable JS during that session only.
Rarely does a website make it to the list were it's always enabled. This is true for personal and work.
For example entire Kagi Search runs with no JavaScript enabled in the browser. We see JavaScript as a way to enhance client experience, not create it. So bascially Kagi is in 'lite' mode by default.
For times when I need to use a JS function (like twitter / HN search), I enable it temporarily.
That 20% more work could be put in to improving the main product instead.
I have it enabled for certain sites I frequently use, otherwise it's disabled by default.
It makes browsing much smoother IMO.
My phone is not the most recent so web with JavaScript and without a blocker is just unresponsive especially news sites
Without JS for example old.reddit.com/XYZ... loads 10x faster, with 10x more content, than the regular page. Some websites don't work but is manageable. Sometimes paywalls disappear and probably saves battery