todas son sirven que para name los lista las etiquetas data cuáles custom cuales component attribute atributos atributo html html5 custom-data-attribute

son - lista de atributos html



¿Hay un límite a la longitud de los atributos HTML? (7)

HTML 4

Desde una perspectiva HTML 4, los atributos son una construcción SGML. Sus límites están definidos en la Declaración SGML de HTML 4 :

QUANTITY SGMLREF ATTCNT 60 -- increased -- ATTSPLEN 65536 -- These are the largest values -- LITLEN 65536 -- permitted in the declaration -- NAMELEN 65536 -- Avoid fixed limits in actual -- PILEN 65536 -- implementations of HTML UA''s -- TAGLVL 100 TAGLEN 65536 GRPGTCNT 150 GRPCNT 64

El valor en cuestión aquí es "ATTSPLEN", que sería el límite en la lista de especificación de atributos de un elemento (que debería ser el tamaño total de todos los atributos para ese elemento). Sin embargo, la nota anterior menciona que deben evitarse los límites fijos, por lo que es probable que no haya un límite real que no sea la memoria disponible en la mayoría de las implementaciones.

HTML 5

HTML 5 parece ser diferente, como dice la especificación , "Esta versión de HTML vuelve a ser una base no SGML".

Más adelante, cuando se describe cómo analizar HTML 5, aparece el siguiente pasaje ( énfasis agregado):

El algoritmo que se describe a continuación no impone límites a la profundidad del árbol DOM generado, ni a la longitud de los nombres de etiquetas, nombres de atributos , valores de atributos , nodos de texto, etc. Mientras se recomienda a los implementadores evitar los límites arbitrarios, se reconoce que las preocupaciones prácticas probablemente obligará a los agentes de usuario a imponer restricciones de profundidad de anidamiento.

Así que supongo que esa es tu respuesta.

¿Cuánto tiempo es demasiado largo para un valor de atributo en HTML?

Estoy usando atributos de datos de estilo HTML5 ( data-foo="bar" ) en una nueva aplicación, y en un lugar sería muy útil almacenar una buena cantidad de datos (más de 100 caracteres). Si bien sospecho que esta cantidad está bien, surge la pregunta de cuánto es demasiado.


Acabo de escribir una prueba que coloca una cadena de 10 millones de longitud en un atributo y luego la recupera, y funciona bien (Firefox 3.5.2 e Internet Explorer 7)

50 millones hacen que el navegador se bloquee con el mensaje "Este script tarda mucho en completarse".


De http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-data :

Cada elemento HTML puede tener cualquier número de atributos de datos personalizados especificados, con cualquier valor.

Lo que se utiliza para analizar / procesar estos valores de atributos de datos * tendrá limitaciones.

Resulta que los atributos de datos y los valores se colocan en un objeto DOMStringMap. Esto no tiene límites inherentes.

De http://dev.w3.org/html5/spec/Overview.html#domstringmap :

Nota: la definición de la interfaz DOMStringMap aquí solo está destinada a entornos JavaScript. Otros enlaces de idiomas deberán definir cómo se implementará DOMStringMap para esos idiomas

DOMStringMap es una interfaz con un getter, setter, greator y deleter. El configurador tiene dos parámetros de tipo DOMString, nombre y valor. El valor es de tipo DOMString que se asigna directamente a una cadena de JavaScript.

De http://bytes.com/topic/javascript/answers/92088-max-allowed-length-javascript-string:

La longitud máxima de una cadena de JavaScript es específica de la implementación.

[Nota: Chrome informa que bytes.com es una fuente de malware, así que ten cuidado]


Desde HTML5 sintaxis doc.

9.1.2.3 Atributos

Los atributos de un elemento se expresan dentro de la etiqueta de inicio del elemento.

Los atributos tienen un nombre y un valor. Los nombres de los atributos deben constar de uno o más caracteres distintos de los caracteres de espacio, U + 0000 NULL, U + 0022 MARCA DE CITA ("), U + 0027 APOSTROPHE (''), U + 003E MAYOR QUE EL SIGNO (>), U + 002F SOLIDUS (/) y U + 003D EQUALS SIGN (=), los caracteres de control y cualquier carácter que no esté definido por Unicode. En la sintaxis HTML, los nombres de los atributos se pueden escribir con cualquier combinación de letras mayúsculas y minúsculas que son una coincidencia ASCII entre mayúsculas y minúsculas para el nombre del atributo.

Los valores de atributo son una mezcla de referencias de texto y carácter, excepto con la restricción adicional de que el texto no puede contener un signo ambiguo.

Los atributos se pueden especificar de cuatro maneras diferentes:

  1. Sintaxis de atributo vacío

  2. Sintaxis de valor de atributo sin comillas

  3. Sintaxis de valor de atributo entre comillas simples

  4. Sintaxis de valor de atributo entre comillas dobles

Aquí no se ha mencionado un límite en el tamaño del valor del atributo. Así que creo que no debería haber ninguno.

También puede validar su documento contra el

Validador HTML5 (altamente experimental)


El SGML define los atributos con un conjunto límite de caracteres de 65.000 caracteres, que se ve aquí: http://www.highdots.com/forums/html/length-html-attribute-175546.html

Aunque por lo que estás haciendo, deberías estar bien. En cuanto a los límites superiores, he visto que jQuery utiliza atributos de datos que también contienen algunos k de datos de manera personal.


Nunca he oído hablar de ningún límite en la longitud de los atributos.

En las especificaciones HTML 4.01, en la sección de Atributos no hay nada que mencione alguna limitación en esto.

Lo mismo en la DTD HTML 4.01 : de hecho, por lo que sé, la DTD no le permite especificar una longitud a los atributos.

Si no hay nada sobre eso en HTML 4, no me imagino que algo así aparezca para HTML 5, y tampoco veo ninguna limitación de longitud en la sección 9.1.2.3 Atributos de HTML 5.


Realmente no creo que haya ningún límite. Sé que ahora puedes hacer

<a onclick=" //...insert 100KB of javascript code here">

y funciona bien. Aunque un poco ilegible.