空布尔 HTML 属性与无值属性相同吗?

gma*_*man 4 html attributes

大多数文档中将某些 HTML 属性描述为没有值。示例包括:

<script async ...>
<option selected ...>
<input type="checkbox" checked ...>
Run Code Online (Sandbox Code Playgroud)

这些属性和空属性之间有功能/语义差异吗?

<script async="" ...>
<option selected="" ...>
<input type="checkbox" checked="" ...>
Run Code Online (Sandbox Code Playgroud)

我这么问是因为我正在使用一些库来解析 HTML,然后操作一些节点,然后将节点序列化回 HTML,序列化器将前者转换为后者。

空属性值是否可以,或者我应该努力将 HTML 恢复为上面的顶级格式?

Lei*_*man 6

引用 w3c

没有分配值(例如checked)的布尔属性隐式等价于分配了空字符串的布尔属性(即checked="")。因此,它代表了真实的价值。