how to handle 'unknown' or 'no data' conditions?

In the WAI-ARIA State document [1] we define a 'valuenow' attribute.

The use of this is for widgets that maintain one data item, to
provide a clear place in the DOM where a representation of the
current value of the data item is accessible.

Recently we decided that we wish to follow the example of the
metadata work (RDFa ?) for XHTML 2.0 in how we allow type information
to be asserted against this value.

In particular, we want @valuenow to be a legal XML and XHTML attribute,
we want to be able to refine it with a QName reference indicating type
information, and we want to make the use of XSD built-in types an 
easy use case.

Then we came up with the common use case where a progress bar or
similar widget is included in the layout but there is no data to
represent with this display object.

There are presentation effects such as greying-out that can be
applied to the graphical rendering of this widget to connote that
it's not meaningful, but we want something more semantic.

In particular, there is an 'unknown' supported in MSAA and we want to
get the information that accessibility APIs need from document
encodings on the Web [2].

It seemed simple enough to say in the DTD that the value of this
attribute could be either 'unknown' or any CDATA value.

But that roused a twitch in my mind. I vaguely remember that there
are classical issues revolving around whether one has nil-bearing
types or not. Some people say "magic values are bad stuff."

Do we need to implement this as a meta-property? meta-meta-data?

The problem that I have been able to come up with arising from:

- introducing a magic string in the syntax, and - deferring to the
author and another attribute the type designation for this attribute

is "what happens if the reserved string is a legal value of the type
represented by the CDATA option?" For example, suppose we have a
tristate logic type with literals 'true' | 'false' | 'unknown' ? Here
@valuenow="unknown" could mean that the value is known and equal to
the 'unknown' of the datatype, or that there is no value known.

It's simple for the case of a progress bar where all legal values of
the type are numerical to introduce alpha-based symbols as reserved
values. But not for an arbitrary type that has a CDATA string
representation. And the "no data" condition can arise for any data
type, not just those whose XSD representation is in terms of digits.

What would you consider the best practice in terms of representing
this condition in reasonably legacy-friendly XHTML syntax?

Al

[1] http://www.w3.org/TR/2006/WD-aria-state-20060926/#supported

[2] http://www.w3.org/TR/2006/WD-aria-roadmap-20060926/

Received on Tuesday, 17 October 2006 19:18:30 UTC