clarify 'visibility' and navigation/highlighting?

Hi WG --

QUESTION.
=====
Should we clarify bits in the text of 2.1 regarding the 'visibility' 
ApsAttr, navigation and highlighting?

BACKGROUND.
=====
A recent question from an implementor, about 2.0 functionality, led to 
discussion in the WebCGM TC.  The result was substantial consensus amongst 
the implementors and users there.   Because it took some time to sort it 
out, it is suggested that some clarifying text in the WebCGM spec might be 
useful.

The question had two parts.  Suppose an object is invisible due to the 
setting or inheritance of the 'visibility' APS Attribute value "off":

Q1.) navigation:  is it possible to navigate to an invisible object, e.g. 
with an appropriate Object Behavior in the WebCGM fragment syntax (3.1.2.4)?
Q2.) highlighting:  what happens to a request to highlight an invisible 
object?  (For example, via an object behavior, or via the highlight() 
method, or via mouse-over, etc.)

The consensus answers are:

A1.) navigation:  YES.  Navigation requests are unrestricted in the 2.0 
text -- they are not affected by the visibility ApsAttr.
A2.) highlighting:  IGNORED.   visibility "off" has precedence and the 
highlight request is ignored, regardless of the source of the highlight 
request:
     -- highlighting keywords in Object Behaviors are ignored.
     -- highlight() method call is ignored.
     -- mouse-over, mouse clicks on object, etc, ... highlighting behavior 
is suppressed.

The majority (all?) of existing viewer implementations, and the majority 
(unanimous?) of the TC participants supported these interpretations as the 
most direct reading of the existing 2.0 text.

For convenience, here are excerpts from the 2.0 text...

[[[
>3.2.2.9 Visibility:
>-----
>A non-visible object is not displayed. A non-visible object behaves like a 
>non-interactive object (i.e., it cannot be clicked or highlighted). This 
>does not imply that the 'interactivity' attribute is changed to off, but 
>simply that the user agent must not respond to mouse events.
>
>3.2.2.10 Interactivity:
>-----
>When the 'interactivity' of an object is set to off, events for this 
>object are disabled. This has the effect of disabling event handlers, 
>cursor changes, highlighting, screentip and hyperlinking for the given 
>node and its descendant. An object that is the target of a link always 
>responds to highlighting, regardless of its 'interactivity' attribute value.
]]]

Highlighting is referenced from Object Behaviors (3.1.2.4, [2]) and from 
the highlight() DOM method (5.7.5, [3].)

[2] http://www.w3.org/TR/webcgm/WebCGM20-IC.html#webcgm_3_1_2_4
[3] http://www.w3.org/TR/webcgm/WebCGM20-DOM.html#L5070

CLARIFY (or not)?
=====
It would be pretty easy to editorially clarify the wording of 3.2.2.9 & 
3.2.2.10.  For example:

i.) insert a new 2nd sentence in 3.2.2.9, "Accordingly, highlighting 
requests are ignored for a non-visible object, regardless of the source of 
the request (Object Behavior keyword, or highlight() method, or interaction 
feedback such as mouse-over)."
ii.) replace the last sentence of 3.2.2.10, "Regardless of the value of its 
'interactivity' attribute, an object that is the target of a link responds 
to highlighting requests (keywords), provided that its @@visibility@@ is on."
iii.) provide links to 3.2.2.9 from 3.1.2.4 and 5.7.5

(Editorial comment...  We need to keep in mind that we're talking about 
odd, fringe cases that are *not* core capabilities or core use cases; that 
this is 3-year-old 2.0 behavior; and that the above clarifications align 
with all (or almost all) implementors' interpretations.)

Thoughts?

Regards,
-Lofton.

Received on Monday, 13 July 2009 23:22:21 UTC