🧽🫧Article Status Notice: This Article needs to be cleaned up
This article contains sources and content, but is lacking proper format and needs more development to meet the wiki's Content Guidelines and provide a high quality and consistent experience for readers. Learn more ▼
❗Article Status Notice: Inappropriate Tone/Word Usage
This article needs additional work to meet the wiki's Content Guidelines and be in line with our Mission Statement for comprehensive coverage of consumer protection issues. Specifically it uses wording throughout that is non-compliant with the Editorial guidelines of this wiki.
Learn more ▼
JavaScript (JS), not to be confused with ECMAScript (ES), is a programming language and core technology of the Web, alongside HTML and CSS. It was created by Brendan Eich in 1995.[1] As of 2025, the overwhelming majority of websites (98.9%) uses JS for client-side webpage behavior.[2] It's even used on the server-side (see Node.js).
| Basic Information | |
|---|---|
| Release Year | 1995 |
| Product Type | Software |
| In Production | Yes |
| Official Website | https://openjsf.org/ |
For the entirety of this article (unless stated otherwise) the terms "JavaScript" and "JS" will be defined as "ECMAScript with access to Web APIs" or "ES+WebAPI" for short.
Consumer-impact summary
- Degraded accessibility: Dynamic and/or active content is well-known to have poor accessibility for users with visual and/or cognitive impairments. While standards such as WAI-ARIA were created to mitigate this, it's no silver bullet, especially when developers aren't aware of ARIA.
- Lack of transparency: To optimize network bandwidth, JS code is typically served in minified form, which makes it harder to understand for humans. This is particularly problematic if the original source is not publicly available, which is typically the case of proprietary software.[3]
- Excessive tracking: JS is much more capable than HTML and CSS combined to track user behavior.[4] JS can communicate with almost any server (only limited by CORS) at any time (limited by connection availability), using a plethora of protocols. JS can get hardware information and compute a fingerprint of the device, user, or both.[5][6][7][8]
- Market control: JS is built into almost every web-browser and user-agent (UA), including "light-weight" ones (such as w3m), incentivizing companies to use it for everything, since "there's no need to worry about compatibility or portability".[9] John Gruber says that JS shouldn't be part of browsers;[10][11] one way that would work is by turning JS into an extension or plug-in that the user willingly installs.
- Security risks: It is well-known that JS is poorly-designed,[12][13][14] even tc39 acknowledges that[citation needed]. This leads to programmers and even experienced software-devs to accidentally add vulnerabilities to their code. That, and the fact that ES is Turing-complete (both in practice and in theory), makes debugging and reverse-engineering impractical in big code-bases. It's worth noting that tooling, such as TypeScript and ESLint, exist to substantially minimize the likelihood of bugs.
How it works
Whenever a user visits a webpage, an average web-browser will execute the JS code it finds in <script> tags. This code could do anything from updating part of the DOM-tree only when the user requests it, to showing a popup/popunder.
When JS tries to access a "privacy-sensitive" API (such as the microphone) the browser pauses it until the user has granted access for the first time. This is typically done on a per-domain basis. However, as mentioned earlier, many other APIs don't need to ask permission before fetching data.
It's worth noting that JS has a privileged position, relative to Wasm, because of its first-class access to Web APIs.
Why it is a problem
Many webpages (and even entire websites), force the user to keep JS enabled, otherwise they break or deliberately refuse to work. In 2026, considering the advancements in HTML and CSS technology, there is minimal reason why an average website (excluding real-time simulations and low-latency gaming) would ever need JS.[15][16] The main valid justifications are:
- Legacy code-bases. As those are impractical to migrate to no-JS solutions
- Static web-hosting. As the developer has no control over the server, any interactivity must be provided by JS
- Instant messaging (self-evident)
Expanding on the tracking capability, JS makes it harder for ad-blockers to block ads, since it can be used to make overly-dynamic ads. The data collected by malicious JS makes it trivial to serve personalized ads, even across unrelated sites. Some sites collect so much data that they are indistinguishable from spyware (see also key-logging).[17]
Expanding on the security risks, these are the most common vulnerabilities found in JS code:
- XSS, which NoScript tries to mitigate
- Arbitrary code execution and code injection. Typically caused by
eval(part of ES), but there are Web APIs (such assetTimeoutandsetInterval) that can be misused as well. - Remote code execution. This is used by hackers and crackers to build bot-nets for DDoS or crypto-mining, but it's mostly used for spyware since it can hide more easily.
Browser-engine developers (such as Google and Mozilla) not only feel compelled, but are financially incentivized to optimize JS to its limits. This leads to complex code-bases that are harder to verify for correctness. Browser vendors mitigate this via sandboxing. Unfortunately, since modern browsers compile JS to native CPU code (see JIT) to improve performance, this introduces a higher risk of sandbox-escape.[18]
JS not only makes pages "dynamic", the language itself (ES) is very dynamic, which is hard to optimize by engines. To put into perspective how much JS can slow down rendering, someone bench-marked a bloated pure-HTML page and a "simple" React app, the bloated HTML had faster FMP.[19]
Incidents
This is a list of all consumer-protection incidents related to this technology. Any incidents not mentioned here can be found in the JavaScript category.
Google Search requires JS (2025)
In January 2025, Google's web-search engine mandates that user-agents must have JS enabled. Google's justification was that it's a defense mechanism against abusive bots (see also Deceptive language frequently used against consumers).[20][21][22] However, some people claim that it's an invalid justification.[23]
List of sites refusing to work without JS
The following is a non-exhaustive list of websites where most or all pages deliberately only work with JS enabled, even when its use is "illegitimate":
- YouTube
- Facebook. It used to work without it, but at some point it became mandatory. Some people claim that it's possible to use without JS when visiting the "lite" or "mobile basic" variants.[citation needed]
- Twitter. It also used to work without it, but some time after being bought by Elon Musk, it became mandatory.[citation needed]
- Bluesky:
- The web app (
bsky.app) shows this message if JS is disabled
which is questionableThis is a heavily interactive web application, and JavaScript is required. Simple HTML interfaces are possible, but that is not what this is.
- Its legal docs (ToS, PP, CG) need JS to be viewed by humans, however this seems more of an oversight than deliberate
- The web app (
- Discord. While its instant-messaging functionality legitimately requires JS, they refuse to let the user change their account settings (including security and privacy ones) unless JS is enabled.
Benefits
It's worth noting that, while JS is trivial to misuse and abuse, JS can enhance the user-experience (UX). The World Wide Web Consortium (W3C) provides comprehensive guidelines for such purposes.[24]
External links
- LibRedirect explaining why it exists, and how Google Chrome's MV3 limits it
- Google being anti-competitive towards Firefox: https://github.com/uBlockOrigin/uBlock-issues/discussions/3240
- Websites that nag users to enable JS, even when it provides negligible value
- Discord being extremely bloated to the point of crashing when opening Developer-tools: https://github.com/Rudxain/uBO-rules/blob/42220bd4f80052ee15136dff7269df19529c43ec/rx.ubo#L3-L19. This is not the fault of bloated JS, it's likely a bloated DOM-tree, but discord only bloats the DOM when JS is enabled.
- "Enough with the JavaScript already!"
- "Maybe we could tone down the JavaScript"
- "You really don't need all that JavaScript, I promise"
- "Progressive Enhancement Still Important"
- https://gomakethings.com/why-progressive-enhancement-still-matters/
- https://www.viget.com/articles/the-case-against-progressive-enhancements-flimsy-moral-foundation
- "Shipping a button in 2026…", by Kai Lentit. This illustrates the burnout and fatigue software developers can experience on a daily basis
- HTMX developer advocating for less JS
- "Web Obesity Crisis"
- "How web bloat impacts users with slow connections"
- JS bloat (2024)
- How JS makes web apps more unstable
- GNU/FSF explaining why JS takes freedom away
- GNU/FSF explaining why "web apps" shouldn't exist. WARNING: contains overzealous claims! (according to Rudxain). Related: Local-first
- "I Used The Web For A Day With JavaScript Turned Off"
- "How Much of the Web Actually Work Without Javascript"
- More sources (TO-DO)
See also
References
- ↑ https://exploringjs.com/es5/ch04.html
- ↑ "Usage Statistics of JavaScript as Client-side Programming Language on Websites". W3Techs. Retrieved 2024-02-27.
- ↑ Gross, Carson (2023-09-21). "The #ViewSource Affordance". </> htmx ~ Essays. Archived from the original on 2026-02-28. Retrieved 2026-03-24.
- ↑ https://clickclickclick.click/
- ↑ https://privacycheck.sec.lrz.de/
- ↑ https://abrahamjuliot.github.io/creepjs
- ↑ https://www.deviceinfo.me/
- ↑ "Learn how identifiable you are on the Internet". Am I Unique ?. Retrieved 2026-03-19.
- ↑ "Everyone has JavaScript, right?". Kryogenix Consulting. Archived from the original on 2026-03-16. Retrieved 2026-03-19.
- ↑ Gruber, John (2017-06-22). "Gizmodo Investigation Exposes Websites Collecting Form Data Before You Hit 'Submit'". Daring Fireball. Archived from the original on 2026-03-19. Retrieved 2026-03-20.
- ↑ Gruber, John (2017-06-27). "Using Today's Web Without JavaScript". Daring Fireball. Archived from the original on 2026-03-19. Retrieved 2026-03-20.
- ↑ https://github.com/denysdovhan/wtfjs
- ↑ https://github.com/brianleroux/wtfjs
- ↑ https://github.com/Rudxain/ideas/blob/aa9a80252a4b7c9c51f32eda5c716e96220ed96e/software/evar/with_bf.js
- ↑ Valkhof, Kilian (2023-12-02). "You don't need JavaScript for that". HTMHell. Archived from the original on 2026-03-08. Retrieved 2026-03-19.
- ↑ Archibald, Jake (2025-07-01). "Give footnotes the boot § Footnotes on the web". Blog - JakeArchibald.com. Archived from the original on 2025-12-20. Retrieved 2026-03-20.
- ↑ Hill, Kashmir (2017-06-20). "Before You Hit 'Submit,' This Company Has Already Logged Your Personal Data". Gizmodo. Archived from the original on 2026-02-20. Retrieved 2026-03-19.
- ↑ Norman, Johnathan (2021-08-04). "Super Duper Secure Mode". Microsoft Browser Vulnerability Research. Archived from the original on 2026-02-18. Retrieved 2026-03-19.
- ↑ Leatherman, Zach (2019-09-06). "Which has a better First Meaningful Paint time?". Twitter/X. Archived from the original on 2024-05-29. Retrieved 2024-05-29.
- ↑ https://techcrunch.com/2025/01/17/google-begins-requiring-javascript-for-google-search/
- ↑ https://daringfireball.net/linked/2025/01/18/google-search-javascript
- ↑ https://serpapi.com/blog/google-now-requires-javascript/
- ↑ https://blog.jim-nielsen.com/2025/javascript-required/
- ↑ https://www.w3.org/wiki/The_principles_of_unobtrusive_JavaScript