{"id":5,"date":"2021-02-20T21:13:00","date_gmt":"2021-02-20T20:13:00","guid":{"rendered":"https:\/\/www.guille-rmo.com\/blog\/?p=5"},"modified":"2021-03-10T17:23:05","modified_gmt":"2021-03-10T16:23:05","slug":"pautas-para-disenar-formularios-eficientes-usables","status":"publish","type":"post","link":"https:\/\/www.guille-rmo.com\/blog\/pautas-para-disenar-formularios-eficientes-usables\/","title":{"rendered":"Pautas para dise\u00f1ar formularios eficientes y usables"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u00bfEs \u00e9ste otro art\u00edculo m\u00e1s sobre formularios? S\u00ed, lo es. Pero, tras haber le\u00eddo informaci\u00f3n de muchas fuentes, trabajar en el sector de la banca digital (donde hay formularios hasta en el caf\u00e9) y haber tenido que luchar con ellos en repetidas ocasiones, me he animado a reunir en estas l\u00edneas el conocimiento adquirido.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Una sola columna evita confusiones<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La distribuci\u00f3n vertical de los elementos de un formulario en una sola columna genera una lectura m\u00e1s sencilla, r\u00e1pida y natural para el usuario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Evitar una estructura de varias columnas ahorrar\u00e1 equivocaciones a la hora de comprender el orden (si lo hay) del formulario, campos sin cumplimentar, datos incorrectamente introducidos o la frustraci\u00f3n y el posterior abandono del proceso.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"721\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/One-1-1024x721.png\" alt=\"\" class=\"wp-image-93\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/One-1-1024x721.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/One-1-300x211.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/One-1-768x541.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/One-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"721\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Two-1-1024x721.png\" alt=\"\" class=\"wp-image-94\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Two-1-1024x721.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Two-1-300x211.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Two-1-768x541.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Two-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Por otro lado, las asociaciones entre campos que tengan una l\u00f3gica f\u00e1cil de comprender puede justificar disponerlos juntos y a la misma altura. Por ejemplo, un campo que recoja un nombre junto a otro de apellido, o un selector de c\u00f3digo de pa\u00eds al lado de un campo cuyo contenido sea un n\u00famero de tel\u00e9fono.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"454\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Asociacion-1-1024x454.png\" alt=\"\" class=\"wp-image-95\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Asociacion-1-1024x454.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Asociacion-1-300x133.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Asociacion-1-768x340.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Asociacion-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Utiliza correctamente cada tipo de campo seg\u00fan su contenido<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Existen diferentes tipos de campos de texto. O, dicho de otra manera, hay modificaciones sobre el elemento \u00abcampo de texto\u00bb que han surgido por la necesidad de recoger distintos tipos de datos (num\u00e9ricos, cadenas de texto, fechas, selecciones, etc).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplificar: en el caso de un campo que vaya a recoger un n\u00famero de tel\u00e9fono, lo correcto ser\u00e1 utilizar uno que s\u00f3lo admita introducir d\u00edgitos y no letras. Evitaremos posibles errores y tambi\u00e9n ayudaremos, en dispositivos m\u00f3viles sobre todo, a que se muestre el teclado correcto (num\u00e9rico o alfab\u00e9tico) cuando el usuario haga foco en el campo en cuesti\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"614\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/tipos-1024x614.png\" alt=\"\" class=\"wp-image-97\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/tipos-1024x614.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/tipos-300x180.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/tipos-768x460.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/tipos.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Etiquetas (<em>labels<\/em>)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Existen diferentes opiniones y estudios sobre las ventajas y desventajas de situar la etiqueta encima del campo, a la izquierda o si utilizar un <em>placeholder<\/em> dentro del mismo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No entrar\u00e9 a analizar dichos estudios y me limitar\u00e9 a dar mi punto de vista: con el objetivo de facilitar al m\u00e1ximo la lectura, ubicar la etiqueta encima del campo al que corresponde es la mejor opci\u00f3n. Adem\u00e1s, creo que de esta manera evitaremos dolores de cabeza a la hora de dise\u00f1ar el formulario en su conjunto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"311\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-1-1024x311.png\" alt=\"\" class=\"wp-image-99\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-1-1024x311.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-1-300x91.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-1-768x233.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"273\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-2-1-1024x273.png\" alt=\"\" class=\"wp-image-100\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-2-1-1024x273.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-2-1-300x80.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-2-1-768x205.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-2-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tip:<\/strong> evita la capitalizaci\u00f3n de las etiquetas, hacen m\u00e1s dif\u00edcil su lectura.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"311\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-3-1-1024x311.png\" alt=\"\" class=\"wp-image-101\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-3-1-1024x311.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-3-1-300x91.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-3-1-768x233.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Etiquetas-3-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Los <em>placeholders<\/em> no son etiquetas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A veces los <em>placeholders<\/em> confunden m\u00e1s que ayudan. Esto se debe a que se suelen utilizar como etiquetas y, como es natural en su comportamiento, desaparecen cuando el usuario interact\u00faa con el campo. El efecto inmediato y negativo es que dejamos al usuario sin la capacidad de verificar, antes de enviar el formulario, la informaci\u00f3n que proporcion\u00f3.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"273\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-1-1024x273.png\" alt=\"\" class=\"wp-image-139\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-1-1024x273.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-1-300x80.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-1-768x205.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La recomendaci\u00f3n es evitar su uso y, en el caso de querer proporcionar informaci\u00f3n extra, utilizar textos de ayuda fuera del campo que ayuden a completarlo con \u00e9xito.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"340\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-2-1024x340.png\" alt=\"\" class=\"wp-image-140\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-2-1024x340.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-2-300x100.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-2-768x255.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Placeholder-2.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Define la longitud de los campos proporcionalmente al contenido esperado<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Reconozco que un formulario alineado es, en muchos casos, visualmente m\u00e1s atractivo y compensado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aun as\u00ed, acomodar la longitud de cada campo al volumen de contenido esperado facilitar\u00e1 la lectura del formulario y guiar\u00e1 visualmente al usuario  para una mejor comprensi\u00f3n del mismo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"721\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Longitud-1-1024x721.png\" alt=\"\" class=\"wp-image-152\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Longitud-1-1024x721.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Longitud-1-300x211.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Longitud-1-768x541.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Longitud-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">La validaci\u00f3n \u00aben directo\u00bb es tu mejor aliada<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ayuda al usuario con <em>feedback<\/em> (mensajes de ayuda) instant\u00e1neo en los campos que requieran un formato espec\u00edfico. No hay peor sensaci\u00f3n que terminar de completar un formulario con muchos elementos y que, al enviarlo, aparezcan errores que podr\u00edamos haber evitado con algunas directrices.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto se ve muy claramente en los campos del tipo \u00abemail\u00bb, en los que los caracteres de arroba (@) y punto (.) deben estar presentes obligatoriamente. O, por poner otro ejemplo, en los campos de contrase\u00f1a, que suelen tener requisitos muy acotados y restrictivos para el usuario.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"339\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Validacion-2-1024x339.png\" alt=\"\" class=\"wp-image-133\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Validacion-2-1024x339.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Validacion-2-300x99.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Validacion-2-768x254.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Validacion-2.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Reduce el n\u00famero de campos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La simplificaci\u00f3n de los elementos en pantalla reduce significativamente la carga visual y cognitiva del usuario. Si podemos aunar en un mismo campo nombre y apellidos o una fecha completa, mucho mejor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"448\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar-1024x448.png\" alt=\"\" class=\"wp-image-84\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar-1024x448.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar-300x131.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar-768x336.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"448\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar-2-1-1024x448.png\" alt=\"\" class=\"wp-image-103\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar-2-1-1024x448.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar-2-1-300x131.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar-2-1-768x336.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Simplificar-2-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">No ocultes opciones de selecci\u00f3n (si son pocas)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El usuario agradece tener la informaci\u00f3n disponible a la vista.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Partiendo de esta premisa, en casu\u00edsticas en las que las opciones entre las que el usuario debe elegir sean pocas (yo suelo poner el l\u00edmite en unas 5 o 6), lo correcto es usar <em>radio buttons<\/em> o <em>checkboxes<\/em>. De esta manera estar\u00e1n visibles desde el primer momento en el que el usuario visualiza la interfaz.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"448\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-1-1-1024x448.png\" alt=\"\" class=\"wp-image-146\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-1-1-1024x448.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-1-1-300x131.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-1-1-768x336.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-1-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Para casos donde el n\u00famero de opciones sea alto, es adecuado el uso de <em>combos<\/em> (tambi\u00e9n llamados <em>selects<\/em>).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"675\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-2-1-1024x675.png\" alt=\"\" class=\"wp-image-150\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-2-1-1024x675.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-2-1-300x198.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-2-1-768x506.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Seleccion-2-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Campos obligatorios VS campos opcionales<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lo cierto es que el aprendizaje nos sugiere que todo campo que tiene un asterisco, normalmente en su etiqueta, es obligatorio. Contrario a esto, yo veo m\u00e1s adecuado marcar con un \u00abOpcional\u00bb los campos o elementos que el usuario pueda dejar sin completar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"305\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Opcional-1024x305.png\" alt=\"\" class=\"wp-image-143\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Opcional-1024x305.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Opcional-300x89.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Opcional-768x229.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Opcional.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La raz\u00f3n es la siguiente: en mi experiencia (y seg\u00fan he le\u00eddo en otras fuentes), los campos opcionales para el usuario suelen ser menos numerosos con respecto a los campos obligatorios. Esto me hace pensar que tiene m\u00e1s sentido distinguir los primeros con un \u00abOpcional\u00bb, por ejemplo, que a\u00f1adir un asterisco a cada uno de los campos requeridos obligatoriamente y, en consecuencia, saturar la interfaz con estos elementos que comparten el mismo significado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Agrupa los elementos de formulario relacionados<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esto ayudar\u00e1 a escanear mejor el formulario y a identificar r\u00e1pidamente los grupos de datos que le estemos pidiendo al usuario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplos comunes de agrupaci\u00f3n de datos en formularios son:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Datos personales<\/strong> (nombre, apellidos, fecha de nacimiento, edad y domicilio).<\/li><li><strong>Datos financieros<\/strong> (IBAN, n\u00famero de tarjeta, nombre del titular, fecha de caducidad)<\/li><li><strong>Datos de facturaci\u00f3n<\/strong> (direcci\u00f3n, localidad, pa\u00eds, c\u00f3digo postal, CIF, NIF, etc)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Utiliza l\u00f3gica condicional<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esto permitir\u00e1 mostrar u ocultar campos autom\u00e1ticamente dependiendo de las decisiones que tome el usuario mientras complete el formulario. Este enfoque no solo reducir\u00e1 la cantidad de campos, sino que tambi\u00e9n har\u00e1 que la tarea de completarlos sea m\u00e1s personalizada, dando  sensaci\u00f3n de cercan\u00eda y reduciendo, a su vez, posibles frustraciones.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"794\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Logica-1-1024x794.png\" alt=\"\" class=\"wp-image-128\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Logica-1-1024x794.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Logica-1-300x233.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Logica-1-768x596.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Logica-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Si el formulario es muy grande, troc\u00e9alo en pasos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dividir una gran tarea en trozos m\u00e1s peque\u00f1os ayudar\u00e1 a que sea m\u00e1s f\u00e1cil de abordar, generando la sensaci\u00f3n de que supone un menor esfuerzo hacerla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluci\u00f3n puede ser crear un <em>wizard<\/em> (proceso) con unos pocos pasos en donde agrupemos los campos que tienen relaci\u00f3n entre s\u00ed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"564\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Proceso-1024x564.png\" alt=\"\" class=\"wp-image-126\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Proceso-1024x564.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Proceso-300x165.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Proceso-768x423.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Proceso.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Campos de contrase\u00f1a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Este tipo de campo requiere de atenci\u00f3n especial, ya que suele ser un momento de frustraci\u00f3n para el usuario si no hemos sabido tratarlo con cari\u00f1o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay ciertas buenas pr\u00e1cticas que har\u00e1n de la experiencia de crear o introducir una contrase\u00f1a, un trago mucho m\u00e1s sencillo de llevar:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Permite al usuario desenmascarar su contrase\u00f1a en lugar de pedirle que la introduzca 2 veces.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"305\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-1-1024x305.png\" alt=\"\" class=\"wp-image-110\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-1-1024x305.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-1-300x89.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-1-768x229.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Intenta mostrar los requisitos que debe cumplir la contrase\u00f1a en todo momento y, si es posible, muestra un progreso donde el usuario pueda confirmar que los aplica correctamente.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"420\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-2-1024x420.png\" alt=\"\" class=\"wp-image-112\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-2-1024x420.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-2-300x123.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-2-768x315.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-2.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>El uso de medidores de \u00abfortaleza\u00bb suele incitar a los usuarios a crear contrase\u00f1as m\u00e1s seguras.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"758\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-3-1024x758.png\" alt=\"\" class=\"wp-image-154\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-3-1024x758.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-3-300x222.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-3-768x568.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Pass-3.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Accesibilidad<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Presta atenci\u00f3n no solo al contraste visual entre elementos y fondos para lograr una buena accesibilidad visual (esto puedes hacerlo con herramientas como el <a rel=\"noreferrer noopener\" href=\"https:\/\/webaim.org\/resources\/contrastchecker\/\" target=\"_blank\">Contrast Checker<\/a> de WebAIM), sino tambi\u00e9n a la interacci\u00f3n que el usuario puede realizar con el teclado y c\u00f3mo se relaciona con nuestro formulario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una buena pr\u00e1ctica es tener en cuenta cosas como:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>El orden de tabulaci\u00f3n de los campos o elementos del formulario.<\/li><li>La interacci\u00f3n con las flechas de direcci\u00f3n del teclado.<\/li><li>El uso de las teclas <em>Enter<\/em> y <em>Space<\/em>.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Acciones<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los formularios suelen tener (como elemento final) un bot\u00f3n que env\u00eda los datos a una base de datos, a un buz\u00f3n de correo o para que sean validados por alg\u00fan sistema.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"544\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-1-1024x544.png\" alt=\"\" class=\"wp-image-121\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-1-1024x544.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-1-300x159.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-1-768x408.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-1.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Hay situaciones en las que este bot\u00f3n \u00abprimario\u00bb (ya que realiza la acci\u00f3n deseada en primer lugar) puede coexistir con otras acciones. A \u00e9stas \u00faltimas las llamamos \u00absecundarias\u00bb y debemos tratarlas visualmente como tal, con el objetivo de minimizar la confusi\u00f3n y el riesgo de errores potenciales por parte del usuario.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"561\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-2-1024x561.png\" alt=\"\" class=\"wp-image-122\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-2-1024x561.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-2-300x164.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-2-768x421.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-2.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"561\" src=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-3-1024x561.png\" alt=\"\" class=\"wp-image-123\" srcset=\"https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-3-1024x561.png 1024w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-3-300x164.png 300w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-3-768x421.png 768w, https:\/\/www.guille-rmo.com\/blog\/wp-content\/uploads\/2021\/02\/Acciones-3.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Los mensajes que contienen las acciones, ya sean botones o enlaces, deben ser descriptivos, pero concisos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los usuarios suelen ser reticentes a la hora de rellenar formularios. Por este motivo, nuestro objetivo como dise\u00f1adores es hacer este proceso lo m\u00e1s f\u00e1cil y r\u00e1pido posible.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfEs \u00e9ste otro art\u00edculo m\u00e1s sobre formularios? S\u00ed, lo es. Pero, tras haber le\u00eddo informaci\u00f3n de muchas fuentes, trabajar en el sector de la banca digital (donde hay formularios hasta en el caf\u00e9) y haber tenido que luchar con ellos en repetidas ocasiones, me he animado a reunir en estas l\u00edneas el conocimiento adquirido.<\/p>\n","protected":false},"author":1,"featured_media":48,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-5","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-componentes-ui"],"_links":{"self":[{"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/posts\/5","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/comments?post=5"}],"version-history":[{"count":79,"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":382,"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/posts\/5\/revisions\/382"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/media\/48"}],"wp:attachment":[{"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/media?parent=5"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/categories?post=5"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.guille-rmo.com\/blog\/wp-json\/wp\/v2\/tags?post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}