I understand the reasoning but the sentence still comes across as very clumsy. My proposed change completely avoids the problem without changing the meaning of the sentence.
2.1, item 2, Plurality does not match: "has ... parameters which is." Change ", which is" →"in".
"context creation parameters" is also a label. If you say "WebGLContextAttributes contextCreationParameters;" in a programming language, the result is singular: one variable.
Then "following shall be performed" should be changed to something that does not imply a list of steps.
First sentence of 2.2 "following shall be performed." is followed by ... no steps.
It's referring to the rest of 2.2. Refactoring the text of 2.2 into a list of steps is a task for another time, if it's considered necessary at all. (I think that's less important.) This could be clarified if needed; the important part is that this section defines the operation "create a drawing buffer".
"For example" is still unnecessary noise. "May" implies there may be other ways too.
Also in 2.2 2nd 'graph after the table "By default, the buffers shall be the size shown below." Where? The size is not given in 2.2.
In 4.1 "For example, this may require" → "This may require". "For example" has no relevance in this context.
It implies that there may be other ways to implement the requirements, I guess.
The primary meaning "performing the implementation" has for me is the task done by the person who writes the function!.
In 5.14 "Before performing the implementation of any method" → "Before invoking any method". and "perform the implementation of the called method" to "invoke the called method."
I guess either works, but I pictured these steps as part of the method invocation itself.
Ahh! Maybe a parenthetical note to this effect would be helpful.
In 5.15 type & isTrusted attributes mentioned in the text do not appear in the IDL for WebGLContextEvent.
See the base class, defined in DOM4.