Index

MX Implementation Examples - See It In Practice

Theory is valuable. Examples are essential.

Here are real patterns from MX implementations showing how the three pillars work in practice.

E-Commerce Product Page

Before MX

<div class="product">
  <img src="headphones.jpg">
  <div class="name">Pro Headphones</div>
  <div class="price">$299</div>
  <div class="rating">★★★★★ 4.8/5</div>
  <button class="buy">Buy Now</button>
</div>

Problems:

After MX

<article itemscope itemtype="https://schema.org/Product">
  <img src="headphones.jpg" itemprop="image"
       alt="Professional over-ear headphones with active noise cancellation">

  <h2 itemprop="name">Pro Headphones</h2>

  <div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
    <data itemprop="price" value="299.00">$299</data>
    <meta itemprop="priceCurrency" content="USD">
    <link itemprop="availability" href="https://schema.org/InStock">
  </div>

  <div itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
    <span class="stars" aria-label="4.8 out of 5 stars">★★★★★</span>
    <data itemprop="ratingValue">4.8</data>/<data itemprop="bestRating">5</data>
  </div>

  <button type="button" aria-label="Add Pro Headphones to cart">
    Buy Now
  </button>
</article>

Improvements:

Contact Form

Before MX

<form>
  <div>
    Name <span class="req">*</span>
    <input type="text" name="name">
  </div>
  <div>
    Email <span class="req">*</span>
    <input type="text" name="email">
  </div>
  <div>
    <input type="submit" value="Send">
  </div>
</form>

Problems:

After MX

<form aria-label="Contact form">
  <div>
    <label for="name">Name <abbr title="required">*</abbr></label>
    <input type="text" id="name" name="name" 
           required aria-required="true"
           aria-invalid="false"
           aria-describedby="name-error">
    <span id="name-error" role="alert" aria-live="polite"></span>
  </div>

  <div>
    <label for="email">Email <abbr title="required">*</abbr></label>
    <input type="email" id="email" name="email"
           required aria-required="true"
           aria-invalid="false"
           aria-describedby="email-error"
           autocomplete="email">
    <span id="email-error" role="alert" aria-live="polite"></span>
  </div>

  <div>
    <button type="submit">Send Message</button>
  </div>
</form>

Improvements:

Before MX

<div class="nav">
  <a href="/" class="current">Home</a>
  <a href="/products">Products</a>
  <a href="/about">About</a>
</div>

After MX

<nav aria-label="Main navigation">
  <ul>
    <li><a href="/" aria-current="page">Home</a></li>
    <li><a href="/products">Products</a></li>
    <li><a href="/about">About Us</a></li>
  </ul>
</nav>

Improvements:

Loading State

Before MX

<div class="spinner"></div>

After MX

<div role="status" aria-live="polite" aria-busy="true">
  <div class="spinner" aria-hidden="true"></div>
  <span class="sr-only">Loading content, please wait...</span>
</div>

Improvements:

The Pattern

Each example shows all three MX pillars:

  1. Structured Data - Schema.org markup where applicable
  2. Accessibility - Semantic HTML, ARIA, labels
  3. Explicit Intent - States, requirements, purposes declared

Result: Works for humans, screen readers, AND AI agents.

Common Mistakes to AvoidSee the BenefitsGet Implementation Help

Back to Top