We definitely need to have some kind of convenient UI for seeing dom node attributes
like "title" and "alt" text. In fact, I have already written rudimentary support for
such, but there are several question of how the UI should work that need to be answered
before this feature can be added to Conkeror. For the rudimentary version, go to
<http://jjfoerch.com/git/conkerorrc/node-info.js>.
I think that the Emacs "highlight" commands provide a good UI model to base our UI on.
This is because from a certain perspective, the highlight commands are very much like
the show-attribute commands that we want. They add properties to the document to call
attention to certain things. The highlight commands call attention to things that are
already visible by adding color. The show-attribute commands call attention to invisible
things by creating colorful tooltip-like objects.
So for key bindings, modeling on Emacs, it seems very reasonable to use the prefix `C-x w'.
But which specific keys within this keymap should we use, and exactly how should these
commands behave?
Should they show the given attribute for the whole buffer, or just the viewport, or both,
depending on universal-argument? Which way should be default?
Should the labels persist until explicitly removed, or should Conkeror wait for a keystroke
and auto-kill them?
Should there be one command to add the labels and a separate command to remove them, or just
one command that toggles them? Perhaps universal-argument would be best used to disable
the labels, while calling that command without universal-argument would enable them. The
Emacs command `set-goal-column' might be a good model here. When you call `set-goal-column'
with universal-argument the goal-column is disabled.
The highlight commands use a two-command model. You have, for example, `C-x w p' bound to
highlight-phrase, and `C-x w r' to unhighlight. Honestly I have always found this asymmetry
a little annoying, even though it is appropriate given that there are multiple ways to
highlight things.
Finally, what should the command(s) be called? show-attribute? reveal-attribute?
attribute-show? Welcome ladies and gentlemen, it's the Attribute Show, up next we have... |