← Back to context

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.

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:

  facebook.com##span:has-text(Suggested for You):xpath(../../../../../../../../../../../../../../../../../..)
  facebook.com##div[aria-label="Sponsored"] span[aria-label="Sponsored"]:xpath(../../../../../../../../../../../../../../../../../../../../..)
  facebook.com##div[aria-label="Sponsored"]:xpath(../../../../../../../../../../../../../../../../../../../..)

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).

  • 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.

> 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!!!

> 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.