Shipping HTML: How to Present Delivery Info for Vintage Hair Accessories
When you list a vintage hair accessory on your own online shop, the shipping section is often the last piece of HTML you write — and the first thing a buyer scans before clicking “Add to Cart.” A poorly structured delivery block can undo the trust built by a beautiful product photograph. For a Victorian tortoiseshell comb or a 1950s velvet crown headband, the customer needs to know not just the cost but the care taken in transit. Writing that information in clean, semantic HTML makes it readable for screen readers, easy to update, and visually consistent across devices.
Why Semantic HTML Matters for Shipping Information
Most vintage sellers use a platform like Shopify, WooCommerce, or Squarespace, which generates HTML automatically. But when you customise the shipping policy — for example, adding a note about insurance for a mother-of-pearl hair claw — you often drop raw HTML into a text editor. Using proper heading hierarchy and list elements ensures that a visitor using a screen reader can jump directly to the shipping details without wading through paragraphs of description. It also helps search engines understand the page structure, which can improve your visibility for queries like “vintage hair accessory delivery UK.”
Start with a second-level heading <h2> for the main shipping section, then third-level headings for each sub-topic: domestic rates, international zones, packaging methods, and returns. Avoid using <h3> for a single line of text; reserve it for a group of related points.
Building a Shipping Table for Multiple Rates
If you offer different shipping options — standard, tracked, and express — a table is the clearest way to present them. Write the table with <table>, <thead>, and <tbody> so that the header row is explicitly associated with its columns. For vintage accessories, the table should include a column for the service name, the estimated delivery time, the cost, and any special notes (e.g., “signature required”).

Example HTML structure:
<table>
<caption>UK Delivery Options for Hair Accessories</caption>
<thead>
<tr>
<th scope="col">Service</th>
<th scope="col">Estimated Time</th>
<th scope="col">Cost</th>
<th scope="col">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>Royal Mail 2nd Class</td>
<td>2–3 working days</td>
<td>£3.50</td>
<td>No tracking</td>
</tr>
<tr>
<td>Royal Mail Tracked 48</td>
<td>2–3 working days</td>
<td>£5.00</td>
<td>Tracking included</td>
</tr>
</tbody>
</table>
Always include a <caption> so the table’s purpose is clear even if the surrounding text is not read. For international shipping, use a second table with the same structure but adjust the columns for customs information.
Marking Fragile Items with HTML Emphasis
Vintage hair accessories are often delicate. A 1920s celluloid comb can snap under pressure, and a silk rose on a hairpin can crush. In your shipping description, use <strong> to highlight the packaging method, not the fragility itself. For example:
Each item is wrapped in acid-free tissue paper, placed inside a padded mailer, and shipped in a rigid cardboard box. All orders over £50 receive free tracked shipping.
The <strong> tag draws attention to the offer without shouting. Avoid using <em> for emphasis on shipping details; save that for editorial content where you want to imply a change in tone.
Including a Clear Call-to-Action in the Shipping Block
After the rates table, many sellers add a line about free shipping thresholds. Use an unordered list to present the conditions:
- Free standard shipping on UK orders over £40
- Free tracked shipping on UK orders over £75
- Flat-rate international shipping £12.50 (tracked, with insurance)
Then close the section with a paragraph that contains a call-to-action link, such as “View our full shipping policy.” If you have a dedicated page for terms, link to it using <a href="/pages/shipping">. For this blog, you might link to the CCPA opt-out page only if you discuss data privacy during shipping, but that is not essential here. Keep the link text descriptive: “Visit our complete delivery terms and conditions.”
Accessibility Considerations for Shipping HTML
Visitors with visual impairments rely on screen readers that navigate by headings, lists, and tables. Ensure every shipping table has a <caption>, and that list items are wrapped in <ul> or <ol> rather than separated by <br> tags. Use <h2> and <h3> in a logical order — do not jump from <h2> to <h4>. Also, avoid using inline styles for font sizes; rely on the theme’s CSS. If you must add a colour for a warning (e.g., “Orders to Northern Ireland may incur customs delays”), use a <span> with a class rather than a <font> tag.

Testing Your Shipping HTML Before Publishing
Copy the HTML block into a validator like the W3C Markup Validation Service to catch missing closing tags or improperly nested elements. Then test the page with a screen reader (VoiceOver on macOS or NVDA on Windows) to confirm that the shipping information is spoken in a logical order. A common mistake is placing the table inside a <p> tag, which is invalid; always keep tables outside paragraph elements.
Pay attention to the scope attribute on table headers. Without it, a screen reader may not announce which column a cell belongs to when navigating across rows. For vintage accessories, where the cost and time vary by service, that clarity is essential.
Updating Shipping HTML for Seasonal Sales
During the Christmas season or a summer clearance, you might offer reduced rates. Instead of rewriting the entire table, add a <div class="seasonal-note"> above it with a <strong> callout. For example:
<div class="seasonal-note">
<p><strong>Holiday offer:</strong> Free tracked shipping on all UK orders over £30 until 24 December.</p>
</div>
This approach keeps the main table unchanged and easy to restore. Do not use <marquee> or <blink> — those tags are obsolete and will break accessibility.
When to Avoid HTML and Use Plain Text
Sometimes the simplest solution is best. For a small one-person vintage shop, a single paragraph explaining that you ship worldwide via Royal Mail with a flat rate may be clearer than a table. That paragraph can still use <strong> for the price and <br> for line breaks inside an address. The key is to match the complexity of your shipping operation to the HTML structure. If you only offer two options, a bullet list with <ul> is more appropriate than a full table.
One final detail: always include a <time> element with a datetime attribute when you mention a shipping cut-off time. For example <time datetime="15:00">3 PM</time> helps machines and users interpret the deadline correctly. This is especially useful for pre-Christmas orders or limited-edition releases of vintage hair accessories.
