Acid3 expects [class=foo] selectors to be case sensitive IIRC we have code which makes attribute selectors case insensitive for HTML, excepting special cases (which I would have though have included class). I might have actually even worked on such a patch... I feel like I did. For some css3.info selectors test, iirc. selectorTest(function (doc, add, expect) { builder(doc); p.className = "selectorPingTest"; var good = add("[class=selectorPingTest]"); add("[class=SelectorPingTest]"); add("[class=selectorpingtest]"); expect(doc.body, 0, "failure 3"); expect(p, good, "class attribute matching failed"); }); That's the test case. function selectorTest(tester) { var iframe = document.getElementById("selectors"); var doc = iframe.contentDocument; for (var i = doc.documentElement.childNodes.length-1; i >= 0; i -= 1) doc.documentElement.removeChild(doc.documentElement.childNodes[i]); doc.documentElement.appendChild(doc.createElement('head')); doc.documentElement.firstChild.appendChild(doc.createElement('title')); doc.documentElement.appendChild(doc.createElement('body')); var style = doc.createElement('style'); style.appendChild(doc.createTextNode("* { z-index: 0; position: absolute; }\n")); doc.documentElement.firstChild.appendChild(style); var ruleCount = 0; tester(doc, function (selector) { ruleCount += 1; style.appendChild(doc.createTextNode(selector + " { z-index: " + ruleCount + "; }\n")); return ruleCount; }, function(node, rule, message) { var value = doc.defaultView.getComputedStyle(node, "").zIndex; assert(value != 'auto', "underlying problems prevent this test from running properly"); assert(value == rule, "expected " + rule + ", got " + value + " - " + message); }); } is the interesting support function.
*** This bug has been marked as a duplicate of 15470 ***