Web Browsers and Colour Management

14th September 2015 Colour Management & Lighting


At time of writing it is fair to say that as a rule browsers still do not display images correctly using colour management.

What Should Happen

If a browser is displaying an image without an embedded colour profile, the image should be assumed to be in sRGB and the image should undergo a standard sRGB to monitor profile transformation. (The assumption should be sRGB as it is by far the most likely colour space for the image to be in).

If a browser is displaying an image with an embedded colour profile, the image should undergo the standard image profile to monitor profile transformation (and would then appear identically to that same image being displayed in Photoshop).

(The transformations should arguably by default be done with Relative Colorimetric intent, but definitely Perceptual or RC should be used over Absolute Colorimetric or Saturation).

What Does Happen

Browser support for colour management remains generally poor unfortunately.

  • Chrome

    Latest versions of Chrome on OSX and Windows appear to support colour management to some degree, but reports are conflicting on the efficacy, and it only works with ICC V2 tagged images.

  • FireFox

    Overall the best browser choice from a colour management perspective.

    However, colour management is off by default (well, the monitor profile is used but colour management is only applied to images with a colour profile embedded - and most web images don't have a profile embedded). But you can easily switch it on for all images, using this add on. You can also reach these settings via the about:config interface, but the add on is a much simpler and safer method.

    The default rendering intent is Perceptual. Only ICC V2 profiles are supported currently.

    If you want more control, use the about:config interface and this table of settings to achieve your desired behaviour:

    Setting NamePossible SettingsEffect of Each Setting
    gfx.color_management.display_profilePath to display profile e.g. C:\WINDOWS\system32\
    spool\drivers\color\Monitor.icc
    Sets the specific display profile to be used
    Nothing (default)Default system display profile will be used
    gfx.color_management.mode0Disables colour management
    1Colour manage all images
    2 (default)Only colour manage images with embedded icc profiles
    gfx.color_management.rendering_intent-1Use intent specified in embedded icc profiles
    0 (default)Perceptual
    1Relative Colorimetric
    2Relative Colorimetric
    3Absolute Colorimetric
  • Safari

    Is generally colour managed and it's turned on by default. However on the Mac platform, it assumes the monitor profile for images without an embedded profile - which is a truly bizarre choice and means that for all untagged images the display will be incorrect - so really Safari is in many ways not colour managed at all on the Mac. Oddly, on Windows, the assumed profile for untagged images is correctly sRGB - meaning the Mac browser offers significantly better colour management performance when run on Windows!

  • Internet Explorer

    No support for colour management is available up to version 8. With one very odd exception - IE 5.1 on the Mac is colour managed. Version 9 now sort of supports colour management but is quite broken in its implementation, all it really does is convert all untagged images to sRGB. So essentially still not very good.

  • Opera

    No colour management is available in Opera at time of writing.

  • Others

    Unpredictable - webkit based browsers may offer colour management, but most likely won't. IE based browsers don't.

  • Summary

    Use Firefox for colour managed browsing. It's the only browser that gets this mostly right and works on both Mac and PC.

    Using Firefox is particularly relevant if you have a modern wide gamut monitor.