01:45
<sideshowbarker>
For https://html.spec.whatwg.org/multipage/interaction.html#attr-writingsuggestions can somebody remind me why the empty string is a conforming value for that — even though the table there only explicitly lists true and false as the allowed values?
01:46
<sideshowbarker>
And note that at https://html.spec.whatwg.org/multipage/indices.html#attributes-3:~:text=writingsuggestions the index of attributes is where the spec (though non-normatively there, I guess) states that the empty string is an allowed value.
01:48
<sideshowbarker>
…and similarly for, e.g., the spellcheck attribute, the index at https://html.spec.whatwg.org/multipage/indices.html#attributes-3:~:text=spellcheck also says the empty string is allowed for that.
01:48
<sideshowbarker>
And for hidden too https://html.spec.whatwg.org/multipage/indices.html#attributes-3:~:text=hidden,-HTML
01:50
<sideshowbarker>
But looking at the whole index, I guess it’s just those three which the index says are allowed to have the empty string as a value. hidden, spellcheck, and writingsuggestions
01:52
<sideshowbarker>
…whereas, in contrast, if you look at what the index says about other enumerated — such as wrap at https://html.spec.whatwg.org/multipage/indices.html#attributes-3:~:text=integer-,wrap — the index does not say the empty string is allowed.
01:53
<sideshowbarker>
see popover at https://html.spec.whatwg.org/multipage/indices.html#attributes-3:~:text=popover,-HTML for another empty-string-not-allowed example
01:58
<sideshowbarker>

d’oh nevermind — found the requirement at https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#enumerated-attribute:~:text=The%20empty%20string,-and

For authoring conformance purposes, if an enumerated attribute is specified, the attribute's value must be one of:

  • An ASCII case-insensitive match for one of the conforming keywords for that attribute, with no leading or trailing whitespace.

  • The empty string and the attribute must have an empty value default defined.

02:00
<sideshowbarker>
So, the index is wrong (or incomplete/imprecise) in the cases where, for any enumerated attributes, it doesn’t explicitly list the empty string as an allowed value.
08:09
<annevk>
sideshowbarker: r? https://github.com/whatwg/html/pull/11974
08:10
<sideshowbarker>
beautiful
08:11
<sideshowbarker>
but now you make me feel like I’m just a lazy complainer 😆
08:11
<sideshowbarker>
will review it right now
08:12
<annevk>
Nah all good. Luke and I changed this around a bit recently as part of making reflection more formal and this is something we missed.
08:38
<sideshowbarker>
annevk: You need to put on your glasses; seems like you missed a few: https://github.com/whatwg/html/pull/11974/commits/02f24ef01e1c3dd7f4fb53ec43b5e692a80050d4
08:38
<sideshowbarker>
oh wait
08:39
<sideshowbarker>
Had you outsourced that to copilot or something?
08:52
<annevk>
sideshowbarker: I don't really understand your commit. Why would the empty string be valid for autocapitalize for instance?
08:52
<annevk>
The attribute needs to define an "empty value default" for the empty string to be a valid value. I only added it for attributes that define that.
08:55
<sideshowbarker>
d’oh yeah I see now you’re right — I hadn’t read the requirements at https://whatpr.org/html/11974/common-microsyntaxes.html#:~:text=The%20empty%20string%20and%20the%20attribute%20must%20have%20an%20empty%20value%20default%20defined. carefully enough
08:55
<sideshowbarker>
so yeah then, that additional commit I made can just be ignored
08:59
<annevk>
Okay, I'll revert it and the squash & merge.
11:02
<sideshowbarker>
annevk: By the way, not trying to butter you up, but I am (again) reminded that basically any time it seems to me like you made a mistake or oversight, it’s very significantly more likely (or close to certain) that it’s me who actually made the mistake.
11:03
<sideshowbarker>
You seem to make exceptionally few mistakes. We could probably add a “Mistakes that Anne has made” page to the wiki, and not even come close to filling up the page.
11:15
<annevk>
Hah, well I made a fair number of mistakes with custom element registries recently and Domenic was pretty good at spotting errors in my PRs as well over the years. I do try to be precise and do my due diligence, but I'm certainly not infallible.
17:43
<sideshowbarker>

About the index, I don’t see Keith around here, but I wanted to say, I notice the index doesn’t seem to include entries for the headingoffset and headingreset global attributes.

And further, the spec doesn’t state any document-conformance requirements about the allowed values of those attributes — that is, it should rightly explicitly state somewhere that they are non-negative integer (headingoffset) and boolean (headingreset). (Which can be inferred from the implementations requirements, but should also be stated explicitly somewhere.)