Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

I am creating an iPhone app where I need to show transient confirmation messages (called a toast in Android). For example, when a user submits a comment, I pop up a message saying "thanks for submitting your comment". Shortly after, the message will fade away. There exist many such transient messages all over my iPhone app. I realize that Android and two preset times - "short" and "long", but I'm recreating it on iPhone where I have total control.

enter image description here

What I would like to do is to calculate the optimal time to show each message based off of the number of characters in that message. I want users to have enough time to comfortably read the message, but not so long that the message impedes their usage of the app.

X = number of characters.
F(X) = seconds to read entire sentence given X

Is it linear? That is, if it takes 0.5 seconds to read "hello", it would take 1.0 second to read "hello world".

F(X) = 0.1 * X

Does it decay? That is, as people read a long sentence, their reading speed increases?

F(X) = 1 / X

Or is it quadratic? That is, each additional character ads more time than the previous word?

F(X) = X ^ 2
share|improve this question
    
This has also been posted on Cognitive Sciences: cogsci.stackexchange.com/questions/1147/… (migrated actually) but I personally think it's just fine here as well, if there are no objections. –  Ben Brocka Jun 16 '12 at 0:43
    
I re-posted it on UX before I realized a mod migrated it to CogSci. –  JoJo Jun 16 '12 at 0:46
    
I wasn't chastising, I just figured I should add a link to the other so people can see the answers on both sites. –  Ben Brocka Jun 16 '12 at 1:59

3 Answers 3

up vote 0 down vote accepted

According to wikipedia's speed reading entry it's 200 wpm

I really don't think the science is the main issue with this solution. You need to test and evaluate real use.

share|improve this answer
    
Thanks for the revision, @Lisa :-) –  Jørn E. Angeltveit Jun 18 '12 at 13:39

I realize this is a fairly old question, but I got here from google so others probably will too.

I had a similar situation, I needed to show a notification to a user (on a desktop) that could contain any number of words, and of course show this notification for an appropriate amount of time.

I did a little research and drew from the answers from another question, and this is what I came up with (in python):

def getWaitTime(self, text):
    ''' Calculate the amount of time needed to read the notification '''
    wpm = 180  # readable words per minute
    word_length = 5  # standardized number of chars in calculable word
    words = len(text)/word_length
    words_time = ((words/wpm)*60)*1000

    delay = 1500  # milliseconds before user starts reading the notification
    bonus = 1000  # extra time

    return delay + words_time + bonus

180 words-per-minute is suggested on the the Wikipedia article for reading on a computer (as opposed to on paper), though perhaps it is a little slow, my notifications will have obscure file names that might take a little longer to read. This is also why I included the bonus time.

The delay time is to account for the user noticing the notification in the bottom right corner and starting to read it.

The same Wikipedia article mentions that words-per-minute is not technically true, since a "word" is counted every 5 characters (including spaces and punctuation):

For example, the phrase "I run" counts as one word, but "rhinoceros" and "let's talk" both count as two.

share|improve this answer
    
I'm not sure why the syntax highlighting isn't working there. If you want it, the same code is here: pasteall.org/53079/python –  Greg Zaal Jul 26 at 10:18

Adult literate people don't read by the character. They do that only for foreign languages in the first stages of learning that language, and even that mostly for languages using a script very different from the languages they do know (as an English speaker would for Arabic, but not for German). Otherwise the word registers in the brain as a whole, pretty much immediately. Perhaps for the word "encyclopedia" it would take longer than for the word "ant", but the difference is a matter of milliseconds at best, and probably not even that. Also, it's both extremely subjective (based on how frequently that person uses that word) and extremely difficult to measure.

In short, just do some user testing. Get a few people, show them a few messages with different fadeout times, and see what feels the most comfortable. Or play around with some apps already doing it (preferably by a developer who has probably researched this - e.g. Apple), and try to reverse engineer their solution.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.