Pregunta

Esta pregunta se inspiró un poco en esta pregunta , en la que los más votados la respuesta recomendaba usar una función de HTML 5. Ciertamente me pareció un buen método, pero me hizo sentir curiosidad por usar funciones de una especificación futura en general.

HTML 5 ofrece muchas mejoras agradables, muchas de las cuales se pueden usar sin causar problemas en los navegadores actuales.

Algunos ejemplos:

// new, simple HTML5 doctype (puts browsers in standards mode)
<!doctype HTML>

// new input types,  for easy, generic client side validation
<input type="email" name="emailAddress"/>
<input type="number" name="userid"/>
<input type="date" name="dateOfBirth"/>

// new "required" attribute indicates that a field is required
<input type="text" name="userName" required="true"/>

// new 'data-' prefixed attributes
// for easy insertion of js-accessible metadata in dynamic pages
<div data-price="33.23"> 
    <!-- -->
</div>
<button data-item-id="93024">Add Item</button>

Muchas de estas nuevas características están diseñadas para permitir que los navegadores validen automáticamente los formularios, así como para proporcionarles mejores entradas (por ejemplo, un selector de fecha). Algunos son simplemente convenientes y parecen una buena manera de prepararse para el futuro.

Actualmente no rompen nada (por lo que puedo decir) en los navegadores actuales y permiten un código limpio y genérico del lado del cliente.

Sin embargo, aunque todos son válidos en HTML 5, NO son válidos para HTML 4, y HTML 5 todavía es un borrador en este momento.

¿Es una buena idea seguir adelante y usar estas funciones antes?

¿Hay problemas de implementación del navegador con ellos que no me he dado cuenta?

¿Deberíamos desarrollar páginas web ahora que utilicen las funciones de borrador de HTML 5?

¿Fue útil?

Solución

Hay varias cosas a considerar:

  1. Primero, la validación no significa mucho, porque una página HTML puede ser válida pero mal escrita, inaccesible, etc. Ver Diga no a " HTML válido " íconos y Envío de XHTML como texto / html Considerado como dañino (en referencia al hobo-web pruebas mencionadas en otra respuesta)
  2. Dado esto, recomiendo encarecidamente usar el nuevo DOCTYPE: la única razón para tenerlo en HTML5 es que es lo más pequeño que activa el modo estándar en los navegadores, así que si quieres el modo estándar, ve con él; tiene poco o ningún motivo para utilizar otro DOCTYPE detallado, propenso a errores
  3. En cuanto a las mejoras de formularios, puede usar la webforms2 biblioteca JS de Weston Ruter para traer a navegadores no conscientes
  4. y finalmente, sobre los atributos data- * , a) funciona en todos los navegadores (siempre y cuando use getAttribute () ), b) es aún mejor que abusar de los atributos title o class yc) no te molestará con la validación como dijimos anteriormente que la validación no es tan importante ( por supuesto que lo es, pero no importa que su página no sea válida si los errores de validez son intencionales; y ya puede usar la validación HTML5 en el validador W3C, así que ...); así que no hay razón real para no usarlos tampoco.

Otros consejos

¡Buena pregunta!

En resumen: depende de su contexto y tolerancia al riesgo :)

Ligeramente más largo:

  • Creo creo que siempre es bueno ampliar la adopción temprana de la tecnología. Le da una ventaja sobre los recién llegados en el mundo comercial, y también le da mucha más influencia para influir en la tecnología a medida que emerge.

  • Si no desea tener que volver a escribir el código o actualizar su fuente, entonces la adopción anticipada puede no ser para usted. Es perfectamente respetable querer escribir código sólido y estable que nunca tenga que cambiar, pero depende completamente de usted (y su contexto comercial)

Si su página se basa en gran medida en la ubicación del motor de búsqueda, puede valer la pena considerar que algunos motores dan prioridad a la validación de HTML (Fuente: http://www.hobo-web.co.uk/seo-blog/index.php/official- google-prefers-valid-html-css / ).

Además, vale la pena considerar que confiar en los nuevos elementos de entrada de fecha (como los de Opera, posiblemente otros) permite una mayor comodidad por parte del desarrollador, por lo general impide incluir controles Javascript más complejos que mejorarían el servidor navegadores más antiguos (generalmente recurriendo a un campo de entrada de texto simple).

Por supuesto, y como siempre, no confíe en las comprobaciones del lado del navegador y valide todo el lado del servidor de entrada.

No utilice las nuevas funciones antes de poder probarlas en al menos un navegador. Por ejemplo, si usa las características de formulario ahora, asegúrese de probar en Opera. De lo contrario, es probable que haga más daño que bien al contribuir a un legado envenenado por ahí.

Cuando una función ya está implementada en los navegadores y está probando con esos navegadores, por favor, use las nuevas funciones.

Consulte también una respuesta anterior .

Ver Principio de robustez :

  

En RFC 761 (Control de transmisión   Protocolo, 1980) computadora estadounidense   el científico Jon Postel resumió   comunicaciones anteriores de lo deseado   criterios de interoperabilidad para el   Protocolo de Internet (cf. IEN 111 1 , RFC   760) de la siguiente manera:

     

Las implementaciones de TCP deben seguir a   principio general de robustez: be   conservador en lo que haces, sé   liberal en lo que aceptas de   otros .

Entonces, en mi humilde opinión, no.

No implementaré nuevas funciones de HTML hasta que al menos tengan soporte de todos los principales navegadores.

A los clientes no les importa si su página es válida, les importa mucho más si funciona en varios navegadores. Incluso si luchamos por implementar los últimos estándares, todavía habrá clientes y empresas que nunca perderán su IE6, e IE6 estará en la lista de requisitos de su navegador por un tiempo.

Los nuevos tipos de formulario son bienvenidos, sin embargo, los formularios deben verificarse en el lado del servidor.

Pasar a los documentos HTML5 existentes requerirá mucho esfuerzo y adaptación y, en mi opinión, no sucederá de la noche a la mañana. Espere al menos 3 años hasta que llegue a la corriente principal.

Usaría HTML 5 solo por diversión y aprendizaje, pero definitivamente no tocaría ninguno de mi código de producción (código existente) con este nuevo estándar, al menos por ahora y hasta que tenga una razón válida para apoyar este movimiento .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top