I load a PNG texture with an 8 bits alpha channel. Transparency pixels are ok: I can see what was in the framebuffer before I draw.

But semi-transparent ones (0.0 < alpha < 1.0) are blended with the <body> background color! In fact, it seems like there were 3 colors in the calculation: the framebuffer one (destination), the source and the <body> background color. My expectation is that the <body> bgcolor should not interfere (I clear my whole framebuffer to a different color with gl.clear(r, g, b, 1.0)).

I did a test to change the <body> background color each frame and I confirm the behaviour. Mainly, I use that usual OpenGL setup:

gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);

The behaviour is the same on Firefox and Chrome. What could be wrong?