@The Witchy Bitches Hashtags should always be at the very bottom of the post in one line that contains nothing else. That way, at least some Mastodon clients can hide the whole line of hashtags and show the hashtags elsewhere. Also, Mastodon's own Web frontend generates actual tags from a hashtag-only bottom line.

Both is neither possible with hashtags elsewhere in the post nor when there's something else than hashtags in the last line.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Mastodon #Hashtag #Hashtags #HashtagMeta #CWHashtagMeta #FediTips
Netzgemeinde/Hubzilla

Your own posts aren't any better anyway; CW: long (over 1,300 characters), Fediverse meta, Fediverse-beyond-Mastodon meta, alt-text meta, image description meta, character limit meta, hashtag meta View article View summary

@David Mitchell :CApride: On the other hand, when I look at your personal timeline, it's obvious that you've never really arrived on Mastodon. You break all kinds of rules. You break alt-text and image-describing rules, and you break Mastodon's cultural rules.

You write alt-texts in multiple paragraphs. You almost never use CWs, not for posts over 500 characters, not for US or Canadian politics, not for wars, never. You rarely use hashtags, and when you do, you sometimes put them in-line instead of all into the bottom line. In-line hashtags are inconvenient for screen reader users.

You boost image posts without checking whether the images have alt-texts, much less whether the alt-texts are accurate, sufficiently detailed and in line with the existing alt-text and image description rules. You boost posts about potentially disturbing topics that have no CWs.

So don't come lecturing me if your own doings are likely to get you silently muted and blocked by other Mastodon users left and right.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #AltText #AltTextMeta #CWAltTextMeta #CW #CWs #CWMeta #ContentWarning #ContentWarnings #ContentWarningMeta #CharacterLimit #CharacterLimits #CharacterLimitMeta #CWCharacterLimitMeta #Hashtag #Hashtags #HashtagMeta #CWHashtagMeta #MastodonCulture
Netzgemeinde/Hubzilla

I've described all my images since I've learned about alt-texts, and I put more effort and knowledge into them than anyone on Mastodon; CW: long (almost 8,700 characters), Fediverse meta, Fediverse-beyond-Mastodon meta, alt-text meta, image description meta, character limit meta Artikel ansehen Zusammenfassung ansehen

@David Mitchell :CApride: Now listen here.

Ever since I've learned about alt-texts and image descriptions, I've described all my images. And unlike most Mastodon users, I've improved my image-describing further and further.

Whenever I learned something new about image descriptions, be it a rule, a guideline, a good practice or a Mastodon preference, I used this new knowledge in new image descriptions and declared all my previous image descriptions obsolete. And I've learned a lot over the years.

I've learned from Mastodon that if explanations are necessary to understand an image, they must be delivered immediately with the image post. Ever since, I've explained everything in my images that needs explaining. And since all my image posts are about extremely obscure niche topics, they need a whole lot of explanations.

I've learned from a physically disabled Mastodon user that not everyone can access alt-texts. She, for example, can't. Thus, explanations in the alt-text are lost to her. I've learned from her that explanations go into the post text. I've put all my explanations into the post text ever since.

I've learned from Mastodon that Mastodon tends to love long, detailed image descriptions. Considering how obscure the contents of my original images are and how nobody knows what anything in them looks like if they don't see it, I came to the conclusion that someone somewhere out there might need full, detailed descriptions. I've given my original images full, detailed descriptions ever since.

I've learned from various sources that alt-text must only describe what's important within the context of a post. But judging from my observations of Mastodon, its culture and its love for long alt-texts override this rule. If someone wants to know about all the small details in your images, the context doesn't matter. Thus, how detailed my image descriptions are depends on whether or not I have to expect someone being curious about the details.

I've learned by experimentation that Mastodon truncates long external alt-texts from outside at the 1,500-character mark. Also, Hubzilla (where I am) can only display so many characters of alt-text, and alt-text cannot be scrolled. Since the audience of my alt-texts is pretty much exclusively on Mastodon, I've put the full, long, detailed image descriptions into the post text.

I've learned from a blog post that alt-texts must never contain line breaks. Line breaks in alt-texts have a nasty side-effect for screen reader users: After each line break, screen readers assume that they're reading a new alt-text for a new image. And they start whatever they consider an individual image alt-text with something like, "Graphic." Thus, I write all my alt-texts as one single paragraph.

I've learned from another blog post, as well as personal experience with various Fediverse server applications, that alt-texts must never contain the double quotes commonly found on keyboards. Different frontends may misbehave in different ways, some fail very ungracefully. Thus, I no longer use these quotes in my alt-texts.

I've learned from Mastodon that even if there is an image description in the post text, there must always be an accurate and sufficiently detailed image description in the alt-text regardless. Otherwise you risk being sanctioned. I have described all my original images twice ever since: with a long and fully detailed description in the post text and a shorter description in the alt-text.

I've learned from blog posts and websites about alt-texts that text in images must be transcribed verbatim. However, nowhere that I've seen this rule written down, I've seen it mention text that's unreadable in the image while the author knows what's written there. My conclusion is that there is no exception for these texts. I tend to have many such texts. Thus, I transcribe all bits and pieces of text within the borders of my images if I have a way to read them. And I usually have.

I've learned from other blog posts about alt-texts that colours must not only be mentioned in image descriptions, but they must also be described. After all, blind people cannot be expected to know what e.g. Burgundy red is. Also, dimensions must be given not simply in absolute measures, but relatively to what else is in the image or to something that everyone is familiar with, namely the human body. Unfortunately, I've learned that so recently that I only have one original image post in which I make use of these techniques; hence, all my older original image posts count as obsolete.

I've learned from yet elsewhere that races must not be mentioned, and genders must not be assumed. I abide by both when describing meme images. My original images, on the other hand, never contain actual human beings. Whenever I show an avatar, it's always one of my avatars whose gender I have personally defined, and these avatars can't really emulate real-life human phenotypes.

Most of the above has never been taken into consideration by anyone on Mastodon. I'm literally the only one in the Fediverse who takes describing images to such levels.

But I go beyond alt-texts and image descriptions.

I've learned from Mastodon that if there's something, anything in a post of yours that might disturb anyone in some way, the post requires a Mastodon-style content warning that mentions in which way the post is disturbing. Here on Hubzilla, that's a summary. It's the same thing, and Hubzilla had summaries before Mastodon had CWs.

From observing both Mastodon and the Web outside the Fediverse, I've compiled a list of potentially triggering topics. Even excluding national/state/provincial/regional politics, I've gathered 111 of these so far. I do my best to include each one whenever necessary. On top of that, I add CWs for many things I post about because I guess I go onto people's nerves when I post about them (the Fediverse, alt-text, image descriptions, hashtags, character limits, quote-posts, actual quote-posting etc.).

However, Hubzilla is not a Twitter wannabe. It's more like Facebook or blogging software. It only offers a summary (Mastodon: CW) field for posts and DMs, but not for comments (it has two different editors for when you reply and when you don't). I could try to add a summary (Mastodon: CW) using a pair of BBcode tags, and I've done so here, but I know from personal experience that the summary tags do not translate to a Mastodon CW in comments. I'd add an individual CW to each one of my comments, but Mastodon users will neither get an actual CW nor understand that I've tried.

So I double almost all my CW'd topics up with an appropriate set of hashtags. This is in line with the culture where I am: Here on Hubzilla and in its whole software family, we don't force poster-side CWs upon each other. Instead, we have them automatically generated for ourselves, reader-side, tailored to our individual needs. But this requires keywords to trigger the automated hiding of content behind CWs.

Also, I know just what may disturb people. The best example is eye contact. You think that eye contact can only be triggering in full-face portraits of a person looking directly at the viewer? Wrong! It's triggering if there's at least one eye in the image. I've been told that some people in the autistic spectrum can detect an eye in an image if it's only a tiny fraction of a pixel. I have to expect this to extend to other potentially triggering things as well.

Thus, if it's potentially triggering and somewhere within the borders of one of my images, even if it's hardly discernible or completely invisible to the neurotypical, I still consider the whole image potentially triggering, and I treat the image and the whole post as such.

In fact, I've stopped posting potentially triggering images here on Hubzilla altogether. That's because Hubzilla has no way of making Mastodon blank an image out. And not long ago, Mastodon's CWs only hid the post text, but not the images belonging to a post. I can't rule out that certain Mastodon apps still behave this way. So I can't even use CWs to hide a triggering image. This is why I only ever post images on (streams) now: (streams) makes Mastodon blank images out when a post contains one or two certain hashtags.

Again, nobody on Mastodon goes even only nearly that far.

Please tell me in which ways exactly this is still insufficient.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #AltText #AltTextMeta #CWAltTextMeta #ImageDescription #ImageDescriptions #ImageDescriptionMeta #CWImageDescriptionMeta #CW #CWs #CWMeta #ContentWarning #ContentWarnings #ContentWarningMeta #CharacterLimit #CharacterLimits #CharacterLimitMeta #CWCharacterLimitMeta #Hashtag #Hashtags #HashtagMeta #CWHashtagMeta
Netzgemeinde/Hubzilla

@afreytes, 👁️‍🗨️of🇵🇷 @Author-ized L.J. I always use a lot of hashtags. I have to. But many of my hashtags are not to increase discoverability. They're to trigger filtering, including filters that hide my content behind CW buttons. Such filters have been available on Mastodon since October, 2022 and here on Hubzilla (https://hubzilla.org, https://en.wikipedia.org/wiki/Hubzilla, https://joinfediverse.wiki/Hubzilla) since its inception before Mastodon was even made.

This, by the way, is why some of my hashtags start with "CW": They're only there as content warning triggers/content warning substitutes, also because I have no means to add Mastodon-style content warnings to replies. Otherwise this comment would show the following CW on Mastodon:

CW: long (over 4,700 characters), Fediverse meta, Fediverse-beyond-Mastodon meta, hashtag meta, content warning meta, character limit meta

However, unless I explicitly talk about certain hashtags, they all always go into the last line. And I think that even 20 hashtags in the last line of one of my posts or comments make people less uncomfortable than the post or comment exceeding 500 characters or myself talking about the Fediverse, especially talking about the Fediverse not only being Mastodon.

This comment, for example, would get the following hashtags (normally in the last line, but this time I'm talking about them):

  • Hashtags for content over 500 characters:
    • #Long (= this message is over 500 characters long which makes some people uncomfortable)
    • #LongPost (= this message is over 500 characters long which makes some people uncomfortable; two hashtags because I can't know who filters what)
    • #CWLong (= this message is over 500 characters long which makes some people uncomfortable; hashtag version of "CW: long")
    • #CWLongPost (= this message is over 500 characters long which makes some people uncomfortable; hashtag version of "CW: long"; two hashtags because I can't know who filters what)
  • Hashtags for when I talk about the Fediverse:
    • #FediMeta (= I'm talking about the Fediverse which makes some people uncomfortable)
    • #FediverseMeta (= I'm talking about the Fediverse which makes some people uncomfortable; two hashtags because I can't know who filters what)
    • #CWFediMeta (= I'm talking about the Fediverse which makes some people uncomfortable; hashtag version of "CW: Fediverse meta")
    • #CWFediverseMeta (= I'm talking about the Fediverse which makes some people uncomfortable; hashtag version of "CW: Fediverse meta"; two hashtags because I can't know who filters what)
  • Hashtags for when I talk about hashtags:
    • #Hashtag (= I'm talking about hashtags; also for discovery)
    • #Hashtags (= I'm talking about hashtags; also for discovery; two hashtags because I can't know who follows/searches for the singular and who follows/searches for the plural)
    • #HashtagMeta (= I'm talking about hashtags and what I think about them which makes some people uncomfortable)
    • #CWHashtagMeta (= I'm talking about hashtags and what I think about them which makes some people uncomfortable; hashtag version of "CW: hashtag meta")
  • Hashtags for when I talk about content warnings:
    • #CW (= I'm talking about content warnings; also for discovery)
    • #CWs (= I'm talking about content warnings; also for discovery; two hashtags because I can't know who follows/searches for/filters the singular and who follows/searches for/filters the plural)
    • #ContentWarning (= I'm talking about content warnings; also for discovery; multiple hashtags because I can't know who follows/searches for/filters what)
    • #ContentWarnings (= I'm talking about content warnings; also for discovery; multiple hashtags because I can't know who follows/searches for/filters what)
    • #CWMeta (= I'm talking about content warnings and what I think about them which makes some people uncomfortable)
    • #ContentWarningMeta (= I'm talking about content warnings and what I think about them which makes some people uncomfortable; also for discovery; multiple hashtags because I can't know who filters what)
  • Hashtags for when I talk about character limits:
    • #CharacterLimit (= I'm talking about character limits; also for discovery)
    • #CharacterLimits (= I'm talking about character limits; also for discovery; two hashtags because I can't know who follows/searches for the singular and who follows/searches for the plural)
    • #CharacterLimitMeta (= I'm talking about character limits and what I, as someone with over 16.7 million characters, think about them which makes some people uncomfortable)
    • #CWCharacterLimitMeta (= I'm talking about character limits and what I, as someone with over 16.7 million characters, think about them which makes some people uncomfortable; hashtag version of "CW: character limit meta")
Hubzilla Fediverse Server and Community

@tux0r :openbsd: Wer glaubt, es gebe eine Mastodonkultur, beweist damit vor allem eine gewisse Neigung zu Fehlschlüssen.
Es gibt eine Mastodon-Kultur. Und die definiert sich ganz besonders durch eine ganze Anzahl oftmals ungeschriebener Regeln. Ein Auszug:
  • Mastodon ist das beste und sicherste soziale Medium und das beste und sicherste soziale Netzwerk, das es überhaupt gibt.
  • Mastodon ist absolut alternativlos.
  • Es ist scheißegal, ob man "Fediverse" oder "Mastodon" sagt. Das meint im Grunde dasselbe.
  • Das Fediverse fing mit Mastodon an und wurde von Gargron erfunden.
  • Die einzigen Nicht-Mastodon-Fediverse-Anwendungen, die erwähnt werden dürfen, sind Pixelfed, PeerTube, Flohmarkt und vielleicht Loops und WordPress.
  • Tröte nie mehr als 500 Zeichen auf einmal. Wenn, dann teile deinen Tröt in einen Thread aus Tröts von jeweils nicht mehr als 500 Zeichen auf, die aufeinander antworten und mit x/y durchnumeriert sind.
  • Wenn du über sensible, potentiell triggernde oder anderweitig unangenehme Dinge schreibst, mußt du unbedingt eine entsprechende CW ins CW-Feld eintragen.
  • Auf gar keinen Fall darfst du das CW-Feld für etwas anderes als CWs benutzen.
  • CWs, die automatisch auf deinem Konto nur für dich erzeugt werden, gibt's nicht.
  • Du darfst pro Tröt nicht mehr als vier Hashtags verwenden, und die müssen alle hintereinander in der letzten Zeile stehen.
  • Du mußt immer korrekt gendern.
  • Alle deine Tröts müssen immer maximal barrierefrei sein.
  • Wenn du Bilder in irgendeiner Art trötest, mußt du jedes Bild unbedingt mit einem 100% handgeschriebenen, akkuraten, hinreichend detaillierten Alt-Text beschreiben. Wenn das Bild und/oder die Beschreibung nicht für jeden verständlich ist, dann mußt du auch eine Erklärung mitliefern, die für jeden verständlich ist.
  • Auf gar keinen Fall darfst du jemandem antworten, wenn du weder demjenigen gegenseitig folgst noch derjenige dich vorher in dem Post, auf den du antworten willst, erwähnt hat. Denn das wäre Reply-Guying und übergriffig.
  • Auf gar keinen Fall darfst du jemandem etwas erklären, wenn du von demjenigen nicht vorher explizit um genau diese Erklärung gebeten worden bist. Denn das wäre Mansplaining und übergriffig.
  • Volltextsuche ist böse. Gargron hätte sie nie im Fediverse einführen dürfen.
  • Quote-Tröts sind böse. Gargron hätte sie nie im Fediverse einführen dürfen. Sorge dafür, daß niemand deine Tröts quote-tröten kann.
  • Auf Mastodon genießt jeder größtmöglichen Schutz und hat jeder das Recht auf größtmögliche Unterstützung. Außer denen, die weder im Real Life einer schutzbedürftigen Minderheit angehören noch sich an die Mastodon-Kultur und Mastodon-Regeln halten. Die sind rechtlos und vogelfrei und dürfen beliebig attackiert, beleidigt, blockiert und/oder dem eigenen Admin oder dem dieser Nutzer gemeldet werden.
  • Wer in einem Tröt schreibt, nicht auf Mastodon zu sein, ist ein rechtloser, vogelfreier Eindringling.
  • Jeder Mastodon-Nutzer darf die obigen Regeln gegenüber jedem anderen im Fediverse auf beliebige Art und Weise durchsetzen.

Das ist doch keine Religion hier, ey.
Richtig. Mastodon kommt mir mehr wie eine Sekte vor. So oder so werden Glauben und "Alternativfakten" über tatsächliche Tatsachen gestellt.

CC: @crossgolf_rebel - kostenlose Kwalitätsposts @die_Ergo 🤍🏳️‍🌈 @noble feu @Jörg 🇩🇪🇬🇧🇪🇺

#Long #LongPost #CWLong #CWLongPost #LangerPost #CWLangerPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Mastodon #CW #CWs #CWMeta #ContentWarning #ContentWarnings #ContentWarningMeta #AltText #AltTextMeta #CWAltTextMeta #Bildbeschreibung #Bildbeschreibungen #BildbeschreibungenMeta #CWBildbeschreibungenMeta #Hashtag #Hashtags #HashtagMeta #CWHashtagMeta #MastodonKultur #MastodonRegeln
tux0r :openbsd: (@[email protected])

24.5K Posts, 273 Following, 507 Followers · Es tanzt ein Biberputzemann um unsern Biber rum, fidibum. Solipsistischer Hedonist (platonisch) / „zwielichtiger Kantonist“ (Quelle: Internet) / Anarchist (antidogmatisch) / echter Hacker™ / #ActuallyAutistic / schlechte Witze en masse. One hand on the rose.

Layer8 in Space
@zotheca @Stefan Bohacek It isn't the title field. It's the summary field. It has been the summary field since Evan Prodromou added it to Identi.ca in 2008. And it only became a CW field when a Mastodon user for the demo scene submitted a merge request to Mastodon's GitHub repository in 2017 which repurposed this summary field, unused by Mastodon at this point, as a CW field.

My own POV on this is a whole lot different from typical Mastodon POVs. I've joined the Fediverse on Friendica in the early 2010s as opposed to on Mastodon in the 2020s before I moved on to fledgling Hubzilla.

Now, both Friendica and Hubzilla as well as the whole rest of the family (of which (streams) of 2021 and Forte of 2024 still exist) have a nifty optional feature called "NSFW": It's a list of keywords which, if detected in a message, hide the entire message behind a button. Much like the hiding feature in Mastodon's filters, only not built into the actual filters, much more simple and over 12 years older than Mastodon's solution.

In this software family, the NSFW feature is not perceived as a filter, even though it's very similar to the actual channel-wide filters (which, by the way, are among the few things which are more simple even on Hubzilla than on Mastodon because they've only got two keyword lists, an allowlist and a blocklist).

Rather, it's seen as an automated, individual, reader-side CW generator. It's deeply engrained into the culture of these Fediverse server applications which is a great deal different from Mastodon's culture. And it's seen as vastly superior to poster-side CWs that are forced upon all readers all the same.

A takeaway from this software family: If you write a potentially sensitive post, and you have no way of artificially weaving NSFW-triggering keywords into the actual post text, add them to the bottom line as hashtags. I do that all the time, hence the hashtags that start with "CW" to make clear that they're supposed to trigger reader-side CW generators.

By the way, the Friendica and Hubzilla inventor and (streams) developer Mike Macgirvin proposed two catch-all hashtags for sensitive posts to the (streams) users (that was before he forked Forte off the streams repository). One is #sensitive which also has the side-effect that (streams) and potentially also Forte make Mastodon blank out all images in the post. The other one is #⚠️. Or, if your post is really disturbing, #⚠️⚠️⚠️⚠️⚠️. However, this has yet to find its way into Hubzilla, not to mention Friendica or even Mastodon and the rest of the Fediverse.

As for the summary field, if Mastodon actually managed to push its entire community away from fixed poster-side CWs towards automated reader-side CWs, the whole field would be useless. I mean, Mastodon didn't support it at all before it had a CW field because, frankly, you don't need summaries for 500 characters.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #CW #CWs #CWMeta #ContentWarning #ContentWarnings #ContentWarningMeta #Hashtag #Hashtags #HashtagMeta #CWHashtagMeta #Filter #Filters #Mastodon #MastodonCulture #Friendica #Hubzilla #Streams #(streams) #Forte
Netzgemeinde/Hubzilla

So there's that nasty bug on Sharkey that mangles hashtags in messages from Hubzilla and probably also Friendica, (streams) and Forte. They always look like this:

#[Hashtag](https://hub.hubzilla.de/search?tag=Hashtag)

Basically, Sharkey receives fully standard Rich Text from Hubzilla. It manages to convert this Rich Text into its own Misskey-Flavored Markdown. But then its Markdown parser does not parse it and leaves the Markdown code visible to everyone. It simply doesn't expect there to be a hashtag character in front of an embedded link because, seriously, who'd ever do that and why?!

Friendica would. In fact, Friendica does. It puts the hashtag character in front of the tag, as in outside the tag, as opposed to at the beginning of the tag. It has been doing that since its beginnings in 2010 because it was designed from the get-go to also federate with StatusNet from 2008. And StatusNet does hashtags the same way on its few remaining servers. In fact, so did Identi.ca from 2008, from which StatusNet emerged.

Hubzilla, (streams) and Forte do it, too, because they have inherited it from Friendica.

On StatusNet, Friendica, Hubzilla, (streams) and Forte, a hashtag in a message looks like this:

#Hashtag

Notice how the hashtag character has the same colour as the rest of the post text. And not the same colour as the rest of the hashtag. This means that the hashtag character is not part of the link. (To Mastodon users who don't know this: If something in a "toot" has a different colour from the rest of the "toot", it's a link. Even if it doesn't show a URL in plain sight.)

On 𝕏, Mastodon, Pleroma, Akkoma, Misskey, the various Forkeys and a whole lot of other Fediverse software, a hashtag in a message looks like this:

#Hashtag

Notice how now the hashtag character has the same colour as the rest of the hashtag. This means that the hashtag character is part of the link.

But why did Identi.ca do hashtags differently from Twitter? Because Identi.ca did hashtags before Twitter. AFAIK, when Identi.ca was launched, it had support for hashtags right away. About one year before Twitter.

The hashtag itself had already been invented by the Twitter community. Chris Messina had already codified it in 2007. But it wasn't until 2009 that Twitter actually introduced a technological implementation to support it.

Again, Identi.ca must have had hashtags as early as 2008, and there was no way that Identi.ca creator Evan Prodromou could possibly predict what Twitter would do the following year. So he did what he thought was right and what actually made sense to him.

But nowadays, everybody "knows" that Twitter had the world's very first hashtag implementation ever because nobody, even in the Fediverse, has ever heard of Identi.ca. I mean, the majority of Fediverse users "know" that the Fediverse started with Mastodon.

You know, just like Officer James Barrett "knew" that there is no intelligent life outside Earth only a few minutes before he became Agent J of the Men In Black.

This is also why just about all Fediverse software that does hashtags the Twitter way expects everything to do hashtags the Twitter way. It does not expect hashtags to be done differently. And when a message comes in from Friendica, Hubzilla, (streams) or Forte with hashtags in it, it fails at varying degrees of ungracefully.

Hashtags with the hashtag character outside the link are older than hashtags with the hashtag character inside that they're not only completely unexpected, that they cause software to malfunction, but the same software often can't even handle that malfunction. It's a miracle that the Friendica/Hubzilla family doesn't cause Fediverse servers to crash or even server databases to go corrupt by simply sending hashtags.

Mastodon used to be an exception of sorts, but only because, before version 4.0 from October, 2022, its HTML "sanitiser" actually ripped out any and all rich text code from incoming messages and left nothing but plain text behind. And then it didn't recognise hashtags in messages from outside Mastodon as hashtags at all.

When Mastodon 4.0 came and supported some rich text, including embedded links, it went haywire, of course. But then someone from Friendica and Hubzilla went in and complained about this malfunction and explained what happened, why it happened and why it was not Friendica and Hubzilla that did things wrong. Besides, if something utterly defaces "toots", then Mastodon developers do step in to stop it. After all, Mastodon has a few more of them at hand, paid, full-time professionals even. You have to give it that.

Which takes us back to Sharkey. Sharkey is developed by a small handful of individuals in their spare time. Granted, it's a soft fork of Misskey, so a lot of development work is done by the Misskey devs and taken over by the Sharkey devs, but they still have to weave the code changes coming from Misskey in and make them work with what's different on Sharkey.

So it turned out that (Link content warning: eye contact) this bug has already been filed to the Sharkey devs in October, 2024. All that has happened since then until today was that Hazelnoot added two labels. But the bug report came with no explanations. In fact, it misattributed one of my Hubzilla posts as a Friendica post.

And in fact, it turned out that this is actually (Link content warning: Microsoft GitHub link, eye contact) a Misskey bug which has been filed in January, 2024, two years ago. The bug report is a bit more elaborate, but the reporter still knew precious little about what's going on. So I wrote a comment in which I explained the bug from a Friendica/Hubzilla POV as well as what's going on on the technical side, and why the error has to be on Misskey's side.

I hope this will finally help get the bug fixed. Unfortunately, this fix would come too late for Iceshrimp. Iceshrimp-JS is a true Forkey, but in maintenance mode, so I guess only security patches and critical bugfixes will be merged from Misskey, if anything. And Iceshrimp.NET is a complete rewrite of a pre-this-fix Misskey fork, so the Iceshrimp devs probably don't know about this issue either. If it fails ungracefully upon receiving hashtags with the hashtag character outside, it will require its own bug report.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Hashtag #Hashtags #HashtagMeta #CWHashtagMeta #Twitter #𝕏 #Fediverse #Mastodon #Pleroma #Akkoma #Misskey #Forkey #Forkeys #Sharkey #Iceshrimp #Iceshrimp-JS #Iceshrimp.NET #Identi.ca #Laconi.ca #StatusNet #Friendica #Hubzilla #Streams #(streams) #Forte
Hubzilla.de

So there's that nasty bug on Sharkey that mangles hashtags in messages from Hubzilla and probably also Friendica, (streams) and Forte. They always look like this:

#[Hashtag](https://hub.netzgemeinde.eu/search?tag=Hashtag)

Basically, Sharkey receives fully standard Rich Text from Hubzilla. It manages to convert this Rich Text into its own Misskey-Flavored Markdown. But then its Markdown parser does not parse it and leaves the Markdown code visible to everyone. It simply doesn't expect there to be a hashtag character in front of an embedded link because, seriously, who'd ever do that and why?!

Friendica would. In fact, Friendica does. It puts the hashtag character in front of the tag, as in outside the tag, as opposed to at the beginning of the tag. It has been doing that since its beginnings in 2010 because it was designed from the get-go to also federate with StatusNet from 2008. And StatusNet does hashtags the same way on its few remaining servers. In fact, so did Identi.ca from 2008, from which StatusNet emerged.

Hubzilla, (streams) and Forte do it, too, because they have inherited it from Friendica.

On StatusNet, Friendica, Hubzilla, (streams) and Forte, a hashtag in a message looks like this:

#Hashtag

Notice how the hashtag character has the same colour as the rest of the post text. And not the same colour as the rest of the hashtag. This means that the hashtag character is not part of the link. (To Mastodon users who don't know this: If something in a "toot" has a different colour from the rest of the "toot", it's a link. Even if it doesn't show a URL in plain sight.)

On 𝕏, Mastodon, Pleroma, Akkoma, Misskey, the various Forkeys and a whole lot of other Fediverse software, a hashtag in a message looks like this:

#Hashtag

Notice how now the hashtag character has the same colour as the rest of the hashtag. This means that the hashtag character is part of the link.

But why did Identi.ca do hashtags differently from Twitter? Because Identi.ca did hashtags before Twitter. AFAIK, when Identi.ca was launched, it had support for hashtags right away. About one year before Twitter.

The hashtag itself had already been invented by the Twitter community. Chris Messina had already codified it in 2007. But it wasn't until 2009 that Twitter actually introduced a technological implementation to support it.

Again, Identi.ca must have had hashtags as early as 2008, and there was no way that Identi.ca creator Evan Prodromou could possibly predict what Twitter would do the following year. So he did what he thought was right and what actually made sense to him.

But nowadays, everybody "knows" that Twitter had the world's very first hashtag implementation ever because nobody, even in the Fediverse, has ever heard of Identi.ca. I mean, the majority of Fediverse users "know" that the Fediverse started with Mastodon.

You know, just like Officer James Barrett "knew" that there is no intelligent life outside Earth only a few minutes before he became Agent J of the Men In Black.

This is also why just about all Fediverse software that does hashtags the Twitter way expects everything to do hashtags the Twitter way. It does not expect hashtags to be done differently. And when a message comes in from Friendica, Hubzilla, (streams) or Forte with hashtags in it, it fails at varying degrees of ungracefully.

Hashtags with the hashtag character outside the link are older than hashtags with the hashtag character inside that they're not only completely unexpected, that they cause software to malfunction, but the same software often can't even handle that malfunction. It's a miracle that the Friendica/Hubzilla family doesn't cause Fediverse servers to crash or even server databases to go corrupt by simply sending hashtags.

Mastodon used to be an exception of sorts, but only because, before version 4.0 from October, 2022, its HTML "sanitiser" actually ripped out any and all rich text code from incoming messages and left nothing but plain text behind. And then it didn't recognise hashtags in messages from outside Mastodon as hashtags at all.

When Mastodon 4.0 came and supported some rich text, including embedded links, it went haywire, of course. But then someone from Friendica and Hubzilla went in and complained about this malfunction and explained what happened, why it happened and why it was not Friendica and Hubzilla that did things wrong. Besides, if something utterly defaces "toots", then Mastodon developers do step in to stop it. After all, Mastodon has a few more of them at hand, paid, full-time professionals even. You have to give it that.

Which takes us back to Sharkey. Sharkey is developed by a small handful of individuals in their spare time. Granted, it's a soft fork of Misskey, so a lot of development work is done by the Misskey devs and taken over by the Sharkey devs, but they still have to weave the code changes coming from Misskey in and make them work with what's different on Sharkey.

So it turned out that (Link content warning: eye contact) this bug has already been filed to the Sharkey devs in October, 2024. All that has happened since then until today was that Hazelnoot added two labels. But the bug report came with no explanations. In fact, it misattributed one of my Hubzilla posts as a Friendica post.

And in fact, it turned out that this is actually (Link content warning: Microsoft GitHub link, eye contact) a Misskey bug which has been filed in January, 2024, two years ago. The bug report is a bit more elaborate, but the reporter still knew precious little about what's going on. So I wrote a comment in which I explained the bug from a Friendica/Hubzilla POV as well as what's going on on the technical side, and why the error has to be on Misskey's side.

I hope this will finally help get the bug fixed. Unfortunately, this fix would come too late for Iceshrimp. Iceshrimp-JS is a true Forkey, but in maintenance mode, so I guess only security patches and critical bugfixes will be merged from Misskey, if anything. And Iceshrimp.NET is a complete rewrite of a pre-this-fix Misskey fork, so the Iceshrimp devs probably don't know about this issue either. If it fails ungracefully upon receiving hashtags with the hashtag character outside, it will require its own bug report.

#Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Hashtag #Hashtags #HashtagMeta #CWHashtagMeta #Twitter #𝕏 #Fediverse #Mastodon #Pleroma #Akkoma #Misskey #Forkey #Forkeys #Sharkey #Iceshrimp #Iceshrimp-JS #Iceshrimp.NET #Identi.ca #Laconi.ca #StatusNet #Friendica #Hubzilla #Streams #(streams) #Forte
Netzgemeinde/Hubzilla

@「 Jürgen 」:fedi_mastodon: Irgendwie ist das doch nicht die „übliche“ Verwendung von Hashtags in Beiträgen. Was ist der Hintergrund bei Hubzilla, dass das so gehandhabt wird?
Das hat Hubzilla geerbt von Friendica, weil es umgebaut wurde aus einem Fork eines Forks von Friendica. Und Friendica hat es übernommen von StatusNet, weil es von vornherein mit StatusNet föderieren sollte. Und StatusNet hat es geerbt von Identi.ca.

Sie alle handhab(t)en Hashtags intern als Schlüsselwörter, die keine Raute enthalten. Und sie stellen die Raute außerhalb des Link vor den Link, um zu signalisieren: Das hier ist ein Hashtag. Wenn man einen Post, einen Kommentar oder eine DM verschickt, wird aus dem Hashtag automatisch ein entsprechendes Konstrukt aus ungelinkter Raute plus Link aufs Schlüsselwort generiert.

Das ist wie bei Namen: Auf allen war bzw. ist das @ kein Teil irgendeines Namen, nicht des Kurznamen, nicht des Langnamen. Der Kurzname, der Teil des Profil-Link ist, hat auch kein @. Guck dir mal deine Erwähnung an: Das @ ist nicht Teil des Link, sondern steht vorm Link, und dein Langname ist erwähnt.

Warum "die" das anders gemacht haben als auf Twitter und Mastodon? Ganz einfach: Weil "die" das vor Mastodon gemacht haben. Eigentlich sogar noch vor Twitter.

Identi.ca und StatusNet waren von 2008. Etwa acht Jahre vor Mastodon. Das war der eigentliche Urknall des Fediverse. Und StatusNet hatte meines Wissens damals schon offizielle Unterstützung für Hashtags.

Warum hat es das nun anders gemacht als Twitter? Weil es das vor Twitter gemacht hat.

Es war nämlich erst 2009, daß Chris Messina offiziell Unterstützung für Hashtags bei Twitter eingeführt hat. Evan Prodromou, der Erfinder von Identi.ca, StatusNet und dem Fediverse, konnte unmöglich etwa ein Jahr im voraus ahnen, wie Twitter mal Hashtags implementieren wird. Und die Twitter-Entwickler dürften damals überhaupt nicht gewußt haben, daß auch nur Identi.ca existiert, geschweige denn, wie es Hashtags handhabt.

Friendica ging im Mai 2010 an den Start, etwa fünf Jahre und acht Monate vor Mastodon. Friendica basierte zwar auf einem eigenen Protokoll, war aber von vornherein in der Lage, sich mit StatusNet über dessen eigenes OStatus-Protokoll zu verbinden. Praktischerweise hat der Friendica-Erfinder Mike Macgirvin gleich Identi.cas und StatusNets Handhabung von Hashtags übernommen. Zu diesem Zeitpunkt hatte Twitter Hashtags erst seit gut zehn Monaten.

Ende 2011 hat Mike Macgirvin Friendica geforkt, dann den Fork geforkt und diesen Fork namens Red (später Red Matrix) dann ab 2012 komplett umgeschrieben. Zu diesem Zeitpunkt handhabte alles im Fediverse Hashtags noch auf dieselbe Art.

Um diese Zeit wurde StatusNet nach GNU social hardgeforkt, das wohl versuchte, mehr wie Twitter zu sein. Daher wurden auch die Hashtags wie auf Twitter ausgeführt: mit der Raute als Teil des Schlüsselworts und als Teil des Link. StatusNet verlor dann nach der 2012er Umstellung von Identi.ca auf pump.io seine Entwicklungsgrundlage und wurde 2013 kurzerhand nach GNU social gemerget, ohne aber die Hashtags wieder auf die alte Form umzustellen.

Im März 2015 wurde erstmals Hubzilla veröffentlicht, das entstanden war, indem die Red Matrix umbenannt und massiv erweitert worden war.

Erst im Januar 2016 kam dann Mastodon, Pleroma kurze Zeit später. Weil beide ursprünglich alternative Frontends für GNU social sein sollten, übernahmen sie von GNU social die Twitter-Hashtags.

Zu diesem Zeitpunkt sahen weder die neuen Entwickler, die Friendica seit Ende 2011 hatte, noch Mike Macgirvin es ein, warum sie ihre Software unbedingt an Mastodon anpassen sollten. Mike, der inzwischen zwei Nachfahren von Hubzilla betreut, sieht es bis heute nicht ein. Eher baut er serverseitige Gegenmittel gegen Mastodon in seine Software ein.

Misskey landete meines Wissens erst 2018 im Fediverse, nachdem es ActivityPub adoptiert hatte. Das hatte übrigens Hubzilla als erstes, seit Juli 2017, und Mastodon als zweites, seit September.

#Long #LongPost #CWLong #CWLongPost #LangerPost #CWLangerPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Fediverse #Identi.ca #Laconi.ca #StatusNet #GNUsocial #Friendica #Hubzilla #Mastodon #Pleroma #Hashtag #Hashtags #HashtagMeta #CWHashtagMeta
Netzgemeinde/Hubzilla

@kontrollierterWahnwitz Es gibt keine falsche Nutzung von Hashtags.
Mach das denen klar, die sich immer darüber aufregen, wenn ich mehr als 4 Hashtags verwende. Und das tue ich fast immer.

Aber da sind eben auch technologische und kulturelle Unterschiede innerhalb des Fediverse im Spiel.

#FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Hashtag #Hashtags #HashtagMeta #CWHashtagMeta #FediverseKultur
Netzgemeinde/Hubzilla