[whatwg] web-apps - dfn jumps
Matthew Thomas
mpt at myrealbox.com
Mon Nov 28 17:26:29 PST 2005
On 7 Nov, 2005, at 11:20 AM, Sander Tekelenburg wrote:
>
> <http://www.whatwg.org/specs/web-apps/current-work/#dfn0>
> ...
> The spec needs to indicate to UA developers that users should easily
> be able to 'jump' back, instead of just getting lost. This would
> require too many words. Thus, I propose to scrap the word "jump"
> entirely. (After all, a possible implementation would be tooltips, in
> which case there is no jumping at all.)
Tooltips probably wouldn't be a viable implementation, because of a
long-standing and probably unsolvable problem with <dfn>: there is no
programmatic way of telling where the definition begins and ends. Is it
the current clause? The current sentence? (Dotted initialisms make even
sentences impossible for a computer to demarcate reliably.) Two
sentences? The whole paragraph? Two paragraphs? In many school
textbooks you could probably find examples of all of these.
The reason I say the problem is probably unsolvable is that, while a
<def> or similar ancestor element could be introduced to mark the full
definition (for example, "<def>the American term for a crotchet is a
<dfn>quarter note</dfn></def>"), authors wouldn't bother using it
because they wouldn't get any presentational benefit from it. (The
benefit of providing accurate tooltip boundaries probably wouldn't be
obvious enough.)
So I'd expect <dfn> navigation, if it was implemented at all, to work
just the same as navigation to internal anchors in the same document
does currently: functioning as a jump, with the Back button returning
to where you were.
> ...
> Already better would be:
>
> [...] should be presented in such a way that the user can easily
> access the first dfn element giving the defining instance of that
> term.
>
> I'd prefer something even more explicit, like
>
> [...] should be presented in such a way that the user can easily
> access the first dfn element giving the defining instance of that
> term, without risking the user can't find his way back.
>
> but I'm not entirely happy with this phrasing. I'm thinking of
> something like "[...] easily access within the current view of the
> document [...]" or "[...] easily access without losing the current
> position in the document [...]", but given that the sentence already
> is so long, I don't see how to cram this in :)
> ...
How about this:
The _dfn_ element allows automatic cross-references. From any
inline-level element that refers to a _dfn_ element, user agents
should make it easy to access the definition provided by that
_dfn_ element without losing one's previous place in the
document. An inline-level element can be considered to refer to
a _dfn_ element in the same document if (a) the inline-level
element has no _dfn_ or interactive elements as ancestors or
descendants, and (b) either its _title_ is equal to the _term_ of
the dfn element or it has no _title_ but its _textContent_ is
equal to the _term_ of the _dfn_ element, and (c) it does not have
an ancestor element that is already referring to a _dfn_
element.
This is also slightly shorter and easier to read than the current text,
and avoids the confusing and unnecessary exclusion of elements like
<em> (for example, "I said <em>font</em>, not <em>typeface</em> ... [a
couple of paragraphs later] ... By <dfn>font</dfn> I mean a combination
of typeface, size, weight, and variant").
One concern I have that is addressed by neither the current text, nor
my suggested text above, is the "in the same document" bit;
cross-references to definitions in different documents aren't just not
automatic, they're not possible at all. It almost seems as if <a> is
being reinvented badly.
--
Matthew Paul Thomas
http://mpt.net.nz/
More information about the whatwg
mailing list