Back

Handling "minors dni" accounts - The problem, the solution, and the unfortunate reality

A major problem that has been ignored by most of the fediverse.

February 28, 2024

NOTE: This post is currently a draft. It's unfinished.


WARNING: This draft is outdated. VERY outdated. A new revision will come… eventually… but in the meantime please don’t take this current revision as what I think now - this draft revision is about what I thought back in February. Things have gotten a lot more complicated since then.

Let’s start simple.

The fediverse is a global social network powered by ActivityPub. But it’s more than that.

It’s not just one website - far from it. The fediverse is split across thousands of ActivityPub servers ran by thousands of different server admins, communicating with each other seamlessly.

The fediverse is not controlled by a company. Not even just multiple companies.

Anyone with a domain name and a server running Linux (with a network connection, of course) can make their own ActivityPub server. Each server gets to control their own rules, and can block other servers as needed.

But wait, there’s a problem. What about sensitive content?

Thankfully, the fediverse already has a solution to this problem, which works really well. Content warnings!

With content warnings, you can provide a text description/warning of the post contents:

A screenshot of the Mastodon compose box, showing a content warning and post contents

And then, when people see your post, they won’t instantly see your content! (unless they decided to turn on the option that auto-expands CWs for some reason)

A screenshot of a Mastodon post, showing a content warning and the "Show more" button

So then you will need to click the “Show more” button, and finally…

A screenshot of a Mastodon post, showing a content warning and post contents

It also works on posts with images, requiring the person viewing it to do an opt-in click for both the text (using the “Show more” button) and images (by clicking on the images).

A screenshot of a Mastodon post, showing a content warning, the "Show more" button, and an image marked as sensitive

(Don’t worry - if the gradient obfuscation still concerns you, as it does for me, you can go to your Mastodon user settings and turn off “Show colorful gradients for hidden media” to make it just appear as blank space until you click on the image. ActivityPub implementations other than Mastodon typically also have settings for how to handle images marked as sensitive.)

And content warnings are taken very seriously too - nearly every server requires posts to be properly put behind the correct CW, and not doing so will (if it’s severe enough) result in you getting banned from the server you are on and/or getting blocked by other servers.

Now let me just read my timeline…

A screenshot of a Mastodon home feed

wait that post from bob is really great I just have to boost it-

reads their profile WAIT WHA-

A screenshot of a Mastodon profile with text in their about me section, which contains the text "Minors DNI!"

blocks them and unboosts, followed by checking other profiles OH NO THEY’RE EVERYWHERE! AAAH!!! BLOCK THEM ALLLL!!!

Okay, yes I over-exaggerated with that fictional example but by now you should understand where the frustration comes from.

When MDNI accounts post normal content and it federates into your timeline, those accounts pollute the timeline.

Here’s the thing though. That’s not just a hypothetical problem.

That’s where the fediverse is. That’s where the fediverse has been. And it’s annoying, even if content warnings prevent it from getting really bad.

What I personally do

For now, if I see an account which:

  • Directly (AutoDNI term: “MDNI”) or indirectly (AutoDNI term: “Implicit MDNI”) states something like “minors dni” in their profile
  • States that some of their posts/boosts are NSFW (AutoDNI term: “Soft MDNI”)

I will instantly block and mute them. But I also open up a spreadsheet, and write down the following information:

  • Account handle
  • Relevant bio text
  • What type of MDNI account it is
  • Some additional notes, if any

The ideal solution

The ideal solution would be for them to split themselves into two accounts - one for SFW content, and another for NSFW content.

And this is the win-win solution! But very few people attempt to do it, and even fewer people do it right, since the wrong type can end up on the wrong account accidentally.

Some people try to do account-splitting though! And I appreciate it!

AutoDNI - The carpet blocking approach

This is where AutoDNI comes into this.

Imagine a moderation tool which can automatically detect those MDNI accounts before users can even see them. That’s what AutoDNI is.

Now obviously that won’t have 100% accuracy. But there are a few patterns which apply to most of the MDNI accounts. (This is referred to in many places as the 80-20 rule)

However, the idea is that it can be used in a way which automatically blocks MDNI accounts. That is up to the developer using the AutoDNI library though, of course. You don’t need to be strict about it for AutoDNI to be useful.

The backlash

I knew someone would get mad at me because of how strictly I handle this problem, but I did not realize just how many people that would be.

There are many cases of backlash with varying amounts of severity, ranging from someone getting mildly annoyed to me getting blocked by an entire instance (yes, seriously), but I’d rather not go into too much detail.

So instead I’ll talk about the time when I tried to actually talk to someone about it instead of instantly blocking, only for it to implode.

It started when I saw a joke post by someone saying that people should follow them.

I then read their profile, and they stated that they do post/boost NSFW-content sometimes, although they aren’t a strictly MDNI profile. This is what is referred to in AutoDNI terms as Soft MDNI.

So I jokingly replied to them, with a screenshot of their profile edited to show the relevant bio text circled.

The exact text from their bio was:

sometimes nsfw!!! behind cws usually

Now of course the “usually” raises concerns too (especially for instance admins!) since it implies that they post/boost NSFW content without content warnings.

I obviously didn’t bother reading their profile though, and I might not even know the answer if I did since I personally set ALL images to hidden by default so I can look at the post before revealing the images (yes, I’m that careful on the fediverse)

But I still decided to take the approach of trying to talk about it and come to a resolution.

I don’t remember what I said specifically, but if I recall I jokingly said something like “follow… an implicit mdni account?…” (keep in mind that this was before the term Soft MDNI was created - previously I put those accounts into the more vague Implicit MDNI category)

They were initially confused (they somehow thought that MDNI was “one of those four-letter personality codes”), but then I explained what I meant.

Looking back at this, I asked the wrong question. I should’ve asked them to consider account-splitting and also make sure to always keep sensitive content behind content warnings.

But then they replied with something that I’m not even sure how to describe:

i dont care if minors interact with me but i think i dont want you in particular to interact with me, what in the heck is this!!!

Ouch.

They attached a screenshot of a pinned post I made, which had the following text:

WARNING: If you are an MDNI account and you dare interact with me (or even merely appear within my sight), you WILL be blocked and your account handle as well as relevant MDNI bio text WILL be added to a dataset that WILL be used for text classification models (although at least for now it’s not powered by machine learning)

By the time this happened that pinned post was almost a month old, and a lot has happened since then. It was also a half-joke which over-exaggerated heavily. And I recognized this too! Even though the outcome in this scenario wouldn’t change, I decided to delete that pinned post.

But I also replied to them explaining AutoDNI, and how I have a dataset of samples. Later on I even gave them a link to the go-autodni repository… It didn’t help.

ok but you see how a policy of recording that data for an algorithm without any consent or way to opt out is kiiiinda gross? cause like, the only way to stop your scraping all our data is to ask everyone to pre emptively block you

(That might be bad, but MDNI profiles polluting my timeline is way worse. Checkmate. /s)

Now of course I could tell that they didn’t quite understand how it’s just not that bad.

They never really understood what I meant no matter how hard I tried though. I tried to explain that it’s really only personal reference for fine-tuning filters in the AutoDNI code and that I’m almost definitely not going to be training a machine learning model on it, but they still weren’t happy with it.

And eventually I hit the end of the drama, as they made one final reply:

yeaaaaah idk im still not comfy with that sorry

And then they blocked me.

I wasn’t originally going to block them and/or include them in the dataset. But once they blocked me I knew I had to - especially because of how noteworthy it is.

I also made sure to archive the conversation with archive.today.

But then I noticed something else.

There was another reply I suddenly saw, early on in fact. Then I realized it was made by an account which I already blocked, which explains why I didn’t see it earlier.

The text of it was:

there is a huge difference between “never even speak to me if you’re not an adult” and “i post about sex on rare occasions, with warnings given, so just keep that in mind”

But why am I including that here? Because it’s a great example of missing the point entirely.

Implicit or not, soft or not, MDNI accounts are harming the fediverse by posting SFW content which people then boost without realizing that it’s an MDNI account.

When I have to constantly check profiles before boosting posts, that’s when you know something’s not right.

So what should I do?

MDNI (even if only Implicit/Soft/etc.) accounts

Consider account-splitting. It will help everyone out a lot.

Developers of ActivityPub implementations

Think about this problem and try to do what you can to mitigate timeline pollution.

I would personally recommend integrating AutoDNI, of course. We’d all be better off working together on this instead of making many different technical solutions.

Instance admins

Do what you can to mitigate timeline pollution where possible. I understand that the tools aren’t really there yet though, which is why I created AutoDNI.