¿Para qué atributos html5 está permitida la “syntax de atributo vacío”?

http://www.w3.org/TR/html-markup/syntax.html#syntax-attr-empty dice

Sintaxis de atributo vacía

Ciertos atributos se pueden especificar proporcionando solo el nombre del atributo, sin ningún valor [… que] sea exactamente equivalente a especificar la cadena vacía como el valor para el atributo.

IIRC, los atributos booleanos a menudo usan esto. Sin embargo, ¿a qué se refieren ” ciertos atributos”? ¿En qué atributos, en qué elementos, se permite esta syntax? O: ¿dónde no está permitido?

No pude encontrar una lista completa en ninguna parte.

La syntax del atributo vacío es solo una abreviatura de un atributo con un nombre y un valor de cadena vacía, y no significa nada especial por sí mismo. Entonces, aparte de los atributos booleanos, cualquier atributo que permita valores vacíos, incluida la class , puede especificarse con la syntax de atributo vacía, y cualquier atributo que no permita valores vacíos, como id y type , no se puede especificar con la syntax de atributo vacía.

Puede confirmar esto comparando los resultados de validación de los siguientes fragmentos con Validator.nu .

Ambos de los siguientes fragmentos deben validar:

 < !DOCTYPE html>Test  
 < !DOCTYPE html>Test  

Y ambos fragmentos siguientes deben producir el mismo error de validación:

 < !DOCTYPE html>Test  
 < !DOCTYPE html>Test  

Error: valor incorrecto para la id atributo en el body elemento: una ID no debe ser la cadena vacía.