La especificación HTML dice
Los tokens de ID y NAME deben comenzar con una letra ([A-Za-z]) y pueden ir seguidos de cualquier número de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_") , dos puntos (":") y puntos (".").
Y aunque la declaración SGML de HTML 4 usa el valor 65536 para NAMELEN, señala "Evite límites fijos".
Pero seguramente los navegadores, las implementaciones de CSS y los kits de herramientas de JavaScript deben tener algunos límites en la longitud que admiten. ¿Cuál es el límite más pequeño que es seguro de usar en una aplicación HTML / CSS / JS?