A Tale of Two Bread Recipes

Welcome to the Sensory Lab. In this experiment, we explore the profound difference between code that is merely "visually functional" and code that is genuinely accessible.

The Magic of Intentional Design

When you use HTML as it was designed and as it was intended to be used, you don't just build a visual document—you build a multi-sensory experience. A well-structured webpage gives you a successful visual experience as a sighted user, but crucially, it also provides a rich, navigable auditory experience for a screen reader user.

To the eye, the two recipes below might look identical. But to the ear, they represent two completely different worlds of accessibility.

The Experiment: Div-Driven vs. Semantic HTML

Choose an experience below to see (and hear) how underlying code impacts users.

✅ Accessible Recipe

The Semantic Standard

This version is built using standard, semantic HTML elements. It leverages <h1>, <h2>, <ul>, and properly labeled <img> tags.

  • Navigable Headers: Screen reader users can bring up their rotor and jump instantly to the "Ingredients" or "Instructions" headings.
  • Contextual Images: The alt text beautifully describes "A loaf of no knead bread dusted in flour with artistic cuts in the crust."
  • Spatial Awareness: When reaching the lists, the screen reader announces "List, 4 items," giving the user an immediate understanding of how much content to expect.
Experience the Accessible Recipe
❌ Inaccessible Recipe

The Div-Driven Disaster

This version relies entirely on generic <div> tags and CSS classes (like .big and .bigger) to mimic visual structure.

  • A Wall of Text: Visually, you see headers. Auditorily, a screen reader just sees a flat wall of text. There is no way to jump to the Ingredients.
  • Useless Images: The image alt text simply reads "bread.jpg", providing absolutely zero descriptive value to a non-sighted user.
  • Fake Lists: Using asterisks and line breaks creates the illusion of a list, but a screen reader will mercilessly read it all as one long, exhausting, run-on paragraph.
Experience the Div-Driven Recipe