son - todas las etiquetas de html y sus atributos
¿Qué caracteres están permitidos en un nombre de atributo HTML? (4)
Depende de lo que quiere decir con "permitido". Cada etiqueta tiene una lista fija de nombres de atributos que son válidos, y en html no distinguen entre mayúsculas y minúsculas. En un sentido importante, solo estos personajes en la secuencia correcta están "permitidos".
Otra forma de verlo es qué personajes tratarán los navegadores como un nombre de atributo válido. El mejor consejo aquí proviene de la especificación del analizador de HTML 5, que se puede encontrar aquí: https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
Dice que todos los caracteres, excepto tabulación, avance de línea, alimentación de formulario, espacio, solidus, mayor que signo, comillas, apóstrofo y signo igual serán tratados como parte del nombre del atributo. Personalmente, no intentaría empujar los casos extremos de esto sin embargo.
En los pares de nombre de atributo HTML = valor , ¿cuáles son los caracteres permitidos para la parte ''nombre''? ..... Mirando algunos atributos comunes , parece que solo se usan letras (az y AZ), pero ¿qué otros caracteres también se podrían permitir? ... quizás dígitos (0-9), guiones (-) y períodos (.) ... ¿hay alguna especificación para esto?
Los valores permitidos se enumeran en defined . Si agrega un atributo personalizado, ya no está escribiendo HTML.
Suponiendo que está hablando de XHTML, se aplican las reglas XML.
Ver http://www.w3.org/TR/2008/REC-xml-20081126/#NT-Name
Nombres y Tokens
[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
[5] Name ::= NameStartChar (NameChar)*
[6] Names ::= Name (#x20 Name)*
[7] Nmtoken ::= (NameChar)+
[8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*
Tal vez me esté perdiendo algo, pero creo que la pregunta se basa en una suposición falsa. En HTML, los atributos están estrictamente defined acuerdo con una especificación fija. Si ''inventa'' sus propios nombres de atributos, ya no está escribiendo HTML válido.