I’ve revisited the "inline topic editing"; the feature that allows one to edit the topic’s title when viewing them as a list in a forum.
Currently, one has to double click on the topic’s table cell to activate the edit function. This is rather unfriendly. I had considered adding an "inline edit" icon somewhere but that would take away some of the "Desktop OS"-ness of the feature.
With desktop applications, we double click the icon or text to launch the application. Unfortnately, we only click once to lauch a web page. This incongruent interface means that we cannot directly emulate a desktop application unless we required a double click to load a topic. This would, of course, be silly. It’s too late to reinvent the internet and requiring a double click would be akin to asking one to hold a mouse upside down.
To make matters worse, when one right clicks a link, the browser’s pop-up menu is expected to appear. To change this behaviour would remove the browser’s features and confuse the end user. As we’re unable to modify the right-click menu, we can’t do much with that.
I did notice, however, that when one wishes to rename a file in Windows or Macintosh, you simply click-pause-click or click-hold-click. Of course, this is of no use to a web based application because after a single click you expect the page to load.
I decided to opt for a simple ‘click-hold’. After 1500 milliseconds (1.5 seconds) of holding, the link changes to the text input box allowing one to edit the topic title. This isn’t a totally natural interface request, but due to the limitations and the discordant nature of web/desktop applications, it’s a workable solution. This solution doesn’t interfere with a single click and doesn’t interfere with the browser’s right-click menu. I only need to ensure that this won’t interfere with screen-readers and other devices designed to make browsing easier for those with disabilities.
It was pretty easy to achieve really. Just a few link events (mousedown, mouseup) and a timer to check how long the mouse has been held down for. A setTimeout loop ensures that the time is constantly checked until the mousebutton is released.
Check out the result below.
Topic-Editing.mov (Quicktime .mov 1.7mb)
Recent Comments