I just love this huge bluish background with the text "You need to enable JavaScript to run this app.". I guess in 2018 I need scripting even to display some text and images.
Why is it that people disable JavaScript and then act surprised that random sites break? Whether or not this site should need JavaScript, the presence of JavaScript support in modern browsers is almost universally assumed at this point.
If you want to browse with Netscape Navigator 1.0, go for it. But stop feigning surprise that random things don’t work.
Random things like displaying text you mean? I don't think this has changed that much since the Netscape days. It would be OK if the site needs scripting for some legitimate task to compute a nicer layout, play some animation, interact with social networks, process payments etc. Detect NoScript, dump the text of the article, show "You are viewing a reduced version, because of your script blocker", done.
You're not wrong but I think this exchange might have gone differently if the tone wasn't so incredulous from the start. Perhaps something like this:
"I know JavaScript is assumed to be universal these days but since this is really just text it would be great if it just displayed the raw text as a fallback for when JavaScript wasn't available."
I know it's kind of silly but how we present something can dramatically change the response. But in fairness sometimes a direct and plain explanation for why something is bullshit is the only way to get things noticed or done too.
As I am one of these people at least for me it is not surprise as much as disappointment as it is often so unnecessary as it is really not that difficult to build a page that can be displayed without Javascript in browser EVEN if it is built with Javascript (reference: I am a web developer).
And the reason why I have JS turned off by default is not some kind of misplaced nostalgia. It is to prevent random shit running in my browser.
It's not necessarily surprise, but that doesn't stop it being user hostile and doesn't negate the need to call it out.
For a web app, Javascript is fine. To present what is primarily a textual article, it's ludicrous. Just because it's becoming increasingly common doesn't mean stop it being so.
This. Pointing out lack of no-javascript support is tantamount to starting every dinner conversation with "I'm a vegetarian". It's OK to turn javascript off but we've long since left the world where javascript wasn't the norm.
It is not okay to design your site such that it requires permission to use browser features that are not necessary for the presentation.
Asking for script permission to display text is as bad as asking for microphone permission for an app that does not use audio. Presentation of text has always been possible in HTML without the use of script. You don't need script permission. Don't ask for it. Don't require it.
Just because a lot of people do it doesn't mean we should ever stop complaining about it (bandwagon fallacy). It is wrong. The people who do it are doing it wrong. They may not be aware of it, so someone needs to mention it. Every time.
You're building a strawman's narrative here. This website uses javascript for _far_ more than displaying text. Additionally, "requires permission to use browser features that are not necessary for the presentation" is deflective and misleading. Your monitor isn't necessary for presentation either - you could print out the website.
You are absolutely correct. The monitor is not necessary. Only the text characters are necessary. They might never appear on any screen. They might be converted to audio by a screen reader, or rendered on a Braille display. They might be fed into a webcrawler robot to be indexed. Any additional features also implemented in script are not relevant to the delivery of the text.
Whatever else the javascript may do, it is not necessary to transmit text. The text is all I care about. Other people might want additional bells and whistles, but I just want the human-readable text. The web is a consumer's medium. You cannot mandate that anyone experience the content you send them in any particular way. Whatever it is that you send may be blocked, filtered, or modified before ever reaching human eyes. It is therefore polite to provide many options for the manner in which users may experience your content, such as by providing graceful degradation all the way down to someone opening up a raw telnet connection to port 80 and typing in their HTTP request by hand. (Have you ever done that? I have.)
Remote transmission of alphabet characters has been a part of human networking since 1793. If I ask a question using an optical semaphore tower, I don't want your response to be sending a minstrel to me in person, with a bunch of hand puppets and marionettes to act out the answer.
That's like saying paint isn't necessary for an artist to convey their art. You only want pencil and that's all that should be used.
You're welcome to want text on a website but the website creator is welcome to do as they please. I'd point back to my origin example: a vegetarian is fine excluding beef from their diet but no one should have to listen to them blather about it.
More like I want to see a painting at a traveling exhibit, and I'm not allowed inside the gallery where it is being held unless I agree to sit through a 2 hour "behind the art" video first.
The website creator is welcome to do as they please, but there is such as a thing as abusing one's audience.
Your analogy is not apt. The vegetarian is being served beef even though they ordered a vegetarian entree from the waiter. They get the beef whether they want it or not. They can't get the kitchen to give them the meal they want without also giving them beef. The cooks are being intentionally provocative to their vegetarian guests. They are certainly able to do so in their own restaurant, but it is a dick move, and nobody should tolerate it, whether they are vegetarian or not.
"The vegetarian is being served beef even though they ordered a vegetarian entree from the waiter."
No - you accessed the website with a personal expectation that the author adhered to your standards. The web is free, developers and designers can do what they want. If it's not what you want then go somewhere else.
Similarly, the vegetarian ordered "the special" and was befuddled when they received a dish with meat. There was no expectation of a vegetarian dish except by the vegetarian.
V: Can I get a hamburger, but without the beef patty?
C: No.
V: What? Why not?
C: My artistic vision demands that the meat be present.
V: (irritated) Fine. I'll have the hamburger.
C: Here you go.
V: <throws meat patty into the trash>
C: That's not allowed! Wharrgarbl!
This isn't a matter of "can I substitute lobster tails for the fries?". You can't force someone to consume something they don't want just because that's the way you want it. Clearly, it is well within the capabilities of the cook to make a regular hamburger and not put the meat into it in the first place. Bundling up the entire sandwich as one unit may be more convenient for the cook, but it might be irritating for the customers, and the cook's business is driven by customers.
In the context of this specific website, the cook is grinding the meat up with the vegetables, in such a way that it is needlessly difficult to throw away the meat. It may not be intentionally hostile to vegetarians, but it does show a careless disregard to anyone that doesn't like their sandwich the only way the cook makes it.
You're again creating a strawman's argument. You're pretending the cook is forcing you to eat the food. He's not. Go somewhere else - it's your right.
This whole thread is about people who take that right, to not do something, and prattle on about it like the rest of the world cares. The majority of internet viewers have no idea what javascript is. The majority of those who do use it don't care about what it's doing behind the scenes. The few who do care enough to blacklist/whitelist should be happy they can but shouldn't try to make policy to enforce their wishes and dreams when they go against the norm.
That's what you're doing.
Edit: "It may not be intentionally hostile to vegetarians, but it does show a careless disregard to anyone that doesn't like their sandwich the only way the cook makes it."
Yes, this is very true. But it's also tangential to the conversation. The website _could_ be better about offering no javascript support but they certainly don't have to. You don't have to use their website just like you don't have to talk about how it doesn't work without javascript.
No, they don't have to. But I also don't have to refrain from saying they are lazy jerks that are breaking the Internet.
They are lazy jerks that are breaking the Internet.
And, in case you haven't noticed, I did go somewhere else. Here. This is somewhere else. A site that provides a forum for commentary on articles from other sites that appeal to one's intellectual curiosity. And here, on this site, I am joining my voice with those that routinely complain when a site uses script to display text, and does not display text if the script does not run.
We have building codes for physical structures that mandate certain minimum requirements for creating buildings fit for human occupation. They ensure that people don't cut corners and hurt people through negligence. They ensure that carelessness in building does not result in arbitrarily denying someone in a wheelchair access to areas that would otherwise be usable. The vast majority of people do not need to know how to build a stairway according to code, but they can all benefit from properly-built stairways.
In the same way, in lieu of actual enforceable codes, the majority of Internet consumers can still benefit from some knowledgeable people that scream their heads off every time someone is caught cutting corners. Malicious scripts exist, and the only safe way to access the web is by allowing scripts only from trustworthy, pre-approved sites. The ignorant majority is gradually coming around to block-by-default, after too many times being burned by trusting site-operators, or their ad networks.
If it annoys you that people complain, you are free to use the built-in "downvote" function of this site, the built-in "hide" function, or to write your own client-side script that removes posts containing objectionable keywords. You are not required to engage with the people who annoy you by complaining about badly-built sites in the same manner that vocal vegetarians annoy me.
"No, they don't have to. But I also don't have to refrain from saying they are lazy jerks that are breaking the Internet.
They are lazy jerks that are breaking the Internet."
Nope, you don't. But don't pass it off as different from vegetarians vocally espousing and touting their vegetarianism. It's the same thing. Which, coincidentally, was the point of my OP.
"Pointing out lack of no-javascript support is tantamount to starting every dinner conversation with 'I'm a vegetarian'."
Most of this conversation was you arguing your points about javascript whereas I was discussing why it's the same as vegetarians. To which you've agreed " in the same manner that vocal vegetarians"
Careful reading shows that vocal vegetarians apparently annoy both of us, whereas the noscript-complainers only annoy you.
Thus, you have not convinced me that they are the same. I have only admitted that you think they are the same. That's an easy admission, since that's what you've been saying all along.
If your site displays nothing without JS, I have to be desperate to see your content to, well, turn on JS to see your content. You as a site owner are asking a whole lot more from me by allowing just anyone on the net to run code on my computer than I am of you.
I allow 1st party scripts by default, so I didn't see that error in their page. I had to allow scripts from a 3rd party CDN to read the text.
I don't think I'm a kook, but anytime I have to go into uMatrix more than twice I reconsider reading the article at all. That doesn't apply to this particular article, but it happens more often than I am comfortable with.
I'm more conservative since I don't really see how the lack of scripting prevents them from dumping the content and it works OK normally, but here it's just an empty page with the said "error" message and a single <script> element downloading a JS file which is quite unacceptable. This is ridiculous, really.
> There's nothing wrong with JavaScript, since it can run inside a sandbox.
Spectre and Meltdown have shown that there is no such thing as a true sandbox. You're always safer not running a sandbox as this way you're safe from the next sandbox breaking vulnerability that already exists but has yet to be discovered.
Until you can give me a hardware and software stack that has full correctness proofs, including absence of side-channels, I will have to assume that my best course of action is not running untrusted code if it's not absolutely necessary.
Meltdown is Intel only; Spectre is the one that affects most platforms, and is exploitable from Javascript, although it's harder to exploit, and browser makers have deployed fixes.
Spectre is based on branch-prediction and cache memory, see [1]. This means that one obvious way to avoid it is to disable branch-prediction, with a performance loss as a result. Another way would be to separate cache memory between different processes. There are probably more clever ways, but that's just to show that the vulnerability can be avoided. Also, early processors such as 6502 and 8086 didn't have the bug, obviously, but should be capable of running web-browsers if performance is not an issue.
Spectre is not Intel specific, and most of the processors immune to spectre attacks also don't run web browsers, making it a irrelevant-to-the-discussion point.
"There's nothing wrong with JavaScript, since it can run inside a sandbox."
This is not true, as Meltdown and Spectre have recently taught us.
A site which can degrade gracefully in the absence of js features is a higher bar than a static, js free site. At the end of the day, disabling js entirely is a custom privilege level of zero.
An idea: is there any way to pause JavaScript on a page? I would be more okay with letting JavaScript run long enough to load the page, and then stop it executing after a couple seconds