For fun I ran a check on Chrome using these html4 and html5 defs.
xxx.forEach(function(x) {
var el = document.createElement(x.key);
var cand = Object.prototype.toString.call(el);
if (cand.indexOf(x.interface) == -1) {
print(x.key + " => " + cand + ", not " + x.interface);
}
});
From html4:
APPLET => [object HTMLAppletElement], not HTMLElement
BASEFONT => [object HTMLBaseFontElement], not HTMLElement
DIR => [object HTMLDirectoryElement], not HTMLElement
FONT => [object HTMLFontElement], not HTMLElement
FRAME => [object HTMLFrameElement], not HTMLElement
FRAMESET => [object HTMLFrameSetElement], not HTMLElement
TD => [object HTMLTableCellElement], not HTMLTableDataCellElement
TH => [object HTMLTableCellElement], not HTMLTableHeaderCellElement
From html5:
COMMAND => [object HTMLElement], not HTMLCommandElement
DATA => [object HTMLUnknownElement], not HTMLElement
DIALOG => [object HTMLUnknownElement], not HTMLDialogElement
TIME => [object HTMLUnknownElement], not HTMLTimeElement
None of these seem significant differences -- they're essentially ways
in which Chrome varies from the html5 spec.
https://codereview.appspot.com/6741065/