Category Archives: User Agents

Browsers, search engines and other user agents

Firefox Interface

A while ago, Scott Berkun – one of the developers of early versions of IEannounced that he’s switched to Firefox and provided some feedback regarding Firefox’s user interface. This was later followed up by Asa, who attempted to address some of his concerns. I too am going to take a look at some of his issues, as well as discuss a few more of my own.

Find Toolbar

Firstly, the Scott complained about the Find toolbar being at the bottom of the screen instead of the top. Personally, I think putting it at the bottom is the best possible location for it, for the following reasons:

If it were placed at the top, then its appearance would likely cause the page to shift down, or else cover up the top part of the page a little: both of which would not be good for usability. The top should also be reserved for toolbars/information bars that deserve the user’s focus and attention. In the case of the find toolbar, especially since it is “find-as-you-type”, the user’s primary focus is not on the toolbar itself, it’s on the page; or, more specifically, the location of their search terms highlighted within the page.

I use find-as-you-type quite often and the amount of times my focus actually shifts down to the toolbar itself is minimal: usually only when I want to select “Match Case” or click the close button (on the occasions when pressing Esc doesn’t work, after taking focus away from the toolbar.)

One minor issue with the find toolbar is, that if I press Alt+C to check/uncheck match case, the focus shifts to the checkbox and I can no longer continue typing. I have to tab back to the text box to do so, but then the the text is all selected again and I can’t just continue typing from where I left off. When using this keyboard shortcut, focus should immediately shift back to the text box and allow me to continue typing. It should not highlight the contents of the text box, as usually happens when a text box gains focus, the carat should return to the same position.

Downloads Dialog

Scott also talks about the Downloads dialog and mentions that it would be better implemented as a one line toolbar at the bottom, much like the find toolbar. As mentioned in the comments in Scott’s post and also by Asa, this is already possible using the download status bar extension. Personally, the download dialog never really bothered me that much, but I agree that removing unnecessary dialogs is a good thing. The other alternative to the toolbar at the bottom, is to place it in the sidebar, as is done by the All-in-one-sidebar extension.

Tabs and New Windows

Scott also states that Firefox goes against IE’s window implementation by starting each new tab instance from scratch and not bringing over the history. At this point, I’d like to point out that IE initially went against Netscape’s implementation which, IIRC, never carried the history over between new window instances.

As I’ve been a Netscape user for a long time, I’m partial to the Netscape/Mozilla/Firefox model and I don’t think it makes sense for new tabs/windows to bring across the history from other windows. I never liked that behaviour of IE – it always seemed quite unintuitive. When I request a new tab/window, I expect just that: a new tab/window, to start afresh with a clean slate, not a copy of my current tab/window. Besides, IIRC, there are some extensions available which allow you to duplicate tabs, for those that want that behaviour.

Location Bar

The file menu is mostly quite good. All but one item, that is. The Open Location item is, under normal circumstances, almost completely useless. All it does is give focus to the location bar (at least when the location bar is present on the toolbar). It could be argued that it’s presence does provide a means to discover that Ctrl+L will give focus to the location bar, but a menu item for the sole purpose of giving focus to something else still seems rather pointless.

After some investigation, however, I discovered that it’s not completely useless. In the event that the user has customised the toolbars and removed the location bar, the result of selecting Open Location… is to open the “Open Web Location” dialog box.

The Open Web Location dialog box contains: A combo box for entering or selecting the URI; A Choose File… button for selecting a local file; Options for opening the page in the current window, a new window or a new tab; and Open and Cancel buttons.

This dialog box looks disgusting. Honestly, it looks like it was slapped together quickly without much thought, and nothing done with it since. The combo box for entering the URL looks too narrow (vertically), it should be the same height as all other text boxes and drop down lists.

The “Open in” list is useful, but it requires too many clicks to use: one to open the list, another to select the option and a third on the open button. There probably should have, instead, been 3 buttons: “Open” (for current window), “New Window” and “New Tab”. That way, it only requires a single click regardless of the user’s decision. Another problem with this dialog is that the keyboard shortcut: Alt+Enter doesn’t work for opening a new ta, like it does for the location bar. Lastly, the “Choose File…” button could be useful; however, there is already an “Open File…” option in the File menu, so it seems quite redundant.

I suggest removing this dialog completely and making the following changes:

  • Open Location… should only be visible in the File menu when the location bar has been removed from the toolbar. (though, this one is debatable since there would then be no way to discover that Ctrl+L focuses the location bar, except by reading the help files, but then there’s no such ability for using Alt+D either, which works in both Firefox and IE.)
  • Instead of opening a dialog box for this menu item, a location toolbar should appear at the top of the page (like the way the find toolbar appears, except at the top of the page).
  • The appearance of this toolbar should not push the page down. It should instead just temporarily cover up the top of the page. It should disappear once the user has opened the new location or taken focus away from it.
  • It should also have a close button, but I’m not sure whether it should appear on the right (like on the yellow information bars) or on the left (like on the find toolbar).
  • Don’t bother adding the Choose File… button, it’s redundant.
  • Extend the Go button with a drop down menu, just like the back and forward buttons have. This menu should contain “Current Tab”, “New Tab” and “New Window” (in that order), with their associated keyboard shortcuts beside, which is useful for discoverability. Doing this would actually make the Go button useful. I’ve never used it myself, but I’ve heard that some users don’t know they can just press Enter instead.

Web Search

Similar to the location bar, there’s a “Web Search” menu item (in the Tools menu) with the sole purpose of giving focus to the search box. It also serves to reveal the keyboard shortcut: Ctrl+K. However, unlike Open Location…, it does absolutely nothing when the search box has been removed from the toolbar. My recommendation for this is essentially the same as for the location bar:

  • The menu item should only be visible when the search box has been removed (but the same argument for not doing so with Open Location still applies).
  • When selected, a web search toolbar should appear at the top of the window.
  • On this toolbar, there should be a Search button (similar to the Go button). It should also have a drop down menu, with the same 3 options as the Go menu, which I suggested above, for opening the search results page in the current tab, new tab or new window.
  • This search button should also be available for adding beside the current search box; if not there by default (though having it there by default may look too cluttered).

Plugins

For the most part, the plugin interface is very effective. It’s so easy to install a missing plugin, it takes just a few clicks and it’s all automatic. That’s fantastic… Well, at least until I choose not to install a plugin, in which case Firefox will bug me every single time I visit a page that requires it. I should be able to decide that I don’t want to install Flash, or that I don’t want to install Java, and Firefox should respect my decision and show me the alternate content instead. If the page doesn’t have accessible alternate content, I’ll just leave if I can’t do or find what I want, but I don’t want to be bugged by the information bar every single time, for the same plugin.

I’m not sure how the interface should look to implement these features, but I should be able to perform the following functions:

  • Install the plugin (already possible)
  • Choose to install it later, and be reminded next session. (Similar to the current default behaviour, but not be reminded every time a the page reloads during the session)
  • Choose not to install the plugin, and not be reminded later.

If I choose to install later, or to never install it, then the alternate content should be displayed. Currently the “Click here to download plugin” place holder is left there even after I dismiss the information bar; which makes that page inaccessible, even if the author was sensible enough to include alternate content.

I should also be able to manage the installed plugins, just like I can manage the themes and extensions. I should be able to easily install, enable and disable plugins at will, from a menu like Tools>Plugins… The menu should open a dialog similar to the Extensions dialog, and the Get More Plugins… link should open the Plugin Finder Service and list all available plugins, including Flash, Java, Quicktime, etc.

As for the “Click here to download plugin.” place holder, it needs to be redesigned a little bit.

Screenshot: Click here to download plugin. place holder

Firstly, remove “Click here to” and just use “Download plugin”. Users know how to click links, they do it all the time, and “Click here” links are well known to be extremely bad for usability, despite the fact that they’re abused by billions of websites. However, the text also needs to be styled to look like a link. It should be blue and underlined (or however the user has configured the default link style in the preferences). For example:

Sample rendering of the “Download plugin” place holder with the text styled as link.

Another option would be to make it look like a button, either option would be acceptable. This has already been done with the yellow information bar, I recall that it used to say “click here to…” as well, in older versions, but now uses a button on the right. The whole point is that a user should not have to read instructions to use something; it should be obvious from its design that it should be clicked.

The Google AutoLink Debate

A few weeks ago, Google added a new AutoLink feature to the Google Toolbar 3 beta which automatically recognises certain structures including street addresses, ISBNs, package tracking numbers and automobile VINs; and converts them to useful links for the user. This feature has been met with a great uproar from the blogging community with many arguments for and against it.

Basically, the feature has been called by some ‘as evil as Smart Tags’, while being recognised as ‘useful for the user’ by others. Authors have cried foul over its modification of their documents without consent, yet it is praised by others for giving the user the added information; ridiculed for inserting links to a potential competitor’s site, yet applauded for giving the user some choice in the matter; and finally criticised for the lack of an opt-in or opt-out choice for the author or publisher, while some user’s are screaming back about ‘who’s user agent is it anyway?’

So, in light of all this discussion, I’m going to take an objective look at the debate so far including all the major arguments I’ve found, both for and against, giving the perspective of each affected group: content authors and publishers, users, and Google; and examine the desire for author control by means of an opt-in or opt-out mechanism.

The Problems

Many high profile bloggers have noted their strong objections to this feature, each relating to different aspects of the issue at hand. These problems include document modification and the publisher’s rights to control their content; the insertion of advertisements and the monopolistic effect this may have on competition; and the lack of choice for the content publishers.

Counter arguments for each of these issues primarily revolve around the user’s rights and ability to choose where and when such modifications take place, including the fact that it’s not an automatic process. This raises questions about the user’s ability to discern the origin of the links, how far software producers (including Google) may go to provide such features and whether or not the proverbial line has already been crossed.

Along with the arguments from those that don’t support AutoLink, there have been requests for the ability to either explicitly opt-in or opt-out on a page-by-page and/or site-wide basis, with most claiming that either would be acceptable, yet debating about which is the most appropriate. On the other hand, those that do support AutoLink claim that neither are acceptable and authors that should not interfere with their user agent functions.

In summary, this can be broken down into separate issues that need to be addressed, including:

Document Modification

Robert Scoble’s main objections relate primarily to the document modifications, claiming that the integrity of the document is destroyed because the user agent is modifying it (despite it being at the user’s request) to include links to resources that the author did not intend to be there.

I believe that anything that changes the linking behavior of the Web is evil. Anything that changes my content is evil. Particularly anything that messes with the integrity of the link system.

In relation to this issue Scoble also claims that the rights of the publisher and of the user are in conflict with each other, and questions: in the favour of which group should this issue be resolved.

As a user I’d love all sorts of things. But don’t you see that the rights of the end-user are in conflict with the rights of the content producer? Will you ALWAYS settle the argument in favor of the user?

Similarly, other’s have agreed with this and request that the rights of the publisher be met by means of an opt-in or opt-out mechanism, which I will address later.

Counter claims have likened such document modifications to Ad blocker’s that remove advertising content from pages, site scapers that extract or alter the site’s content at the user’s request, the ability to control font sizes, colours and the overall ability to override or disable stylesheets; and other user agent extensions that perform document modification functions all at the request of the user.

Cory Doctorow wrote in Why you should love Google’s toolbar that the user should be able to request a user agent to perform any document modification at all, so long as the user agent is not, in anyway, committing fraud (i.e. The user must know and understand that the modifications are taking place).

I think I should be able to use a proxy that reformats my browsing sessions for viewing on a mobile phone; I think I should be able to use a proxy that finds every ISBN and links it to a comparison-shopping-engine’s best price for that book across ten vendors. I think I should be able to use a proxy that auto-links every proper noun to the corresponding Wikipedia entry.

Similarly, Anil Dash agrees that the document is fodder for processing however the user likes.

In the same way I can rip, mix and burn all the other media I bring into my computer, something as straightforward as an HTML page should be fodder for processing however I want.

In response to this issue, Dave Winer asks:

…what happens when Google isn’t satisfied to add links to our sites, suppose they were to change the actual words? I haven’t heard Google say they would never do that, have you?

That’s an interesting point, but it fails when you consider that such modifications by other user agents already occur. In a follow-up article on Boing Boing, Cory Doctorow and others proceed to list several user agents and tools that perform document modifications at the user’s request on a regular basis. In addition to this list, there are several other’s that should have been included, which I would like to point out.

  • The Linkification extension for Firefox automatically converts plain text URLs and e-mail addresses to clickable links, in a way similar to Google’s AutoLink, by inserting <a> elements into the DOM.
  • The W3C’s Semantic Extractor scrapes content from a document and outputs all the semantic information it can find.
  • XSLT is designed to transform any HTML, XHTML or XML documents into another format.
  • AltaVista’s Babel Fish and other translators do change the actual words of a document – that’s its purpose! As a result (because automated translations are not perfect) the intended meaning of the author may be unintentionally corrupted by the tool.

Yoz Graham explains, in response to some other questions from Dave Winer, that such modifications are completely acceptable, as long as certain conditions are met.

If a content-modifying function:

  1. has a definition that is completely understood by the user
  2. is only invocable at the user’s request and in isolation (i.e. not automatically)
  3. has an effect limited to the user who invoked it

then it’s entirely within the spirit of the Web, no matter what modification it performs. No exceptions.

Indeed, I must agree in favour of allowing document modifications and note that those conditions are met by each and every one of those tools and user agents listed above. However the question is: are all of those conditions met in the case of AutoLink? Basically, the answer to that question all comes down to the user’s understanding and choice in the matter.

The User’s Choice

The user’s ability to choose the way in which they access content on the web is central to the way the web works. A user may choose which browser they use, which extensions they install, whether or not they want to see images, the allowed fonts and colours in a document, and many other presentational aspects. A user may choose whether or not they want to access a site and which links they want to follow from a site. They choose whether or not they wish to access or download resources, and which information or services they want from those resources.

AutoLink is just one service offered by the Google toolbar, which the user has the complete freedom of choice to use or not. However, while some choices are completely under the control of the user, others are not and are causing a great deal of controversy. In relation to this issue, Dave Winer states:

The issue for authors and publishers is whether readers know they’re reading text that’s been modified.

There are really two aspects to this question: whether or not the user knows that changes have occurred and whether or not the user is able to determine which changes were made. Google’s Chris DiBona and Marissa Mayer describe how the use of both AutoLink and the toolbar itself are entirely under the control of the user. Chris DiBona as quoted by Robert Scoble in Ahh, evil feature not evil if you force user to download, sign EULA, and click button? states:

We allow the user to never install the toolbar and never use the feature… User choice is the difference.

Chris DiBona states in Oh Please!:

Since the user explicitly wants to do this, the user is choosing to augment the content of a given website.

Danny Sullivan quoting Marissa Mayer in Google Toolbar’s AutoLink & The Need For Opt-Out – What’s Acceptable & What’s Not? states:

"It’s important to recognize that the toolbar is installed by people who want Google-enhanced functionality," Mayer said. "I would argue that the user is adding the link to the page. Google just provides the tool."

Yoz Graham also supports this by stating that the user has both requested the modification and has the right to do.

I say that it does nothing that the user has not specifically asked for. And if the user has asked for it, there is no reason why they should not have it; after all, they could save the HTML to their hard drive and edit it for exactly the same effect. (In fact, the user could do far more wilful damage to HTML than the AutoLink feature does.)

Since the user has full control over the feature and must request it each time, the user is aware that such modifications have taken place, but the question of whether or not the changes made are known to the user is much more valid.

Many have compared the appearance of AutoLink with Smart Tags, noting that Smart Tags used a dotted purple underline. Google’s answer to this problem is by providing a custom Google cursor and a descriptive title text, as Danny Sullivan quoting Marissa Mayer explains:

"The links that we add do look different. We work hard to help the user understand that this was a link added by the Google Toolbar, that it wasn’t a native link. We do this through a mouse rollover that is visible when you mouse over the link."

However, Danny Sullivan questions this by asking whether that is really enough and suggests that using a different underline, colour or other distinction as well, may be an improvement. However, it’s also important to point out that clicking the AutoLink button will sequentially highlight each recognised link, however my tests using the examples provided by Danny Sullivan seem to indicate it will highlight any match regardless of whether the link was added by AutoLink or already present.

I tend to agree that while Google have certainly taken some very good steps to make the user aware of which modifications have occurred, the feature could certainly use some improvement in this regard. Perhaps, as Danny suggested, different colours or underlines may be the way to go, but I think a special Google AutoLink icon inserted beside each link may be a better option, as it may be difficult to select distinct colours and underlines given the wide range of such styles chosen by every author using stylesheets. Thus, if only colour or underline was used, it would be potentially possible that the colours chosen may match or be very close to those already present in the document, as set by the author’s stylesheet. While the chances of that are slim, I think to be on the safe side an icon would be the better choice.

I mentioned earlier that there are choices that are mostly out of the control of the user. These choices relate to which content is automatically linked (ie. The user is restricted to ISBNs, US street addresses, several package tracking numbers for selected couriers and Automobile VINs). The user is also restricted by the choices available for which sites in particular are linked to.

The sites that are linked to are, at this stage, chosen by Google. While the user has a limited choice for the map provider (Google Maps, Yahoo! Maps or MapQuest), ISBNs link to Amazon, Automobile VINs to Carfax.com and package tracking numbers link to their respective courier websites.

There is much concern over this issue with many pointing out that Google is essentially inserting advertisements for their and their partners’ services into other sites’ content. The most common example for this issue, first described by Gary Price, is that ISBN links to Amazon are inserted into Barnes & Noble’s site. While, as discussed earlier, the user has the right to modify the content of the document if they so desire, the tool is effectively leading the user to a competitor’s site of Google’s choosing.

Zeldman noted an objection to this, as it related to Microsoft’s earlier attempt with Smart Tags.

They extended Microsoft’s monopoly power into new markets, giving the Redmond giant the power to decide which non-Operating System companies would live and which would die. (Companies Microsoft’s Smart Tags division partnered with would live; their competitors would eat worms.)

If Google only includes features that make use of only their or their partners’ services, it may indeed unfairly harm the competition, and (in the worst case scenario) create a monopoly for those organisations. Danny Sullivan explained the Monopoly & Monetary fears of this issue; however, he also expressed the intention for Google to include more options (including Barnes & Noble) in the near future.

Don’t like that choice? When the tool emerges from beta in the near future, it is definitely planned for people to choose some of the content providers they want to tap into. If you want links to Barnes & Noble for ISBNs rather than Amazon, you’ll almost certainly be able to do that or pick from others.

If true, that will certainly be a huge improvement. Personally I feel that there should be some way for any online book store, map service, courier or whatever to include their services, perhaps by means of some kind of additional plugin or setting.

For example, I would like whereis.com.au as an option for my map service and a local book store like Angus & Robertson or Dymocks, and I’m sure others would like localised services too. However, the feasibility for Google to include each and every online book store, map service, courier and vehicle information service by default may not be feasible, which is why such providers and their users should be able to further configure the toolbar for their needs.

Opt-in and Opt-out

A user agent is a tool used by a user to access and perform certain tasks with resources. As such, a user agent should perform these tasks in a way that benefits the user, provide choices to the user where appropriate and provide feedback to the user about the tasks performed. Basically, the user agent must act on behalf of the user at all times.

However, a popular request from those against AutoLink is the ability for the publisher to temporarily disable the feature while users are viewing their site, with several suggested variations in the implementation details. Dave Winer’s preference is clearly for opt-in:

…we really want AutoLink to be opt-in… I might enable it to learn how it works to decide if I want to use it for other pages and other sites…

However, as Danny Sullivan correctly points out, opt-in is taking it too far, and indeed harmful to the usability of the feature.

I think that’s too far. Users do have rights. They have installed this software. Opt-out gives any publisher seriously concerned with the tool the ability to control it on their site. Many won’t be concerned, so requiring an opt-in is overkill that does hurt the user experience.

Yoz Graham agrees stating such features would never work if they required an opt-in.

Content creators should not have to provide specific opt-in permission; if they had to do this for every such feature out there, most of them would never work.

Others tend to agree also, yet still request the slightly less harmful opt-out feature through various methods such as: robots.txt extensions suggested by Dave Winer; or a meta tag similar to that provided by Microsoft for Smart Tags, as mentioned by Jeffrey Zeldman in response to the performance limitations of the various script solutions.

Client-side wear and tear could go away like a bad dream if Google would do what Microsoft did with Smart Tags: namely, provide a meta tag that disables them.

Drew McLellan (via Zeldman) explains how the script solutions, initially created by Chris Ridings and modified by others, work by cycling through the links in the page and removing those that are found to have been inserted by the Google toolbar.

Both the opt-in and opt-out requests have been met with opposition from Google’s Marissa Mayer, as quoted by Danny Sullivan:

"If you had opt-in or opt-out, that’s overall a lot less useful," Mayer said. "If the links sometimes won’t show because there’s a publisher opting-out, that’s bad for the user experience."

It is also noted that the toolbar will not modify any existing links, thus being a form of opt out – an option which has been taken up by Barnes & Noble by making all ISBNs on their site links to their own resources. However Danny replies by stating that doing so for every link just to block AutoLink is just not an effective nor feasible solution for everyone. However, in such cases, I question the publisher’s right to prevent the user obtaining more information where the publisher had failed to do so.

In response to the script solutions, Phil Ringnalda has reminded us of exactly who’s user agent it is and provided a work around to bypass Chris Riding’s original checklinks() function. However, this solution will fail (without modification) on the site of any publisher that alters the name of the function; and as Danny Sullivan points out, this is getting absurd.

…it highlights how quickly things have become absurd. You have third-parties working to prevent AutoLink and potentially others working to prevent preventing AutoLink. It’s a mess.

In my opinion, the valid issues against AutoLink seem to relate to the monopolistic effect of the links; yet the requested opt-in or -out solution does not seem to address this problem directly. Rather it gives authors control over how a user agent processes their document in order to completely prevent document modifications; particularly by implementation specific user agent features. Publishers that take such action to interfere with user agent behaviour can be seen very user-hostile; and user agents that obey such directives are acting on behalf of the publisher rather than the user.

Also, in order to opt-in or -out of such user agent features, it requires the use of proprietary extensions; regardless of whether they validate or not. This was, and is, true of the nofollow relationship, and will always be true for AutoLink and other similar features.

For example, Microsoft have introduced various proprietary extensions in order to disable user agent features including the Smart Tags meta tag, the image toolbar meta tag and attribute and other (though more widely implemented) features like autocomplete. Some of those validate and others don’t, but that doesn’t change the fact that they are proprietary extensions intended for use by a single user agent to perform a very user hostile act – namely, to disable a user agent feature against the user’s request. Thus any opt-in or opt-out functionality introduced by Google would be quite harmful, just as the script solutions have already proven to be.

As discussed, the document modifications performed by AutoLink are done so at the user’s request, and the publisher has no right to interfere. While some publishers may feel that the user is violating their rights, the fact is that once a user has received your document, they have the right to perform whatever functions they like with it, so long as the results are limited to the user that performed them.

While Google, in an effort to provide a tool for performing useful functions for the user, have certainly shown some desire to put the feature under the user’s control by allowing them to decide where and when such functions are performed and attempted to provide some (although limited) indication of the results, Google’s role in the process is not impartial. It is Google that chooses the possible link destinations with little ability for user alterations and as such, has received much criticism over the potential effects on competition.

It is for these reasons that publishers and authors are requesting the ability for their sites to be exempt from this functionality; however, any attempt to override an implementation specific user agent feature is a user hostile act which only serves to interfere with the user’s choices provided by the tool.

In my opinion, AutoLink is nothing more than a very advanced favelet (or bookmarklet) that may prove very useful to many end users in the long run; however much more control needs to be given to the user, particularly in regard to the service providers chosen for the link destinations. Beyond that, I only hope that someone will port this functionality as an extension to Firefox and content publishers and authors cease their attempts to control a user’s system.

IE File Upload Validation

At last, Microsoft have finally fixed an extraordinarily annoying broken feature of IE introduced with Windows XP Service Pack 2. The problem, for which I previously published a temporary solution and which has been experienced and documented by many since at least September last year, has been resolved. The W3C’s Bug 838 tracked and discussed this issue up until its resolution that has come with Microsoft’s Security Bulletin MS05-014. The patch is available through Windows Update.

The W3C QA team have published a document explaining the issue and solutions, which has been linked from the MarkUp Validator. Hopefully, this now means the continuing flow of error reports to www-validator will cease, or at least slow down. Of course my recommended solution has been, and always will be, to use an alternate browser that does not suffer from such fatal bugs. This is especially the case for user’s of the validator since most will be web developers that really need to develop within standards compliant environments; however, the persistent use of IE among many developers is one thing I fail to understand.