Most of the desktop games started leveraging GPUs to enhance 3D performance. So, demand for performant 3D graphics in the browsers arose. That led to Mozilla and Opera showcasing some initial experiments that exposed a 3D rendering context from the canvas HTML element. They were so fascinating that the community decided to gather to standardize something that every browser could implement.
All browsers collaborated to create WebGL, the standard for rendering 3D graphics on the web. It was based on OpenGL ES, a cross-platform API for graphics targeted at embedded systems. This was perhaps one of the smoothest standardization processes in the history of the web because luckily all the browsers were running on systems that had support for OpenGL.
WebGL has unleashed the power of graphics processors to developers on an open web platform, and all major browsers support it, allowing console quality games to be built for the web and communities like three.js library to thrive. Since then WebGL has evolved to WebGL 2, and all major browser engines are committed to supporting it.
Since some time, there have been low-level graphic APIs like Direct3D from Microsoft and Metal from Apple which have leveraged improved GPU technology. Their APIs have been created to better reflect designs of modern GPUs and are built on a very lower level abstraction. Due to their reduced overhead, they generally offer better performance than OpenGL. Unfortunately, as you might have guessed, they are not cross platform.
In order to make Web Graphics to leverage new and diverse GPU computing technologies, Webkit has recently proposed a standard API which would expose a modern, low-level technology that can accelerate graphics and computation. The new API would also be compatible with emerging web standards like WebAssembly and WebVR. Also, GPU for the Web Community Group has been opened to membership to progress the development openly and by the best people in the industry.