Update: moved this to my new writing site so there’s a new URL.

Every hashtag on every post on every platform should always be pascal case. I wrote this to illustrate how screenreaders read hashtags based on their case.

It’s a small thing that all of us can do to build a more inclusive, accessible internet for all. Please take the time to use pascal case.

https://markwrites.io/hashtag-accessibility-by-everyone-for-everyone

#Accessibility #WebAccessibility #Usability #Readability #Hashtags #SocialNetworking #Blogging #UX

Mark W.rites - Hashtag Accessibility, by Everyone for Everyone

My post about hashtag accessibility on Mastodon (and later LinkedIn) got a lot of attention. There were so many replies from people who didn’t know about the a…

Mark W.rites

I love the camel case vs pascal case debate. Some argue if the first letter is capitalized, it’s pascal case. Others argue that they’re interchangeable. Others argue that the full/formal name “upper camel case” be used when the first letter is capitalized.

In my opinion, camel case is a colloquialism for pascal case, being more familiar to most folks.

More on this ambiguity and why simply saying “camel case” is most likely understood to mirror pascal case:
https://en.wikipedia.org/wiki/Camel_case

Camel case - Wikipedia

@markwyner it makes a difference when coding conventions use both for different scenarios. C# conventionally uses Pascal case for type names and camel case for variables.
@markwyner I am slightly annoyed by how the URL to the camel case wiki isn't itself in camel case.
@markwyner Didn’t know about this difference/debate!
@markwyner I tend to prefer camelCase. But my all time favorite case name is SCREAMING_SNAKE_CASE because... how can it not be?
@waiting_for_the_rain code that screams at you. It’s like the Gandalf of development. You know, “you shall not pass” and all that meme has to offer.
@markwyner Damn. I knew I was doing something wrong. I always use it for constants.
@markwyner but have you considered sPoNgEbOb CaSe?

@markwyner "More on this ambiguity and why simply saying “camel case” is most likely understood to mirror pascal case"

As a programmer who needs to "camelCase" things to fit the code sniffer (and my manager's) rules, I'm not sure I agree with you there

I'm glad you realized that readers need it to be Pascal cased, but I think it would be better to draw attention to it by using that name

@codebyjeff solid point to be sure. I’m also a developer and understand the difference. I simply think most people, who aren’t programmers, see the term “camel case” used more often (which is accurate by definition as a colloquialism). What’s more, camel has an inference that non-developer folks understand whereas pascal does not. But perhaps I update the graphic to show both names. Thanks for weighing in.
@codebyjeff @markwyner is camelCase ok for screenreaders? or does capitalising first letter help?
@fuzzySynths @codebyjeff see my updates around camel case vs pascal case.

@markwyner

You know the diff. between Pcase and Ccase, then why conflate the two in your first post?

Besides, you will always have that mix as diff. cultures prefer one over the other.

Anyway, currently, the issue is not just the user but the platform.

If the first post sent to or written on your instance was small case, it'll stay like that unless the admin edits it.

You can thumb up the Github issue, and spread word about the technical discussion on this.

https://github.com/mastodon/mastodon/issues/20267

Autocomplete hashtags to camel case · Issue #20267 · mastodon/mastodon

Pitch Have the API send out hashtags in camelcase. For example, it would be better if users autocompleted and searched for #EiffelTower than the current result, #eiffeltower. Motivation this is an ...

GitHub
@markwyner I've never heard of either one until now so no opinion but will definitely be taking screen readers into account for my hashtags.
@markwyner someone I used to work with called them "drinking camel case" vs "proud camel case" and I've latched onto that myself, though I know that no one will know what I'm talking about if I use those to describe the two.

@markwyner I’ve always felt this is CamelCase and this is dromedaryCase because dromedaries have one hump.

But PascalCase vs. camelCase seems to be more popular. Oh well.

@markwyner Good to know. I was unaware of this.
@gdeihl the only reason I know is because I test my work using a screenreader, and have been for most of my career. Until you actually hear it, it’s hard to imagine it.
@markwyner Should be basic information that's widely known. This world is extremely handicap unfriendly.
@gdeihl we definitely live in an ableist world. Little accommodations are the very least that we can do.

@gdeihl @markwyner

Hi! Our community widely prefers the word disability, over handicapped. The word handicapped has a lot of negative connotations and even trauma associated with it. Thanks.

@markwyner how do you do this? I generally put stuff I wrote into Google TTS, but I feel like that isnt the most realistic screenreader experience, but I also dont want to actually turn on a real screenreader because it drives me mad
@susul I use Apple’s VoiceOver most of the time. It’s easily toggled on/off with a keyboard command. I’ve also seen some screen reader extensions for browsers. I test for my professional work so the expense can be justified when using full platforms/software. But if you’re on a Mac VoiceOver is easy, reliable, and free.

@markwyner I've used camel case forever. It makes reading a hashtag easier for me too!!! Thanks for illustrating another reason to keep doing so!

#Accessibility #WebAccessibility #Usability #Readability #Hashtags #SocialNetworking #Blogging #UX

@NerdGirlInVR @markwyner same here. I've always used it for my own readability, esp with longer hashtags.
@markwyner huh. you learn so mething everyday
@markwyner @Gustodon I was today years old when I learned that what I've always tried to do has a name and that it is camel case. Thank you both!

@markwyner #PascalCase FTW

although I do like ooey design

@markwyner @shelenn At least here on Mastodon I haven’t seen any misspelled hashtags, unlike many trending ones on Twitter.
@markwyner this is a really good thing to do (not only for people using screen readers), but hopefully soon screen readers will be able to read lowercase hashtags properly. We have the technology:
@deapthoughts sure, this makes sense. Super interesting. I mean, we feed AI systems language models that should be able to properly parse conjoined words using natural language pattern-matching and dictionary lexicons. But screenreaders learn/read differently. They have different rules and don’t utilize machine learning. I’d be curious to know if those systems have considered (or would consider) machine learning.
@deapthoughts @markwyner Even if screen readers technology is upgraded, that's no excuse to stop using Camel Case because (some) people will still struggle with lowercase hashtags. #Dyslexia 😀
@deapthoughts @markwyner In an ideal world all user typed lowercase hashtags will autocorrect to Camel Case / Pascal Case.
@fork @deapthoughts @markwyner unfortunately not always possible. For example the website ExpertsExchange could be translated to something very different if attempting to read it in all lowercase.

@markwyner @pnts mkay hear me out: make the computer do this

• server has index of hashtags with and without camel case
• server sees all lower case hashtag
• server puts most common equivalent camelcased hashtag in `aria-label=` attribute

easy peasy

@KLB @markwyner @pnts it turns out there is an open issue that is close (but it doesn't reference it specifically): https://github.com/mastodon/mastodon/issues/13545

i'm sure there would be the occasional collision and a slim chance of abuse potential in the tails (which would generate content moderation overhead) but would be easy to implement.

Accessibility: screen reader improvements · Issue #13545 · mastodon/mastodon

Pitch We all know that accessibility is very important for impaired users, and that web actually has a lot to offer to developers to make their applications more accessible, for example, to screen ...

GitHub
@doriantaylor @KLB @markwyner @pnts
I would submit that a companion feature would be a suggestion list for hashtags on client. Same basic algorithm except list matches above a threshold in frequency order, modified and weighted based on use by the specific user. That makes it easier to type the suggestion, which would be correctly cased, than typing the same thing out lowercase.
@doriantaylor @markwyner @pnts came here to say that it drives me crazy when I always type the bloody hashtags in Pascal case, only to have the interface “helpfully” correct it.
Would love to see this fixed. (Just happened with PTSD shifted to lower case too)
@raychill @markwyner @pnts i would consider that a "bug" to the extent that is information-destroying behaviour.
@doriantaylor @markwyner @pnts if it doesn’t do it automatically, I can’t always work out how to get rid of the tags popup in the mobile client consistently, or I tap the lowercase tag by accident while trying to move on or ignore the suggestions. (For me, late night posting makes this especially hard, as I don’t process in the same way at night as daytime)
@raychill @markwyner @pnts i am still in twitter transition mode so i'm not really paying very close attention to all the ins and outs of mastodon yet; i just know that there is a thing called aria-label that will give OP the desired effect irrespective of how users style their hashtags
@doriantaylor well hello and welcome then, and thanks for the suggestion
@raychill i'd write the patch myself if i had the time but i'm behind on things unfortunately
@doriantaylor @raychill @pnts that’s not what aria-label is for. There’s a very specific use for aria attributes, and hashtags or alt text is not it. You can read more about that here: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label
aria-label - Accessibility | MDN

The aria-label attribute defines a string value that labels an interactive element.

MDN Web Docs
@markwyner @raychill @pnts there's an argument to be made that the first sentence of that mdn page describes precisely the scenario of mispronounced hashtags, and if that isn't enough then the second paragraph clinches it. that said, i'm less interested in preserving the interpretative purity of a (particularly underutilized) capability than i am in the results it delivers.
@raychill @doriantaylor @pnts I also ignore them and manually type them all. But folks are making a good point that there’s a reason the autosuggest exists.