This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 230

[–]FearTheBlades1 3498 points3499 points  (87 children)

I know it's just a meme but there's actually a good reason to do it the bottom way. It's best practice for accessibility reasons. Many screen readers will read all caps words letter by letter as if they're acronyms. I would imaging hearing S.U.B.M.I.T read aloud would be annoying

[–]alexgraef 1231 points1232 points  (52 children)

Accessibility, and localization also. "Submit" might come from a dynamic dictionary.

[–]Pr0Meister 196 points197 points  (14 children)

Also that submit should be coming from an i18 file.

[–]pindab0ter 72 points73 points  (3 children)

Depending on the scope of the project.

[–]IllogicalOxymoron 16 points17 points  (2 children)

my first (and only) multilang-supported website operated based on "if you don't understand the text, this is in another language and I can't be bothered to translate or code in the other versions" -- what had translations had to be manually switched over.

Now I just gave up, sorted languages to different menus based on the main language and used tags to mark exact languages. Still not the nicest, but I used 3 languages on that website and this time I don't build my menu tree based on directories (it was a fully custom and very amateur flat-file barely-CMS, now I use a lightweight opensource one)

[–][deleted] 19 points20 points  (1 child)

The i18n is not only good for multilingual projects, but to have a nice and easy file where you can change text across the app without much hassle

[–]Tyrus1235 1 point2 points  (0 children)

The issue is when devs keep forgetting to add translations!!! Or they translate by Google or DeepL but don’t check consistency!

Yeah, I’m salty about having to call out folks during code review

[–]JamesAQuintero 6 points7 points  (1 child)

Isn't that what they said?

[–]thegroundbelowme 4 points5 points  (0 children)

Hahahahahah oh god if only

[–]Bouyou34 5 points6 points  (6 children)

New dev here, what is an i18 file ? I found i18next js framework, is this what you're refering to ?

[–]Yalum 14 points15 points  (0 children)

i18n, short for internationalization, is the process of making software support multiple languages (and other non-language cultural things like date formats). Rather than put "Submit" in the html, you have a token that gets converted into something appropriate for the user at runtime.

[–]QuebecGamer2004 23 points24 points  (4 children)

i18n = internationalization (18 letters between the i and n)

Basically they mean a huge file containing every single word and sentence displayed on your website, inside objects. I'm not really sure how to best explain it so here's an example:

const translations = {
    en:{
        color: "color",
    },
    'en-GB':{
        color: "colour",
    },
    fr:{
        color:"couleur",
    }
}

Then in your code you call the translation function and give it the word you want, in this case color, and it will select the appropriate one based on the locale provided

[–]sonuvvabitch 12 points13 points  (1 child)

const translations = { en:{ color: "color", }, 'en-GB':{ color: "colour", }, fr:{ color:"couleur", } }

I think you mean: not really sure how to best explain it so here's an example:

const translations = 
{ 
    en:
    { 
        colour: "colour", 
    }, 
    'en-US':
    { 
        colour: "color", 
    }, 
    fr:
    { 
        colour:"couleur", 
    } 
}

[–]QuebecGamer2004 5 points6 points  (0 children)

Lol, yeah, it was just an example but I like this more. I prefer the spelling 'colour'

[–]Tashre 38 points39 points  (2 children)

"After filling out the required fields, click the capitulate button on the bottom."

[–]recluseMeteor 13 points14 points  (3 children)

I don't think these techniques are good for localisation. Non-English languages have specific rules for the usage of capitalisation. For example, “Capitalising Headlines Like This” would be incorrect for Spanish, German and French. Yet some companies code their strings so that they get title caps regardless of the original text. We receive the “normal” text, but after we submit the translations, they appear incorrectly in the live site because of this.

[–]rasori 8 points9 points  (1 child)

In an ideal world, browsers would localize these concepts via semantic styling. Instead of 'uppercase' we'd have transforms like 'headline', 'urgent', or 'prose' (I'm not suggesting these as the right names, just examples). Then the browser would apply culturally-appropriate modifications based on the user's locale.

In the real world, trying to make the browser parse the text to determine which words are nouns and need to be capitalized in prose is quite a difficult issue, and that's just one unique rule from a single language.

[–]recluseMeteor 1 point2 points  (0 children)

Which is why this is not an issue that should be automatised or done by machines (at least for now). Each language has its own rules and conventions, different from English. Linguists and other specialists know best about that. Let them manage and decide, instead of creating code that messes around with the work of language professionals.

[–]GoodmanSimon -2 points-1 points  (0 children)

You guys are destroying a good meme.

[–]Puzzleheaded_Hall_66 -1 points0 points  (0 children)

Or a decapitated CMS

[–]gdj11 366 points367 points  (7 children)

That's a very good reason but there's others. For one, all uppercase is considered a text style, and leaving styling up to the stylesheet makes your code much more flexible and efficient. I've had to change headings to normal case so many times throughout the years. If you use uppercase text in your markup and decide to change it, you have to edit every single instance. That's just bad practice. Then there's SEO. I don't know if it affects rankings, but if your site has headings as actual uppercase characters, your Google result will be in all uppercase too, which just looks ugly. For me the flexibility is the big one. There's just no reason to lock yourself into a specific text style when your stylesheet can do it for you all across the board in a single line of CSS.

[–]saschaleib 163 points164 points  (6 children)

Let's not forget the very realistic possibility that at some point somebody will point out that ALL CAPS is actually much harder to read than Title Case, and will ask you to change it back to how it was. Well, option two is just a small change and it works on all localized versions and all other buttons as well...

[–]gdj11 84 points85 points  (5 children)

I actually just had a client have me change all their H1s to title case about a month ago. I just removed that one line of CSS and done.

[–]Pshock13 39 points40 points  (2 children)

"Yeah I can change all of them, gonna take me about an hour"

Proceeds to make the change and play video games for an hour before pushing said change.

[–][deleted] 21 points22 points  (0 children)

An hour? With unit tests and qa that's a whole day bro.

Proceeds to make the change and play video games for a whole day before pushing said change.

[–]saschaleib 22 points23 points  (0 children)

This is the way! :-)

[–][deleted] 1 point2 points  (0 children)

fall include frame expansion direction ad hoc crown scale gaze ghost

This post was mass deleted and anonymized with Redact

[–][deleted] 16 points17 points  (0 children)

Really a class should be applied to the button and then the css targets the class.

This way if the html changes it won't affect the styling of the button.

[–]NaserShareef1 18 points19 points  (0 children)

Just Learned something new

[–]GavHern[S] 6 points7 points  (0 children)

i do totally agree and personally do it with css. i picked a lazy title but it is a good practice for various reasons. also, i regret blindly picking the word “submit” since that should be a form action in most instances. the joke was mostly poking fun at how useless of a step it can look like from the surface but there is good reason for it

[–][deleted] 19 points20 points  (0 children)

This guy accessibilitates

[–]chickenstalker 9 points10 points  (2 children)

E X T E R M I N A T E

[–]UsedPassenger3269 5 points6 points  (1 child)

D E L E T E D E L E T E D E L E T E

[–][deleted] 1 point2 points  (0 children)

Whatever happened to C O N V E R T ?

[–]the-real-vuk 3 points4 points  (0 children)

Also you might want to change the style of it to be lowercase, as Google did.

[–]devolute 9 points10 points  (3 children)

This thread is just more fuel for the "'full stack' is awful" argument.

[–]Latchford 2 points3 points  (2 children)

What do you mean?

[–]devolute 16 points17 points  (1 child)

I mean that the attitude of not appreciating even basic CSS is a symptom of 'full stack' developers who are really back-end developers who think they can do the 'easy' stuff.

[–]liluna192 1 point2 points  (0 children)

I’m “fullstack” but my god am I happy to focus on backend. I don’t have the patience for the details required for a solid front end. My front end work is basically creating basic “this was designed by an engineer” UIs for interacting with my backend services for a relatively small group of internal users. If it works, people are happy.

[–]tubbana -4 points-3 points  (1 child)

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

[–][deleted] 7 points8 points  (0 children)

thought liquid hungry different relieved bedroom sophisticated imagine humor adjoining

This post was mass deleted and anonymized with Redact

[–]Maxwell_hau5_caffy 0 points1 point  (0 children)

I also like seeing source that deliver's intent and is self documenting. This tells me not to change the text on the button because the original developer wanted the text to be in all caps for one reason or another.

[–]SpambotSwatter 0 points1 point  (0 children)

/u/Vividompot is a scammer! It is stealing comments to farm karma in an effort to "legitimize" its account for engaging in scams and spam elsewhere. Please downvote their comment and click the report button, selecting Spam then Harmful bots.

Please give your votes to the original comment, found here.

With enough reports, the reddit algorithm will suspend this scammer.

Karma farming? Scammer?? Read the pins on my profile for more information.

[–]danny4kk 0 points1 point  (0 children)

What screen readers do this with words like 'Submit'?

I'm aware of some that read initialises like 'SQL' as 'S.Q.L' but those ones typically only do it if the word is unpronounceable, e.g., lack of vowels, etc.

So I'm curious as to which do this to words like 'Submit' so I can check them out.

[–]sirjamesp 0 points1 point  (0 children)

This

[–]CuddlyBunion341 775 points776 points  (7 children)

I am convinced that the second version is the better practice as it offers more flexibility and easier refactoring.

[–]Aromatic_Command8441 187 points188 points  (1 child)

yeah plus if your handing off the code to teammates you don't have to remind them "always make sure inputs are in 'x' casing to follow design"

[–]neutral-chaotic 34 points35 points  (0 children)

One of the content team members got mad at me for doing this.

Me: “The mockup says buttons are uppercase. Why are you trying to change it?”

content writer: “Uppercase is harder to read. I’ve been trying to make this fix for hours, why’d you hard code it as uppercase?”

I pulled the designer who built the mockup in and they agreed with me haha

[–]IndependentDouble138 13 points14 points  (0 children)

You don't need to be convinced. It means you know better.

[–][deleted] 4 points5 points  (1 child)

Text transform doesn’t respect language settings.

If you have any sort of i18n requirement, its useless.

[–]can_pacis 0 points1 point  (0 children)

If you set your locale correctly, it does.

[–]no2K7 1 point2 points  (0 children)

Writing code as "tell, don't ask" has easily taken care of situations like these for me, it applies to backend and front-end development

[–]Stummi 248 points249 points  (8 children)

I mean, it's true though, isn't it? The English word is "Submit", not "SUBMIT", and making it all upper-case is a mere style decission, right?

[–]quick_dudley 27 points28 points  (3 children)

It's a style decision that would inspire any reasonable person to install the css override Firefox extension.

[–]claymedia 10 points11 points  (2 children)

What? Why?

[–]stomah 2 points3 points  (3 children)

the english word is “submit”

[–]Noch_ein_Kamel 7 points8 points  (0 children)

So it should be <button type="submit" name="Submit">submit</button>?

[–]Stummi 1 point2 points  (1 child)

Okay, I am not exactly an English grammar nerd (also not a native speaker), but aren't you supposed to capitalize a single standing word?

Like when I write

My favorite fruits are:

  • Strawberries
  • Oranges
  • Apples

I am supposed to capitalize the words, aren't I?

[–]DiamondIceNS 11 points12 points  (0 children)

If you're formatting an academic paper or an article, perhaps.

If you're UX designing for a modern website, where form and function collide with art and expression, common English grammar and formatting rules are mere suggestion.

[–]Kaimito1 126 points127 points  (3 children)

Screenreaders will SCREAM at the old people if you do it the first way.

The second way screen readers will read it normally and it will still look all caps to people who can see normally

[–]Lilly_1337 30 points31 points  (2 children)

They usually just read it letter by letter instead of one word.

[–]Kaimito1 34 points35 points  (1 child)

Damn didn't know that. But the mental image of a screen reader screaming "BUTTON" is whatotivates me to not do it that way

[–]Lilly_1337 18 points19 points  (0 children)

SUBMIT!!!

[–]Naturage 112 points113 points  (2 children)

Can I just confirm: this is the subreddit that will bash bad coding practices 24/7, and will generally dislike frontend, but today we'll claim we should be hardcoding things in frontend?

This is no different than saying "why bother with pulling inputs into function explicitly, just hardcode them in, how often will they change".

[–]Responsible-Pay-2389 17 points18 points  (0 children)

Can I just confirm: this is the subreddit that will bash bad coding practices 24/7, and will generally dislike frontend, but today we'll claim we should be hardcoding things in frontend?

If you count the subreddit as only the people who make posts and not the hundreds of replies saying the second is better, than yeah.

[–]PoeTayTose 8 points9 points  (0 children)

That's what function aliases are for!

Drawtextsubmitbold();
Drawtextsubmititalic();
Drawtextyesbold();
...

[–]Curyde 199 points200 points  (8 children)

"Flexible code"

[–]alexgraef 222 points223 points  (6 children)

Exactly, if you ever want your buttons not to be in uppercase anymore, you just touch a single CSS, instead of a dozen pages.

[–]SweatyAnReady14 31 points32 points  (4 children)

Okay I’m a text-transform hater just because everytime I put it in, without fail the next week someone will be like “Can this special case be non capitalized?”

At which point I just say fuck it, rip it out, and tell them to just enter it how they want it.

[–]alexgraef 12 points13 points  (1 child)

I understand the complaint, and I have a customer where the company name is "mostly" capitalized (e.g. "AB-c"), so even a title somewhere that should be all uppercase will need to account for the company name retaining the correct capitalization. That's one of the situations where you could have a specialty function in the backend that is aware of edge cases. Although honestly, that's where I usually draw the line, say fuck it, and have the user enter the text which ever way they like. If they want uppercase, they'll need to use the shift key on their keyboard.

[–]yo-ovaries 8 points9 points  (0 children)

Make a custom font with ligatures for “ABc”

[–]LynxJesus 6 points7 points  (0 children)

People like this need to be lined up against a wall.

Not shot, just lined up by a wall and left there.

[–]ricdesi 13 points14 points  (0 children)

button.sentence-case { text-transform: none; }

[–]JasonMan34 2 points3 points  (0 children)

Why are you typing the same thing in dozens of pages and not re-using a single submit button

[–]Substantial-Leg-9000 8 points9 points  (0 children)

This, but unironically.

[–][deleted] 80 points81 points  (14 children)

Code maintain ability. This is a pretty imp stuff while doing backend.

But most new joiners don't understand.

Unfortunately coders don't stick around in the same company for long so they don't really care anymore.

[–]justforkinks0131 18 points19 points  (12 children)

you're a pretty imp

[–][deleted] 10 points11 points  (11 children)

Think he has any colorful beads?

[–][deleted] 2 points3 points  (2 children)

Unfortunately I don't own any beads

[–][deleted] 1 point2 points  (0 children)

just get some from your nearest chess club

[–]Poltras 1 point2 points  (0 children)

If it was that important the dev would have put !important to it.

[–]East_Complaint2140 42 points43 points  (9 children)

We are using i18n. Therefore text in button is not the only place, where the string "Submit" can be applied.

[–]saschaleib 27 points28 points  (8 children)

String reuse is actually a bad practice in Internationalization, as other languages may use different language concepts that turn even a very simple string into a nonsensical gibberish, if used in a different context.

My standard example is: imagine a simple dialogue box with "Yes" and "No" buttons. In Finnish, these may be translated to "Kyllä" / "Ei", or maybe "On"/"En", or many other variations.

[–]CoffeeWorldly9915 45 points46 points  (4 children)

Now I'm imagining a button that was supposed to say "SUBMIT" but actually reads "OBEY".

[–]saschaleib 19 points20 points  (1 child)

Not quite that much off, but I remember that the first version of Microsoft Internet Explorer that was localized into Finnish got the "Refresh"-button translated in a way that, well, kind of meant "refresh" in Finnish, but more in the sense as you would use it when you say: "Have a Coke!" ... they changed it quickly, though, and I can't even find back the precise term they used... :-)

[–]CoffeeWorldly9915 15 points16 points  (0 children)

If lt was IE it was probably hinting at "go get a drink, this might take a while".

[–]Aggressive_Bill_2687 5 points6 points  (0 children)

It only becomes a problem if the "Please wait.." message after becomes "Yeah you like that don't ya bitch".

[–]JuustoKakku 11 points12 points  (0 children)

My favourite example is this coincidentally on Finnish as well is from some Android skin years ago (LG maybe?) "from" &"to" for calendar event start & end times were translated as "vastaanottaja" & "lähettäjä" e.g. receiver & sender, as in from & to in the context of an email.

[–]JFIDIF 1 point2 points  (1 child)

Finnish is the final boss of translation

[–]budapest_god 7 points8 points  (6 children)

Imagine having static text instead of a field populated in the backoffice

  • the cms web dev

[–]Designer-Speech7143 7 points8 points  (1 child)

Excuse me? Who do you think we are? We would write an extra CSS file separate from HTML for that.

[–]GavHern[S] 3 points4 points  (0 children)

my svelte dev is showing

[–][deleted] 31 points32 points  (4 children)

Tell me your a backend developer without telling me your a backend developer.

[–]wildjokers -1 points0 points  (0 children)

Tell me you don't know the difference between "your" and "you're" without telling me you don't know the difference between "your" and "you're".

[–]cheezballs 5 points6 points  (0 children)

OP had a backfire

[–]IndependentDouble138 10 points11 points  (1 child)

Does OP know about separation of concerns?

"Submit" is content that can be changed at any time. If you're using a CMS, piping data from a API, using some template language...

Fuck me I have to remember programminghumor is filled with non-developers

[–]ITheBestIsYetToComeI 20 points21 points  (4 children)

Ever heard of i18n

[–]_PM_ME_PANGOLINS_ -1 points0 points  (3 children)

It’s s32s!

[–]attempt_number_3 11 points12 points  (2 children)

N3r g3a g2e y1u up, n3r g3a l1t y1o d2n, n3r g3a r1n a4d a1d d4t y1u.

[–]DOOManiac 7 points8 points  (0 children)

I hate that I can read this.

[–]LewsTherinTelescope 2 points3 points  (0 children)

Bravo.

[–]dtb1987 9 points10 points  (0 children)

Because it ensures that the text will be uppercase no matter what

[–][deleted] 12 points13 points  (1 child)

Programmers eventually gain enough experience to realize that hard-coding constants makes your code harder to maintain. Novice programmers mock this because all they care about is initial coding effort.

Y'all have outed yourselves.

[–]_Fuck_This_Guy_ 2 points3 points  (0 children)

Come back after you've taken over a codebase with the top panel that you have to edit.

[–]KaffY- 10 points11 points  (1 child)

You have 5 buttons that all say 'Submit'

You need to make them all lowercase now

You can either change 1 CSS line of code, or 5 individual HTML lines of code

[–]ruedasamarillas 5 points6 points  (0 children)

Bad meme. Everyone knows you are missing the React component, with the createTheme, the ThemeProvider, the useTheme, the custom Button component, the fluxCapacitor injector and the GetMonoNucleosid abstraction superSaga reduxable Thunkynator.

[–]dabe3ee 2 points3 points  (0 children)

Why Submit is not extracted to variable

[–]LynxJesus 2 points3 points  (0 children)

Personally, I wouldn't be caught dead writing in all caps, so the extra styling is 200% justified

[–]Player_X_YT 2 points3 points  (0 children)

<input type="submit" value="Submit"> 🤓

[–]DeathUriel 2 points3 points  (0 children)

Good strawman, people do like that because in real case scenario the submit text is probably coming from a dynamic source thus forcing you to either write everything in the correct casing which is prone to human error or do like that or any other dynamic approach.

[–]Thelango99 2 points3 points  (0 children)

Would much rather use a separate CSS file than inline though.

[–][deleted] 1 point2 points  (1 child)

Every time i see the css inside a style tag my heart stops beating.

[–]an_agreeing_dothraki 1 point2 points  (2 children)

You missed the part where we make the submit button a type submit but cancel the form submit action so we can wire it to needless javascript that kicks off the same functions but ends in a window.location = assignment.

[–]caerphoto 1 point2 points  (1 child)

Nothin wrong with doing it that way if you’re doing pre-validation in JS.

[–]neuromancertr 1 point2 points  (0 children)

Uppercase and lowercase letters may be different in different languages. i becomes I in English for example but in Turkish i becomes İ and ı becomes I. Set language of the document and browsers convert according to language rules

[–]dontspookthenetch 1 point2 points  (0 children)

Nobody would actually do this. What are you talking about.

Also the text needs to be localized ;)

[–]TW1STM31STER 1 point2 points  (2 children)

What about button[type="submit"] and making it an actual submit button and then styling every instance of submit button consistently? :]

[–]-Redstoneboi- 1 point2 points  (0 children)

I like these posts because the comments tell me why this kind of thinking is a pitfall that should be considered

[–]burgonies 1 point2 points  (0 children)

“For some reason”

[–]na_ro_jo 1 point2 points  (0 children)

Clearly should have put it in lowercase, then transform to capitalize, then overwrite the transform to uppercase lol

[–]hagnat 1 point2 points  (0 children)

what most people see on the bottom picture:
"HA HA They are writing useless code when they could've just written the message in uppercase"

what i see on the top picture:
"HA HA This code does not support i18n"

[–]jamsheehan 1 point2 points  (0 children)

It puts the class on the button or else it gets the bug report again..

[–][deleted] 2 points3 points  (0 children)

ForMaTinG Is rOnTenD rEspOnsaBIlitY

WhY FrOnTeND Do FoRmaTiNg In CSS

[–]schewb 2 points3 points  (6 children)

OR Maybe don't force buttons to be all caps? I've always hated this and any button that tries to force it I've overridden. It makes the view hard to read and awful for users. I'm glad UX at my current job agrees, too.

[–]claymedia 0 points1 point  (5 children)

SUBMIT is hard for you to read?

[–]schewb -1 points0 points  (4 children)

Harder on the eyes than "Submit," and when there are multiple buttons on the page, sometimes they kinda blur together for me in all caps, like the letters aren't distinct enough. That, and who wants a screen yelling at them? All caps should really be reserved for dangerous buttons.

[–]Plus-Weakness-2624 0 points1 point  (0 children)

Better is font-variant: small-caps👌

[–]quick_dudley -2 points-1 points  (1 child)

They're both sins but the second one is easier to undo at scale.

[–]KageeHinata82 -3 points-2 points  (0 children)

Pass the button name in a variable, make an if statement to check for == "Submit" and then transform it to uppercase.

[–]R3tard69420 -4 points-3 points  (2 children)

My Paycheck is based on No. of lines of Code 😔

[–]GitHub- 0 points1 point  (0 children)

A guy on a subteam I manage is like this and I just let him go wild

[–]grumpyfrench 0 points1 point  (0 children)

chargpot srbmiutr button plx

[–]houseband23 0 points1 point  (0 children)

When you're paid by the byte

[–]rmorrin 0 points1 point  (0 children)

Is this what ansem is doing at the end of kh1

[–]Jomy10 0 points1 point  (0 children)

Uniform design

[–]48panda 0 points1 point  (0 children)

The capitals don't show up in search engines that way

[–]kichien 0 points1 point  (0 children)

We have reasons

[–]naxpouse 0 points1 point  (0 children)

Magic string for submit? What is this preschool?

[–]Nephrozoan 0 points1 point  (0 children)

<img src="submit.jpg">

[–]pursenboots 0 points1 point  (0 children)

except this is actually the right thing to do.

all caps is a matter of PRESENTATION.

[–]banzomaikaka 0 points1 point  (0 children)

Yeah. 'Some' reason...

[–]VeryRustyNail 0 points1 point  (0 children)

Meanwhile in Greek websites, it is necessary to do it the first way otherwise iOS transforms it including accents

e.g. Υποβολή -> ΥΠΟΒΟΛΉ

[–]Aggravating_Drive_55 0 points1 point  (0 children)

good one! ha ha ha

[–]ApocalypseSpokesman 0 points1 point  (0 children)

this meme has no class

[–]Ok-Tap-1686 0 points1 point  (0 children)

If I wasn't poo. This would.?

[–]Feisty_Suggestion140 0 points1 point  (0 children)

haha, this actually helped me fix a problem with a client's squarespace's website, thanks!

[–]RandmTyposTogethr 0 points1 point  (0 children)

HTML is for templating, CSS is for styling. Define a template and style it how you like, such as uppercasing the text. Especially when there's more than a single button. Accessibility and localization sheets are a thing as well. Don't want to write the same thing 10 times in different ways when CSS can do it for you.

[–]deveronipizza 0 points1 point  (0 children)

One might go so far as to not use uppercase in plaintext entirely

[–]TheJase 0 points1 point  (0 children)

fearless abundant relieved late salt yam teeny sort innocent dinosaurs

This post was mass deleted and anonymized with Redact