Comentarios desactivados

Ya cada vez son más los navegadores que soportan HTML5; como si fuese poco, cada vez son más los dispositivos capaces de correr esos navegadores. Sin embargo no todos los navegadores soportan completamente; algo completamente necesario cuando uno va a poner esfuerzo en desarrollar una página web.

No tiene sentido utilizar la última tecnología si, además, hay que volver a implementar todo con otras tecnologías para aquellos que no soportan esto último. Directamente hacemos una sola implementación y listo; menos problemas para todos. Pero siempre hay un punto medio; ese punto en el que podemos sentir que estamos haciendo las cosas como corresponde y hacer que funcione en todos lados no requiere volver a hacer todo de nuevo.

Gracias a Anieto2k, me entero del libro “Dive into HTML5″ (Sumergirse en HTML5), siendo escrito por Mark Pilgrim. Por lo poco que leí aparenta estar escrito justamente con eso en mente. Aprender los recovecos necesarios de HTML5, pero siempre teniendo en cuenta aquellos que todavía no soportan esta tecnología. En particular, los avances en formularios web permiten muchas cosas nuevas con un mínimo de esfuerzo; cosas que no alteran la funcionalidad de nuestras páginas, que se integran de forma transparente y – en aquellos navegadores que lo tienen en cuenta – inclusive proporcionan beneficios en usabilidad para el usuario.

De todas las cosas nuevas que hay, me voy a limitar a aquellas que podemos empezar a usar ahora sin molestar a nadie o con poco esfuerzo. Aquellas que no tenemos excusas para no usar.

Atributos nuevos para input

Texto temporal

Muchas veces, queremos incorporar las etiquetas asociadas a los campos de texto en el mismo campo de texto. Porque quedan bien, o porque ocupan menos espacio o simplemente queremos dar un ejemplo que tiene que desaparecer cuando el usuario quiera ingresar texto… sin molestarlo demasiado.

HTML5 agrega un nuevo atributo a los input que hace exactamente eso: placeholder; soportado actualmente por Chrome y Safari. Aquellos navegadores que no lo soportan, simplemente lo ignoran. Tan sencillo como eso

	<form>
		<input name="busqueda" placeholder="Buscar en Favoritos y el Historial" />
		<input type="submit" value="Buscar" />
	</form>

Foco automático

Si tenemos más de un formulario en una página, seguro que tenemos algún tipo de javascript asociado a la misma que deja el cursor en alguno de los campos para que el usuario comience a tipear cómodamente. Inclusive Google lo hace en la página principal de su buscador.

No más. HTML5 incorpora el atributo autofocus, soportado por Chrome, Safari y Opera. Nuevamente, aquellos que no lo soportan simplemente lo van a ignorar, y proveerles la misma funcionalidad es tan simple como 2 líneas de JavaScript.

	<form name="f">
	  <input id="busqueda" autofocus />
	  <script>
		if (!("autofocus" in document.createElement("input"))) {
		  document.getElementById("busqueda").focus();
		}
	  </script>
	  <input type="submit" value="Buscar" />
	</form>

En el libro explican que el script va junto con el campo para evitar demoras ya que el evento window.onload espera hasta que las imágenes terminen de cargar; lo que seguramente suceda después que termina de mostrarse la página y probablemente después que el usuario haga click y ya haya comenzado a tipear. Si no se puede poner allí tampoco, es preferible utilizar el evento $(document).ready().

Nuevos tipos de input

HTML5 agrega nuevos tipos de input además de los ya existentes. Todos gozan del mismo beneficio, en aquellos navegadores que no está soportado aparecen como un campo de texto común y corriente. Estructura que hubiésemos usado de todas formas así que no hay cambio alguno. Además, la regla de validar cualquier dato ingresado por el usuario sigue en pie así que no hay ningún otro cambio que hacer al sistema por detrás.

Sólo cambiar el tipo de input no nos afecta en nada pero puede dar grandes beneficios a los usuarios de nuestro sitio.

E-mail

Un tipo simple y que no tiene demasiada relevancia actualmente. Crear un input con tipo email no hace prácticamente ninguna diferencia al momento de escribir este artículo. Se ve igual a cualquier otra caja de texto, se comporta de la misma forma y todo.

Salvo para usuarios de iPhone, a los que el teclado que les aparece en pantalla al tener que ingresar texto en unos de estos campos está especialmente modificado para direcciones de mail. No hay muchas diferencias salvo tener el punto y la arroba más a mano en lugar de la barra espaciadora (nunca vi un espacio en una dirección de mail).

Ah, y Opera pone un icono de e-mail en la caja de texto.

	<form>
		<input id="mail" type="email" />
		<input type="submit" value="Mandame spam!" />
	</form>

URLs

De forma similar a las direcciones de mail, tenemos ahora los input con tipo url. Que, al igual que el anterior, no conlleva ningún comportamiento o interfaz especial… salvo en el iPhone. Este último cambia el teclado mínimamente para mayor comodidad. Se nota que pensaron en todo.

	<form>
		<input id="mail" type="url" />
		<input type="submit" value="Mi sitio con adsense" />
	</form>

Números

¿Cuántas veces necesitamos que los usuarios ingresen un número con características muy particulares? HTML5 nos permite ayudar a nuestros usuarios a no elegir valores inválidos. No estamos excemptos de tener que verificalo luego, pero mejor si disminuimos la posibilidad de error e inclusive si documentamos gran parte de los valores posibles dentro del mismo control HTML (para poder hacer validación dinámica con JavaScript sin necesidad de leer configuraciones extras).

Así, tenemos a nuestra disposición no sólo uno sino dos tipos de input para eso: number y range. Además de toda una serie de atributos para configurarlos:

  • min: el menor valor posible
  • max: el máximo valor aceptado
  • step: diferencia entre un número válido y el siguiente (entre el máximo y el mínimo)
  • value: el valor por omisión, igual que antes

Lo que es más – y por el mismo precio – HTML5 pone a nuestra disposición 3 métodos javascript sobre el tipo number: stepUp(n) ara incrementar el valor en n, stepDown(n) para disminuir el valor en n y valueAsNumber para obtener el valor como un número en punto flotante (el atributo value es siempre una cadena de texto).

¿Cuál es la diferencia entre un tipo y otro entonces? range está pensado para ser mostrado con un cursor desplazable sobre una recta – así mostrado por las últimas versiones de Safari, Chrome y Opera. number como algo más simple. El iPhone los muestra a ambos como cajas de texto pero modifica el teclado para que sea más sencillo ingresar números. Opera muestra dos botones extras para aumentar y disminuir los valores al lado de las cajas de texto de tipo number. El resto, muestra una simple caja de texto, como hubiese sido de otra forma.

	<form>
		<input id="sueldo" type="number"
			min="1000"
			max="2000000"
			step="500"
			value="2000" />
		<input type="submit" value="pagame!" />
	</form>

Fecha y hora

¿Cuántas veces se enfrentaron con el problema de necesitar que el usuario ingrese una fecha o una hora? Es un infierno; por la cantidad de formas distintas que hay para hacer tan simple tarea, complicada aún más por las variaciones que hay entre culturas e idiomas y todo un mundo con 24 zonas horarias distintas.

HTML 5 al rescate, agrega 6 nuevos tipos de input a nuestra disposición para esta tarea:

  • date: una fecha
  • month: sólo el mes y año de una fecha
  • week: alguna semana del año
  • time: una hora determinada
  • datetime: fecha, hora y zona horaria
  • datetime-local: fecha y hora sólamente

Lamentablemente todos estos tipos nuevos son soportados – al momento de escribir esto – sólo por Opera. Pero creo que es uno de los agregados más útiles que puede haber. Nuevamente, hasta que se implemente el soporte adecuado. se puede utilizar nuestro framework JavaScript preferido para proveer de la misma funcionalidad al resto de los navegadores.

	<form>
		<input id="semana" type="week" />
		<input type="submit" value="vacaciones!" />
	</form>

¿Por qué siguen leyendo? ¡Empiecen a actualizar sus páginas, themes y sitios varios!

Comentarios desactivados

Los 10 mandamientos para internet

Posted Noviembre 24th, 2009. Filed under estándares eventos

Vía I’ve been to Ubuntu me entero de un artículo en Ars Technica sobre el Internet Governance Forum, dependiente de las Naciones Unidas.

Más allá de todo lo que se discutió (que no es poco) hay que resaltar la siguiente propuesta del historiador Ian Peter: los 10 mandamientos de internet. Intentando enumerar lo que él considera como los valores principales y fundamentales para que lo que conocemos como la Web perdure en el tiempo protegida por quienes quieran hacerlo.

Su propuesta fueron los siguientes mandamientos:

  1. Independencia de las aplicaciones
  2. Nuevas aplicaciones pueden ser agregadas siempre que sean de un valor fundamental
  3. Innovación sin pedir permiso
  4. Estándares abiertos
  5. Accesibilidad e inclusividad global – cualquiera puede utilizarlo
  6. Poder de elección del usuario – cada quien puede elegir qué aplicaciones utilizar y a dónde ir con ellas
  7. Facilidad de uso – cada quien puede utilizarlas en su lenguage y en un dispositivo con el que esté familiarizado
  8. Libertad de expresión
  9. Habilidad para un cambio rápido
  10. Confiabilidad y robustez son cosas en las que tenemos que trabajar, tienen que ser valores fundamentales

No creo que esté muy errado en lo que propuso. Especialmente porque creo que el Software Libre – junto con los estándares abiertos – son las cosas que más se acercan a cumplir todas ellas, siendo la ideología que creo que mejor defiende las libertades de los usuarios.

De todas formas, lo que una persona pueda decir – por más autoridad que tenga – no es mucho. Hace falta que las empresas, la gente… todos las hagamos propias, las respetemos y exijamos que se respeten también. ¿Llegará ese día?

Comentarios desactivados

El poder de CSS3

Posted Febrero 16th, 2008. Filed under CSS internet mini-posts

Un texto, una imágen y seleccionen el texto que genera (vía LifeHacker)

Internet Explorer 8

Posted Diciembre 20th, 2007. Filed under estándares internet mini-posts navegadores

Lograría pasar el test Acid2 pero garantizaría compatibilidad con IE6 e IE7… ¿podrán? (vía Slashdot)

Comentarios desactivados

¿Quién no escuchó alguna vez la teoría de que los organismos de seguridad observan todo? Quienes sostienen y defienden esa postura no han podido demostrarla nunca. Sin embargo, desde hace años que quienes trabajan en seguridad intentan demostrar su transparencia explicando todo lo que hacen y sus porqués. Casos clásicos son quienes se encargan de hacer algoritmos de encriptación – la base de la seguridad digital -, que utilizan constantes permanentemente y explican cómo llegaron a ellos o simplemente utilizan fuentes conocidas (como el número PI, o secuencias obvias como 123456).

Sin embargo, dados recientes estudios, el NIST (Instituto Nacional de Estándares y Tecnología – USA) publicó 4 algoritmos para generar números pseudo-aleatorios. Uno de ellos utiliza una gran cantidad de constantes cuya explicación brilla por su ausencia. Como si eso fuese poco, hace unos meses descubrieron que esas constantes tienen relación con otros números que formarían el esqueleto de una llave maestra que permitiría predecir la generación de números. Esto, evidentemente, es un problema de seguridad grande como una casa.

Aquí traduzco el artículo completo escrito por Bruce Schneier (una persona dedicada a la seguridad y la criptografía desde hace décadas) y publicado en Wired el día de hoy.

Notas de Traducción

  • Esto es una traducción, el original debe de ser atribuído a Bruce Schneier
  • Los links se mantuvieron como en el original, por lo que seguramente conducen a información en inglés
  • Los acrónimos utilizados tendrán su correspondiente traducción aunque ésta no se encuentre en el original
  • Artículo Original: Did NSA Put a Secret Backdoor in New Encryption Standard?

Read the rest of this entry »

Comentarios desactivados

Todas las ventajas de ls también en windows (Vía LifeHacker)

OOXML, todo vale. Lo explica Enrique Dans

OOXML: Argentina no sabe

Posted Agosto 28th, 2007. Filed under estándares gente

El día Lunes 27 de Agosto de 2007 fue la reunión de los socios del IRAM para resolver el voto de Argentina frente a la propuesta de Microsoft hacer de OOXML un estándar ISO.

Resultado: Abstención

Me da vergüenza ajena. Por primera vez tenemos la oportunidad de hacer una diferencia; de dar nuestra opinión sobre lo que queremos del día de mañana en materia de estándares. Y como no sabemos qué responder, no decimos nada. Realmente vergonzoso.

Obviamente, es muchísimo mejor que una aprobación. Pero las pruebas de que la propuesta de Microsoft no merece ser tratada como poco más que un chiste de mal gusto son evidentes: lean la explicación de OOXML por Federico Heinz para más información.

Y nosotros que pensamos que éramos inteligentes.

Edit 29 de Agosto: Bea da más detalles de lo que pasó y cuenta que Uruguay dijo sí en contra de las reglas

Niveles de conocimiento CSS

Posted Mayo 29th, 2006. Filed under CSS estándares traducciones

¿Creen que saben CSS? Acá pueden ver cómo clasificar la gente según cuánto CSS saben, cómo lo utilizan y qué se puede hacer para ayudarlos. Fíjense y digan si conocen a alguien en cada nivel o si se les ocurre algún otro nivel. Yo creo estar entre el nivel 4 y el 5… y traduzco cosas del 6.

Hace mucho tiempo leí este artículo y si lo dejé marcado para traducirlo en algún momento es porque realmente vale la pena. Además, recordé haberle prometido a Gato y Doliaku colaborar con PuroCSS. Intenté ingresar al sitio pero no pude, pero de todas formas publico acá.

Notas de traducción

  • El artículo fue traducido con el permiso expreso y por escrito (en un e-mail) de su autor: Emil Stenström
  • No se me ocurre cómo traducir la palabra layout y que quede más o menos decente
  • Artículo Original: Levels of CSS knowledge

Read the rest of this entry »

La mejor frase sobre estándares

Posted Abril 16th, 2006. Filed under estándares

Hoy leí en KuraFire una de las mejores frases de los últimos meses:

Using Web Standards is like sex: Sure, it may give some practical results but thats not why we do it.

Para los que no lean inglés (al fin y al cabo para eso está este sitio):

Usar estándares web es como el sexo: seguro que tiene algún tipo de resultado útil e innato, pero no es la razón por la que lo hacemos

¿Tendrá razón? Yo por mi parte uso estándares web más allá de todos los beneficios que dan: lo hago porque soy medio fanático y, principalmente, porque es lo correcto. ¿Ustedes?