Terminamos este especial sobre HTML5 con la parte más desagradable (o agradable) del estándar: lo que se elimina. Es curioso que un montón de elementos comunes pasan a estar prohibidos en HTML5, por razones diversas que ahora veremos. Por esas mismas razones bastantes atributos han sido eliminados bien de un elemento concreto o de todos los elementos.
Sin embargo hay que aclarar estas prohibiciones, ya que hay dos caras en esta moneda. Por un lado los desarrolladores no pueden usarlos, si quieren que sus documentos sean HTML5 válidos. Por el otro lado, los navegadores tienen la obligación de implementarlos y soportarlos, para ser compatible hacia atrás con HTML4 y anteriores. Esta dualidad es muy interesante y nos ahorra bastantes problemas de una manera limpia definida en el estándar.
HTML 5. Elementos eliminados
Como decía, estos son los elementos eliminados y las razones de por qué son prohibidos:
- Los siguientes elementos (muy usados hace pocos años) se quitan de HTML5 porque son puramente presentacionales (no tienen semántica) y todo el tema estético se debe tratar con CSS:
- basefont
- big
- center
- font
- s
- strike
- tt
- u
- Los elementos para trabajar con frames (frame, frameset y noframes) se quitan del estándar por razones obvias: afectan negativamente a la usabilidad y accesibilidad de la web. Además, prácticamente rompen la web, y si se necesita algo similar se puede acudir a los iframe, más potentes y mejor pensados.
- El elemento acronym se elimina simplemente porque crea confusión sobre su uso, y los desarrolladores no entienden demasiado bien para qué usarlo. Las abreviaciones y acrónimos se pueden marcar con abbr, que sí se mantiene en el estándar.
- El elemento applet se ha declarado obsoleto y hoy en día no se utiliza. El elemento object reemplaza sus funciones y es lo común hoy en día.
- El elemento isindex se quita definitivamente. En la era de las cavernas se utilizaba para mandar información al servidor, pero con la llegada de los formularios su uso es arcaico y poco útil.
- El elemento dir también se declara obsoleto (ya lo era en HTML4), y simplemente se recomienda usar listas normales con ul.
- El elemento noscript se mantiene en HTML pero no en XML/XHTML, ya que su contenido está en HTML. No estoy muy de acuerdo con este movimiento, pero así será.
HTML 5. Atributos eliminados
Para empezar, todos los atributos referentes a la presentación han sido eliminados, por la misma razón de antes: CSS sirve mejor ese propósito. Recuerdo que el atributo style (que contiene CSS) es ahora universal y puede ser aplicado a todos los elementos, así que si queremos indicar su presentación sin añadir una hoja de estilos aparte, tendremos que usar este atributo. Atención a la lista porque esto sí que es importante, ya que algunos de estos elementos son muy usados, aunque otros están muy obsoletos:
- Atributo align en todos los elementos.
- Atributos alink, link, text y vlink en el elemento body.
- Atributo background en el elemento body.
- Atributo bgcolor en los elementos table, tr, td, th y body.
- Atributo border en todos los elementos.
- Atributos cellpadding y cellspacing en el elemento table.
- Atributos char y charoff en los elementos col, colgroup, tbody, td, tfoot, th, thead y tr.
- Atributo clear en el elemento br.
- Atributo compact en los elementos dl, menu, ol y ul.
- Atributo frame en el elemento table.
- Atributo frameborder en el elemento iframe.
- Atributo height en los elementos td y th.
- Atributos hspace y vspace en los elementos img y object.
- Atributos marginheight y marginwidth en el elemento iframe.
- Atributo noshade en el elemento hr.
- Atributo nowrap en los elementos td y th.
- Atributo rules en el elemento table.
- Atributo scrolling en el elemento iframe.
- Atributo size en el elemento hr.
- Atributo type en los elementos li, ol y ul.
- Atributo valign en los elementos col, colgroup, tbody, td, tfoot, th, thead y tr.
- Atributo width en los elementos hr, table, td, th, col, colgroup y pre.
Como veis, algunos de estos atributos sí que se mantienen para ciertos elementos, como la anchura y altura en las imágenes. Sin embargo estos no son los únicos atributos que se eliminan, también hay otros que se quitan por redundancia, por evitar confusiones, por su bajo uso o porque simplemente se han quedado obsoletos.
- Atributo accesskey en los elementos a, area, button, input, label, legend y textarea.
- Atributos rev y charset en los elementos link y a.
- Atributos shape y coords en el elemento a.
- Atributo longdesc en los elementos img y iframe.
- Atributo target en el elemento link.
- Atributo nohref en el elemento area.
- Atributo profile en el elemento head.
- Atributo version en el elemento html.
- Atributo name en los elementos img y a. Para obtener un comportamiento similar se recomienda usar id.
- Atributo scheme en el elemento meta.
- Atributos archive, classid, codebase, codetype, declare y standby en el elemento object.
- Atributos valuetype y type en el elemento param.
- Atributo language en el elemento script.
- Atributo summary en el elemento table.
- Atributos axis y abbr en los elementos td y th.
- Atributo scope en el elemento td.
HTML 5. Otros cambios
Hay diversos elementos que no se eliminan por su extendida fama, pero que siendo un tanto ortodoxos deberían eliminarse. Para evitar esto los que están escribiendo el estándar han tenido que redefinir su definición, de tal forma que se tratan de manera similar pero semánticamente son diferentes.
Un ejemplo muy claro es u e i, muy usados pero que progresivamente pierden importancia frente a strong y em. Estos dos elementos, que indicaban negrita y cursiva respectivamente, pasan a definirse de una manera muy vaga para indicar un texto diferente en alguna manera al texto normal. Otros elementos se redefinen, particularmente me resulta curioso que se mantenga small mientras big se elimina. De cualquier manera, no es demasiado relevante para los desarrolladores web, en el sentido de que podrán seguir usándolos como ahora.
HTML5. Conclusiones
Tal y cómo habéis ido viendo, las novedades de HTML5 se centran en facilitar la implementación de aplicaciones web, avanzar hacia la web semántica y limpiar un poco toda la basura heredada de las anteriores versiones de HTML. Aunque todo eso parezca lejano, lo cierto es que muchos navegadores ya implementan algunas partes sueltas de HTML5, y ya existen varias páginas experimentales que juegan con estos elementos. Por ejemplo, cerramos este minucioso especial precisamente en el día en que Firefox 3.5 es lanzado, pero Safari, Opera, Chrome e incluso IE8 ya soportan algunas cosas.
Ahora queda preguntarnos, ¿cuándo se acabará este estándar? Precisamente no hay ninguna fecha, y la condición para que HTML5 se considere estándar es, según la W3C, que al menos un navegador implemente todo HTML5 correctamente. De esta manera se asegura que todo el estándar es factible, que puede ser implementado. Para esto puede quedar dos o tres años, si todo va bien, pero nada es seguro.
Enlace | Las novedades de HTML5 (I)
Enlace | Las novedades de HTML5 (II)
Enlace | Las novedades de HTML5 (III)
Enlace | Borrador actual de HTML5
Ver más | HTML5
Hola,
¡Un serie de artículos genial! Magnifico!
He encontrado un error en el segundo párrafo de «Otros Cambios»:
«Un ejemplo muy claro es u e i, muy usados pero que progresivamente pierden importancia frente a strong y em.»
Debería ser:
«Un ejemplo muy claro es b e i, …»
Seguir así!
Se sabe para cuando en el IE8?
El tema del target se soluciona desde CSS3
http://www.w3.org/TR/css3-hyperlinks/
ANONIMO,
Lo equivalente es usar css. En este caso sería:
.algo { white-space: nowrap; }
Con esta gente no hay quien respete los estandares (no lo hacen ni ellos), el noscript y el target, por favor, en que estan pensando?
nowrap quitado de un td… ¿y que es lo equivalente?
Ups, traté de poner como ejemplo el tag » y se arruinó el post, favor al moderador de editarlo y ponerlo correctamente 🙂
Completísimo y lindo informe, pero me quedé con una duda…
Al ver la lista de atributos que se eliminarán noté que se removerá el atributo «target» del elemento anchor («<a>»). Cómo se supone que se deberá especificar en dónde abrir un link? O acaso se piensa dejar eso en las diferentes implementaciones de cada navegador? Me parecería un desacierto…
También noté que se han eliminador shape y coords de este mismo tag, acaso esas propiedades no eran utilizadas para realizar imágenes con zonas clickeables? Aunque de todas maneras me imagino que se podíra lograr algo similar con el canvas…
Lo que quieres decir me ha quedao claro, pero ahora estoy como tu, no entiendo por que no dejan escribirlo, francamente no se en que piensa esta gente si lo hace, por cierto mira el draft….
http://validator.w3.org/check?uri=http%3A%2F%2Fdev.w3.org%2Fhtml5%2Fspec%2FOverview.html&charset=(detect+automatically)&doctype=Inline&group=0
Hola amigo, podrias explicarme esto?:
El elemento noscript se mantiene en HTML pero no en XML/XHTML, ya que su contenido está en HTML. No estoy muy de acuerdo con este movimiento, pero así será.
No me ha quedado muy claro
PD: Victor pimentel? dios XD
A ver te explico: HTML5 es un estándar definido «teóricamente». Luego ese estándar puede estar escrito en HTML (no hace falta cerrar tags), XHTML (hace falta cerrar tags), XML o el lenguaje que se quiera. Bueno, solo en HTML y XML porque son los que normalmente se usan, pero en principio pueden añadir cualquier lenguaje mientras que el estándar es el mismo.
Así, el elemento noscript solo está permitido en HTML pero no en XHTML, porque su contenido se define en el estándar en HTML. Es un poco de lío, pero básicamente no se permite porque puede dar errores de validación de XML. Lo que no entiendo es por qué no permiten escribir XHMTL dentro de noscript, pero alguna razón tendrán.
¿Ha quedado claro o te he liado más? 😉