No, merely the illusion that setting a boolean attribute *value* to an
empty string removes it (it doesn't).
I have no idea what the attr method actually does in either version of
jQuery in this case, so I don't know what the actual effect on the DOM
is.
However, the HTML disabled attribute doesn't have a value at all, its
presence or absence changes the value of the related boolean DOM
property (something that is maintained in HTML5[1]), which is what the
document claimed to be). Attempting to explain the effect of jQuery's
attr using XHTML markup for an HTML document is an indicator that they
still don't know what is going on.
Interestingly, if they'd actually the latest HTML5 draft, they'd have
seen that this exact case is pointed out in section 1.9.3 under
"Errors that indicate a likely misunderstanding of the
specification"[2]:
| For example, setting the disabled attribute to the value
| "false" is disallowed, because despite the appearance of
| meaning that the element is enabled, it in fact means that
| the element is disabled (what matters for implementations
| is the presence of the attribute, not its value).
The authors of HTML5 seem to delight in confusion since they
constantly refer to "attributes" in the context of both HTML
attributes and DOM properties.
It still yields a DOM property of
*true*, which clearly baffled them.
It may set the related DOM "disabled" property to true.
Blame the software, not the
implementer, right? *dunce*
Clearly they had no idea what the method actually does, and even if
they did, they don't seem to understand HTML DOMs anyway.
Coincidentally, jQuery 1.7 hit the internet today. They sure have
impeccable timing.
I guess it will roll out in their regular second Tuesday update.
1.
http://dev.w3.org/html5/spec/Overview.html#attr-fe-disabled
2.
http://dev.w3.org/html5/spec/Overview.html#restrictions-on-content-models-and-on-attribute-values