{"id":1486,"date":"2014-10-14T09:07:00","date_gmt":"2014-10-14T04:07:00","guid":{"rendered":"http:\/\/blog.utp.edu.co\/accesibilidad\/?p=1486"},"modified":"2014-10-14T09:07:00","modified_gmt":"2014-10-14T04:07:00","slug":"tutorial-implementacion-de-lineamientos-de-accesibilidad-web","status":"publish","type":"post","link":"https:\/\/blog.utp.edu.co\/accesibilidad\/tutorial-implementacion-de-lineamientos-de-accesibilidad-web\/","title":{"rendered":"Tutorial Implementaci\u00f3n de lineamientos de accesibilidad web"},"content":{"rendered":"<p>Saludos, en esta publicaci\u00f3n mostraremos c\u00f3mo implementar una serie de lineamientos y pautas b\u00e1sicas que deben tenerse en cuenta en el desarrollo de p\u00e1ginas y\/o sitios web accesibles.<\/p>\n<p>El ejemplo que emplearemos ser\u00e1 una p\u00e1gina sencilla de portafolio\/biograf\u00eda, con informaci\u00f3n personal, galer\u00eda de fotos, foto personal, formulario de contacto, entre otros.<\/p>\n<h3>DEFINICI\u00d3N DEL DOCUMENTO<\/h3>\n<p>Lo primero que debe realizarse es la definici\u00f3n del tipo de documento (DTD por sus siglas en ingl\u00e9s), el cual indica qu\u00e9 tipo de contenido HTML contiene una p\u00e1gina.<\/p>\n<p align=\"JUSTIFY\">Desde sus inicios hasta la fecha, ha existido una gran variedad de definiciones de documento, pasando desde HTML 1, hasta HTML4, XHTML y muchas m\u00e1s; todas con diferentes funcionalidades y para diferentes contenidos. En nuestro caso usaremos la definici\u00f3n de documento de HTML5:<\/p>\n<p><code>1. \u00a0&lt;!DOCTYPE html&gt;<\/code><\/p>\n<h3>CABEZA Y CUERPO<\/h3>\n<p>Como toda p\u00e1gina web, se debe tener una cabeza y un cuerpo (etiquetas head y body respectivamente). La primera es necesaria para la meta informaci\u00f3n de la p\u00e1gina web, es decir informaci\u00f3n que el usuario normal no ve, pero es esencial para su funcionamiento. Tambi\u00e9n ac\u00e1 suelen enlazarse los archivos de hojas de estilo e incluso scripts de javascript.<\/p>\n<p>En el cuerpo va la estructura de toda la p\u00e1gina, todos los elementos que el usuario ve y que contienen la informaci\u00f3n.<\/p>\n<p>Por ahora pondremos un t\u00edtulo simple a toda nuestra p\u00e1gina:<br \/>\n<code><br \/>\n1. &lt;!DOCTYPE html&gt;<br \/>\n2. &lt;head&gt;<br \/>\n3. &lt;title&gt;Portafolio Personal&lt;\/title&gt;<br \/>\n4. &lt;\/head&gt;<br \/>\n5. &lt;body&gt;<br \/>\n6. &lt;\/body&gt;<\/code><\/p>\n<h3>ESTRUCTURA GENERAL<\/h3>\n<p>Antes de comenzar a desarrollar cualquier p\u00e1gina web, debemos comenzar definiendo la estructura de la p\u00e1gina web. Partiremos de la siguiente estructura simple:<\/p>\n<p><a href=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/estructura.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1502\" alt=\"estructura\" src=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/estructura.png\" width=\"600\" height=\"450\" srcset=\"https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/estructura.png 600w, https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/estructura-300x225.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>Por ahora no nos interesa el estilo visual ni embellecer la p\u00e1gina, simplemente definir la base de la estructura de ella; as\u00ed que con base en esta estructura, nuestro c\u00f3digo quedar\u00eda as\u00ed:<\/p>\n<p><code>1.\u00a0\u00a0 \u00a0&lt;!DOCTYPE html&gt;<br \/>\n2.\u00a0\u00a0 \u00a0&lt;head&gt;<br \/>\n3.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;title&gt;Portafolio Personal&lt;\/title&gt;<br \/>\n4.\u00a0\u00a0 \u00a0&lt;\/head&gt;<br \/>\n5.\u00a0\u00a0 \u00a0&lt;body&gt;<br \/>\n6.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;header&gt;<br \/>\n7.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/header&gt;<br \/>\n8.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;nav&gt;<br \/>\n9.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/nav&gt;<br \/>\n10.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;aside&gt;<br \/>\n11.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/aside&gt;<br \/>\n12.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;article&gt;<br \/>\n13.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/article&gt;<br \/>\n14.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;footer&gt;<br \/>\n15.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/footer&gt;<br \/>\n16.\u00a0\u00a0 \u00a0&lt;\/body&gt;<\/code><\/p>\n<p>Guardemos estas l\u00edneas en un archivo llamado index.html, en una carpeta designada para el tutorial.<\/p>\n<p>Ahora bien si abrimos este archivo en un navegador web lo \u00fanico que veremos ser\u00e1 un fondo blanco vac\u00edo y la p\u00e1gina tendr\u00e1 el t\u00edtulo que ya le insertamos, pero nada m\u00e1s.<\/p>\n<h3>HOJA DE ESTILOS<\/h3>\n<p>Durante el transcurso de este tutorial no tendremos en cuenta la accesibilidad de las hojas de estilo CSS, as\u00ed que usaremos un s\u00f3lo archivo de estilos, algo b\u00e1sico, para usar en todo la p\u00e1gina.<\/p>\n<p>Las instrucciones css que usaremos pueden encontrarlas en el siguiente enlace: <a title=\"hoja de estilos\" href=\"http:\/\/textuploader.com\/oo5s\" target=\"_blank\">http:\/\/textuploader.com\/oo5s<\/a><\/p>\n<p>Este css es una mezcla de un reset (que se usa para que la mayor\u00eda de elementos HTML tengan el mismo comportamiento en todos los navegadores) y unas instrucciones personalizadas para nuestro ejemplo.<\/p>\n<p>Hay que recordar que este archivo debe ser guardado en la misma carpeta del tutorial y ser llamado desde el archivo html en la etiqueta <strong>head<\/strong> as\u00ed:<\/p>\n<p><code>&lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"style.css\"&gt;<\/code><\/p>\n<p>Luego de esto probemos de nuevo la p\u00e1gina en un navegador web. Si ves algo como esto, vas en el camino correcto:<\/p>\n<p><a href=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/step1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1508\" alt=\"step1\" src=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/step1.png\" width=\"984\" height=\"680\" srcset=\"https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/step1.png 984w, https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/step1-300x207.png 300w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/a><\/p>\n<h3>ENCABEZADOS<\/h3>\n<p>En los lineamientos mencionamos la importancia de la jerarquizaci\u00f3n de los t\u00edtulos (encabezados) en las p\u00e1ginas web, as\u00ed que debemos tener eso en cuenta para los t\u00edtulos que necesitamos en nuestra p\u00e1ginas, que son los siguientes:<\/p>\n<ul>\n<li>t\u00edtulo general<\/li>\n<li>t\u00edtulos para contenidos secundarios, como la informaci\u00f3n b\u00e1sica, la galer\u00eda de fotos y los diferentes subcontenidos de los mismos.<\/li>\n<\/ul>\n<p>El t\u00edtulo general y el t\u00edtulo de la p\u00e1gina (de la etiqueta title) son normalmente los mismos. Podr\u00edamos tener algo m\u00e1s descriptivo como \u201cPortafolio Personal de nombre_de_la_persona\u201d, pero por ahora seguiremos con nuestro estilo gen\u00e9rico, para que todo sea m\u00e1s comprensible.<\/p>\n<p>Al ser \u00e9ste el t\u00edtulo m\u00e1s importante, usaremos una etiqueta &lt;h1&gt; e insertaremos el t\u00edtulo dentro del &lt;header&gt; de la p\u00e1gina, quedando as\u00ed:<\/p>\n<p><code>1.\u00a0\u00a0 \u00a0&lt;!DOCTYPE html&gt;<br \/>\n2.\u00a0\u00a0 \u00a0&lt;head&gt;<br \/>\n3.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;title&gt;Portafolio Personal&lt;\/title&gt;<br \/>\n4.\u00a0\u00a0 \u00a0&lt;\/head&gt;<br \/>\n5.\u00a0\u00a0 \u00a0&lt;body&gt;<br \/>\n6.\u00a0\u00a0 \u00a0\u00a0\u00a0 &lt;header&gt;<br \/>\n7.\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;h1&gt;Portafolio Personal&lt;\/h1&gt;<br \/>\n8.\u00a0\u00a0 \u00a0\u00a0\u00a0 &lt;\/header&gt;<\/code><\/p>\n<h3>BARRA DE NAVEGACI\u00d3N<\/h3>\n<p>En la barra de navegaci\u00f3n se encuentran enlaces a diferentes secciones de un sitio web. En nuestro caso ser\u00edan enlaces a secciones galer\u00eda de fotos, foto personal e inicio.<\/p>\n<p>Por ahora no nos preocuparemos de la funcionalidad de dichos enlaces, sino tan solo de su sentido sem\u00e1ntico y de accesibilidad.<\/p>\n<p>Para estos enlaces debemos usar una lista, pero \u00bfqu\u00e9 lista debemos usar?, \u00bfuna ordenada o una sin orden?. La forma m\u00e1s f\u00e1cil de responder esa pregunta es analizando si los usuarios finales requieren un orden expl\u00edcito en la lista. Para una lista con enlaces de navegaci\u00f3n claramente eso no es necesario, as\u00ed que usaremos una lista sin orden <em>&lt;ul&gt;<\/em>.<\/p>\n<p><code>&lt;nav&gt;<br \/>\n    &nbsp;&nbsp;&lt;ul&gt;<br \/>\n    &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;Inicio&lt;\/a&gt;&lt;\/li&gt;<br \/>\n    &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;Galer&amp;iacute;a Fotogr&amp;aacute;fica&lt;\/a&gt;&lt;\/li&gt;<br \/>\n    &nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;Contacto&lt;\/a&gt;&lt;\/li&gt;<br \/>\n    &nbsp;&nbsp;&nbsp;&nbsp;&lt;\/ul&gt;<br \/>\n&lt;\/nav&gt;<\/code><\/p>\n<p>Ahora con el men\u00fa de navegaci\u00f3n incrustado en nuestra p\u00e1gina web, \u00e9sta debe verse as\u00ed:<\/p>\n<p><a href=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/menu.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1515\" alt=\"menu\" src=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/menu.png\" width=\"984\" height=\"680\" srcset=\"https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/menu.png 984w, https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/menu-300x207.png 300w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/a><\/p>\n<h3>BARRA LATERAL<\/h3>\n<p>Para la barra lateral usamos un elemento nuevo en HTML5: la etiqueta aside. Esta etiqueta debe ser usada para crear contenido secundario, es decir contenido diferente al contenido o idea principal que se quiere proporcionar con la p\u00e1gina.<br \/>\nPara nuestro ejemplo la barra lateral contendr\u00e1 una lista de informaci\u00f3n personal del due\u00f1o de la p\u00e1gina web, como enlaces a sus perfiles de redes sociales, de la siguiente forma:<\/p>\n<p><code>&lt;aside&gt;<br \/>\n&nbsp;&nbsp;&lt;ul&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;LinkedIn&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;Facebook&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;Twitter&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;Google+&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&lt;\/ul&gt;<br \/>\n&lt;\/aside&gt;<\/code><\/p>\n<h3>CONTENIDO DE LA P\u00c1GINA<\/h3>\n<p>Por fin nos adentramos a la secci\u00f3n con la informaci\u00f3n m\u00e1s importante de toda la p\u00e1gina. Para este contenido principal vamos a usar la etiqueta article de HTML5. Esta etiqueta se usa para crear contenido independiente, que sea autoexpicatorio, es decir que no necesite de otro contenido o elementos para representar la informaci\u00f3n que se contiene.<\/p>\n<p>Para nuestra p\u00e1gina dividiremos nuestra informaci\u00f3n principal en varias secciones: informaci\u00f3n b\u00e1sica, galer\u00eda de fotos y formulario de contacto. Cada una de estas secciones estar\u00e1 contenida dentro de un article, haciendo de esta forma el contenido m\u00e1s independiente y sem\u00e1ntico.<\/p>\n<p>Vale aclarar que no nos preocuparemos por textos o nombres, as\u00ed que usaremos textos autogenerados de http:\/\/lipsum.org\/ y supondremos que el due\u00f1o de la p\u00e1gina web (e sujeto de quien trata el portafolio\/biograf\u00eda) tiene como nombre Lorem Ipsum.<\/p>\n<h3>INFORMACI\u00d3N B\u00c1SICA<\/h3>\n<p>En esta secci\u00f3n pondremos informaci\u00f3n simple, un t\u00edtulo secundario con el nombre del sujeto del portafolio, unos cuantos p\u00e1rrafos de texto, simulando una peque\u00f1a biograf\u00eda, al igual que una foto del personaje en cuesti\u00f3n, la cual deber\u00e1 estar flotando a la izquierda del texto.<br \/>\nPara el t\u00edtulo secundario usaremos una etiqueta h2, para mantener la l\u00ednea jer\u00e1rquica de los encabezados.<\/p>\n<p><code>&lt;article id=\"basic_info\"&gt;<br \/>\n&lt;h2&gt;Lorem Ipsum&lt;\/h2&gt;<br \/>\n&lt;p&gt;&lt;img src=\"images\/Man-Silhouette-Clip-Art.jpg\"&gt;<br \/>\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus rutrum a nunc quis consectetur. Sed rutrum tellus a nisl interdum, non dapibus nisi vestibulum. Integer et laoreet arcu, ut tincidunt libero. Quisque ornare turpis sit amet vestibulum fermentum. Donec eget risus eu dui blandit dictum eu et nisl. Nulla nec cursus felis, adipiscing rhoncus purus. Duis congue felis sed massa ornare viverra. Sed aliquet elit suscipit orci iaculis, eget molestie justo egestas. Donec tortor sem, bibendum et posuere non, venenatis eget sem. Vivamus varius, augue malesuada pulvinar cursus, sapien sapien facilisis nulla, fringilla venenatis justo nisi eget risus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Integer nulla ipsum, dignissim et ultricies sit amet, pharetra sodales felis. Phasellus aliquam euismod turpis, vitae consequat turpis placerat in.&lt;\/p&gt;<br \/>\n&lt;p&gt;Maecenas eget tempus augue, ut lacinia metus. Aliquam lobortis auctor ligula. Quisque dapibus varius purus, ut auctor risus posuere quis. Vestibulum elementum eget leo eget ullamcorper. Pellentesque sed leo sit amet nunc tristique rutrum quis at arcu. Nunc ligula nunc, vehicula eget arcu at, iaculis auctor nibh. Fusce mi massa, convallis eu nulla in, blandit aliquam mi. Aliquam vitae pulvinar lectus. Nam consequat pharetra dolor, ut volutpat ante commodo at.&lt;\/p&gt;<br \/>\n&lt;p&gt;Fusce id eros augue. Quisque pharetra pellentesque elit eget luctus. In nibh sapien, pretium ut pellentesque eget, elementum non nisl. Vivamus sit amet scelerisque ligula. In cursus iaculis nisl. Fusce pellentesque sapien et nibh porta, vel ullamcorper nulla dapibus. Proin luctus in nisl vel viverra. &lt;\/p&gt;<br \/>\n&lt;\/article&gt;<\/code><\/p>\n<p>Introducimos este html en el contenido, reemplazando el article que antes ten\u00edamos y nos queda lo siguiente.<\/p>\n<p><a href=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/content.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1517\" alt=\"content\" src=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/content.png\" width=\"984\" height=\"728\" srcset=\"https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/content.png 984w, https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/content-300x221.png 300w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/a><\/p>\n<p>Se ve bien, pero \u00bfqu\u00e9 sucede con la imagen?, \u00bfes lo suficientemente accesible?. Repasemos los lineamientos sobre im\u00e1genes que mencionamos anteriormente:<\/p>\n<ul>\n<li>La foto se trata del sujeto (Lorem Ipsum), pero analizando su contexto, el nombre no aparece en ninguna parte.<\/li>\n<li>La imagen no tiene ninguna funci\u00f3n.<\/li>\n<\/ul>\n<p>Por consiguiente el atributo alt de la imagen debe ser:<br \/>\n<code>alt=\u201dLorem Ipsum\u201d<\/code><\/p>\n<h3>GALER\u00cdA DE FOTOS<\/h3>\n<p>Toda p\u00e1gina de portafolio necesita fotos sobre trabajos y experiencias que pueda mostrar, para lo cual usaremos esta galer\u00eda de fotos.<\/p>\n<p>La galer\u00eda de fotos estar\u00e1 contenida, de igual forma, en una etiqueta article totalmente independiente y seguida de la anterior que contiene la informaci\u00f3n b\u00e1sica. Tambi\u00e9n debe contener un t\u00edtulo secundario, similar al de la informaci\u00f3n b\u00e1sica.<br \/>\nEl siguiente contenido HTML debe ir justo despu\u00e9s del article de informaci\u00f3n b\u00e1sica. Para as\u00ed tener una nueva informaci\u00f3n independiente.<\/p>\n<p><code>&lt;article id=\"gallery\"&gt;<br \/>\n&nbsp;&nbsp;&lt;h2&gt;Galer&amp;iacute;a fotogr&amp;aacute;fica&lt;\/h2&gt;<br \/>\n&nbsp;&nbsp;&lt;ul&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;&lt;img src=\"images\/texBWall.png\" \/&gt;&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;&lt;img src=\"images\/texBlueMaze.png\" \/&gt;&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;&lt;img src=\"images\/texBWall.png\" \/&gt;&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;&lt;img src=\"images\/texBlueMaze.png\" \/&gt;&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;&lt;img src=\"images\/texBWall.png\" \/&gt;&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;&lt;img src=\"images\/texBlueMaze.png\" \/&gt;&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;&lt;img src=\"images\/texBWall.png\" \/&gt;&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a href=\"#\"&gt;&lt;img src=\"images\/texBlueMaze.png\" \/&gt;&lt;\/a&gt;&lt;\/li&gt;<br \/>\n&nbsp;&nbsp;&lt;\/ul&gt;<br \/>\n&lt;\/article&gt;<\/code><\/p>\n<p>Luego de esto, nuestra p\u00e1gina se ver\u00e1 as\u00ed:<\/p>\n<p><a href=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/gallery.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1519\" alt=\"gallery\" src=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/gallery.png\" width=\"984\" height=\"728\" srcset=\"https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/gallery.png 984w, https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/gallery-300x221.png 300w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/a><\/p>\n<p>Como se puede notar en el nuevo html que hemos creado, las im\u00e1genes no contienen el atributo alt, as\u00ed que debemos analizar cu\u00e1l debe ser el contenido de dicho atributo en cada una de las im\u00e1genes.<\/p>\n<ul>\n<li>Las im\u00e1genes pertenecen a una funci\u00f3n: abrir informaci\u00f3n ampliada del \u201cproyecto\u201d del portafolio al hacer click sobre ellas.<\/li>\n<li>El nombre o informaci\u00f3n de la imagen no est\u00e1 contenida en el enlace o en ning\u00fan contexto.<\/li>\n<\/ul>\n<p>Por lo cual el atributo alt debe ser as\u00ed:<br \/>\n<code>alt=\u201dnombre_del_proyecto\u201d<\/code><\/p>\n<p>Cabe recordar que el contenido del atributo alt no puede ser \u201cimagen del proyecto\u201d o \u201cenlace al proyecto\u201d, con el nombre del proyecto basta.<\/p>\n<h3>FORMULARIO DE CONTACTO<\/h3>\n<p>En toda p\u00e1gina de portafolio debe hallarse un formulario para contactar al due\u00f1o de dicho portafolio y \u00e9sta no puede ser la excepci\u00f3n. Crearemos un formulario sencillo, con campos para nombre, correo, sitio web y mensaje, de los cuales todos ser\u00e1n obligatorios, excepto el campo de sitio web.<\/p>\n<p>Lo primero que debemos enfocarnos es en el orden. Un formulario tan simple tiene por supuesto un orden muy simple: nombre, correo, sitio web, mensaje. No s\u00f3lo es un orden simple, es pr\u00e1cticamente un est\u00e1ndar (no oficial) del orden de este tipo de formularios.<\/p>\n<p>Por otro lado no importa si un usuario tiene alguna discapacidad o no, cualquier usuario debe poder navegar a trav\u00e9s del formulario mediante un teclado. La forma m\u00e1s com\u00fan es usando la tecla \u201ctab\u201d, con la cual el comportamiento esperado es que el cursor navegue entre campos y etiquetas explicativas de los campos, nada m\u00e1s. El cursor no debe acceder a im\u00e1genes o elementos que no tengan que ver con la funcionalidad del formulario. Para lograr esto, en el HTML no debemos poner im\u00e1genes innecesarias ni ning\u00fan otro tipo de elemento decorativo, para que as\u00ed el cursor navegue normalmente por los campos entre tab y tab. Tambi\u00e9n es importante no alterar el comportamiento b\u00e1sico de los elementos mediante javascript, cosa que no haremos en este formulario.<\/p>\n<p>Pondremos el siguiente HTML como otro contenido, justo despu\u00e9s del article de galer\u00eda de fotos:<\/p>\n<p><code>&lt;article id=\"contact_form\"&gt;<br \/>\n&nbsp;&nbsp;&lt;h2&gt;Formulario de contacto&lt;\/h2&gt;<br \/>\n&nbsp;&nbsp;&lt;form action=\"#\" method=\"post\"&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;fieldset&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;label for=\"nombre\"&gt;Nombre (obligatorio):&lt;\/label&gt;&lt;\/td&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;input type=\"text\" name=\"nombre\" id=\"nombre\" \/&gt;&lt;\/td&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/tr&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;label for=\"correo\"&gt;Correo (obligatorio):&lt;\/label&gt;&lt;\/td&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;input type=\"text\" name=\"correo\" id=\"correo\" \/&gt;&lt;\/td&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/tr&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;label for=\"website\"&gt;Sitio Web:&lt;\/label&gt;&lt;\/td&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;input type=\"text\" name=\"website\" id=\"website\" \/&gt;&lt;\/td&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/tr&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;label for=\"mensaje\"&gt;Mensaje (obligatorio):&lt;\/label&gt;&lt;\/td&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;textarea name=\"mensaje\" id=\"mensaje\"&gt;&lt;\/textarea&gt;&lt;\/td&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/tr&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/table&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=\"submit\" name=\"enviar\" value=\"Enviar\" \/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/fieldset&gt;<br \/>\n&nbsp;&nbsp;&lt;\/form&gt;<br \/>\n&lt;\/article&gt;<\/code><\/p>\n<p>Hay que notar varias cosas de \u00e9ste HTML:<\/p>\n<ul>\n<li>Todos los campos del formulario est\u00e1n \u201cencapsulados\u201d dentro de una etiqueta <em>fieldset<\/em>. Esta etiqueta agrupa secciones de campos en formularios. Normalmente se usan varias de ellas en formularios grandes, pero en nuestro caso s\u00f3lo usamos una.<\/li>\n<li>Cada campo del formulario tiene una etiqueta <em>label<\/em> equivalente, la cual describe mediante un texto corto la informaci\u00f3n que debe contener cada campo.<\/li>\n<li>Estos <em>labels<\/em> tienen un atributo muy especial: el atributo <em>for<\/em>. Estos atributos contienen el <em>id<\/em> del campo del formulario al que hacen referencia. De esta forma un <em>label<\/em> queda relacionado de manera \u00fanica con un campo. Al hacer click de esta manera sobre un <em>label<\/em>, el foco queda autom\u00e1ticamente en el campo al que hace referencia, lo cual es muy \u00fatil en lo que a accesibilidad y usabilidad respecta.<\/li>\n<li>Los campos obligatorios muestran expl\u00edcitamente que deben ser obligatorios.<\/li>\n<\/ul>\n<p>Siguiendo todos estos pasos, nuestro formulario debe verse as\u00ed:<\/p>\n<p><a href=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/contact.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1522\" alt=\"contact\" src=\"http:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/contact.png\" width=\"984\" height=\"728\" srcset=\"https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/contact.png 984w, https:\/\/blog.utp.edu.co\/accesibilidad\/files\/2014\/10\/contact-300x221.png 300w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/a><\/p>\n<h3>PIE DE P\u00c1GINA<\/h3>\n<p>Hemos creado poco a poco la p\u00e1gina desde la parte de arriba hacia abajo, ya hemos llegado al final, el pie de la p\u00e1gina o footer. Dependiendo del tipo de p\u00e1gina en esta secci\u00f3n puede haber cosas variadas, como enlaces de navegaci\u00f3n, secciones personalizadas, informaci\u00f3n de redes sociales, entre varias otras opciones.<\/p>\n<p>En nuestro footer pondremos informaci\u00f3n relevante al due\u00f1o del portafolio y de los creadores de la p\u00e1gina, es decir, nosotros. Ser\u00e1 algo simple, s\u00f3lo unas cuantas l\u00edneas de HTML.<\/p>\n<p>De esta forma, nuestro HTML final queda de la siguiente manera:<\/p>\n<p><a title=\"Archivo html final\" href=\"http:\/\/textuploader.com\/oj18\" target=\"_blank\">http:\/\/textuploader.com\/oj18<\/a><\/p>\n<p>Y con esto hemos terminado nuestra p\u00e1gina web simple, con ejemplos paso a paso de accesibilidad en sus elementos.<\/p>\n<p>Este tutorial fue creado por Mauricio Sep\u00falveda y Michael Valencia (actual editor de esta entrada) como parte de un proyecto de grado para optar por el t\u00edtulo de ingeniero de sistemas y computaci\u00f3n en la Universidad Tecnol\u00f3gica de Pereira. Esperamos les sea \u00fatil y ayude a desarrolladores web a adentrarse en el creciente mundo del desarrollo web accesible.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saludos, en esta publicaci\u00f3n mostraremos c\u00f3mo implementar una serie de lineamientos y pautas b\u00e1sicas que deben tenerse en cuenta en el desarrollo de p\u00e1ginas y\/o sitios web accesibles. El ejemplo que emplearemos ser\u00e1 una p\u00e1gina sencilla de portafolio\/biograf\u00eda, con informaci\u00f3n &hellip; <a href=\"https:\/\/blog.utp.edu.co\/accesibilidad\/tutorial-implementacion-de-lineamientos-de-accesibilidad-web\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2216,"featured_media":1502,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49260],"tags":[11424,35901,14,49265],"class_list":["post-1486","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-investigaciones-encaminadas-a-la-accesibilidad","tag-desarrollo-web","tag-proyecto-de-grado","tag-universidad-tecnologica-de-pereira","tag-wcag"],"_links":{"self":[{"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/posts\/1486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/users\/2216"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/comments?post=1486"}],"version-history":[{"count":39,"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/posts\/1486\/revisions"}],"predecessor-version":[{"id":1532,"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/posts\/1486\/revisions\/1532"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/media\/1502"}],"wp:attachment":[{"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/media?parent=1486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/categories?post=1486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.utp.edu.co\/accesibilidad\/wp-json\/wp\/v2\/tags?post=1486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}