The tag works with IE 5+ (from the 90s). IE wanted to support people who didn't use quotes in their tag. Like this : As you can see, the charset is on the tag instead of being in the content="" attribute. My guess is that IE looks for a charset="" attribute and uses it if found. Otherwise it goes down the http-equiv="" path. I'm pretty sure HTML5 chose the because it is already compatible with very old browsers.