12 ms·
I wouldn't mind going back to a JavaScript-less web experience. I know not all tracking is based on JS, but the browser provides so many heuristics this way: sc
by JMTQp8lwXL 7y ago
I wouldn't mind going back to a JavaScript-less web experience. I know not all tracking is based on JS, but the browser provides so many heuristics this way: screen size, cursor location, installed plugins. Give me reasonably formatted HTML, and something a little bit more powerful than curl.
- reificator 7y agoIf "reasonably formatted" means CSS comes along for the ride, prepare for tracking pixels behind onhover rules, and on and on we go...
- JMTQp8lwXL 7y agoBy reasonably formatted, I would actually exclude onhover. To clarify, I meant a document that would be readable without any interaction. You've got me wondering if privacy-focused browsers like Brave have the ability to disable potential tracking mechanisms like onhover.
- ficklepickle 7y agoDisabling CSS :hover and :active states might break sites. Tracking pixels could be as simple as a background image set for either of those CSS states.
- JMTQp8lwXL 7y agoAgreed, but it would likely break things that don't matter much to me. A well defined semantic document should say what it has to say, without the use or necessity of :hover or :active states.
- matheusmoreira 7y agoBrowsers could disable downloading of external resources for CSS :hover and :active. When the user interacts with the interface, the CSS will still get applied but the tracking URL won't be accessed.
- moring 7y agoAlternatively, such URLs can always be pre-fetched on page load.
- GoblinSlayer 7y agoTurned off javascript is more about usability than tracking prevention.
- a1369209993 7y agoWhy would that matter? If the browser fetches images hidden behind onhover, then presumably it would also fetch plain <img> tags, so why not use those. If it doesn't fetch onhover images (which admittedly might break the "reasonably formatted" bit), then tracking pixels are useless because, well, it doesn't fetch them.
- ojame 7y agoBecause after you hover on something, it can be an indication of intent. Just loading an image when the webpage loads doesn't give you any insight into what the user 'interacted' with.
- a1369209993 7y ago> Because after you hover on something, it can be an indication of intent. Yes, that's (one of the many reasons) why javascript needs to die. > Just loading an image when the webpage loads doesn't give you any insight into what the user 'interacted' with. That's what I said: regardless of whether the browser, when loading a page, does or does not include hidden images in what it fetches, that cannot possibly tell you anything about what the user interacts[0] with after the page has loaded and browser is no longer communicating with your server. 0: edit: obviously excluding clicking links or other navigation-causing interactions, but that's a separate problem.
- rovr138 7y ago> Yes, that's (one of the many reasons) why javascript needs to die. On hover can be easily done with css. selector:hover{background-image: url();} That can trigger a tracking pixel.
- moring 7y agoA browser that disables Javascript could easily circumvent this too, either pre-loading URLs in :hover rules or ignoring those rules.
- 7y ago
- overcast 7y agoNothing stopping you from doing this on your next / current project. I've been 100% committed on getting the web back to as lightweight as possible for the last couple years worth of development.
- simple_phrases 7y agoAlmost all front-end development jobs are looking for React or Vue skills.
- swiley 7y agoAn argument for non-interactive semantic html is an argument against the front-end/back-end dichotomy. That is to say your application should directly generate the page you want the user to see and you shouldn’t need to spend all your time designing custom JavaScript for it.
- illumanaughty 7y agoThere's nothing wrong with non-interactive html web pages just like there's nothing wrong with JS rich web applications. The web is big enough for everyone.
- swiley 7y agoThere absolutely is a place for the interactive web. But this is rare, and it’s done well even less often.
- simple_phrases 7y agoI agree, but no one is hiring down those lines. People are being paid to write JavaScript where it isn't needed per se, but where it will still get the job done.
- JMTQp8lwXL 7y agoYou can server-side render React (not sure about Vue, but wouldn't be surprised if you could).
- jimbob45 7y agouMatrix basically does that for you now.
- mgbmtl 7y agoBlocking trackers helps a lot for performance, and I second uMatrix. I even showed my 13 year old kid how to use it. However, uMatrix on mobile is not particularly easy to use (I use it, but would not recommend it).
- OJFord 7y agoI didn't even realise it worked on mobile, I use uBlock on Android but uMatrix otherwise (actually I think both, maybe because of synchronisation). The zapper's fairly easy to use to get rid of annoyances on mobile, until you make a mistake. Editing the rules file isn't the nicest UX even on desktop FF. (It'd be good, for example, to be able to preview what's being blocked, and selectively re-allow them.) For an example of how it can go wrong: you block 'overlay', then it reveals and you block 'grey-blur-modal-focus', allowing you to click whatever you wanted, except it turns out that it uses 'overlay' and you shouldn't have blocked that one.
- throwsprtsdy 7y agoI wish there was simply a way where ad-supported sites I visit could collect their revenue without having me submit to advertiser surveillance. I don't mind seeing ads. I hate being tracked.
- phkahler 7y agoI think the issue is verification that an ad has actually been shown to a human. Even print and TV advertisers can have companies do audits to verify ads get run as expected. Thing is, nobody ever said ad supported sites have to be viable.
- throwsprtsdy 7y ago> Thing is, nobody ever said ad supported sites have to be viable. That's true, but if a site is not ad-supported, and "paywall" is almost an epithet (and circumvented to boot), how is any site supposed to remain viable?
- ohithereyou 7y agoThink of the poor buggy whip makers! Not every desirable activity in life is profitable. If your business plan is "make website -> get money" then perhaps you're in the wrong business.
- throwsprtsdy 7y agoI was thinking more about investigative reporters and news outlets than buggy-whip makers.
- ohithereyou 7y agoIf you're going to treat investigative reporting and news gathering as a profit making venture then you can only charge what the market is willing to pay, and for the vast majority of people, that's nothing.
- mumblemumble 7y agoPerhaps create a new and separate Web, that's designed from the ground up to take into account the lessons of the past 25 years, and provide a more mellow experience? It would be an eternal niche, but it might be a nice, cozy little niche.
- mosburger 7y agoHear me out - we could all start using Gopher?
- jtolmar 7y agoMost site interactivity could be handled with forms (though some form inputs need improvement) or some sort of conditional view state (for menus and HN's collapse comment feature). For anything more complex I think the "click to enable" model that flash and applets eventually followed is compatible with anything that actually deserves custom code.
- ComputerGuru 7y agoI’ve given this a lot of thought over the years and I think html needs slightly more functionality to completely obviate JS. The hardest impact of no JS is dynamic input forms, and I remember when ajax first became a thing and forms that didn’t lose their content on an input error became commonplace. There was never a good reason for them to lose their input, of course, as that’s just lazy coding. But when writing JS-free front ends for my web apps, the ugliest UX is trying to fill out a form that requires either filling out n identical sections (eg a fieldset for each student you want to add) or selecting an item from a drop-down w/ the option of adding to it if the desired option doesn’t exist. Error validation is now clean and easy with modern MVC frameworks that take as input the same structure of data they used to generate the page in the first place, so it is easy to rebuild the page exactly as it was but also include an error message. There is no jarring user experience when the page is submitted and reloaded with the error shown inline. But having to navigate to a separate page to add an entity then refresh the form to fill out the data selecting the newly added entity sucks. HTML needs some sort of functionality that would enable a) dynamic non-Turing-complete remote resource backing of form input values, b) allowing a form input to return post submission to a dom element rather than a document (E.g. imagine an input to “add location” to a drop down; submitting that field would return the new content of the select option elements to replace the existing). A JS powered example is intercooler JS. More generally, a content response type that says “patch the existing DOM with the following” would preserve pretty much all the good parts of Web 2.0 without the crap that came with it; keeping in mind that submissions could only happen when a user explicitly requested them.
- _jal 7y agoCompletely agree. I default to JS-disabled, and will sometimes enable it. More often, though I just move on. Of course if you want to use FB or other surveillance sites, this won't work well for you. What methods are there to exert more control over the JS engine in Firefox? Screw performance, I'd have a lot of fun writing my own hooks/wrappers to overload certain method calls.
- forgotmypw16 7y agoFor Facebook, turn off JS and then go to m.facebook.com. It is quite usable, and I probably wouldn't use FB without it.
- tekstar 7y agoAnd if you want messages access just use mbasic.facebook.com
- JohnFen 7y ago> I wouldn't mind going back to a JavaScript-less web experience. My default policy is to not allow JS to run, so my experience is already mostly Javascriptless. And, I have to say, my user experience on most web sites is actually better when I don't allow Javascript to execute.
- ghostpepper 7y agoI run a similar sort of policy but I would say the number of sites I visit that display nothing but a blank page without javascript is more than half. Sites that function without it are the exception, not the rule.
- JohnFen 7y agoWell, yes, how well this works depends on what sites you tend to use. The vast majority of the sites I frequent either degrade gracefully in the absence of JS, or never used it in the first place. I think there are three or four that both require Javascript and that I want to use badly enough to allow JS. When I encounter a web site that doesn't work without JS, I just move on. But I understand that others may not want to do the same.
- pferde 7y agoI have an ephemeral container (systemd-nspawn with -x switch) with almost-default configuration of firefox (only uBlock Origin added) for such websites. After I'm done, I close the browser and everything gets deleted.
- llarsson 7y agoThat sounds very cool! Do you have that setup documented somewhere, or perhaps even pushed it to some public repo?
- pferde 7y agoI do not, sorry. I have to set up a blog some day, but I have been putting it off because most of the time I can't think of anything interesting to say. :) Anyway, I was mostly inspired by an article on how to set up Steam in a container - it has all the details, including how to pipe Pulseaudio inside (so in my case, Youtube videos in Firefox can have sound). Except mine is debian-based (so debootstrap instead of pacstrap to populate the container). http://ludiclinux.com/Nspawn-Steam-Container/ http://ludiclinux.com/Nspawn-Steam-Container/
- 3xblah 7y ago"I wouldn't mind going back to a JavaScript-less experience." By not using a graphical, JavaScript-enabled browser, I have been experiencing the web this way for the last 15 years. It works just fine for the purposes I use if for, mainly informational retrieval. For me, there is no such thing as "page load time". This shifts all awareness to "server response time". This is more or less the same from one website to another and therefore differences are not noticeable, unless a server is misconfigured or has some problem.
- donnellycc 7y agoHow do you deal with pages that use JavaScript to fetch page content after the initial markup is loaded?
- 3xblah 7y ago"How do you deal with pages that use Javascript to fetch page content after the initial markup is loaded?" Provide an example page and I will demonstrate how I would solve the problem. Not every user visits the same websites and web pages, so without giving specific examples, discussions about how to deal with these pages never go anywhere on HN. To be honest, out of all the websites I have visited over entire lifetime using the www, the number where I have had to make any extra effort because of Javascript in order to retrieve some text/html, image or video is very small proportion. Not one that is large enough to justify using a JavaScript-enabled browser as default. For me, these are exceptional cases, not the norm. The extra effort is usually a one-off script, not something I need to save. Occasionally it is something I save for future use. One example of a saved script would be for non-commercial YouTube channels. Goal was a 2-column CSV of all videos from a channel in the form of title, url. Goal was not "perfection", just quick solution. yy025 and yy032 are custom utilties for generating HTTP and decoding HTML, respectively. Using a short script called "ytc" the process would be something like the following. openssl s_client is used as an example of a TLS client. "XYZ" is the name of the channel. echo https://www.youtube.com/channel/XYZ/videos|ytc|sed wXYZ Connection=keep-alive yy025 < XYZ|openssl s_client -connect www.youtube.com:443 -servername whatever -ign_eof > 1.html ytc title < 1.html > XYZ.1 ytc url < 1.html > XYZ.2 paste -d, XYZ.[12] > XYZ.csv Here is the "ytc" script case $1 in "")exec 2>/dev/null; export Connection=close; yy025|openssl s_client -connect www.youtube.com:443 -servername whatever -ign_eof |sed 's/%25/%/g'|yy032 > 1.tmp; while true;do x=$(sed 's/%25/%/g;s/\\//g' 1.tmp|yy032|grep -o "[^\"]*browse_ajax[^\"\\]*" |sed 's/u0026amp;/\&/g;s/&direct_render=1//;s,^,https://www.youtube.com,') echo > 1.tmp; test ${#x} -gt 100||break; echo "$x"; echo "$x"|yy025|openssl s_client -connect www.youtube.com:443 -ign_eof > 1.tmp; done;rm 1.tmp ;;-h|-?|-help|--help)echo usage: echo https://www.youtube.com/user/XYZ/videos \|$0;echo "usage: $0 {title|url} < html-file" ;;1|title) sed 's/\\//g;s/u0026amp;//g;s/u0026quot;//g;s/u0026#39;//g'|grep -o "ltr\" title=\"[^\"]*"|sed 's/ltr..title=.//' ;;2|url) sed 's/\\//g;s/u0026amp;//g;s/u0026quot;//g'|grep -o "[^\"]*watch?v=[^\"]*" |sed 's,^,https://www.youtube.com,'|uniq esac
- ck2 7y agoAlternatively since nojs breaks a bunch of things, also try uMatrix, really locks things down and shows you what kind of nonsense is going down in a nice (blockable) grid.
- XCSme 7y agoThis just made me think of something. How do the GDPR popups work if you don't have JavaScript enabled? Are the sites still GDPR compliant if they track you using cookies because you disabled the JS which should have disabled the cookies?
- s188 7y agoThe JavaScript ones simply don't appear - which is nice. And yes, I believe they're in breach of GDPR if they use cookies and tracking pixels to track me without giving me the opportunity to deny consent. Please note I'm not a lawyer but I don't think there is a legal obligation for me to use their sites with JavaScript enabled.
- PavlovsCat 7y agoFor the CMS I make for myself, the general rule is, it's fine to require it for admin, and if I had users it would be fine to require it for them to edit content, but it must always be optional to just browse content as visitor. I don't see that becoming "nonviable" as a principle anytime soon, at least for private non-commercial stuff where I really don't care if other sites are fancier, as long as mine works as it should.
- mcv 7y ago> "I know not all tracking is based on JS, but the browser provides so many heuristics this way: screen size, cursor location, installed plugins." Installed plugins? Why would javascript need to know my installed plugins? I'd like my browser to more actively restrict what javascript has access to. I get a popup when it wants access to my location (which I generally deny). Why not do the same with these other features? "This site wants to view your installed plugins. Allow/deny?" "This site wants to set a non-login cookie" Deny, deny, deny.
- akiselev 7y agoI don't think they can see the plugins themselves but any code that the plugins run in the document context will throw exceptions that can be caught by any fingerprinting code. I see a variety of uncaught exceptions with obvious plugin names on my Sentry feeds.
- meerita 7y agoI've moved my blog long time ago to static pages. I've removed Google Analytics long time ago too. Now I have a slickest web experience and the reports of searchs and server usage is increasing.