Maquetación Web Dinámica / Accesibilidad y rendimiento
Reto: audita y arregla una página rota
El reto más realista del curso: recibes una página que "funciona" pero está llena de problemas de accesibilidad y rendimiento —como las que heredarás en cualquier trabajo— y tu misión es auditarla y arreglarla. Es exactamente lo que hace un profesional el primer día en un proyecto existente: encontrar la deuda y pagarla, con el antes y el después medibles.
Reto
El antes y el después
Qué debes arreglar
Esta tarjeta de producto renderiza bien... pero tiene al menos SEIS problemas de accesibilidad y rendimiento escondidos en su código. Ábrela, revisa sus pestañas HTML y CSS, y encuéntralos:
<div class="tarjeta">
<img src="https://via.placeholder.com/280x160/6d28d9/ffffff?text=Producto">
<div class="titulo">Auriculares Forge Pro</div>
<p class="desc">Sonido envolvente y batería de 40 horas.</p>
<div class="precio">$199</div>
<div class="btn" role="button" onclick="void 0">Comprar ahora</div>
<a href="#detalles">clic aquí</a>
<form onsubmit="return false">
<input type="email" placeholder="Tu correo para ofertas">
<div class="btn2" onclick="void 0">Suscribir</div>
</form>
</div>body { font-family: system-ui; padding: 16px; background: #f8fafc; }
.tarjeta { background: white; border: 1px solid #e2e8f0; border-radius: 14px; padding: 16px; max-width: 300px; display: grid; gap: 8px; }
.titulo { font-size: 18px; font-weight: 700; color: #1e293b; }
.desc { margin: 0; color: #bcbcbc; font-size: 14px; }
.precio { font-size: 24px; font-weight: 800; color: #1e293b; }
.btn { background: #6d28d9; color: white; text-align: center; padding: 10px; border-radius: 8px; cursor: pointer; font-weight: 600; }
.btn:focus { outline: none; }
a { color: #6d28d9; }
input { padding: 8px; border: 1px solid #cbd5e1; border-radius: 6px; }
.btn2 { background: #4c1d95; color: white; text-align: center; padding: 8px; border-radius: 6px; cursor: pointer; margin-top: 6px; }Categorías donde buscar (hay al menos una de cada):
- Teclado/semántica: elementos interactivos que no son botones ni enlaces reales.
- Foco: ¿se ve dónde está el foco al navegar con teclado?
- Contraste: ¿algún texto es ilegible sobre su fondo?
- Imágenes: ¿alt? ¿dimensiones para evitar CLS?
- Formulario: ¿cada campo tiene su etiqueta?
- Enlaces: ¿el texto tiene sentido fuera de contexto?
Reglas
- Arréglalo con HTML semántico y CSS — sin reescribir la funcionalidad.
- Cada arreglo debe usar el elemento/atributo NATIVO correcto (no parches con ARIA donde va un elemento real).
- Verifica el resultado navegando SOLO con teclado.
60:00
Cuando estés listo, arranca el reloj.
Qué sigue
Módulo 18 cerrado: sabes construir sitios que cualquiera puede usar y que cargan rápido, y —clave— sabes MEDIRLO y arreglarlo. Con esto tienes el oficio completo del diseñador-desarrollador. El módulo 19 es la graduación: los proyectos finales, donde juntas TODO —maquetación, animación, TypeScript, tokens, accesibilidad y rendimiento— en piezas de portafolio de verdad.