🏗️ Estructura Básica del Documento
Fundamentos para crear cualquier página HTML, incluyendo declaración del documento, metadatos esenciales y elementos base del cuerpo.
Declaración DOCTYPE
Declara el tipo de documento y la versión de HTML que el navegador debe usar para renderizar la página. Esencial para garantizar el modo de renderizado estándar de HTML5 y evitar el modo "quirks", que puede causar inconsistencias visuales.
Cuándo usar: Al iniciar cualquier documento HTML para definir la versión de HTML.
Elemento Raíz HTML
El elemento raíz de toda la página HTML. El atributo `lang` define el idioma principal del contenido del documento (en este caso, Portugués de Brasil), lo cual es crucial para la accesibilidad (lectores de pantalla) y para los motores de búsqueda (SEO).
Cuándo usar: Siempre como el primer elemento dentro del DOCTYPE.
Metadatos del Documento (Head)
Contiene metadatos sobre el documento, como título, enlaces a hojas de estilo, scripts, información de SEO y otras configuraciones que no se muestran directamente en la página, pero son importantes para el navegador y los motores de búsqueda.
Cuándo usar: Para incluir toda la información no visible de la página.
Contenido Visible (Body)
Contiene todo el contenido visible de la página web, incluyendo texto, imágenes, enlaces, videos y otros elementos interactivos. Todo lo que el usuario ve e interactúa está dentro de esta etiqueta.
Cuándo usar: Para envolver todo el contenido que se mostrará en el navegador.
Codificación de Caracteres
Define la codificación de caracteres del documento como UTF-8, que soporta la mayoría de los caracteres en todos los idiomas, incluyendo acentos y caracteres especiales. Garantiza que el texto se muestre correctamente en diferentes sistemas operativos y navegadores.
Cuándo usar: Siempre al inicio del <head> para evitar problemas de codificación.
Configuración de Viewport
Configura la viewport para dispositivos móviles, controlando el ancho del área visible (`width=device-width`) y el nivel de zoom inicial (`initial-scale=1.0`). Esencial para garantizar que el diseño de la página sea responsivo y se adapte a diferentes tamaños de pantalla.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Cuándo usar: En todas las páginas para garantizar responsividad en dispositivos móviles.
Títulos, Párrafos y Saltos
Elementos esenciales para estructurar texto, definir jerarquía de títulos y controlar el flujo de contenido.
Títulos de Sección (H1-H6)
Define títulos de diferentes niveles de importancia. `<h1>` es el título más importante (generalmente el título principal de la página), y `<h6>` es el menos importante. Usados para estructurar el contenido semánticamente y son relevantes para SEO.
Cuándo usar: Para definir la jerarquía y estructura de encabezados en su contenido.
Párrafo de Texto
Representa un párrafo de texto. Es el elemento fundamental para bloques de texto en un documento HTML, separando el contenido en unidades legibles.
Cuándo usar: Para cualquier bloque de texto que forma un párrafo.
Salto de Línea
Inserta un salto de línea simple, moviendo el contenido subsiguiente a la siguiente línea sin crear un nuevo párrafo. Usado para saltos de línea dentro del mismo bloque de texto (e.g., en una dirección).
Cuándo usar: Cuando se necesita un salto de línea, pero un nuevo párrafo no es semánticamente apropiado.
Línea Horizontal (Salto Temático)
Representa un salto temático entre párrafos de contenido, indicando un cambio de tema o sección. Generalmente se renderiza como una línea horizontal por el navegador, pero su propósito es semántico.
Cuándo usar: Para indicar un cambio de tema o sección dentro del contenido.
Formato y Énfasis de Texto
Tags para aplicar formato y dar significado semántico a partes específicas del texto.
Texto Importante (Strong)
Indica que el texto contenido es de gran importancia, relevancia o urgencia. Generalmente renderizado en negrita por los navegadores. Posee un significado semántico más fuerte que solo `<b>`.
Cuándo usar: Para destacar contenido crítico o de alta prioridad.
Texto Enfatizado (Emphasized)
Indica que el texto contenido debe ser enfatizado, generalmente para dar un significado diferente o para expresar un tono. Generalmente renderizado en cursiva por los navegadores. Posee un significado semántico más fuerte que solo `<i>`.
Cuándo usar: Para dar énfasis a una palabra o frase que cambia el sentido de la oración.
Texto Destacado (Mark)
Destaca o resalta un fragmento de texto, como si fuera marcado con un marcador de texto amarillo. Usado para llamar la atención sobre partes específicas del contenido que son relevantes para el contexto actual del usuario.
Cuándo usar: Para resaltar texto relevante en un contexto específico, como resultados de búsqueda.
Texto Pequeño (Small)
Representa comentarios secundarios, derechos de autor, textos de pie de página y otra información que se considera "pequeña" en relación con el texto principal. Generalmente se renderiza con una fuente más pequeña.
Cuándo usar: Para información de copyright, avisos legales o texto de pie de página.
Texto Eliminado (Deleted)
Representa texto que ha sido eliminado de un documento o que ya no es relevante. Generalmente se renderiza con una línea sobre el texto (tachado), indicando que fue removido.
Cuándo usar: Para mostrar cambios en un documento, como precios antiguos.
Texto Insertado (Inserted)
Representa texto que ha sido insertado en un documento. Generalmente se renderiza con un subrayado, indicando que fue añadido. Usado en conjunto con `<del>` para mostrar revisiones.
Cuándo usar: Para mostrar texto que ha sido añadido a un documento revisado.
Enlaces e Imágenes
Elementos para crear hipervínculos e incorporar imágenes en páginas web.
Enlace Básico (Anchor)
Crea un hipervínculo a otra página, recurso o parte del mismo documento. El atributo `href` (Hypertext REFerence) especifica la URL de destino a la que apunta el enlace.
Cuándo usar: Para crear enlaces de navegación o referencias externas.
Enlace en Nueva Pestaña
Crea un hipervínculo que, al hacer clic, abre el recurso especificado en una nueva pestaña o ventana del navegador. El atributo `target="_blank"` se utiliza para este comportamiento.
<a href="url" target="_blank">
Cuándo usar: Para abrir enlaces externos sin sacar al usuario de la página actual.
Insertar Imagen
Inserta una imagen en el documento. El atributo `src` (SouRCe) especifica la ruta al archivo de la imagen, y `alt` (ALTernative text) proporciona una descripción textual alternativa, esencial para la accesibilidad (lectores de pantalla) y SEO.
<img src="caminho" alt="descrição">
Cuándo usar: Para mostrar imágenes en su página.
Imágenes Responsivas (Picture)
Un contenedor que permite especificar múltiples fuentes de imagen (`<source>`) para diferentes condiciones (como tamaños de pantalla, densidades de píxeles o formatos de imagen), y un elemento `<img>` como fallback. Ayuda a optimizar la carga de imágenes y a adaptarlas a diversos dispositivos.
Cuándo usar: Para servir imágenes optimizadas para diferentes viewports o formatos.
🎯 Elementos Semánticos de Estructura
Elementos que proporcionan significado estructural al contenido, mejorando accesibilidad, SEO y mantenimiento del código.
Encabezado de la Página/Sección
Representa el contenido introductorio de una sección o de todo el documento, generalmente conteniendo títulos, logotipos, navegación y/o un campo de búsqueda. No debe confundirse con los títulos `<h1>-<h6>`.
Cuándo usar: Para agrupar elementos introductorios, como la parte superior de una página o sección.
Navegación Principal
Representa una sección de enlaces de navegación, como menús, índices o tablas de contenido. Destinado a la navegación principal del sitio o de una sección importante.
Cuándo usar: Para envolver bloques de enlaces de navegación primaria.
Contenido Principal
Representa el contenido dominante del `<body>` del documento. Debe haber solo un elemento `<main>` por documento y su contenido debe ser único para esa página, excluyendo barras laterales, navegación, etc.
Cuándo usar: Para delimitar el contenido principal y único de su página.
Sección Genérica
Representa una sección genérica de contenido temáticamente agrupado. Generalmente contiene un título (h1-h6) y puede ser usado para dividir el contenido principal en partes lógicas y coherentes.
Cuándo usar: Para agrupar contenido relacionado que forma una sección lógica.
Contenido Independiente (Article)
Representa un contenido independiente y autosuficiente, como una publicación de blog, un artículo de periódico, un comentario de usuario o un widget interactivo. Puede distribuirse y reutilizarse independientemente del resto de la página.
Cuándo usar: Para contenido que puede leerse de forma independiente, como un artículo de blog.
Contenido Secundario (Aside)
Representa un contenido que está tangencialmente relacionado con el contenido principal del documento, pero que puede considerarse separado. Frecuentemente usado para barras laterales, cajas de cita o bloques de anuncios.
Cuándo usar: Para barras laterales, cajas de cita o información relacionada.
Pie de Página/Sección
Representa el pie de página de una sección o de todo el documento. Generalmente contiene información sobre el autor, derechos de autor, enlaces relacionados, información de contacto o navegación secundaria.
Cuándo usar: Para agrupar información de pie de página, como derechos de autor y enlaces de contacto.
Elementos de Texto Semántico
Tags que agregan significado estructural y contextual a bloques de texto específicos.
Cita Larga (Blockquote)
Indica que el texto contenido es una cita larga de otra fuente. Generalmente renderizado con una sangría por el navegador. El atributo `cite` puede ser usado para apuntar a la fuente de la cita.
Cuándo usar: Para citar bloques de texto de otras fuentes.
Título de Obra (Cite)
Usado para citar el título de una obra creativa (libro, película, música, pintura, etc.) o el nombre de la fuente de una cita. El contenido es generalmente renderizado en cursiva.
Cuándo usar: Para referenciar el título de una obra citada.
Código de Computadora
Muestra un pequeño fragmento de código de computadora. El contenido es generalmente renderizado en una fuente monoespaciada, indicando que es código. Puede ser usado dentro de `<pre>` para bloques mayores de código.
Cuándo usar: Para mostrar fragmentos de código inline o dentro de un párrafo.
Texto Preformateado
Muestra texto preformateado. El texto dentro de esta etiqueta se muestra en una fuente monoespaciada y mantiene los espacios en blanco y los saltos de línea exactamente como fueron escritos en el código fuente. Útil para mostrar código o arte ASCII.
Cuándo usar: Para mostrar bloques de código o texto que requieren formato exacto.
Abreviação
Representa uma abreviação ou um acrônimo. O atributo `title` pode ser usado para fornecer a expansão completa da abreviação, melhorando a acessibilidade e a compreensão do usuário.
Cuándo usar: Para marcar abreviações e fornecer seu significado completo.
Información de Contacto
Proporciona información de contacto para el autor/propietario del documento o de la sección más cercana. Puede incluir nombre, dirección física, correo electrónico, teléfono, URL, etc.
Cuándo usar: Para mostrar información de contacto de forma semántica.
Medios y Contenido Embebido
Elementos para incorporar figuras, leyendas y otros tipos de contenido externo.
Contenedor de Figura
Usado para agrupar contenido autocontenido, como imágenes, diagramas, fotos, bloques de código, etc., junto con su leyenda (`<figcaption>`), haciéndolo independiente del flujo principal del documento y referenciable.
Cuándo usar: Para agrupar una imagen, código u otro contenido con su leyenda.
Leyenda de la Figura
Proporciona una leyenda o descripción para el contenido de un elemento `<figure>`. Debe ser el primer o el último hijo de un `<figure>`.
Cuándo usar: Para añadir una leyenda descriptiva a un elemento <figure>.
Contenido Externo (Iframe)
Incorpora otro documento HTML dentro del documento actual. Usado para mostrar contenido de otras fuentes, como videos de YouTube, mapas de Google o contenido de otros sitios, de forma aislada.
Cuándo usar: Para incorporar contenido de otras fuentes o documentos HTML.
Contenido Incrustado (Embed)
Incrusta contenido externo desde un punto de inserción especificado en el documento. Usado para integrar plugins de terceros o contenido que no es HTML, como PDFs, archivos de audio/video o animaciones Flash (aunque su uso ha disminuido).
Cuándo usar: Para incorporar contenido de plugins externos o medios no HTML.
Objeto Multimedia (Object)
Incorpora un objeto externo (como un plugin, PDF, Flash o incluso otro documento HTML) en el documento HTML. Ofrece más opciones de fallback y control de contenido que `<embed>`, pero es menos común hoy en día.
Cuándo usar: Para incorporar objetos externos con más control sobre fallbacks.
📋 Tipos de Listas
Elementos para organizar información en listas ordenadas, no ordenadas o de definición.
Lista No Ordenada
Crea una lista no ordenada de ítems. Los ítems de la lista son generalmente marcados con viñetas (puntos, cuadrados, etc.), indicando que el orden no es semánticamente importante.
Cuándo usar: Para listas donde el orden de los ítems no es relevante (e.g., lista de compras).
Lista Ordenada
Crea una lista ordenada de elementos. Los elementos de la lista suelen estar marcados con números o letras, indicando una secuencia o jerarquía.
Cuándo usar: Para listas donde el orden de los elementos es importante (e.g., pasos de una receta).
Elemento de Lista
Representa un elemento individual dentro de una lista (`<ul>` o `<ol>`). Debe ser un hijo directo de `<ul>`, `<ol>` o `<menu>`.
Cuándo usar: Para cada elemento dentro de una lista ordenada o no ordenada.
Lista de Definición
Crea una lista de definición, que es una lista de términos y sus respectivas descripciones. Útil para glosarios, preguntas y respuestas o metadatos.
Cuándo usar: Para crear glosarios o listas de términos y sus definiciones.
Término de Definición
Representa un término a definir dentro de una lista de definición (`<dl>`). Cada `<dt>` es generalmente seguido por uno o más elementos `<dd>`.
Cuándo usar: Para definir el término en una lista de definición.
Descripción de Definición
Representa la descripción o definición de un término (`<dt>`) dentro de una lista de definición (`<dl>`).
Cuándo usar: Para proporcionar la descripción o explicación de un término en una lista de definición.
Atributos de Listas
Atributos para personalizar la apariencia y comportamiento de listas.
Lista Numerada Estándar
Define una lista ordenada que usa números arábigos (1, 2, 3...) como marcadores. Este es el tipo estándar y puede ser omitido.
Cuándo usar: Para listas ordenadas con numeración estándar.
Lista con Letras Mayúsculas
Define una lista ordenada que usa letras mayúsculas (A, B, C...) como marcadores para los elementos de la lista.
Cuándo usar: Para listas ordenadas que usan letras mayúsculas como marcadores.
Lista con Letras Minúsculas
Define una lista ordenada que usa letras minúsculas (a, b, c...) como marcadores para los elementos de la lista.
Cuándo usar: Para listas ordenadas que usan letras minúsculas como marcadores.
Lista con Números Romanos
Define una lista ordenada que usa números romanos mayúsculos (I, II, III...) como marcadores para los elementos de la lista.
Cuándo usar: Para listas ordenadas que usan números romanos como marcadores.
Inicio de la Lista Ordenada
Inicia la cuenta de una lista ordenada a partir de un número específico (en este caso, 5), en lugar de empezar desde el 1. El valor puede ser cualquier número entero.
Cuándo usar: Para continuar una lista desde un punto específico o cuando el orden lógico requiere un inicio diferente.
Lista Sin Marcadores
Elimina los marcadores predeterminados de una lista no ordenada, permitiendo personalización completa vía CSS. Este es un ejemplo de estilo inline, pero es preferible usar CSS externo.
<ul style="list-style-type: none;">
Cuándo usar: Cuando quieres eliminar los marcadores predeterminados y estilizar la lista con CSS.
Estructura de Tablas
Elementos fundamentales para crear y organizar datos en formato tabular.
Contenedor de la Tabla
El contenedor principal para datos tabulares. Define una tabla HTML, agrupando todos sus elementos (encabezado, cuerpo, pie de página, filas y celdas).
Cuándo usar: Para crear cualquier tabla de datos.
Encabezado de la Tabla
Agrupa el contenido del encabezado de una tabla. Contiene la información de encabezado de las columnas, generalmente usando elementos `<th>`.
Cuándo usar: Para definir el encabezado semántico de una tabla.
Cuerpo de la Tabla
Agrupa el contenido del cuerpo de una tabla. Contiene las filas de datos principales de la tabla, usando elementos `<tr>` y `<td>`.
Cuándo usar: Para definir el cuerpo principal de datos de una tabla.
Pie de Tabla
Agrupa el contenido del pie de una tabla. Generalmente contiene resúmenes, totales o información adicional relacionada con los datos del cuerpo de la tabla.
Cuándo usar: Para definir el pie semántico de una tabla, como totales o notas.
Fila de la Tabla
Define una fila de celdas en una tabla (Table Row). Cada `<tr>` debe contener uno o más elementos `<th>` (celdas de encabezado) o `<td>` (celdas de datos).
Cuándo usar: Para cada nueva fila de datos o encabezado en la tabla.
Celda de Encabezado
Define una celda de encabezado en una tabla (Table Header). El contenido es generalmente centrado y en negrita por defecto, y semánticamente representa un encabezado para una columna o fila, mejorando la accesibilidad.
Cuándo usar: Para celdas que sirven como encabezados de columnas o filas.
Celda de Datos
Define una celda de datos estándar en una tabla (Table Data). Contiene el dato real de la tabla. Es el elemento más básico para mostrar contenido dentro de una fila.
Cuándo usar: Para cada celda de datos común en una tabla.
Atributos de Tablas
Atributos para controlar la presentación y layout de celdas en tablas HTML.
Borde de la Tabla (Obsoleto)
Añade un borde de 1 píxel alrededor de la tabla y sus celdas. Este atributo está obsoleto en HTML5; el estilo de los bordes debe aplicarse exclusivamente vía CSS para una mejor separación de responsabilidades.
Cuándo usar: Evitar su uso. Preferir CSS para el estilo de los bordes.
Fusionar Columnas (Colspan)
Hace que una celda de datos ocupe (fusione) dos o más columnas adyacentes en la tabla. El valor del atributo indica el número de columnas a fusionar.
Cuándo usar: Para fusionar celdas horizontalmente, abarcando múltiples columnas.
Combinar Filas (Rowspan)
Hace que una celda de datos ocupe (combine) tres o más filas adyacentes en la tabla. El valor del atributo indica el número de filas a combinar.
Cuándo usar: Para combinar celdas verticalmente, abarcando múltiples filas.
Alcance de Encabezado (Columna)
Indica que la celda de encabezado (`<th>`) proporciona un encabezado para todas las celdas en la misma columna. Esencial para la accesibilidad, ya que los lectores de pantalla pueden asociar datos a sus respectivos encabezados.
Cuándo usar: Para indicar que un <th> es el encabezado de una columna entera.
Alcance de Encabezado (Fila)
Indica que la celda de encabezado (`<th>`) proporciona un encabezado para todas las celdas en la misma fila. Esencial para la accesibilidad, especialmente en tablas complejas.
Cuándo usar: Para indicar que un <th> es el encabezado de una fila entera.
Campos de Entrada Básicos
Tipos de campos de entrada más comunes para recopilar diferentes tipos de datos del usuario.
Campo de Texto
Crea un campo de entrada de texto de una sola línea para datos generales, como nombres, apellidos o direcciones cortas.
Cuándo usar: Para entrada de texto genérico de una sola línea.
Campo de Correo Electrónico
Crea un campo de entrada para direcciones de correo electrónico. Los navegadores pueden ofrecer validación básica de formato de correo electrónico y, en dispositivos móviles, activar un teclado optimizado para correos electrónicos.
Cuándo usar: Para recopilar direcciones de correo electrónico.
Campo de Contraseña
Crea un campo de entrada para contraseñas. Los caracteres digitados son enmascarados (generalmente con asteriscos o puntos) para ocultar la entrada, pero el valor es enviado como texto simple.
Cuándo usar: Para recopilar contraseñas o información sensible que debe ser enmascarada.
Campo Numérico
Crea un campo de entrada para números. Los navegadores pueden mostrar controles para aumentar/disminuir el valor (spin buttons) y validar que la entrada es numérica. Puede usar atributos `min`, `max`, `step`.
Cuándo usar: Para recopilar entradas numéricas, como edad o cantidad.
Campo de Teléfono
Crea un campo de entrada para números de teléfono. En dispositivos móviles, puede activar un teclado numérico optimizado. No posee validación de formato de teléfono nativa, que debe hacerse con `pattern` o JavaScript.
Cuándo usar: Para recopilar números de teléfono.
Campo de URL
Crea un campo de entrada para URLs. Los navegadores pueden ofrecer validación básica de formato de URL. En dispositivos móviles, puede activar un teclado optimizado para URLs.
Cuándo usar: Para recopilar direcciones de sitios web o enlaces.
🚀 Campos HTML5 Modernos
Nuevos tipos de campos de entrada HTML5 para recopilar datos específicos con validación e interfaces mejoradas.
Selector de Fecha
Crea un campo de entrada para seleccionar una fecha (día, mes, año). Los navegadores generalmente proporcionan un selector de calendario (date picker) nativo para facilitar la selección.
Cuándo usar: Para recolectar una fecha específica del usuario.
Selector de Hora
Crea un campo de entrada para seleccionar una hora (horas y minutos). Los navegadores pueden ofrecer un control de tiempo optimizado.
Cuándo usar: Para recopilar una hora específica del usuario.
Selector de Fecha y Hora Local
Crea un campo de entrada para seleccionar una fecha y hora local, sin información de zona horaria. Combina las funcionalidades de `type="date"` y `type="time"`.
<input type="datetime-local">
Cuándo usar: Para recopilar una fecha y hora local combinadas.
Selector de Mes
Crea un campo de entrada para seleccionar un mes y año. Útil para fechas de vencimiento de tarjetas de crédito o períodos de tiempo.
Cuándo usar: Para recopilar solo el mes y el año.
Selector de Semana
Crea un campo de entrada para seleccionar una semana y año. El formato de visualización puede variar entre navegadores.
Cuándo usar: Para recopilar una semana específica del año.
Selector de Color
Crea un campo de entrada para seleccionar un color. Los navegadores generalmente proporcionan un selector de colores (color picker) nativo, retornando el valor en formato hexadecimal (e.g., `#RRGGBB`).
Cuándo usar: Para permitir que el usuario elija un color.
Control Deslizante (Range)
Crea un control deslizante (slider) para seleccionar un valor dentro de un intervalo especificado. Los atributos `min`, `max` y `step` definen el comportamiento y los límites del control.
Cuándo usar: Para permitir la selección de un valor numérico dentro de un intervalo, como volumen o zoom.
Subida de Archivos
Crea un campo de entrada que permite al usuario seleccionar uno o más archivos de su dispositivo para subir al servidor. El atributo `multiple` permite la selección de múltiples archivos.
Cuándo usar: Para permitir que el usuario suba archivos.
🎬 Audio y Video
Elementos HTML5 para incorporar y controlar contenido multimedia directamente en páginas web.
Reproductor de Audio
Incorpora contenido de audio en el documento. El atributo `controls` añade los controles de reproducción estándar del navegador (play/pause, volumen, barra de progreso, etc.), permitiendo la interacción del usuario.
Cuándo usar: Para incorporar archivos de audio en su página.
Reproductor de Video
Incorpora contenido de video en el documento. El atributo `controls` añade los controles de reproducción estándar del navegador (play/pause, volumen, barra de progreso, pantalla completa, etc.), permitiendo la interacción del usuario.
Cuándo usar: Para incorporar archivos de video en su página.
Fuente de Medios
Especifica múltiples fuentes de medios para los elementos `<audio>` o `<video>`. El navegador elige la primera fuente que puede reproducir, basándose en el atributo `type` (e.g., `video/mp4`, `audio/mpeg`), garantizando compatibilidad entre navegadores.
<source src="file.mp4" type="video/mp4">
Cuándo usar: Para proporcionar diferentes formatos de audio/video para una amplia compatibilidad.
Pista de Subtítulos/Descripciones
Permite añadir pistas de texto temporizadas (como subtítulos, subtítulos ocultos, descripciones, capítulos) a elementos `<video>` o `<audio>`. El atributo `kind` define el tipo de pista (e.g., `subtitles`, `captions`, `descriptions`).
<track kind="subtitles" src="subtitles.vtt">
Cuándo usar: Para añadir subtítulos, descripciones u otros metadatos temporizados a medios.
Video con Reproducción Automática
Un video configurado para iniciar la reproducción automáticamente (`autoplay`), repetir indefinidamente (`loop`) y con el audio desactivado (`muted`) al cargar la página. Común para videos de fondo o banners, ya que los navegadores generalmente bloquean `autoplay` con sonido.
<video autoplay loop muted>
Cuándo usar: Para videos de fondo o que no deben tener sonido y se repiten automáticamente.
Imagen de Póster del Video
Define una imagen que se mostrará en el reproductor de video antes de que el video comience a reproducirse, mientras el video se está descargando o si el video no puede cargarse. Sirve como una miniatura o portada.
<video poster="poster.jpg">
Cuándo usar: Para mostrar una imagen de previsualización para el video.
Gráficos y Canvas
Elementos para crear gráficos dinámicos y vectoriales directamente en el navegador.
Elemento Canvas
Proporciona un área de dibujo rectangular en la página HTML, donde gráficos pueden ser renderizados dinámicamente usando JavaScript (API Canvas). Ideal para juegos, visualización de datos, animaciones complejas y edición de imágenes.
Cuándo usar: Para dibujo gráfico dinámico vía JavaScript.
Gráfico Vectorial Escalable (SVG)
Define gráficos vectoriales escalables (Scalable Vector Graphics). Las imágenes SVG están basadas en XML, pueden ser dimensionadas a cualquier tamaño sin pérdida de calidad y son manipulables vía CSS y JavaScript, haciéndolas ideales para iconos e ilustraciones.
Cuándo usar: Para gráficos vectoriales que necesitan ser escalables y manipulables.
Canvas con Dimensiones
Crea un elemento canvas con dimensiones específicas de ancho y alto en píxeles. Estas dimensiones definen el espacio de coordenadas para el dibujo y son importantes para la renderización correcta del contenido.
<canvas width="300" height="150">
Cuándo usar: Al definir las dimensiones iniciales para el área de dibujo del canvas.
SVG con ViewBox
Define las dimensiones y la posición del área de visualización de un SVG. Los cuatro valores representan `min-x`, `min-y`, `width` y `height` del sistema de coordenadas del usuario, permitiendo que el SVG se escale para ajustarse al contenedor.
<svg viewBox="0 0 100 100">
Cuándo usar: Para controlar el sistema de coordenadas y el escalado de un SVG.
Elementos Gráficos Adicionales
Elementos para crear interactividad en imágenes y garantizar la correcta representación de SVG.
Mapa de Imagen
Define un mapa de imagen del lado del cliente, que permite crear áreas clicables (hotspots) en una imagen. Usado en conjunto con el elemento `<area>` y referenciado por el atributo `usemap` de una `<img>`.
Cuándo usar: Para criar áreas clicáveis em uma imagem.
Área Clicable en Mapa
Define un área clicable (hotspot) dentro de un mapa de imagen (`<map>`). Los atributos `shape` (e.g., `rect`, `circle`, `poly`) y `coords` definen la forma y posición del área, y `href` el destino del enlace.
Cuándo usar: Para definir las regiones interactivas dentro de un mapa de imagen.
Canvas con ID para JavaScript
Un elemento canvas con un identificador único (`id`), permitiendo que sea fácilmente accedido y manipulado por scripts JavaScript usando `document.getElementById()`.
Cuándo usar: Para interactuar con el canvas usando JavaScript.
SVG con Namespace
Declara el namespace XML para el elemento SVG, indicando que el contenido dentro de la etiqueta `<svg>` debe interpretarse como gráficos vectoriales escalables. Aunque a menudo implícito en HTML5, es una buena práctica para la compatibilidad.
<svg xmlns="http://www.w3.org/2000/svg">
Cuándo usar: Al incorporar SVG directamente en HTML, especialmente para garantizar compatibilidad con parsers XML.
Open Graph para Redes Sociales
Metatags del protocolo Open Graph para controlar cómo se muestra el contenido al compartirlo en Facebook, LinkedIn y WhatsApp.
Título Open Graph
Define el título que se mostrará cuando la página sea compartida en redes sociales como Facebook y LinkedIn. Forma parte del protocolo Open Graph y debe ser conciso y atractivo.
<meta property="og:title" content="...">
Cuándo usar: Para definir el título de compartición en redes sociales.
Descripción Open Graph
Define la descripción que se mostrará cuando la página sea compartida en redes sociales, proporcionando un resumen del contenido. Debe ser persuasiva e informativa.
<meta property="og:description" content="...">
Cuándo usar: Para definir la descripción de compartición en redes sociales.
Imagen Open Graph
Define la URL de una imagen que se mostrará como miniatura (thumbnail) cuando la página sea compartida en redes sociales. Es crucial para el engagement visual.
<meta property="og:image" content="...">
Cuándo usar: Para definir la imagen de previsualización para compartir en redes sociales.
URL Canónica Open Graph
Define la URL canónica de la página para Open Graph, asegurando que todas las referencias de compartición apunten a la misma URL, evitando problemas de contenido duplicado.
<meta property="og:url" content="...">
Cuándo usar: Para especificar la URL preferencial de la página para redes sociales.
Tipo de Contenido Open Graph
Define el tipo de objeto que la página representa (e.g., "website", "article", "video.movie"). Ayuda a las redes sociales a entender el contexto del contenido y a mostrar información relevante.
<meta property="og:type" content="website">
Cuándo usar: Para categorizar el tipo de contenido de la página para redes sociales.
Optimización de Rendimiento
Elementos link que ayudan a mejorar el tiempo de carga precargando o preconectando recursos.
Precarga de Recursos
Instruye al navegador a precargar un recurso (como una fuente, imagen, script o hoja de estilo) que será necesario pronto en la página. Esto garantiza que el recurso esté disponible antes, mejorando el tiempo de carga percibido.
<link rel="preload" href="...">
Cuándo usar: Para recursos esenciales que deben ser cargados lo más rápido posible.
Prefetch de Recursos
Instruye al navegador a prefetch un recurso que puede ser necesario en navegaciones futuras, pero no inmediatamente en la página actual. Ayuda a acelerar la navegación entre páginas, ya que el recurso ya estará en caché.
<link rel="prefetch" href="...">
Cuándo usar: Para recursos que pueden ser necesarios en páginas futuras.
Pre-resolución DNS
Instruye al navegador a resolver el DNS de un dominio antes de que el recurso sea realmente solicitado. Reduce la latencia para recursos de dominios externos, como CDNs o APIs de terceros.
<link rel="dns-prefetch" href="...">
Cuándo usar: Para acelerar la resolución de DNS para dominios externos.
URL Canónica para SEO
Especifica la URL canónica preferencial para la página, ayudando a los motores de búsqueda a evitar problemas de contenido duplicado y a consolidar señales de clasificación (como enlaces y métricas) para la versión principal de la página.
<link rel="canonical" href="...">
Cuándo usar: Para indicar la URL preferencial de una página, especialmente en casos de contenido duplicado.
♿ Atributos ARIA para Accesibilidad
Atributos WAI-ARIA para mejorar la accesibilidad, proporcionando información semántica para tecnologías asistivas.
Etiqueta Accesible (aria-label)
Proporciona una etiqueta de texto accesible para un elemento cuando no hay una etiqueta visible disponible (e.g., un botón de icono). Usado por tecnologías asistivas (lectores de pantalla) para describir el elemento.
Cuándo usar: Para proporcionar una etiqueta textual para elementos sin texto visible, como botones de icono.
Descripción por ID (aria-describedby)
Asocia un elemento con otro que proporciona una descripción más detallada. El valor es el `id` del elemento que contiene la descripción, permitiendo que los lectores de pantalla lean la descripción asociada.
Cuándo usar: Para asociar un elemento a una descripción más larga y detallada en otro elemento.
Estado Expandido/Colapsado (aria-expanded)
Indica el estado de un elemento expandible (como un menú desplegable, acordeón o botón que revela contenido), informando si está expandido (`true`) o colapsado (`false`).
Cuándo usar: Para indicar si un componente (menú, acordeón) está abierto o cerrado.
Ocultar de Tecnologías Asistivas (aria-hidden)
Elimina un elemento y todos sus descendientes del árbol de accesibilidad, haciéndolo invisible para las tecnologías asistivas (lectores de pantalla). Usado para contenido puramente decorativo u oculto que no debe ser anunciado.
Cuándo usar: Para ocultar elementos puramente decorativos de lectores de pantalla.
Región de Actualización Dinámica (aria-live)
Define una región "en vivo" que debe ser anunciada por tecnologías asistivas cuando su contenido cambia dinámicamente. `polite` significa que los cambios se anuncian cuando el usuario está inactivo, mientras que `assertive` anuncia inmediatamente.
Cuándo usar: Para anunciar actualizaciones de contenido dinámico (e.g., mensajes de error, resultados de búsqueda).
Roles Semánticos ARIA
Atributos role para definir la función o propósito de un elemento, especialmente con elementos no semánticos.
Rol de Navegación
Define que el elemento actúa como una región de navegación, conteniendo enlaces para navegar en el documento o en documentos relacionados. Usado cuando un elemento no semántico (como `div`) es usado para navegación.
Cuándo usar: Para indicar que un elemento es un área de navegación (si no es <nav>).
Rol de Contenido Principal
Define que el elemento contiene el contenido principal del documento. Usado cuando un elemento no semántico (como `div`) se utiliza para el contenido principal, como un fallback para navegadores antiguos que no soportan `<main>`.
Cuándo usar: Para indicar el contenido principal de la página (si no es <main>).
Rol de Contenido Complementario
Define que el elemento contiene contenido de soporte que complementa el contenido principal, pero está separado de él. Similar a `<aside>`, usado cuando se emplea un `div`.
Cuándo usar: Para indicar contenido complementario (si no es <aside>).
Rol de Búsqueda
Define que el elemento es una región que contiene un mecanismo de búsqueda para el documento o sitio. Ayuda a las tecnologías asistivas a identificar rápidamente la funcionalidad de búsqueda.
Cuándo usar: Para identificar el área de búsqueda en su página.
Rol de Alerta
Define que el elemento es un mensaje de alerta importante que se añade dinámicamente y debe ser anunciado inmediatamente por tecnologías asistivas. Usado para notificaciones críticas que requieren atención inmediata.
Cuándo usar: Para mensajes de alerta importantes que requieren atención inmediata.
Navegación por Teclado y Foco
Atributos para controlar el orden de tabulación y el foco, esencial para usuarios que navegan con teclado.
Elemento Enfocable (tabindex="0")
Hace que un elemento sea enfocable vía teclado y lo incluye en el orden de tabulación estándar del documento, siguiendo el orden del DOM. Permite que elementos que normalmente no son enfocables (como `div` o `span`) reciban foco.
Cuándo usar: Para hacer que elementos no interactivos sean enfocables vía teclado en el orden natural.
Enfocable Programáticamente (tabindex="-1")
Hace que un elemento sea enfocable programáticamente (vía JavaScript usando `.focus()`), pero lo elimina del orden de tabulación estándar del teclado. Útil para enfocar elementos dinámicamente sin interferir en la navegación lineal.
Cuándo usar: Para enfocar elementos vía JavaScript sin incluirlos en el orden de tabulación.
Tecla de Acceso Directo (Accesskey)
Define una tecla de acceso directo para un elemento, permitiendo que el usuario active el elemento presionando una combinación de teclas (varía por navegador y sistema operativo, e.g., Alt+Shift+S en Chrome).
Cuándo usar: Para proporcionar atajos de teclado para elementos importantes (usar con moderación).
Foco Automático
Un atributo booleano que hace que un elemento de formulario sea automáticamente enfocado cuando la página es cargada. Solo un elemento puede tener `autofocus` por página. Puede ser problemático para la accesibilidad si no se usa con cuidado.
Cuándo usar: Para enfocar automáticamente un campo de formulario crucial al cargar la página.
Contenido Alternativo para Accesibilidad
Técnicas para proporcionar alternativas textuales y contextuales para contenido no textual.
Texto Alternativo para Imágenes
Proporciona una descripción textual alternativa para una imagen. Esencial para usuarios de lectores de pantalla y cuando la imagen no puede ser cargada, transmitiendo el significado de la imagen.
<img src="..." alt="Descrição detalhada">
Cuándo usar: Siempre para imágenes que transmiten información importante.
Imagen Decorativa
Indica que la imagen es puramente decorativa y no transmite información importante. El `alt=""` vacío y `role="presentation"` instruyen a los lectores de pantalla a ignorarla, evitando ruido innecesario.
<img src="..." alt="" role="presentation">
Cuándo usar: Para imágenes que no añaden valor informativo, como iconos puramente visuales.
Descripción Larga (longdesc - Obsoleto)
Un atributo obsoleto para `<img>` que apuntaba a un documento HTML que contenía una descripción larga de la imagen. Fue reemplazado por `aria-describedby` o por descripciones en el texto adyacente a la imagen.
<longdesc="descricao.html">
Cuándo usar: Evitar su uso, ya que es obsoleto.
Figura con Leyenda Accesible
Asocia un elemento `<figure>` a una leyenda (`<figcaption>`) usando su `id`, mejorando la accesibilidad para lectores de pantalla que pueden no asociar automáticamente. El `aria-labelledby` apunta al `id` de la `<figcaption>` u otro elemento de etiqueta.
<figure aria-labelledby="caption1">
Cuándo usar: Para asociar explícitamente una figura a su leyenda para lectores de pantalla.