Comment by akersten
10 days ago
They do this by adding a ton of useless markup and splitting words like "ad" into single-letter spans with random class names and 8-layer deep nests of `<div>` so it's very hard to write selectors against. One has to wonder how that div soup affects accessibility as I find it very unlikely that this content is presented nicely to assistive tools. I hope they get all the ADA suits they deserve for this.
I recently found this out the hard way. Instagram’s web app has a super annoying popup. To click the comments button for a post, your cursor has to pass over the username, which just happens to launch a profile preview with the “follow” button exactly where the comments button was, causing you to unintentionally follow the account.
I tried to block this popup with uBlock Origin to no avail. No matter what element I selected, it was still there. Finally fixed the problem by deleting my Instagram account.
A counter example: I got caught out by the deprecation/sunsetting of anonymous "old.reddit.com" yesterday but it turns out uBlock can filter out the ads, boilerplate, sidebars, join/login buttons etc on the main site. It's actually faster and more usable than the old site now.
Small win.
>I got caught out by the deprecation/sunsetting of anonymous "old.reddit.com" yesterday
It appears to still be up for me. ??
7 replies →
Reddit tested login walls on the new site since months.[1]
[1] https://github.com/uBlockOrigin/uAssets/issues/32706
nah, now it loads maybe 3 posts at a time and the latency is really slow to pull up those 3
How do you filter it out? Do you select each element individually?
1 reply →
Best move you could have possibly done.
> Finally fixed the problem by deleting my Instagram account.
The real fix!
> Finally fixed the problem by deleting my Instagram account.
The best solution. Highly recommended.
Never delete your account. That account has a bunch of associated signals that scream "real user". Therefore you should sell it on an account marketplace to a spammer, if you really hate the platform.
[dead]
“A strange game. The only winning move is not to play.”
Last I tried writing custom rules for Facebook was years ago, but they did have proper aria attributes, and uBlock origin does have selectors for text content. These are from 2020:
you can use upward. For example
That then goes up elements in the dom.
What's with the xpath selector? Is that just matching deeply nested elements?
Going from memory, but that's how many elements are in the tree between what I wanted to be hidden and where the matching text/elements actually lived.
1 reply →
Read up on XPath axes:)
But can't they just use an xpath expression to test the computed text content of a node, like `/path/to/ad/div[contains(., 'sponsored')]`? In that expression, there could be any number of nested elements inside the terminal `<div>` and it wouldn't matter. (And you'd probably have to use a regex test to account for tricky white space.)
The word sponsored in inside an SVG element with a linked `use` tag, so it's not that simple.
> so it's very hard to write selectors against
This sounds perfectly matched for an on-device LLM?
The power cost of doing this widely would be staggering, surely?
Worth a white paper to see which costs less energy, using Apple's built in LLM, or downloading and displaying all the FB ads using radio, playback, and screen animation energy.
Local models are not the same as the giant ones in data centers. They're in about the about the same ballpark as running a AAA game on max settings.
Sure, it's more computationally-expensive than running an HTML selection, but it's also not "staggering" by any reasonable stretch.
7 replies →
Apple Intelligence? I mean, you're only processing for the time your "AI|browser|agent" is acting as a firewall between you and Meta. Cache locally after processing and filtering. Use alongside the accessibility API. LLMs can, in many cases, reliably solve CAPTCHAs. I find it difficult to imagine they cannot defeat Meta ad blocking countermeasures.
EFF: Adversarial Interoperability - https://www.eff.org/deeplinks/2019/10/adversarial-interopera...
Not really, no. LLMs get more computationally efficient and hardware gets more power efficient with each passing day. We're already at the point where reasonably competent models can be run a laptop GPU off of battery power. NPUs are even more power efficient, (though a bit slower).
Depending on the model, I’m guessing it’s dwarfed by just about any electron app
It keeps changing all of the time, so it might be easier to have Facebook load up in a headless browser, that takes a screenshot and sends it to an LLM and uses that to convert into a standard JSON document that can be rendered nicely. Or something like that.
Maybe reverse tactics and block/hide anything that isn't something you want to see.
In a few years, I don't think we'll be navigating to Facebook.com. We'll be asking our LLM: "what are my friends up to?" And it will provide a nice UI to browse interesting updates, collated from any open source, including Facebook. No ads, no influencers, no dark patterns, just what the user asks. And it won't require APIs. It will just browse the site itself as an agent and pick out the parts the user cares about.
I really think the new internet is going to be a radically different experience soon.
> No ads, no influencers, no dark patterns, just what the user asks.
For a while now, I've seen blogposts from marketers desperate to do to AI what SEO did to search engines.
I hope they fail to enshitify the LLM experience the way they enshitified search, but I wouldn't count on it in the absence of AI messing with production so hard that nobody even wants to market stuff in the first place.
At least there is no chance of manipulation and subliminal advertising that way. /s
1 reply →
> very hard to write selectors against.
Or was hard to write selectors against before, you know, AI.
It seems ironic to give up now. You can probably rig up an agent to automatically look for new div labyrinths and write selectors for them.
You can bet Facebook are using AI to generate these labyrinths!!!
Could you not just go after the deeply nested spans? I assume they aren't messing up everything else like that.
Based on inspect element on their homepage, they probably are.
Who would file an ADA suit for a screen reader being unable to correctly read an ad?
The same ambulance-chasing lawyers who are already filing spurious ADA suits today.
Those who want to do it in spite.
> I hope they get all the ADA suits they deserve for this.
So what you're saying is: you want Facebook to pay out something like $200M which is such a small amount it won't even realize, $170M will go to lawyers, everybody else gets $1.30.
That seems like how it might pan out.
Or an unauthorised access / exceeds access to a computer system prosecution in at least one jurisdiction somewhere around the world.
If the owner of the system has a 'no ads' policy and a security mechanism to prevent ad servers from accessing their display without their authorisation, it is one thing if a company accidentally circumvents that by changing their page in a way that breaks detection (and unless there are records it was deliberate) they probably get the benefit of doubt from authorities.
But if they are blatantly going to quite great effort to circumvent the adblock security system to exceed their unauthorised access without the consent of and against the wishes of the owner of the client system, surely that's a clear-cut criminal case?
Of course, prosecutions of these types of things in many countries unfortunately tend to go after individuals who target big companies, but almost never the other way around.
We need to figure out how this is actually DMCA circumvention. That one seems to have teeth.