Why onreadystatechange doesn't follow the camelCase convention?

for example:

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function () {
      if (xhr.readyState === 4) {
          document.getElementById("ajax").innerHTML = xhr.responseText;
      }
};

notice xhr.onreadystatechange is not camelCased but xhr.responseText is. Is there a reason for this that I"ve missed?
and others such as onmousedown/onmouseup, etc., are not named for hump

.
Menu