Based on the spec, we use cssFloat and cssOffset to represent float property and offset property for IDL name conversion. We reject offset if is it not a double value because it is a special attribute in BaseKeyframe. For consistency, maybe we should also reject float in keyframes object, and should only accept cssFloat. (It seems Blink still accept float in keyframes object.)
e.g.
let a = document.body.animate([{ "float": "left" }], 1000);
a.pause();
a.effect.getKeyframes()[0].cssFloat; // Shouldn't be "left".
@birtles If you agree with this, could we add a note in the spec to mention that we reject both offset and float in keyframes object?