How dare you ship broken text input!?

As a user, I’d like text inputs to work. Especially if the product is fundamentally based on text entering.

Reasonable request, right?

That’s not the world we life in.

Let’s just look at 3 of the most popular workplace tools: Slack, Jira, Confluence, and Outlook 365. Those products primary goal is asynchronous communication or documentation. Without text input, they’d be utterly useless. Each of them have tens or hundreds of million active users. Slack, Atlassian, and Microsoft are companies that employ hundreds of engineers.

One would assume, that under the considerations of affected users, available resources, and revenue at stake, those companies would never dare to ship broken text input.
Oh, but they do!

Let me go through each product and demonstrate text input bugs. I’m not claiming that implementing a good text input is easy – quite the opposite. But none of the bugs I’ll demo is obscure. They are definitely known to the companies. How they do not prioritize fixing them goes beyond me. I’m running into every one of them, and many more, every day. It’s the sort of thing that drives me as a user so nuts that I’m close to throwing my computer out of the window. Collecting the screen recordings below took me literally 5 minutes, it’s that easy to find / run into those issues.

Slack

Since Slack moved to a WYSIWYG editor, there’s been an explosion of text input regressions. My interpretation: markdown was no longer tenable for the mass market that Slack finds themselves in. And once there’s WYSIWYG, keyboard usage tends to be down-prioritized.

Slack code input

We see: highlighting code snippets is hard, because the amount of rendered characters reduces once the code snippet is concluded. Then the cursor is confused as to whether it’s inside or outside the code snippet.

Atlassian

Jira is the worst. Seriously. 50% of the times that someone attaches an image to a ticket, it never renders for other people. But the most insulting to me again is code input – it’s speculated that Jira is used by 50% of software developers worldwide – how does Jira not prioritize code rendering?

Jira code input

Alright, so Jira replaces the wrong characters with the highlighted code – in the cases where the recognition that the backticks belong together even work. Whenever I create a ticket from the kanban board, it doesn’t even recognize code blocks.

Let’s move on to Confluence. I’m going to pick tables, and bullet points. None of those work in Confluence. But the combination of both is where it becomes funny:

Confluence table input

So: creating a bullet list creates a line-break before the bullet list that can’t be deleted. And another one after @ name mentions. It gets much worse once I add action items with [], and try to add sub-points in bulleted lists. It happens frequently in meetings where I document that I undo steps, because all layout breaks. There’s cases where un-doing and re-doing operations un-does text input, but not formatting changes. In those cases I accidentally remove my input, and have to start all over.

Outlook 365

And of course, bulleted lists are another one of those topics that works nowhere, including in outlook 365. Lean back and enjoy:

Outlook bullet input

Every time when deleting a bullet, the cursor ends up in random places in the text area. The case I’ve recorded here is minor: the cursor ends up in the end of a line, but at least on the line above the deleted bullet point. In other cases with more text it happens that the cursor is shown in the middle of a paragraph, though typing actually types in the right place.

Plea for sanity

If 90% inside your product is spend entering, editing, and reading text, there’s nearly no feature more important to the UX than good text input. Make sure it’s rock-solid! When there’s bugs, fix them fast.

The first to get it right?

Update from October 2022: There’s finally a contender for a tool to get rich text editing right, in thoughtful, innovative and - in retrospect - obvious ways: The Bike outliner Mac App from HogBaySoftware. See this post to see what I mean.