Favorite quotation: Before you criticize someone, you should walk a mile in their shoes, that way when you criticize them, you're a mile away and you have their shoes. - Jack Handey

Thursday, April 11, 2013

iOS Text Selection Woes

I feel like text selection has gotten worse in iOS as time has gone on. Especially in webpages.

Sometimes you go to select text in a webpage, and it's like it can't decide between whether you're trying to select a single word or the entire block of text. I think this might have to do with the underlying JavaScript or HTML code of the webpage and some type of interaction between that and the act of selecting text. What I think might be necessary would be an abstraction layer that separates the text that the user is seeing from the underlying code that is generating that text, so that when you select some text the operating system is analyzing your interaction with the text that you're seeing without interference from any underlying mark-up or scripts.

An example of one of the problems that comes from this are times when you're trying to select one sentence at the end of the paragraph on a webpage and as soon as your selection reaches the last word all of a sudden the entire selection area expands to encompass the whole paragraph. Another really annoying thing is when the text selection area expands to automatically encompass the following word after the one you're trying to select. This could be due to character encoding variations causing the OS not to recognize spaces.

This type of interface problem is inherent in the MVVM programming patterns common on the web because there are no abstraction layers between the view, controller, and the data itself. You don't see this problem with selecting text in an RSS news feed because in that case, there is an abstraction layer and the view is not tied directly to its controller.

Generally speaking though I think that the OS should by default simply allow the user to select text without modifying their selection, and expanding it to the nearest full word etc. The automatic detection aspect is what is really causing all the problems because it's not prepared to deal with the weirdness found on the web.

One example is the Github "RAW" view of text. You can't "select all" and trying to select a given set of words is kind of hard to do. Kind of ridiculous, since all it is, is a page of text.

Another example is the fact you can neither "paste" nor "cut" if the on-screen keyboard isn't on the screen. So I finally get the selection box over the text I want, and now I have to clear my selection to get the on-screen keyboard to appear. When the keyboard is on the screen it usually changes the scrolling behavior of the text, and making the selection doesn't involve typing anything. You also get a smaller screen area to work with. So why do they do that?

And why can't you have a docked, split keyboard?


Post a Comment

<< Home