Is it normal for an image's colors to appear slightly different, on the same calibrated system, across what appear to be color-managed (or at least ICC-aware) browsers? (I'm in Windows 7, 64-bit.)
I've attached a cropped screen shot of how IE11 and Firefox 26 render an ICC-tagged test image that I found in another forum on this site.
Both browsers correctly show a yellow car, so as I understand the issue the browsers are ICC-aware (if they weren't the cars would appear purple, as I've demonstrated to myself in some non-color managed apps I've got.) But Firefox (and Chrome, it turns out) introduce a warm cast.
Is this just how it is? Or am I missing some variable in the color management / ICC chain?
Absolutely. IE is NOT fully color-managed (it simply converts any image tagged as wide gamut to sRGB and that's the extent of it's management, and that actually makes things worse if you were running it on a monitor in wide gamut mode so the wide gamut images may have looked at least vaguely correct before it turned them into sRGB). Firefox is color-managed and if you use the plug-in to turn it on 100% it will even color-manage the text and background colors, every single last element on a webpage.
IE does not make any use of the monitor profile at all. So if you have an sRGB image but your monitor is set to gamma 2.2 it won't translate from sRGB tone curve to gamma 2.2 and you'll get shadows that look a bit too contrasty and dark as well as slight mistakes in the highlights. Also if the primaries on your monitor are not exactly set to sRGB coordinates it won't apply the needed transformations for that and if your profile is a complex LUT table to try to fix some of the color issues with your monitor it won't use those either.
Firefox will do all of that.
Chrome does nothing ever.
(actually i haven't tested the very latest IE that just came out, but I thought I've heard that it is the same old story, more or less not color-managed)
I'm not sure that Chrome does nothing. At least, Chromium as used in Opera, based on some tests I just ran a short while ago, seems to do color management. Firefox doesn't support the ICC test, however it does seem to properly render photos with AdobeRGB.
Seems like browser color management is a quirky scenario. Only IE supports the ICC test, however all browsers seem to do some kind of ICM on some images. Opera/Chromium, for example, doesn't seem to handle ProPhotoRGB images for whatever reason (they show up rather desaturated.)
Really wish this issue would be delt with. The major operating systems offer built-in color management engines. Browsers wouldn't have to implement them on their own, they would just need to hook into the OS ICM and let it do it's thing. Sounds rather simple, if you ask me...
IE passes the ICC test because it understands image profiles and both v2 and v4 but that ICC test only tests how browsers react to image profiles. It does nothing to tell you abut whether the browser handles monitor profiles. IE doesn't (at least not as of all versions prior to the very latest and I'm pretty sure even the latest still does not).
Firefox may fail the ICC test, but only the v4 tagged images of which there are likely only a vanishing few out there on the web but it passes everything else. It understands monitor profiles and can even handle text, backgrounds and so on, everything (well actually not Adobe Flash stuff since that renders itself and is not managed, so sadly flash based slide shows are 100% not color managed ). Some browsers handle most stuff but don't handle untagged elements so all the images not tagged as sRGB (but that are sRGB) and all the web elemenets like various background colors and text colors and so on are not managed and all that stuff goes radioactive if you use those browsers on a wide gamut monitor set to wide gamut mode, even if all tagged images look perfect.
at least on Windows. MAC is different some there have been times that MAC versions of browsers have been color-managed but not Windows and even vice-versa and then in some cases the MAC itself tries to color manage which Windows never does.
The browser shouldn't "handle" monitor profiles. It isn't the browsers job, technically speaking. It's the job of the Image Color Management (ICM) engine to handle that. You have multiple profiles in play at any given time. In the case of rendering an image to the screen, you have two key profiles: The image profile and the monitor profile. The monitor profile ONLY affects things rendered to the screen. That is completely abstract from the browser, or any other ICM-aware application. It isn't the applications responsibility to deal with the monitor.
For that matter, neither is it really the application's responsibility to actually deal with the image profile. All a browser really needs to do is determine what ICC profile an image is tagged with, and render it to the screen VIA ICM. The ICM engine will then deal with any and all other devices (and their profiles) in order to spit out color-corrected values for each pixel.
In the case of a print softproofing workflow, you would technically have three profiles in play: The image, the screen, and the printer. The ICC profile assigned to an image basically calibrates the image. You can't apply a monitor profile to an image, it wouldn't make any sense. Neither can you apply a print profile to an image. Each profile only applies to the thing it was designed for. ICM will convert from the image ICC profile to the printer ICC profile, and will then in turn render that output to screen with the monitor ICC profile.
So long as a browser properly uses the OS ICM engine, it doesn't actually need to do a bloody thing, other than render via
ICM with the images ICC profile (or assume sRGB if there is no profile tagged). The OS ICM engine does all the rest.
In the case of Opera/Chrome, it appears they do not support the v4 profiles like you say. That said, as far as I can tell, they do support full ICM as I've described above for v2 profiles. Is there something about IE that is different? Is there evidence that indicates it converts everything to sRGB in some sideband way first? (That doesn't seem logical to me, given that Windows has had it's own ICM for years.)