Current behavoir: The values of all attributes are compared by using a case-insensitive method. Correct behavoir: The CSS specification says that the case-sensitivity is determined by the document language. The HTML specification specifically tells us which attributes are case-sensitive, case-neutral or case-insensitive. Because attributes values are case-sensitive by default, we should treat unknown attributes in a case-sensitive way. The list of case-insensitive attributes is as follows: lang, dir, http-equiv, text, link, vlink, alink, compact, align, frame, rules, valign, scope, axis, nowrap, hreflang, rel, rev, charset, codetype, declare, valuetype, shape, nohref, media, bgcolor, clear, color, face, noshade, noresize, scrolling, target, method, enctype, accept-charset, accept, checked, multiple, selected, disabled, readonly, language, defer, type See also the following bugs: http://bugzilla.mozilla.org/show_bug.cgi?id=357614 http://bugzilla.mozilla.org/show_bug.cgi?id=356936 http://bugs.kde.org/show_bug.cgi?id=135505 and http://rakaz.nl/item/css_selector_bugs_case_sensitivity
The code which defines this behaivor is in: CSSParser::parseContent if (fname == "attr(") { if (args->size() != 1) return false; Value* a = args->current(); String attrName = domString(a->string); if (document()->isHTMLDocument()) attrName = attrName.lower(); parsedValue = new CSSPrimitiveValue(attrName, CSSPrimitiveValue::CSS_ATTR); Note that that code will be changed slightly by the patch attached to bug 15302, since the mathml.css file (which contains attr selectors) is parsed before there is any document() set.
Created attachment 17316 [details] minimal test case
Is this bg already fixed? I don't see error behavior.
*** This bug has been marked as a duplicate of 15470 ***