Re: Client-side highlighting; tag proposal

Gavin Nicol (gtn@ebt.com)
Tue, 14 Mar 1995 11:11:25 +0500


>> Paired elements like the above mean that you have to maintain more
>> state when you are rendering a document (ie. you have to traverse the
>> entire document tree preceeding the current element, whereas with
>> container based control, you only need to traverse the ancestors
>> leading up to a node).
>
>But there is no requirement for a browser to treat
>marked ranges specially at all. If a WWW user agent
>*does* implement highlighting of marked ranges that cross
>element boundaries, it will need to keep track of extra
>state somehow anyway, regardless of how the range is
>specified.

True. The state must be managed one way or another, but with
container-based markup one can localise the state to within a given
tree or subtree, whereas with paired tags one cannot. Paired tags are
basically on par with PI's in terms of processing model. The main
problem with container-based highlighting is that highlights and such
can cross element boundaries, so in order to use such tags, one
effectively needs to parse the document, and insert tags based on the
tree.

Someone else has mentioned that it is probably better to have such
data seperated from the document so that the document data sent with,
and without highlighting, would be identical. I agree with this. In
addition to this, defining a standard for basic query constructs seems
desirable. Keyword search is very limiting.

>A HyTime link to the 20th through 35th characters of
>the 4th child of the element with id "FOO" can't possibly
>work when browsers don't even count the same way.

True, and another problem is the definition of "character", though I
don't think non-conformance of browsers is a good technical reason for
not using such links. I should note that the choice of quantum will be
important. In general, the higher the structural level of the quantum,
the more robust (in the face of application-variations) such links
should be.

I think another very important argument in favor of HyTime-like
linking is that such links can be used with data types other than
HTML. I feel it to be *very* desirable to define a general mechanism
so that all data could be treated equally. For example, what would one
do if one wants to highlight a region of a graphic or movie?

Admittedly, the overhead (in terms of implementation cost) for a
generalised mechanism will be higher than paired tags, but I think the
benefits might very well outweigh the costs.