Concerning gnarf's option b, I believe it already does that. We only return a value when true and undefined if not true. However, I see an underlying issue here and there are multiple options.
1. We can use the boolean hook as a means of checking for support, which becomes necessary if we are going to check the property values when returning values for these attributes (this is what it already does and we have specific tests for it).
2. We can check for the presence of the attribute without checking property values at all and return the attribute name if present and undefined if not (this will be consistent, but will not reflect the property since the properties are inconsistent across browsers).
3. We can drop support completely for using attr to set html5 boolean attributes such as autofocus, autoplay, controls, and required because these are the properties which are not consistently supported across browsers.
Personally, I am in favor of either 1 or 3. If 1 is the most popular, this bug can be closed. If 3 is the most popular, it's an easy fix. 2 would require the most work with all of the getAttribute AND getAttributeNode quirks in IE for boolean attributes and I don't think it's worth it.