If index is equal to or greater than the context object's length, then [...]
How to compare to an attribute is undefined. The attribute isn't a value, it's an attribute. Thus, does this mean comparing it against the value of the attribute at a particular time, or the pointer location of the attribute, or is it a lexical comparison against the name of the attribute, or what? What happens if the attribute is fiddled with in JS?
That's why I defined a variable and referenced that in the HTML version.
For fiddling we have this text from HTML:
"When a method or an attribute is said to call another method or attribute, the user agent must invoke its internal API for that attribute or method so that e.g. the author can't change the behavior by overriding attributes or methods with custom properties or functions in ECMAScript."
So I guess if we just talk about "length attribute value" it should be fine? If it is not the changes you suggested for the Event interface are not correct either (where we moved from internal concepts for each attribute to just having attributes).
It talks about the length attribute value now. If that is not okay, a lot of text will have to be changed, and not just in the DOM...