Treating User Myopia

Jeff writes:
“I’ll also note that 95% of the above commenters have also put carriage returns between their paragraphs. :)”

While this is true, it doesn’t solve the problem. Many of the e-mails I get don’t use two returns between paragraphs, so I’m guessing there’s a number of people who don’t write that way, even though most of the people commenting here do. Pointing out that 95% of the people don’t have that problem doesn’t solve the problem.

Those wo do have the problem have no obvious way of figuring out why Markdown isn’t working for them. The best solution would be to fix the problem, rather than trying to fix the people.

One way of fixing it would be to automatically add a second return character via JavaScript when appropriate, while the user is typing. Another way to fix it would be to change Markdown itself. Markdown ignores single returns because that allows people to format ASCII text columns with fixed widths without breaking the resulting HTML. I think in Stack Overflow’s case, that feature is not necessary.

Jeff,

I believe the problem is you’re trying to make users play your rules, do something in an usual way.
Even if I can understand your point, I’d face the same problem, as the user you showed. For years I’ve been using the ‘Enter’ key to make a line-break in various text-editors.
And if everything I want, is just ask a question, I don’t want to learn a new way to make line-breaks.

So, I think you should accommodate yourself to users, not vice-versa, to ensure they’re happy and you have less head-aches.

Good luck

Users do that because we’re trained by advertising to ignore everything that isn’t dead-center. Anything on the side obviously isn’t important, especially if it’s trying to catch your attention.

“Either make the editor WYSIWYG or just plain text”

They’re not mutually exclusive…

I think it’s very arrogant to speak about users in this way. We are all overwhelmed with a vast incoming information wave every day, every hour, every minute. That the brain tries to canalize this wave into manageable streams is only logical and also very much supported by science. You should stop insulting users and start reading neuroscience text books.

(Btw, what that means is that the more sophisticated the user, the less likely they are to be scouring your web page for hidden gems.)

You need to target people specifically rather than generally. This isn’t really something that’s unique to UI’s, there’s examples of this in practice in every single human endeavour you want to think of.

Directors know that actors never listen to instructions. It’s irritating and it pisses a lot of directors off, but at the end of the day - when it happens again and again for every single actor they work with - they begin to understand that it’s not that actors are lazy or stupid, but rather that there’s actually a fundamental human principle at work.

One of the easiest ways around it is to target people specifically and personally rather than generically. If you’re sitting in a crowded office and the phone rings, saying ‘Will someone please get that?’ woun’t be as effective as saying ‘John, will you please get that?’ Same when working in a cafe or anywhere with a lot of small, fast jobs that could be done by any number of people. It’s useless shouting a list of jobs that need doing to the room in general, cafe owners will target specific people for specific jobs.

You need to recognise what the information is that you want to convey, who the best person is to make use of that information and put it in front of them clearly, bluntly and with their name prominently attached to the beginning of it so they realise it’s important to them personally.

You can’t outsmart stupid people. If you put sample text in the text entry box, you’re going to get a lot of posts where the sample text is included, either as well as or instead of the actual question.

What everyone else said. It’s not that your users are myopic, it’s that they’re a little too quick to recognise banner ads, sneaky little Google ads, meaningless copyright footers, and so on. Sidebars on the left are menu items, sidebars on the right are ads. That’s what years of web usage does to your brain.

As for Markdown, what is this, 1990? Computers are supposed to be smart. In 99% of all cases, a half-clever parser would be able to recognise exactly what formatting the user had in mind, then format the message accordingly. You can recognise lists, paragraphs, VARIOUS c-o-m-m-o-n forms of EMPHASISING words, code, spacing-sensitive tables, and so on. To avoid annoying the remaining 1% there is nothing wrong with bringing up the formatted message after the user clicks submit, saying, “This is what your message will look like. Submit it like this? Edit it some more? Stop autoformatting? Need help?”

And honestly, the help provided in that sidebar is just cryptic. “indent code by 4 spaces” - Huh? So if I paste in some code, the tab stops are 4 spaces apart? Where do I change that setting? “use to linebreak use 2 spaces at end > blockquote” - so each line should end in " "? And I end the message with “> blockquote”? I am being deliberately obtuse, but I think in this particular case reading the help text wouldn’t help most users at all.

You’re right that users will only ever read the bare minimum of the text on screen. But I don’t like the solution of simply moving text to where the user can’t miss it. You’re much better off making the text unnecessary.

The preview pane would be better on the right of the editable pane.
My SO questions normally get quite long and it’s pretty tedious to have to scroll up and down all the time.
Especially now that almost everyone uses a widescreen display.

Oh and my views on the whole CR thing. A double CR should mean “create a new paragraph”. A single CR should mean “put this on the line below in the same paragraph”.

Nice post.

Why users read only the bare minimum necessary to get the job done?

Because web sites are 90% fluff. Links you don’t need, advertising of the next coolest browser game, links you don’t need ATM, legal mush.

Documentation is even worse. You want to look something up, you have to skim dozens, perhaps hundreds of pages completely irrelevant to your problem.

Windows dialogs? Have you ever gathered helpful information from a Windows dialog that wasn’t already obvious from the fact that it appeared at all? Yet still the average dialog box contains three lines of completely irrelevant and confusing bla-bla.

So users got used to not-reading, because they wouldn’t get anything done otherwise.

Coming from the Amiga community originally, I weep for what we’ve lost.

Of cours users do not read help and do not use tag based formatting (lambda users at least).

While using a form like you describe, you’re advised to format your posting, not constrained to. Even if the user is smart and read the right column text, it could be in a urge or simply do not want to make the effort to format his text, like in “Content only matters”, that sort of crap.

Here we solve this problem of user’s blindness by using separate form fields (wether the are WYSIWYG or not). For this particular example, we would have put somehing like thie
1 title of the question
2 brief description
3 steps to reproduce
4 code sample
5 remarks/comments

I saw few bug trackers using a form design like this, to enforce user to structurate is content.

Even WYSIWYG editors are not adapted to any public, especially when the feed public corporate website. Some users tend to use hugly colors, 16px typo, etc. And in the end, our customer complains that is corporate image is stained by non uniform text layouts and color…

For some projects we drop almost all functionnality in the WYSIWYG editors leaving only a CSS class selector with 3 or 4 classes (say 1 normal,1 colored+bold, 1 for titles, and 1 italic)…

Carriage returns are handled properly using automatic paragraph and HTMLPurifier configured to remove empty paragraphs.

That’s sad for end-users but the only way to get proper output. But they seems comfortable with this, and do fear of final online result, and do not hesitate to use the few styles available to enrich their writing.

If a user doesn’t put carriage returns between paragraphs, why punish him by munging his post even more?

What’s the benefit of ignoring single carriage returns?

Question-askers like the one in your post just want an answer - they shouldn’t have to learn arcane rules about formatting - no matter how easy you make it to learn them.

The guy seems to have asked an intelligent wellformed question. It wouldn’t be difficult to format it nicely for him, automatically.

Just interpret the linefeeds literally. You could even detect the list.

just read the 20+ comments above yours. Notice a pattern?

yes, pretty much everyone is using:

  • double newline for paragraphs
  • single newline for bullet points or numbered lists

Conclusion: bullet points and numbered list entries are not paragraphs.

I think people forget that a lot of people actually don’t care too much about formatting or presentation. If I posted something which looked wrong I would immediately edit it and figure out how to make it look good.

Unfortunately in my experience a lot of people either can’t see that it looks wrong or don’t think its important to spend time cleaning it up.

I’m not a fan of WYSIWYG editing, at least for Stack Overflow. But line breaks with carriage returns are essential, I don’t understand why they shouldn’t be implemented (and I don’t understand Jeff’s comments about this).
Line breaks alone would make the text of the example more readable. I think this is sufficient for the users that don’t really care about formatting. The users that care will go the extra mile.

The problem would be solved with (from John Gruber) the GitHub Flavored Markdown (GFM) - http://github.github.com/github-flavored-markdown/

  1. Newlines: “GFM treats newlines in paragraph-like content as real line breaks, which is probably what you intended.”
  2. Multiple underscores in words: “It is not reasonable to italicize just part of a word, especially when you’re dealing with code and names often appear with multiple underscores. Therefore, GFM ignores multiple underscores in words.”
  3. URL autolinking: “GFM will autolink standard URLs, so if you want to link to a URL (instead of setting link text), you can simply enter the URL and it will be turned into a link to that URL.”

Why do most people put a line break between paragraphs here? Because they are preserved.

I didn’t used to, but I saw other people doing it, thought it was clearer so started doing it.

I could work that out because I know how line breaks work. I press enter, I get a line break. I press it twice, I get a line break between my paragraphs. I can figure it out because it works how I expect.

Without preserving the line breaks it’s a little more difficult to figure this out. “Why aren’t my line breaks appearing, everyone else has them, but mine get squished. Must be a bug or something. Maybe some complicated markup, or perhaps?” vs. “Oh, everyone else has two linebreaks, I’ll do two as well”.

Because it doesn’t work how the user expects, they find it difficult to work out how to get it to work.

Give in, preserve line breaks. The initial text will then be easier to read, and people can still come in later and fix it with two line breaks. It also makes it easier for people to work out how to fit the community style by logical steps. If one line break doesn’t work, why the hell would two? It’s not a logical step.

Jeff,

I think you’ve misunderstood your own post. The point of “Teaching Users to Read” is not to teach users to read, but that you should design UI so they don’t have to.

“My intent is not to make fun of users, but to illustrate that there are far more effective ways to communicate with your dog. Essentially, any time you’re asking the user to make a choice they don’t care about, you have failed the user.”

If a user fails to use your UI in the way you expected, the user isn’t at fault, you are.

Looking at your screenshot it’s obvious why someone isn’t going to read the instructions: they’re in the wrong place, there not highlighted in any way, the title’s misleading. There’s nothing to suggest these are important instructions that must be read before. Until you put arrows around the offending text I would have assumed it was another advert.

Also, when will you give up stripping HTML tags and escape them instead?

Maybe some complicated markup, or perhaps?

is meant to read

Maybe some complicated markup, ‘p’ or perhaps ‘br’?