Steps to reproduce:
1. Open https://jsfiddle.net/tz0qhowy/2/
The left element has a red background and an image which has 0.5 opacity.
The right element is a canvas which has red background and the image drawn with 50% opacity.
I think both the left and the right side should always perfectly match with each other.
In Safari during you switch color profiles [OSX System settings -> Displays -> Color], you can clearly see that the color do not match on the canvas with the one rendered by HTML.