Browser objects are an idea central to the keyboard semantics of Conkeror's UI. They address a problem of the web environment, a problem which does not exist to the same degree in say, text editing. The problem is that in a web environment, there is a high number of data types with which you want to interact, instead of say, just text.

In the web environment, there are many data types which one wants to manipulate. Text, hyperlinks, images, form fields, to name just a few. Without some kind of abstraction layer to unify the interface to all these types of objects, it would be necessary to have a combinatorially large number of commands. For instance, you would need separate commands for follow-link, follow-image, and follow-frame. With browser objects, you have just one command, follow, which can operate on many types of data.

If you are coming from a Vi background, then you can think of browser objects as being like the text objects in Vi. The main difference is that you specify the object before issuing the command. The other difference is that Conkeror's browser objects are richer in functionality than Vi's text objects. A browser object can carry out a complex UI interaction to practically any level of sophistication you desire.

If you are coming from an Emacs background, you can think of browser objects as universal-argument on steroids. Like universal-argument, browser objects are prefix commands which pass an argument to the following command. Unlike universal-argument, browser-objects can represent practically any type of data, not just anonymous objects and numbers, as in Emacs.

Q: Is there an analogy with Emacs lisp's 'interactive' form? PhilHudson

With the browser objects system, commands are split in half into a noun part and a verb part. Thus you have a noun command that says you want to work on an image, and a verb command that says you want to follow.

All verb commands have a default noun, meaning that if you call a command like follow without preceding it with a noun command, its default noun, which in this case is hyperlinks, will be used.