Refactorización de HTML para Mejorar Semántica y Accesibilidad
Resumen
¿Cómo refactorizar el contenido principal de un portafolio web?
Cuando diseñamos un portafolio online, es crucial priorizar el contenido principal para captar la atención de los visitantes. Esto no solo mejora la experiencia del usuario, sino que también fortalece la semántica del documento, algo esencial para el SEO y la accesibilidad. ¡Repasemos cómo mejorar nuestro código mediante una organización adecuada!
¿Qué es el contenido principal de un portafolio?
El contenido principal de un portafolio web suele incluir:
Introducción personal.
Proyectos destacados.
Información de contacto o redes sociales.
Este contenido debe ser accesible desde el primer vistazo, evitando que el visitante pierda interés o se quede sin información relevante.
¿Cómo encapsular semánticamente los elementos del documento?
En el código de ejemplo, se utiliza una etiqueta <main> para encapsular el contenido principal. Ésta debería contener nuestras secciones más relevantes: la introducción y el carrusel de proyectos.
<main><!-- Carrusel de proyectos e Introducción aquí --></main>
¿Cómo mejorar la semántica de la introducción?
La semántica ayuda al navegador a entender mejor el contenido. Para ello, encapsulamos el texto dentro de una etiqueta de parágrafo <p> y asignamos clases CSS adecuadas:
<pclass="intro-text"><!-- Texto de introducción --></p>
¿Cómo organizar las redes sociales?
Transformamos la estructura de las redes sociales en una lista semántica <ul>, lo que facilita la comprensión y navegación por parte de los lectores de pantalla:
<ul><li><ahref="https://twitter.com">Twitter</a></li><li><ahref="https://linkedin.com">LinkedIn</a></li><!-- Más elementos --></ul>
¿Cómo refactorizar el carrusel de proyectos?
Es esencial que una estructura de carrusel sea semántica para ofrecer una mejor experiencia de usuario. Se utilizó un contenedor <div> con elementos de lista para describir cada proyecto y se añadió un botón para la interacción.
<ul><li><button><imgsrc="path/to/image1.jpg"alt="Proyecto 1"></button></li><!-- Más proyectos --></ul>
¿Qué otros elementos semánticos considerar?
Para añadir más semántica:
Usar etiquetas <section> para dividir áreas del documento.
Incorporar encabezados <h2>, <h3> para denotar jerarquías visuales y textuales.
Recomendaciones para mejorar el código CSS
Siempre que cambies el HTML, asegúrate de ajustar el CSS para mantener la estética y funcionalidad. Por ejemplo, evitando el desbordamiento de imágenes.
.project-item{max-width:100%;height: auto;}
Desafíos para el estudiante
A medida que refactorices el HTML, no olvides:
Completar las etiquetas alternativas para imágenes, mejorando la accesibilidad.
Revisar y corregir la estructuración de las redes sociales.
¡La buena semántica y estructura del código no solo enriquecen la construcción del sitio, sino que también aumentan su accesibilidad y efectividad! Cada pequeño cambio contribuye a un portafolio más profesional y accesible. ¡Sigue adelante y mejora tus habilidades de desarrollo web!
Consejo: Para cambiar la etiqueta de apertura y cierre al mismo tiempo presiona F2 al lado del nombre de la etiqueta de apertura o cierre.
Codigo de la clase:index.html
<main><section><h2 class="header">Acerca de</h2><p class="intro">Hola!SoyJuliana 👋 SoyColombo-Canadiense, amo los gatos y tambien
crear cosas lindas para la web 😍 Después de estudiar comunicación
social y ciencia política en la universidad, trabajé varios años en
mercadeo digital hasta que aprendí a programar.Llevo un poco más de
tres años enfocándome en front end, específicamente en JavaScript y
accesibilidad.Sueño con una web donde todo el mundo pueda participar.Aquí puedes ver algunos de mis proyectos recientes y también puedes
contactarme por si quieres hablar de tecnología, accesibilidad o
gatos!</p><ul class="social-media"><li><a href="https://twitter.com/gmzjuliana" target="_blank"><img src="images/twitter.png" alt="Twitter"/></a></li><li><a href="https://github.com/gmzjuliana" target="_blank"><img src="images/github-logo.png" alt="GitHub"/></a></li><li><a href="https://www.linkedin.com/in/gomezjuliana/" target="_blank"><img src="images/linkedin.png" alt="LinkedIn"/></a></li></ul></section><section><h2 class="header">Mis proyectos</h2><div class="carousel"><div class="arrow arrow-left"></div><div class="window"><ul class="project-container"><li><button><img
src="images/project1.png"class="project project1" alt="Mi primer proyecto"/></button></li><li><button><img
src="images/project2.png"class="project project2" alt="Mi segundo proyecto"/></button></li><li><button><img
src="images/project3.png"class="project project3" alt="Mi tercer proyecto"/></button></li><li><button><img
src="images/project4.png"class="project project4" alt="Mi cuarto proyecto"/></button></li><li><button><img
src="images/project5.png"class="project project5" alt="Mi quinto proyecto"/></button></li></ul></div><div class="arrow arrow-right"></div></div></section></main>
En visual studio code hay una extensión que soluciona esto, se llama auto-rename-tag, hace el trabjoa más sencillo
Si solo pones twitter, el usuario puede preguntase a cual voy,mío,o otro
Buen punto! Aveces tomamos el sentido de los enlaces por sentado, pero podrias agregarle más detalle al enlace para ser muy claro. No estaria mal
Esto me parece super interesante! Como se podria hacer??
cual es la diferencia entre un input y button en accesibilidad?
Hola David
A primera vista creo que en cuestiones de accesibilidad no existe diferencia alguna, dado esos dos elementos por lo general cumplen la misma función: hacer que el usuario haga algo, call to action.
Sin embargo, si algo podría mencionar, es la capacidad de compatibilidad que tienen los <input> con la etiqueta <label> en los formularios, desconozco si la etiqueta <label> funcione de la misma manera con la etiqueta <button>. Quizá ese sea un punto a favor de los inputs en accesibilidad.
En tema de accesibilidad no parece tener diferencia, por ejemplo al moverse con el tabular, etc.
xq colocan ejemplo con java si no hemos visto este tema como elcarrusel son temas muy avanzandos y lo que hacen frutan al studiante o dederia expliacar en el cusro como lo hizo y por que va eso hay.
Se podría usar un a en lugar de un button para las imágenes de los proyectos?
Hola, Sergio. Recuerda que la principal funcionalidad de la etiqueta <a> es anclar a una pagina web, y tal como lo menciona la instructora, para las interacciones se hacen a través de los Botones
Oh vale! Ya entiendo
Gracias :D
Me parece bastante bueno que este curso esté en la ruta de UX Designer, nos sirve de mucho aprender de Frontend a los diseñadores UX.
Este curso no tendría que estar en Arquitectura Frontend
A mi parecer si, debido a que los Frontend toman el design del Team y lo hacen realidad con diversas herramientas, los Frontend van a escribir este codigo y deben asegurarse de que su codigo presente:
Buenas practicas
SEO
Accesibilidad
Performance
La clase se centró en mejorar la estructura y el significado semántico del código de una página web, haciendo énfasis en el uso de etiquetas HTML apropiadas y la corrección de estilos CSS.
Puntos clave de la refactorización:
Contenido Principal (<main>): Se aprendió a identificar el contenido principal de la página (en este caso, un carrusel de fotos) y a encerrarlo dentro de la etiqueta <main> para una correcta clasificación semántica.
Introducción y Texto (<p>): Se refactorizó la introducción para asegurar que el texto largo estuviera contenido dentro de la etiqueta de párrafo (<p>), mejorando la semántica, ya que el navegador solo lo renderiza, pero es mejor incluirlo en una etiqueta de texto. También se ajustaron los márgenes en CSS.
Enlaces de Redes Sociales (Listas <ul>, <li>): Un div que contenía los logos de las redes sociales se cambió a una lista (<ul> o similar) con elementos de lista (<li>) para reflejar que se trata de una lista de enlaces. Se destacó la importancia de añadir textos alternativos a las imágenes/enlaces (ej. "Twitter") para mejorar la accesibilidad con lectores de pantalla.
Estructura del Carrusel (<section>, <h2>):
Se utilizó la etiqueta <section> para separar lógicamente partes de la web, incluyendo el carrusel completo, dándole orden al contenido.
Se agregó un título semántico (<h2 class="header">) al carrusel (ej. "Mis proyectos") para darle contexto, manteniendo una unidad en la estructura de títulos de la web.
Elementos del Carrusel (Lista con Botones):
Se identificó que el contenedor de proyectos del carrusel era una lista de elementos, por lo que se cambió el div principal a una lista (<ul>) y los elementos internos a ítems de lista (<li>).
Como al hacer clic en cada elemento se abre un modal (interacción), se reconoció que el elemento principal de cada proyecto debe ser un botón (<button>), considerado una "Call to Action", que contiene la imagen enlazada correctamente.
Ajustes de Estilos CSS y Debugging:
Se modificó el CSS para conservar los estilos deseados al cambiar las etiquetas HTML (por ejemplo, copiando clases a los nuevos botones).
Se ajustó el CSS para corregir el descontrol en la división de imágenes con la propiedad .project-container li { display: inline-block; }.
Se eliminaron los estilos predeterminados de los botones (background: none; border: none;).
Para evitar que las imágenes se vieran "achatadas", se agregó la propiedad object-fit: cover; al CSS.
Se corrigió un error de importación de imágenes debido a una ruta incorrecta en el código.
En resumen, la clase trató sobre refactorizar el contenido principal de una web para que utilice la semántica adecuada de HTML5 (como <main>, <p>, listas, <section>, y <button> para interacciones) y ajustar el CSS consecuentemente para que la presentación y los estilos se mantengan correctos y bien maquetados.
Hice unos ejemplos:
me ayudarian con sus comentarios??
Yo veo el video 1.75
¿A qué se refiere la profesora cuando habla de modales?
¡Hola PlatziNauta! 😅
Recuerda dejar las preguntas lo más específico posible para poder ayudarte. ¿En qué minuto lo menciona?
Alrededor del 8:20
Es importante cuando dice el numero de linea de codigo en donde esta la parte del codigo a la que se refiere en vez de decir "aqui!"
tamalito
Me cambio la percepción bastante, me gusta este curso, lo único chistoso es que la profe habla como si solo la vieran mujeres porque solo habla en sentido femenino
una pregunat xq coocan ejejccios con tema avanzados con java y como el carrusel lo que hace que el estudiante se fruste y
Hay que buscarle el lado, yo estoy aquí sin ver html, pero pues así uno le va buscando la lógica, toma tiempo, quizá toque buscar algo en Google para salir de dudas, pero as{i se aprende.
Ánimo no te frustres porque con dedicación y poco a poco uno va aprendiendo muchas cosas y va relacionando.
De todas formas la idea antes de ver este curso era ver.