Re: [SVGMobile12], Focus navigation and circular dependencies

Faik Siddiqi wrote: 
>We have a question about focus navigation behavior when the SVG content
>is used as a component within a compound document. 
>
>According to the rules specified in section 13.12.1 Navigation behavior
><http://www.w3.org/TR/SVGMobile12/interact.html#navigationbehaviour>,
>the focus should be offered back to the User Agent if/when there is no
>focusable next element:
>
>"3. If the focus is held by an element in the document, then the next
>element in navigation order shall be the entity that first matches the
>following criteria:
>    1. the element referenced by the 'nav-next' attribute on the focused
>element,
>    2. the next focusable element in document order,
>    3. the User Agent"
>
>So, the use of the 'nav-next' attribute allows for the creation of
>circular focus rings. Is it correct that the User Agent is never offered
>the focus again when the focus ring has a circular dependency?
>
>If the SVG content is used as a component within a compound document,
>that would mean that the focus would never leave the SVG document once
>it has been released by the User Agent and focusable elements in the
>host document would never be reached.

You are correct, and we agree that this needs to be fixed.

>It seems to us that some kind of concept of a "last" element in a focus
>ring should be introduced. If this "last" element holds the focus and
>the user tries to navigate to the next element, then the User Agent
>should first be offered the focus. Only after the User Agent releases
>focus, the focus should be given to the element reference by 'nav-next'.
>
>Our suggestion is that the "last" element in the focus ring is defined
>as the element that, using 'nav-next', references a previous element in
>the focus ring. There can only be one element that fulfills this
>criteria.
>
>By allowing the User Agent to regain focus when navigating from the
>"last" element in the SVG document focus ring, focusable elements within
>a host document may be reached even when circular dependencies exist in
>the SVG document focus ring.
>
>The corresponding problem exists when navigating backwards using the
>'nav-prev' attribute in a ring with circular dependencies, so a
>definition of a "first" element would be needed too.

However, we think there are some problems with this proposed solution.
Automatically going to the user agent at various times (next from last,
previous from first) is non-intuitive, and the time at which it occurs
depends on document order, rather than any graphical order - it relies
on the user ordering the elements so that the last element occurs at 
the correct place.

Instead, we are adding an event "focusEscape".  This event triggers
when the user does the buttonpress/keyclick/whatever that the 
user-agent decides should exit the user from the focus ring.

This also allows the user to go around the focus ring without being
kicked out, which may be the desired behaviour in some instances.

Thank you for your thorough review.  Please let us know shortly if  
this does not address your concerns.

Andrew.

Received on Monday, 8 May 2006 12:33:39 UTC