Ignoring trailing semi-colon delimiters

Dear all,

I'd like to suggest a change to the handling of trailing semi-colon
separators.

We use semi-colon separators for the following animation attributes:

  values
  keyTimes
  keySplines
  keyPoints
  begin/end[1]

But what should happen when we have something like the following?

  values="a; b; c;"

According to the letter of the spec there are four values there: "a",
"b", "c", and "". (Or at least there's nothing to say to ignore trailing
separators like there is for whitespace.)

That might seem pedantic and we should just ignore the trailing ';' but
it's significant when you're dealing with strings (e.g. animating
attributes such as class, xlink:href, result etc.[2]) where the empty
string is a legitimate value.

However, I think we should ignore the trailing semicolon for two reasons:
1) When generating attribute values from script it's easier to just write
     for (...) attrValue += val + "; ";
   rather than having to take care to avoid the trailing separator (e.g.
by imploding an array).
2) There already appears to be content that includes the trailing
separator.[3]

One proposal suggested by Cameron McCormack and summarised by Daniel
Holbert is:
 (a) "values" is semicolon-delimited and semicolon-terminated.
 (b) if there are extra [non-whitespace?] characters after the final
semicolon,
     then it's assumed that there's an implied semicolon at the end.
	
(Square braces are my edit based on Cameron's later feedback.)

So to actually get "a", "b", "" you'd write values="a;b;;".
	
I've put together a test case to demonstrate the behaviour of different
user agents.[5]

The behaviour of most browsers is closer to this proposal than the spec
already.

Looking forward to your feedback!

Thanks,

Brian

[1] Thanks Daniel for having a look into this:
https://bugzilla.mozilla.org/show_bug.cgi?id=705236#c3
[2] Thanks Cameron for this breakdown:
https://bugzilla.mozilla.org/show_bug.cgi?id=705236#c1
[3] For example, http://www.telibees.com/iphone_test.svg. In Firefox 8
the frog's legs won't swell because of the trailing semi-colon on the
values list.
[4] https://bugzilla.mozilla.org/show_bug.cgi?id=705236#c1
[5] http://brian.sol1.net/svg/interop/semicolon-test.svg

Received on Monday, 28 November 2011 03:45:50 UTC