[css3-ui] directional nav error handling

I found something that needs clarification in the directional navigation
section.

  The <target-name> parameter indicates the target frame for the focus
  navigation. It is a <string> and it cannot start with the underscore
  "_" character. If the specified target frame does not exist, the
  parameter will be treated as the keyword current.

It cannot start with an underscore character, but what happens if it does is
unclear. I think we should explicitely pick one of these:

a - This is an author level requirement, so using it is invalid, but the
    behavior is defined, and if there is a frame by that name that doesn't
    conflict with one of the reserved keywords (although that's a spec
    violation), the UA must navigate to it anyway.

b - Same as a, but in addition, "_parent" and "_top" navigate to the parent
    and root frame, respectively.

c - This is an author level requirement, so using it is invalid, and the
    behavior is undefined.

d - treat as the current frame (same behavior as for non existing frame
    names)

e - Parse error

Presto does a.
The Samsung chromium implementation does b.
e sounds like handling this at the wrong layer.

I think I prefer b. It is invalid, but having interoperable error
handling is good, and the author intent is clear.

If we want to prioritize spec advancement over interop, we could do c in
level 3, and go for b in level 4.

***
Side note: If you're trying to test spatial navigation in various browsers,
and can't remember how to activate it or which keys to use, I've made a blog
post about that:
http://florian.rivoal.net/blog/2015/04/controlling-spatial-navigation/
***

 - Florian

Received on Friday, 10 April 2015 15:36:41 UTC