My design for an HTML editor (it hasn't reach the coding stage yet ...)
presents the user with a toolbar including a style dropdown and some
accelerator buttons. The available styles depend on the position of the
text cursor. The Return (Enter) key ends the current paragraph.
The toolbar has the following buttons:
End -- Ends current element
Header -- start new header
List -- start new list
Item -- start new item
Term -- start DT element
Def -- start DD element
Literal -- start preformatted text
Emphasis -- select from full range of character emphasis
Italic -- start italic or set emphasis of highlighted text
Bold -- start bold or set emphasis of highlighted text
Underline -- start underline or set emphasis of highlighted tex
Link -- link highlighted text to specified URL
For the Header, List and Emphasis buttons, the style is selected in
neighboring status windows which drop down to allow users to change
the current selection. The current element name is shown in a larger
status window on the left (pops down to show nesting of current elements).
All elements can be terminated by clicking the end button, although in
some cases the context will cause this to be implied, e.g. clicking
Header while in a list will terminate all current list elements.
Nested lists may cause some confusion. Clicking the List button will
start a nested list and imply an initial list element. To start a new
list at the same level as the current one, you need to first click
End and then the List button.
You can always highlight text by dragging the mouse pointer over it.
The editor is smart enough to insert start/end tags when necessary,
including removing empty emphasis or adjacent end,start tags of the
When moving the cursor out of an unfinished element, the editor
will automatically terminate any open elements. An alternative is
to insert start and end tags at the same time. Users can choose to
see markup elements explicitly or not as their prefer. This isn't
an all or nothing choice - one could show just the tag names in
a suitable font/colour without the attributes.
It would be neat to be able to display several documents at once. This
would allow users to make links using a point and click mechanism.
I hope that gives you the general feel of my as yet half-baked ideas.