This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
In 3.2.3.2 "The title attribute", in the algorithm for 'advisory information', the first two steps are: 1 If the element is a link, style, dfn, abbr, or title element, then: if the element has a title attribute, return the value of that attribute, otherwise, return the empty string. 2. Otherwise, if the element has a title attribute, then return its value. It would be somewhat simpler to slice it the other way: 1. If the element has a title attribute, return its value. [or, "... return the value of that attribute"] 2. Otherwise, if the element is a link, style, dfn, abbr, or title element, then return the empty string.
The reason this isn't done that way (which I agree is intuitively more logical) is that the title="" attribute in step 2 is #attr-title (the global title="" attribute) whereas the title="" attribute in step 1 is the special attributes (#attr-dfn-title, etc). (Notice that it's not cross-referenced.) So if we switched the steps over, it would, to some pedants like myself, be ambiguous whether e.g. <dfn title=""> would be considered a match or not in the new step 1, unless we just didn't cross-reference to title=""'s definition, in which case other people would ask why we didn't cross-reference it.