1: }rg Green Green

2: }}rg Green Green

3: }{}gg Green Green

4: ;rg Green Green

5: ;;rg Green Green

6: ;}rg Green Green

7: {}gg Green Green

8: ;{}gg Green Green

9: @x;gg Green Green

10: ;@x;rg Green Green

11: ;[{}o]r Cyan? Green

12: ;[{(})r}]rg Green Green Green

13: ;[{(}){}o}]rg Cyan? Green Green

14: @x -->;gg Green Green

15: ;{[}]{}o}c Cyan? Cyan?

16: ;{[}p]}cg Arguably purple purple green, though cyan cyan green may be a simpler rule. Purple/cyan Green


The green/red tests are where there was agreement among the UAs I tested (Gecko, and Konqueror,WebKit,Chromium). Note that some of these can't go in the test suite without first changing the specification text: some of the "red" behaviours are at least defensible per the existing text, and in at least one case I'd have leant more towards the red behaviour than the green behaviour as the intention of the existing text.

The other coloured tests are where there wasn't uniformity across the UAs I tested. For the orange/cyan tests, I can see the interpretation that would get the cyan behaviour, whereas the orange behaviour is a bit harder for me to see as in line with the spec. For the purple/cyan line (the last line), I can see either behaviour as consistent with a defensible interpretation; though I'd lean towards cyan.

Note that while the above suggests cyan as being the behaviour we should standardize on, the cyan behaviour doesn't do a particularly good job of picking the "most plausible" correction to make for mismatching brackets, even if we restrict corrections to those that don't require backtracking. Given the input fragment "a { b : c( d }" where a statement is expected, the first invalid token is the '}'. The cyan behaviour here to correct the mismatched bracketing is to assume that the '}' is erroneous and to keep looking for a matching ')' then '}', whereas I would expect that assuming a missing ')' token would be more likely to produce results closer to what the author intended. I consider either of these behaviours to be defensible interpretations of the current text, even if I would lean towards considering the cyan behaviour more defensible.

I don't yet fully understand what rule the Konqueror family are using, but there's some (weak) evidence that it will get results closer to what the author intended than the cyan (Gecko) behaviour. As such, it might come closer to meeting the spirit of the CSS error handling rules even if the cyan behaviour comes closer to the letter of the rules. It would be good if we could hear from someone familiar with the Konqueror family's parsing before deciding how to change the text.