Skip to content

Agregar sección de oradores plenarios en la home#199

Merged
francescarpi merged 3 commits into
mainfrom
feat/191_keynotes
Jun 15, 2026
Merged

Agregar sección de oradores plenarios en la home#199
francescarpi merged 3 commits into
mainfrom
feat/191_keynotes

Conversation

@francescarpi

@francescarpi francescarpi commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

Resumen

Nueva sección en la página de inicio que muestra los oradores plenarios como tarjetas en un grid responsive. Se ubica entre SectionMain y SectionEarlyBird, justo antes de la sección de entradas.

Cambios

Nuevos archivos

  • src/types/speakers.ts — tipos ISpeaker, ISpeakerLink, TSpeakerLinkType (link types: github, linkedin, instagram, website)
  • src/components/home/SectionSpeakers.astro — carga los MD, ordena por order ascendente y renderiza el grid (no se muestra si no hay oradores)
  • src/components/home/SpeakerCard.astro — tarjeta por orador: foto circular, nombre como <h3>, iconos de redes sociales + icono de globo para web, descripción multilínea con whitespace-pre-line
  • src/data/speakers/ada-lovelace.md.template — plantilla lista para clonar y rellenar con oradores reales
  • public/speakers/ada-lovelace.webp — foto de ejemplo para la plantilla

Archivos modificados

  • src/components/index.astro — importa y renderiza <SectionSpeakers> en la posición acordada
  • src/i18n/home.ts — agrega 7 claves speakers.* × 3 locales (es, en, ca)

Cómo añadir un orador

  1. Subir la foto a public/speakers/<slug>.<ext>
  2. Crear src/data/speakers/<slug>.md siguiendo la estructura de ada-lovelace.md.template
  3. Definir order (ascendente) y al menos un link
  4. La descripción acepta texto plano multilínea

Accesibilidad

  • Un solo <h1> por página, jerarquía <h2> (sección) → <h3> (card) respetada
  • Cada link externo con target="_blank" lleva rel="noopener noreferrer" y aria-label con la traducción de "se abre en nueva pestaña" desde menuTexts
  • Imágenes con alt descriptivo dinámico
  • Iconos decorativos con aria-hidden="true"
  • Foco visible en todos los elementos interactivos (focus-visible:outline)

Notas

  • La sección no se renderiza si no hay ningún archivo .md en src/data/speakers/ (la extensión .template se ignora a propósito para que sirva solo como guía)
  • No se agregaron dependencias nuevas — la descripción es texto plano renderizado con whitespace-pre-line
  • Prettier formatea correctamente sin warnings

Capturas

image

Closes #191

Nueva sección en la home entre SectionMain y SectionEarlyBird que muestra
los oradores plenarios como tarjetas en un grid responsive.

Cada orador se define como un .md en src/data/speakers/ con frontmatter
tipado (nombre, orden, foto, links a github/linkedin/instagram/website,
descripción). Se incluye ada-lovelace.md.template como punto de partida
para futuros oradores.

La sección no se renderiza si no hay oradores cargados. La descripción
usa texto plano multilínea renderizado con whitespace-pre-line.

i18n completo en es/en/ca con keys speakers.* y aria-labels apropiados
para los links externos (cumplen regla de new_tab).
@francescarpi francescarpi changed the title feat: agregar sección de oradores plenarios en la home Agregar sección de oradores plenarios en la home Jun 13, 2026
@francescarpi francescarpi requested a review from itziarZG June 13, 2026 08:44
@francescarpi francescarpi self-assigned this Jun 13, 2026

@ctrl-alt-d ctrl-alt-d left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bona feina amb els aria-label dels enllaços. Tinc algunes propostes de millora per a accessibilitat, especialment per a usuaris de lector de pantalla a les llistes (*1), per exemple a la llista de xarxes socials dels speackers:

  1. Eliminar role="list" del <ul>. Els elements <ul> ja exposen semàntica de llista de manera nativa, així que aquest atribut és redundant.

  2. Afegir un nom accessible a la llista per proporcionar context als usuaris de lector de pantalla:

<ul aria-label="Enllaços socials d'Ada Lovelace">
  1. Els SVG estan marcats amb aria-hidden="true", però alguns també tenen aria-label. Aquests atributs són contradictoris: si la icona és decorativa i l'enllaç ja té un nom accessible, l'aria-label de l'SVG es pot eliminar.

  2. Afegir focusable="false" als SVG per evitar que rebin focus en alguns navegadors i tecnologies d'assistència:

<svg aria-hidden="true" focusable="false">

Comment thread src/components/home/SectionSpeakers.astro
Comment thread src/components/home/SpeakerCard.astro Outdated
- Remove redundant role='list' from <ul> in SectionSpeakers and SpeakerCard
- Add translated aria-label to social links list (es, en, ca)
- Add focusable='false' to decorative SVGs
- Fix aria-hidden + aria-label contradiction in Icon.astro so decorative
  icons no longer expose an accessible name
@francescarpi francescarpi requested a review from ctrl-alt-d June 15, 2026 14:33
@francescarpi francescarpi merged commit 9994cfc into main Jun 15, 2026
1 check passed
@francescarpi francescarpi deleted the feat/191_keynotes branch June 15, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Añadir sección de keynotes en la home. Dejarlo preparado por qué en unos días se anunciarán.

2 participants