- From: Robert Burns <rob@robburns.com>
- Date: Fri, 20 Jul 2007 00:19:08 -0500
- To: HTML WG <public-html@w3.org>
- Message-Id: <DC081967-E9BF-4709-AA1E-584234E019CB@robburns.com>
Summary:
* Propose some small editorial changes to the draft.
* Propose new element: <term>
* For use on mostly on <dfn>, but perhaps also on <abbr>, <term>, and
<var>, propose new attributes: scoped (boolean), defref (string;
required), casesensitive (boolean; referring to the defref value),
phonetic (or "pronunciation" string;), initiialism (boolean;
referring to the defref value), asword (boolean; referring to the
defref value)
The proposed enhancements are meant to deal with the problem of
providing a more rigid markup for terms, abbreviations and variables
used in a document. The proposed enhancements should support auto-
generation of a document index, a document glossary and interactive
discovery of term, abbreviation and variable usage within an
interactive UA.
Highlights, definitions, terms, abbreviations, and variables <m>,
<dfn>, <abbr>, <term> (part of my review of 3.12 Phrase elements)
Highlight / mark (<m>):
This section looks good. I have no suggestions for improvement.
Definitions of terms, abbreviations and variables (relates to <dfn>,
<abbr>, <var> and proposed <term>):
I like the more elaborate document conformance criteria the HTML5
draft provides for <dfn> and <abbr>. However, right now <dfn> either
encloses text nodes that are the the definition of the term or, in
the case of an abbreviation, it includes a text node (indirectly)
that is the term defined (with the @title value the definition of the
term). There are places in the draft, where the distinction between a
term and the elaborate definition is not kept completely distinct. I
think it has been even more difficult for authors to keep these uses
separate. This confusion over exactly how to use a <dfn> element is
one of the prime use-case/problem statements for the following
proposals:
Consider adding a <term> element type:
I propose introducing a new <term> element that would act much like
<abbr> and <var> in relation to <dfn> except for non-abbreviated terms.
I do not think it would it break compatibility to introduce a <term>
element: though its default styling would only work with an embedded/
linked stylesheet of a HTML5 conforming UA with a proper default
stylesheet (for example "font-weight: bold" might be appropriate).
proposed language/
Authors use the <term> element to contain important terms or key
words that might be important for an index in a printed version of
the document or indicate greater importance for a search engine. For
example, imagine an author who wants to write an essay on the word
"and" and the ways that word has been used throughout English
literature. By marking <term>and</term> inside a term element it will
indicate that this is a word being use in a specialized way an not in
its more conventional way. Another example, consider the use of a
term like <term>service</term> where it is being used to refer to a
daemon running on a host hardware server. The term has a more
colloquial meaning and the same document may even use the term in
this colloquial sense of "providing a service to our customers by
installing our <term>service</term> on their hardware."
/end proposed language
Definition (<dfn>); consider adding:
proposed additions (for <dfn>/
Element-specific attributes:
scoped (boolean)
defref (string; required)
casesensitive (boolean)
phonetic (string; to provide Unicode string of phonetic
characters for pronunciation hint)
initiialism (boolean; referring to the defref value)
asword (boolean; referring to the defref value)
The definition element provides a mechanism to provide a precise and
elaborate definition for a term (<term>), abbreviation (<abbr>), or
(<var>). Authors need only use the dfn element for the initial
instance of the definition. UAs will provide a mechanism to indicate
the definition of a term throughout the rest o the document. (e.g.,
by presenting a tooltip or changing the status bar when the pointing
device hovers over a term within scope) By including the scoped
attribute, the scope of the definition is restricted to the current
sectioning element (implicit? or explicit) only. For example, the
scoped attribute would facilitate a document containing multiple
essays by several authors all addressing the meaning of the same term.
Authors must include the defref attribute on the dfn element to
indicate what term, variable or abbreviation the definition refers
to. The inclusion of the casesensitive boolean attribute indicates
that the matching of the defref value with terms, variable and
abbreviations must be done in a casesensitive manner. Authors may use
CSS or another styling mechanism to display only the value of the
@defref attribute rather than the elaborated definition (for
example., to leave the elaborated definition for an automatically
generated glossary).
UA conformance: If the casesensitive attribute is false, UAs must
match the dfn element's defref attribute value in a case-insensitive
manner. within the scope of the dfn element. If the casesensitive
attribute is true, UAs must match the dfn element's defref attribute
value in a case-sensitive manner. within the scope of the dfn
element. UAs should provide a mechanism to let users quickly view the
definition for a term, variable or abbreviation while maintaining
presentation of the current context of the term. (e.g., by presenting
a tooltip or changing the status bar when the pointing device hovers
over a term within scope).
/end proposed additions
Abbreviation (<abbr>):
Consider adding:
Element-specific attributes:
initiialism (boolean)
asword (boolean)
phonetic (string)
The attributes specific to <abbr> are. 1) an @initiialism boolean
attribute.for pronunciation hint. 2) an @asword attribute for a
pronunciation hint to read the abbreviation as a word rather than
spelling out the letters (what some variants of English call an
acronym). 3) a @phonetic attribute to contain specific phonetic
Unicode character or character references as a pronunciation hint
(Unicode could use some improvement on phonetic characters, but this
mechanism should work today and be forward compatible even as Unicode
improved its organization of phonetic characters)[1].
Consider adding the word "title" to the sentence: " If present, the
__title__ attribute must only contain an expansion of the
abbreviation." (for greater clarity)
The last example for <abbr> especially underscores the problem where
the "term" is doubly markedup with both <dfn> and <abbr> and the
definition has no markup at all except for the surrounding paragraph
(which is only due to the particularly contrived example; the
paragraph could easily be longer). Based on my proposal, the
definition would be marked up with the <dfn> element and the term
would be marked up with the <abbr> element.
The draft currently reads:
"In the example below, the word "Zat" is used as an abbreviation in
the second paragraph. The abbreviation is defined in the first, so
the explanatory title attribute has been omitted. Because of the way
dfn elements are defined, the second abbr element in this example
would be connected (in some UA-specific way) to the first.
<p>The <dfn><abbr>Zat</abbr></dfn>, short for Zat'ni'catel, is a
weapon.</p>
<p>Jack used a <abbr>Zat</abbr> to make the boxes of evidence
disappear.</p>"
My proposal would change this to:
<p>The <abbr>Zat</abbr>, <dfn defref='Zat'>short for Zat'ni'catel</
dfn>, is a weapon.</p>
<p>Jack used a <abbr>Zat</abbr> to make the boxes of evidence
disappear.</p>"
With this approach the, association is clear and the UA is not left
to infer what the association is based on a paragraph that may
contain less or more than the precise definition.
Variables (<var>):
I propose variable be treated much like the propose <term> except it
would be for the more particular use as a variable denoting or
pointing to a specific object — however narrowly or broadly defined —
but specifically for use in mathematics, computer programming or
formal logic. Here the distinction with <term> is subtle, but I think
there are cultural reasons to support both elements. After all
consider the term automobile as a term that denotes the class of "all
self-contained power-plant vehicles with facilities to transport
humans and cargo." We could instead think of that as a variable for
that class. However, I think the use of variable is more specialized
than that (often denoting a precise instance of a term). So I think
the distinction is useful to maintain in markup.
So we should supplement our description of variable by discussing
more modern programming constructs like: "element", "attribute",
"property", "class", "instance", "object", "math", "nativetype",
"method", "function", etc.
It might be useful to introduce another element for other modern
graphical constructs that could be subsumed under <var> or handled
with another element would be: "view", "control", "cell", "menu",
"menuitem", "button", etc. But we may want to include those too among
the constructs that might also be appropriately marked-up with <var>
as the <var> would be referring to a specific instance of a button or
control (on the screen for example).
Consider adding a @type attribute to <var> so that authors can
express the precise kind of instance the variable points to. This
could be useful for <var> elements that are not associated with a
<dfn> element for when the variable is used in a more abstract way.
For contrast consider the example:
<p>Consider a circle with circumference <var type='realnumber'>x</
var>.</p> and circumscribe a circle with circumference <var
type='realnumber'>x</var>. around …</p>
versus
<p>In the following we treat <var>myElement</var> as always equal to
<dfn>the element returned by getElementByIdNS("myVar")</dfn>..</p>
The first example provides more detail than it could otherwise
provide without needing to resort to a definition. It could
alternately be marked up with:
<p>Consider a circle with circumference <var>x</var> <dfn defref='x'
>a real number</dfn>.</p> and circumscribe a circle with
circumference <var type='realnumber'>x</var>, also <dfn defref='y'> a
real number</dfn>. around …</p>
If HTML could provide a keyword value list for many common types of
instances used in formal logic, mathematics and computer science
authors would have a shortcut for expressing those types.
The <var> element makes mention of special meaning to @title when
used with <dfn> but nothing else is said about that here. An example
and explanation would be helpful. (is this meant to match the @title
of the defining dfn element for the variable?). In that case my
proposal would be to leave the @title alone and require HTML5 c
conforming UAs to provide the elaborate definition from any <var>
element by matching the single @defref attribute on the <dfn> element
with the contents of the <var> element.
[1]: Unicode currently provides little consistent data on the
phonetic properties of characters. Perhaps W3C could liaison with
Unicode over the issue of establishing semantic phonetic Unicode
characters. Alternatively we could provide a <phonetic> or
<pronunciation> element to contain SMIL markup. However, Unicode
could be enhanced to support plain-text phonetics with some minor
changes.
[2]: For an example of current rendering of many of these elements
see the attached:
This attachment demonstrates how many of these semantics are not necessarily supported through UA default stylesheets. They are nevertheless very useful to authors who will tend to author with both HTML and CSS in unison.
Attachments
- text/html attachment: definitionl.html
Received on Friday, 20 July 2007 05:19:50 UTC